SQL-DQL
一.DQL介绍
DQL英文全称是Data Query Language(数据库查询语言),数据查询语言,用来查询中心表的记录。
查询关键字:SELECT
二.语法结构
1.SELECT
字段列表
2.FROM
表名列表
3.WHERE
条件列表
4.GROUP BY
分组字段列表
5.HAVING
分组后条件列表
6.OROER BY
排序字段列表
7.LIMIT
分页参数
三.基本查询
1.查询多个字段
SELECT 字段1,字段2,字段3... FROM 表名;
SELECT *FROM 表名;
2.设置别名
SELECT 字段1[AS 别名1],字段2[AS 别名2]... FROM 表名;
3.去除重复记录
SELECT DISTINCT 字段列表 FROM 表名
4.删除表结构
drop table 表名
5.查询所有数据的时候尽量不要写*
四.条件查询
1.语法
SELECT 字段列表 FROM 表名 WHERE 条件列表;
WHERE:条件可以是一个或者是多个;
2.案例
3.查询年龄等于88的员工
select * from emp where age=88;
4.查询年龄小于20的员工
select * from emp where age=88;
5.年龄小于等于20
select * from emp where age <= 88;
6.查询没有身份证号的员工
select * from emp where idcard is null;
7.查询有身份证号的员工
select * from emp where idcard is not null;
8.查询年龄不等于88的员工
select * from emp where idcard age !=88;
或者
select * from emp where idcard age <> 88;
9.查询年龄在15岁(包含) 到20岁(包
select * from emp where age >=15 and age<=20;
含)之间的员工信息
select * from emp where age >=15 && age<=20;
开发使用:
select * from emp where age >=15 and age<=20;
select * from emp where age between 15 and 20;
10.查询性别为女 且年龄 小于25岁员工信息
select * from emp where gender="女" and age<25;
11.查询年龄等于18或者20或者40的员工信息
select * from emp where age=18 or age=20 or age=40;
select * from emp where age in(18,20,40)
12.查询姓名为两个字的员工信息
select * from emp where name like '__';
select * from emp where name like '___';
13.查询身份证号最后一位为X的员工信息
select * from emp where idcard like '%X';
select * from emp where idcard like '________________X';
%X表示前面有多少位无所谓,最后一位为X。
五.DQL-聚合函数
1.介绍
将一列数据作为一个整体,进行纵向计算。
2.常见的聚合函数
3.语法
SELECT 聚合函数(字段列表) FROM 表名;
注意:null值不参与所有聚合函数运算;
4.案例(统计员工数量)
select count(*) from emp;
select count(id) from emp;
5.统计员工的平均年龄
select avg(age) from emp;
6.统计该企业员工的最大年龄
select max(age) from emp ;
7.统计员工的最小年龄
select min(age) from emp ;
8.统计西安地区的员工年龄之和
select sum(age) from emp where workaddress="西安";
六.DQL-分组查询
1.语法
SELECT 字段列表 FROM 表名[WHERE 条件] GROUP BY 分组字段名[HAVING 分组后过滤条件]
2.where和having区别
1.执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对对结果进行过滤。
2.判断条件不同:where不能对聚合函数进行判断,having可以。
3.根据性别分组,统计男性员工与女性员工的数量
select gender , count(*) from age group by gender ;
4.根据性别分组,统计男性员工 和女性员工的平均年龄
select gender , avg(age) from age group by gender ;
5.查询年龄小于45的员工,并根据工作地址分组,获取员工数量大于等于3的工作地址
select workadress, count(*) from emp where age<45 group by workadress having count(*)>=3;
6.注意事项
1.执行顺序:where>聚合函数>having。
2.分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段没有任何意义。
原文地址:https://blog.csdn.net/qq_59076775/article/details/140157269
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!