作者简介
马听,多年 DBA 实战经验,对 MySQL、 Redis、ClickHouse 等数据库有一定了解,专栏《一线数据库工程师带你深入理解 MySQL》、《Redis 运维实战》作者。
这一节,来一起聊聊 MySQL 的库表创建及增删查改,如果没有实验环境,可以参考上一节内容:CentOS 快速安装 MySQL 8.0。
1 创建和使用 database
1.1 创建 database
代码语言:javascript复制CREATE DATABASE yzl;
表示创建名为 yzl 的数据库
1.2 查看有哪些数据库
代码语言:javascript复制SHOW DATABASES;
可以看到我们刚才创建的数据库 yzl。
1.3 使用 database
比如需要到某个 database 下面执行命令,则必须先进入到这个库,语法如下:
代码语言:javascript复制use yzl;
2 建表和字段修改
2.1 建表
下面语句可创建一张名为 student_info 的表:
代码语言:javascript复制create table `student_info`(
`id` int primary key auto_increment comment '主键',
`name` varchar(11) default null comment '学生姓名',
`sex` varchar(10) default null comment '学生性别',
`grade` int(10) default null comment '学生分数',
`stu_id` int(10) default null comment '学生ID',
key idx_stu_id (`stu_id`)
)engine = innodb default charset= utf8mb4;
这里对上面的语句进行解释:
- create table 建表固定语法
- student_info 创建的表名
- id、name、sex、grade、stu_id 分别为这张表的字段
- int(*)、varchar(*) 为字段类型,后续会详细讲解
- primary key 表示这个字段为主键
- default null 表示默认值为 null
- comment 'xx' 表示对这个字段的注释,xx 为注释内容
- engine = innodb 表示存储引擎为 InnoDB
- charset= utf8mb4 表示设置这张表的字符集为 utf8mb4
2.2 查看当前库有哪些表
代码语言:javascript复制show tables;
如上图,就可以看到我们刚才创建的表:student_info
2.3 查看表结构
代码语言:javascript复制show create table student_info;
如上图,我们可以看到前面所创建的表 student_info 的表结构
2.4 增加字段
代码语言:javascript复制alter table student_info add column course varchar(10) default null comment '科目';
alter table 修改表的固定语法
查看表结构,确定是否添加成功:
代码语言:javascript复制show create table student_info;
如上图,可以看到我们刚才新增的字段 course。
2.5 删除字段
代码语言:javascript复制alter table student_info drop column course;
查看表结构,确定字段是否删除:
代码语言:javascript复制show create table student_info;
如图,发现 course 字段已经没有了,因此删除字段成功。
3 数据增删查改
3.1 写入数据
代码语言:javascript复制insert into student_info(stu_id,`name`,sex,grade) values (1,'aa','女',88);
insert into student_info(stu_id,`name`,sex,grade) values (2,'bb','男',80);
解释一下上面的语句
- insert into 写入数据固定语法
- student_info 表名
- (stu_id,name,sex,grade) 表示需要写入的字段
- values (001,'aa','⼥女女',88) 表示需要写入的数据,跟前面的字段一一对应
3.2 查询数据
按条件查询某个字段:
代码语言:javascript复制select `name` from student_info where stu_id = 1;
解释一下上面的语法 select ... from 查询固定语法 语句句表示 从 student_info 中查询出 stu_id = 1 这⼀行数据的 name 字段
按条件查询所有字段
代码语言:javascript复制select * from student_info where stu_id = 1;
查询表的所有数据
代码语言:javascript复制select * from student_info;
3.3 删除数据
删除数据前,最好先查询出满足条件的数据(这一次要删除的是 student_info 表中 stu_id 等于 2 的记录),以确定是否是自己要删的
代码语言:javascript复制select * from student_info where stu_id = 2;
确定好是自己要删除的,则执行 delete 操作:
代码语言:javascript复制delete from student_info where stu_id = 2;
解释一下上面的语法
- delete from 删除数据固定语法
- where stu_id = 2 表示删除满⾜足条件 stu_id = 2 的数据
- 要注意的是,删除数据时,条件一定要加上,不然就会删除整张表的数据
查询数据是否被删除:
代码语言:javascript复制select * from student_info where stu_id = 2;
发现 student_info 表中 stu_id 等于 2 的记录已经被成功删除了。
3.4 修改数据
首先查看修改之前的数据
代码语言:javascript复制select * from student_info where stu_id = 1;
代码语言:javascript复制update student_info set `name`='yy' where stu_id = 1;
解释一下上面的语法 update ... set ... where 修改数据的固定语法 表示修改 student_info 表中满足条件 stu_id = 1 语句中的 name 为 yy
查看修改之后的数据:
代码语言:javascript复制select * from student_info where stu_id = 1;
发现满足条件的 name 已经被修改成 yy 了。