添加数据:
insert into use(表名)(name(列名1),age(列名2),time(列名3)) values('张三',10,"1999-11-13");
注意事项
如果表名后,不定义;列名,则默认给所有列添加值,列名和值要一一对应
案例:insert into use values('小李',30,"1888-12-13");
除数字类型,其他类型需要使用引号(单双都可以)引起来
删除数据
设定了一定条件的删除数据
delete form use(表名) where id=1;
删除所有的记录
delete form use(表名);
先删除表,然后在创建一张一模一样的空表
truncate table use(表名);
修改数据
语法: update use(表名) set int(列名1) = 10(值1) ,student = '张三';
添加where 条件
update use(表名) set int(列名1) = 10(值1) ,student = '张三' where id=3;
注意事项
如果不加任何的条件,表中的所有所被定义的记录将会全部修改
DQL
语法
select :字段列表
from:表名列表
where:条件列表
group by:分组字段
order by:分组之后的条件
limit:分支限定
2.基础查询
1.去除重复
distnct:作用:去掉SELECT查询返回的记录结果中重复的记录(所有返回列的值都相同)只返回一条
语法:select distinct 字段名1 字段名2......FROM表明
案例1:去除重复的结果集
select DISTINCT name from student(学生表);
2.计算结果的和
案例2:计算past 和 english中的结果集之和
select past,english,past+english form student(学生表);
3.计算列
ifnull(表达式1,表达式2):null参与的运算,计算结果都为null函数的参数有两个,如果不是null,返回第一个参数,如果为null返回第二个参数
表达式1:哪个字段需要判断是否为null
表达式2:如果该字段为null后的替换值。
案例3:当past为80,english 为null 等于的结果集为?
select past,english,past+IFNULL(english,0) from student(学生表);
4.起别名
as:as也可以省略
案例4:给查询的列或者字段名起别名
as:起别名使用
语法:select 字段 as 别名
方法一:select past,english,past+IFNULL(english,0) as 总分数 from student(学生表);
方法二:select past 历史,english 英语,past+english 总分 from student;
5.多个字段的查询
select 字段名1,字段名2....from 表名;
当查询所有字段的时候,可以使用* 来替代字段列表
3.条件查询
1.where子句后跟条件
2.运算符
>,<,<=,>=,=
<>:等于
BETWEEW.......AND(在.....之间)
IN():查询出括号中所有的信息
案例:select * from st where age IN (22,25,28);
LIKE:模糊查询
占位符: _单个任意字符
%多个任意字符
案例1:查询单个
selsect * from st where name like '_';
案例2:查询第二个为龙的
select * from st where name like '%龙%';
案例3:查询为三个名字的人
select * from st where name like '___';
IS NULL:为null
注意:当not 配合IS NULL使用 语法格式为 is not null
案例: select * from st where age IS NULL; 查询出表中的age为null的
AND 或 && : 两者为并且的意思
or 或 I I :两者为或者的意思
not 或 ! :不的意思
4.排序查询
语法:order by 子句
order by 排序字段1,排序方式1, 排序字段2,排序字段3
ASC:升序,默认的
DESC:降序
案例:当第一个排序一样的时候,才会使用第二个排序
select * from student order by past ASC , english DESC;
注意:如果有多个排序,则当前边 的条件值一样时,才会判断第二个条件
5.聚合函数
聚合函数:将一列数据作为一个整体,进行纵向的计算.
count:计算个数
一般选择非空的列:主键
count(*):计算全部
max:计算最大值
min:计算最小值
sum:计算和
avg:计算平均值
注意:聚合函数计算的时候,排除NULL值.
解决方案:1.选择不会为NULL的列
2.IFNULL(哪个字段判断为null,该字段为NULL的替换值)
6.分组查询
1.语法:grounp by 分组字段;
注意1: 分组之后查询的字段:分组字段,聚合函数
案例:查询出男女之间的平均值
select sex,AVG(english) ,from student group by sex;
where 和 having 的区别?
where 在分组之前进行限定,如果不满足条件,则不参与分组.where 后不可以跟聚合函数
having 在分组之后进行限定,如果不满足结果,则不会被查询出来 having 可以进行聚合函数的判断
案例:having的使用
select sex,AVG(english) ,from student where english<60 grounp by sex having count(id) > 2;
7.分页查询
语法:limit 开始的索引,每页查询的条数
web做分页查询需要的公式:开始的索引 = (当前页码 -1)* 每页显示的条数
公式案例:查询5条数据 第一页是1-5 查询出第二页数据??
select * from student limit (2-1) * 5 ,5;