MySQL: 表的增删改查(基础)

1.CRUD

  • 注释:在SQL中可以使用“–空格+描述”来表示注释说明
  • CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写。
    MySQL: 表的增删改查(基础)_第1张图片

2.新增(Create)

先创建一个表,才能插入数据。MySQL: 表的增删改查(基础)_第2张图片
注:以下全部操作都是通过这个表实现

2.1 单行数据 + 全列插入

– 插入两条记录,value_list 数量必须和定义表的列的数量及顺序一致
INSERT INTO student VALUES (1, 100, ‘C罗’, NULL);//NULL表示空值
INSERT INTO student VALUES (2, 101, ‘梅西’, ‘11111’);

MySQL: 表的增删改查(基础)_第3张图片

2.2 多行数据 + 指定列插入

– 插入两条记录,value_list 数量必须和指定列数量及顺序一致
insert into student (id,sn,name) values
(3, 102, ‘莱万’),
(4, 103, ‘内马尔’);

在这里插入图片描述

3. 查询(Retrieve)

– 通常情况下不建议使用 * 进行全列查询
– 1. 查询的列越多,意味着需要传输的数据量越大;
– 2. 可能会影响到索引的使用。(索引待后面课程讲解)
SELECT * FROM exam_result;

3.1 全列查询

select * from student;//查询student这个表的全部信息
MySQL: 表的增删改查(基础)_第4张图片

3.2 指定列查询

select id, name from student;//查询student表的id和name信息
MySQL: 表的增删改查(基础)_第5张图片
相对于全列查询来说,指定列查询更加好,但仍然需要注意尽量不要再线上进行查询,因为可能表太大导致机器的磁盘IO与网络宽带被占满。

3.3 查询字段为表达式

select id+sn from student;//查询id+sn表达式之和
select id+sn ,name from student;//查询id+sn表达式加name列
MySQL: 表的增删改查(基础)_第6张图片

3.4 别名

select name, id+sn sum from student;//用sum代替id+sn
MySQL: 表的增删改查(基础)_第7张图片

3.5 去重:DISTINCT

select distinct mail from student;
MySQL: 表的增删改查(基础)_第8张图片
注:在执行此语句的时候时,我执行了insert into student values(5,104,‘小罗’,‘11111’);语句,因此邮箱也重复了。

3.6 排序:ORDER BY

– ASC 为升序(从小到大)
– DESC 为降序(从大到小)
– 默认为 ASC

此时的表如下:
MySQL: 表的增删改查(基础)_第9张图片

  1. 没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序
  2. NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面
  3. 使用表达式及别名排序
  4. 可以对多个字段进行排序,排序优先级随书写顺序

– 查询同学id,sn,mail之和,由高到低
SELECT name, id+sn+mail FROM student
ORDER BY id+sn+mail DESC;
MySQL: 表的增删改查(基础)_第10张图片

3.7 条件查询:WHERE

比较运算符:
MySQL: 表的增删改查(基础)_第11张图片
逻辑运算符:

MySQL: 表的增删改查(基础)_第12张图片
注:

  1. WHERE条件可以使用表达式,但不能使用别名。
  2. AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分

查询id小于4的学生
MySQL: 表的增删改查(基础)_第13张图片

3.8 分页查询:LIMIT

限制查询结果的最大值

查询0——4
MySQL: 表的增删改查(基础)_第14张图片

4. 修改(Update)

– 将C罗同学的mail变更为77777
UPDATE student SET mail = 77777 WHERE name = ‘C罗’;
在这里插入图片描述

5. 删除(Delete)

将内马尔的数据全部删除
select * from student;
MySQL: 表的增删改查(基础)_第15张图片

重点总结

  • 新增

– 单行插入
insert into 表(字段1, …, 字段N) values (value1, …, value N);
– 多行插入
insert into 表(字段1, …, 字段N) values
(value1, …),
(value2, …),
(value3, …);

  • 查询

– 全列查询
select * from 表
– 指定列查询
select 字段1,字段2… from 表
– 查询表达式字段
select 字段1+100,字段2+字段3 from 表
– 别名
select 字段1 别名1, 字段2 别名2 from 表
– 去重DISTINCT
select distinct 字段 from 表
– 排序ORDER BY
select * from 表 order by 排序字段
– 条件查询WHERE:
– (1)比较运算符 (2)BETWEEN … AND … (3)IN (4)IS NULL (5)LIKE (6)AND (7)OR
(8)NOT
select * from 表 where 条件

  • 修改

update 表 set 字段1=value1, 字段2=value2… where 条件

  • 删除

delete from 表 where 条件

你可能感兴趣的