MySQL操作

数据库分类

载入
在这里插入图片描述

1.my.ini配置

[mysqld]
port=3306
#Path to installation directory. All paths are usually resolved relative to this.
basedir=G:\mysql-8.0.22\

#Path to the database root
datadir=G:\mysql-8.0.22\Data
#跳过密码
skip-grant-tables
#允许最大连接数
max_connections=200
#服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8mb4
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
#设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4

2.使用管理员状态下的命令提示符

配置服务
先查看 :sc query mysql
如果存在就删除: sc deletet mysql
安装服务:mysqld -install
在这里插入图片描述

在MySQL目录下的bin目录下输入 mysqld --initialize --console , 如下图所示:
在这里插入图片描述

数据库操作

结构化查询语句分类

名称命令
DDL(数据定义语言)定义和管理数据对象,如数据库、数据表等;CREATE、DROP、ALTER
DML(数据操作语言)用于操作数据库对象中所包含的数据INSERT UPDATE DELETE
DQL(数据查询语言)用于查询数据库数据SELECT
DCL(数据控制语言)用于管理数据库的语言,包括管理权限及数据更改GRANT commit rollback

连接数据库

命令窗口下输入:mysql -u root -p 密码;
查看当前所有的数据库: show databases;
在这里插入图片描述

创建一个DataBase用户: create database [if not exists] 名字;
选择该数据库: use 数据库名字;
创建表:
create table depart(
id int not null auto_increment,
name varchar(25),
dep_sno varchar(25),
age int,
salary int,
constraint PK_depart_id primary key(id)
)engine=innodb default charset=utf8mb4 auto_increment=1;

查看表的详细信息: desc 表名;
在这里插入图片描述

数据字段属性

UnSigned

  • 无符号的
  • 声明该数据列不允许负数 .

Auto_InCrement

  • 自动增长的 , 每添加一条数据 , 自动在上一个记录数上加 1(默认)
  • 通常用于设置主键 , 且为整数类型
  • 可定义起始值和步长
    • 当前表设置步长(AUTO_INCREMENT=100) : 只影响当前表
    • SET @@auto_increment_increment=5 ; 影响所有使用自增的表(全局)

NULL 和 NOT NULL

  • 默认为NULL , 即没有插入该列的数值

  • 如果设置为NOT NULL , 则该列必须有值

DEFAULT

  • 默认的
  • 用于设置默认值

– 创建表之前 , 一定要先选择数据库

CREATE TABLE IF NOT EXISTS student (
id int(4) NOT NULL AUTO_INCREMENT COMMENT ‘学号’,
name varchar(30) NOT NULL COMMENT ‘姓名’,
pwd varchar(20) NOT NULL DEFAULT ‘123456’ COMMENT ‘密码’,
sex varchar(2) NOT NULL COMMENT ‘性别’,
birthday datetime DEFAULT NULL COMMENT ‘生日’,
address char DEFAULT NULL COMMENT ‘地址’,
email varchar(50) DEFAULT NULL COMMENT ‘邮箱’,
constraint PK_stu_id PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
(使用utf8mb4格式,具体为什么自行百度)

– 查看数据库的定义
SHOW CREATE DATABASE mytable;
– 查看数据表的定义
SHOW CREATE TABLE student;
– 显示表结构
DESC student;
– 查看mysql所支持的引擎类型 (表类型)
SHOW ENGINES;
MySQL的数据表的类型 : MyISAM , InnoDB , HEAP , BOB , CSV等…

常见的 MyISAM 与 InnoDB 类型:
在这里插入图片描述![
经验 ( 适用场合 ) :

  • 适用 MyISAM : 节约空间及相应速度

  • 适用 InnoDB : 安全性 , 事务处理及多用户操作数据表

数据表的存储位置

  • MySQL数据表以文件方式存放在磁盘中

    • 包括表文件 , 数据文件 , 以及数据库的选项文件

    • 位置 : Mysql安装目录\data\下存放数据表 . 目录名对应数据库名 , 该目录下文件名对应数据表 .

设置数据表字符集

我们可为数据库,数据表,数据列设定不同的字符集,设定方法 :

创建时通过命令来设置 , 如 : CREATE TABLE 表名()CHARSET = utf8;

如无设定 , 则根据MySQL数据库配置文件 my.ini 中的参数设定

修改数据库

增删改查:
1.增加:insert into 表名 values();
2.删除:delete 列名 from 表名 where 条件
3.修改: update 表名 set 修改后的内容 where 条件;
修改表属性:alter table 表名 modify 要修改的列名 datatype;
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 datatype
alter table stu midify sname varchar(25);
添加: alter table 表明 add 列名 datatype;
删除: alter table 表名 drop 列名 ;
删除表: drop table 表名;
删除表数据:truncate table 表名;
修改字段名:alter table 表名 rename column 现列名 to 新列名;
修改表名:alter table 表名 rename as 新表名
修改表 ( ALTER TABLE )
修改字段 :
ALTER TABLE 表名 MODIFY 字段名 列类型[属性]

其他

  1. 可用反引号(`)为标识符(库名、表名、字段名、索引、别名)包裹,以避免与关键字重名!中文也可以作为标识符!
  2. 每个库目录存在一个保存当前数据库的选项文件db.opt。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值