DML-数据操作语言
一、添加数据
/*方式一:表中有几个字段就添加几个值*/
insert into 表名 value(值1,值2。。。),(值1,值2。。。);
/*方式二:给表中指定的字段添加值*/
insert into 表名 (字段1,字段2) value(值1,值2),(值3,值4);
二、修改数据
/*关键字 update set*/
update 表名 set 字段名=新值 where 条件;
三、删除数据
/*关键字 delete from*/
delete from 表名 where 条件;
/*注意:delete 又叫物理删除--硬删除,用这种方式删除数据,数据不可恢复*/
/*逻辑删除--软删除,是指通过某一个字段表示数据是否被删除,一般0表示删除,1表示存在*/
DQL-数据查询语言
一、查询数据
/*基本格式*/
select * from 表名;
/*查询某几个字段*/
select 字段名1,字段名2 from 表名;
/*对查询的结果进行去重操作,关键字:distinct*/
select distinct 字段名1,字段名2 from 表名;
/*对查询结果中的字段重命名,关键字:as*/
select 原字段名 as 新字段名 from 表名;
/*注意:as可以省略,使用空格隔开两个字段名*/
select 原字段名 新字段名 from 表名;
二、where条件查询
- 比较运算符:<, >, = , !=或<> ,>=,<=
- 逻辑运算符:
1、and:多个条件必须同时满足。
select * from 表名 where 条件1 and 条件2;
2、or:多个条件只要满足一个即可。
select * from 表名 where 条件1 or 条件2;
3、not:取反
select * from 表名 where not 条件;
- 模糊查询
/*% 代表任意多个字符*/
select * from 表名 where 字段名 like '%';
/*—— 代表任意一个字符*/
select * from 表名 where 字段名 like '_';
- 范围查询
/*非连续范围查询 in()*/
select * from 表名 where 字段名 in(值1,值2,值3);
/*连续范围查询 between and*/
select * from 表名 where 字段名 between 值1 and 值2;
- 空判断
/*空判断 is null*/
select * from 表名 where 字段名 is null;
/*非空判断 is not null*/
select * from 表名 where 字段名 is not null;
- 排序
/*排序关键字 order by*/
/*升序asc,从小到大排列,数据表默认排序方式为升序*/
select * from 表名 order by 字段名 asc;
/*降序 desc,从大到小排列*/
select * from 表名 order by 字段名 desc;
/*当排序使用的第一个字段值相同时,可以按照第二个字段添加排序方式*/
select * from 表名 order by 字段名1 desc,字段名2 asc;
- 聚合函数
- 求最大值:max(字段名)
- 求最小值:min(字段名)
- 求平均值:avg(字段名)
- 求和:sum(字段名)
- 求数量:count(*),count(字段名)
/*查询所有学生的最大年龄、最小年龄、平均年龄*/
select max(age), min(age), avg(age) from students;
三、分组
/*关键字:group by*/
/*基本格式*/
select * from 表名 group by 字段名;
/*注意:*号可以由聚合函数代替*/
/*分组查询可以加入条件语句*/
select 聚合函数,字段1 from 表名 where 条件 group by 字段1;
/*having关键字*/
select 聚合函数,字段1 from 表名 group by 字段1 having 条件;
/*where和having的区别*/
/*
1、where写在分组前面,having写在分组后面。
2、where筛选数据表中的原始数据,having筛选数据表分组后的数据。
3、where后面的条件不能使用聚合函数,having后面的条件可以使用。
*/
四、分页
/*关键字:limit,且limit有三个不同用法*/
/*1、查询某行到某行的数据*/
select * from students limit 开始行数,总行数;
/*2、查询前几行数据*/
select * from students limit X;
/*3、分页,limit(页数-1)*每页数量,每页数量*/
select * from students limit (X-1)*X,X;