什么是SQL之增删改查(二)
一、DML:增删改表中数据
1、添加数据
语法:
insert into 表名(列明1,列明2,...,列明n) values(值1,值2,...,值n);
注意:
列明和值要一一对应
如果表名后,不定义列明,则默认给所有的列添加值
insert into 表名 values(值1,值2,...,值n);
2 、删除数据
delete from 表名 [where 条件]
注意:
如果不添加条件,则删除表中所有数据
如果要删除所有记录
delete from 表名;不推荐使用。有多少条记录就会执行多少次删除操作
truncate table 表名;--先删除表,再创建一张一样的表。推荐使用
3、修改数据
语法:update 表名 set 列明1=值1,列明2=值2,...,[where 条件]
注意:
如果不添加任何条件,会修改表中所有数据
DQL:查询表中的记录
语法:
select
字段列表
from
表名
where
条件列表
group by
分组字段
having
分组之后的条件
order by
排序
limit
分页限定
基础查询
多个字段的查询
去除重复:select distinct 列明 from student;
计算列
一般可以使用四则运算计算一些列的值。(一般只会进行数值类型的计算)
select name,math,english,math+english from student;--如果有null参与运算,计算结果都为null
select name,math,english,math+ifnull(english,0) from student;
起别名
as:as也可以省略
条件查询
where 子句后跟条件
运算符
>、<、<=、>=、=、<>
between ... and
in (集合) select * from student where age in(19,20,21);
like 占位符:_ 单个任意占位符, %多个任意占位符
is null
and 或 &
or 或 ||
not 或 !
排序查询
语法:order by 子句
order by 排序字段1 排序方式1,排序字段2 排序方式2
排序方式:asc 升序 --默认,desc 降序
注意:如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件。
聚合函数:将一列数据作为一个整体,进行纵向的计算
count:计算个数 select count(name) from student;
一般选择非空的列:主键
count(*)
max:计算最大值
min:计算最小值
sum:计算和
avg:计算平均值
聚合函数的计算会排除null值
解决方案:
选择不包含非空的列进行计算
使用 ifnull函数
分组查询
语法:group by 分组字段;
注意:分组之后查询的字段:分组字段、聚合函数
where 和having 的区别
where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果则不会被查询出来。
where 后不可以跟聚合函数,having可以进行聚合函数的判断。
分页查询
语法:limit 开始的索引,每页查询的条数
每页显示3条数据:select * from student limit 0,3;
公式:开始的索引=(当前的页码-1)*每页的条数;
limit操作是一个mysql的“方言”