MySQL 基础知识笔记 第02期:库表创建及增删查改

2022-04-25 09:01:23 浏览数 (1)

作者简介

马听,多年 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 了。

0 人点赞