🔥博客主页🔥:【 坊钰_CSDN博客 】
欢迎各位点赞👍评论✍收藏⭐
目录
1. CRUD 简介
2. Create -- 新增
2.1 语法
2.2 练习
3. Retrieve -- 检索
3.1 Select -- 查询
3.1.1 全列查询
3.1.2 指定列查询
3.1.3 表达式查询
3.1.4 为结果命名
3.1.5 为结果去重
3.1.6 Select 注意事项
3.2 Where -- 条件查询
3.2.1 语法
3.2.2 示例
3.2.2.1 限制条件查询
3.2.2.2 范围查询
3.2.2.3 模糊查询
3.2.2.4 NULL-- 查询
3.3 Order by -- 排序
3.3.1 语法
3.3.2 排列示例
3.4 分页查询
3.4.1 语法
3.4.2 分页示例
3.5 Update -- 修改
3.5.1 语法
3.5.2 修改示例
3.6 Delete -- 删除
4. 小结
1. CRUD 简介
在数据库中的操作,增删查改是最基本的操作,简称 CRUD
Create -- 新增
Retrieve -- 读取
Update -- 更新
Delete -- 删除
2. Create -- 新增
那么在一张表中,如何插入数据呢?
2.1 语法
insert into table——name 列名 value 数据值
- 这是较简略的写法,后续还有各种语法组装在一起,后续讲解
2.2 练习
创建一张考试成绩表,如下:
-- 使用库
use store;
-- 创建一张成绩表
create table if not exists exam(
id bigint comment '序号',
name varchar(20) comment '学生姓名',
chinese float comment '语文成绩',
math float comment '数学成绩',
english float comment '英语成绩'
);
-- 插入数据
insert into exam (id,name,chinese,math,english) value
(1,'唐三藏', 67, 80, 92),
(2,'孙悟空', 87, 78, 77),
(3,'猪悟能', 88, 98, 90),
(4,'沙和尚', 85, 78, 80),
(5,'曹孟德', 82, 84, 67),
(6,'刘玄德', 55, 85, 45),
(7,'孙权', 70, 73, 78);
先看表的内容: (具体语句在代码中,不作过多讲解)
3. Retrieve -- 检索
那我们如何查看表中的数据呢?
3.1 Select -- 查询
-- 语法
mysql> select 列名 from 表名;
3.1.1 全列查询
- 使用 * 可进行全列查询
mysql> select * from exam;
3.1.2 指定列查询
- 使用要查的列名去查询,例:查询同学的数学,英语成绩
mysql> select id,name,math,english from exam;
3.1.3 表达式查询
- 例:把所有同学的英语成绩加10分
mysql> select id,name,english + 10 from exam;
- 例:查询所有同学的总分
mysql> select id,name,chinese+math+english from exam;
3.1.4 为结果命名
- 为总分命名,以上述为例
mysql> select id,name,chinese+math+english 总分 from exam;
3.1.5 为结果去重
- 去除重复的数学成绩
mysql> select distinct math from exam;
3.1.6 Select 注意事项
- select 查询时,如果不加限制条件,会查询服务器中所有数据,导致服务器资源的浪费
- 生产环境中最好不要写出不带限制条件的查询语句
3.2 Where -- 条件查询
有限制条件的查询如何写呢?
3.2.1 语法
mysql> select 列名 from exam where 条件;
3.2.2 示例
3.2.2.1 限制条件查询
- 查询英语成绩不及格的同学
mysql> select id,name,english from exam where english < 60;
- 总分在200分以下的同学
mysql> select id,name,chinese + math + english 总分 from exam where chinese + math + english < 200;
3.2.2.2 范围查询
- 查询语文成绩在【80,90】的同学
mysql> select id,name,chinese from exam where chinese between 80 and 90;
- 查询数学成绩为 78 或 79 或 98 的同学
mysql> select id,name,math from exam where math in (78, 79, 98);
3.2.2.3 模糊查询
- 查询所有姓孙的同学
mysql> select * from exam where name like '孙%';
- 查询所有姓孙且名字只有2个字的同学
mysql> select * from exam where name like '孙_';
3.2.2.4 NULL-- 查询
写入一个数学成绩为 null 的同学
-- 插入数学成绩为null insert into exam (id,name,chinese,math,english) value (1, '赵云', 78, null, 88);
- 查询数学成绩不为空的同学
mysql> select id,name,math from exam where math is not null;
- NULL 与任何值进行计算都为 NULL
mysql> select id,name,chinese+math+english '总分' from exam;
3.3 Order by -- 排序
在数据库中如何排序呢?
3.3.1 语法
-- 升序(从小到大)
ASC
-- 降序(从大到小)
DESC
-- 默认为 ASC
mysql> select 列名 from exam where 条件 order by 排序;
3.3.2 排列示例
- 按数学成绩降序查询
mysql> select name,math from exam order by math desc;
- 总分降序查询
mysql> select name,chinese + math + english 总分 from exam order by 总分 desc;
3.4 分页查询
如果数据库中数据较多,那么我们就要进行分页查询
3.4.1 语法
-- 从 0 开始,筛选 num 条结果
mysql> select 列名 from exam where 条件 order by 排序 limit num;
-- 从 start 开始,筛选 num 条结果
mysql> select 列名 from exam where 条件 order by 排序 limit start,num;
-- 从 start 开始,筛选 num 条结果
mysql> select 列名 from exam where 条件 order by 排序 limit num offset start;
3.4.2 分页示例
- 按一页有3行数据来查
mysql> select * from exam limit 0,3;
3.5 Update -- 修改
数据库中数据信息如果错误,如何修改呢?
3.5.1 语法
update table_name set [up_options];
3.5.2 修改示例
- 将唐三藏数学成绩改为90分
mysql> update exam set math = 90 where name = '唐三藏';
- 将所有同学数学都乘以2
mysql> update exam set math = math * 2;
3.6 Delete -- 删除
删除是一种非常危险的操作,不建议操作
- 删除赵云的数据
mysql> delete from exam where name = '赵云';
4. 小结
以上就是对MySQL增删查改的了解,具体还需宝子们去实践,如果觉得该博客对你有用的话,希望一键三连,点个关注不迷路,谢谢支持