1.CRUD
- 注释:在SQL中可以使用“–空格+描述”来表示注释说明
- CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写。
2.新增(Create)
先创建一个表,才能插入数据。
注:以下全部操作都是通过这个表实现
2.1 单行数据 + 全列插入
– 插入两条记录,value_list 数量必须和定义表的列的数量及顺序一致
INSERT INTO student VALUES (1, 100, ‘C罗’, NULL);//NULL表示空值
INSERT INTO student VALUES (2, 101, ‘梅西’, ‘11111’);
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这个表的全部信息
3.2 指定列查询
select id, name from student;//查询student表的id和name信息
相对于全列查询来说,指定列查询更加好,但仍然需要注意尽量不要再线上进行查询,因为可能表太大导致机器的磁盘IO与网络宽带被占满。
3.3 查询字段为表达式
select id+sn from student;//查询id+sn表达式之和
select id+sn ,name from student;//查询id+sn表达式加name列
3.4 别名
select name, id+sn sum from student;//用sum代替id+sn
3.5 去重:DISTINCT
select distinct mail from student;
注:在执行此语句的时候时,我执行了insert into student values(5,104,‘小罗’,‘11111’);语句,因此邮箱也重复了。
3.6 排序:ORDER BY
– ASC 为升序(从小到大)
– DESC 为降序(从大到小)
– 默认为 ASC
此时的表如下:
- 没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序
- NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面
- 使用表达式及别名排序
- 可以对多个字段进行排序,排序优先级随书写顺序
– 查询同学id,sn,mail之和,由高到低
SELECT name, id+sn+mail FROM student
ORDER BY id+sn+mail DESC;
3.7 条件查询:WHERE
比较运算符:
逻辑运算符:
注:
- WHERE条件可以使用表达式,但不能使用别名。
- AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分
查询id小于4的学生
3.8 分页查询:LIMIT
限制查询结果的最大值
查询0——4
4. 修改(Update)
– 将C罗同学的mail变更为77777
UPDATE student SET mail = 77777 WHERE name = ‘C罗’;
5. 删除(Delete)
将内马尔的数据全部删除
select * from student;
重点总结
- 新增
– 单行插入
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 条件