SQL基础-DML语句

查看数据表的信息:

image

image

1.插入记录

  • insert into 表名 (字段1,字段2)values (值1,值2);

注意:

insert 可以一次插入多条语句;

insert into 表名 (字段1,字段2)values (值1,值2),(值1,值2);

image

image

含可空字段,非空但是含有默认值的字段、自增字段,可以不用再insert后的字段列表里面出现,values后面只写对应字段名称的value值。这些没写的字段可以自动设置为null、默认值、自增下一个数字

2.更新数据

update 表名1, 表名2 set 表名1.字段1 = 值1,表名2.字段2 = 值2;

  • 单表更新

image

  • 多表更新

image

3.删除记录

  • delete from 表名 where 条件

image

多条记录:

  • delete t1,t2 from t1,t2 where 条件;

如果from后面用别名,则delete后面也要用相应的别名,否则会提示语法错误。

image

别名是不分先后顺序的

image

4.查询记录

image

1)查询不重复---------distinct

image

2)排序和限制---------order by

注意:后面可以跟多个不同的排序字段,并且每个排序字段都可以有不同的排序顺序;limit和order by一起配合使用来进行记录的分页显示。

image

limit 后面的0:表示记录的起始偏移量(默认情况下是0),5表示显示5行(行数)

image

3)聚合

select 值

from 表

where 条件(聚合前)

group by 要分类字段

having 条件(聚合后)

注意:GROUP BY 关键字表示要进行分类聚合的字段,比如要按照部门分类统计员工数量,部门就应该写在group by后面。

注意:having和where的区别,having是对聚合后的结果进行条件过滤,而where是在聚合前对记录进行过滤。如果逻辑允许,我们尽量用where先过滤记录,这样应为结果集减小,将对聚合的效率大大提高,最后在根据逻辑看是否使用having进行再过滤。

image

第四是既统计每个角色的数量,又统计总人数;

表连接:

内连接:仅选出两张表中互相匹配的记录;

外连接:会选出其他不匹配的记录。

  • 左连接:包含所有左边表中的记录甚至是右边表中没有和它匹配;

  • 右连接:包含所有右边表中的记录甚至是左边表中没有和它匹配;

内连接:

image

左连接:

image

右连接:

image

4)子查询

image

5)记录联合

union all:把所有的结果集合并在一起;

union:去掉重复记录的结果。

image

上一篇: SQL基础-DCL语句 下一篇: SQL基础-DDL语句