DQL:
查询所有列:
select * from 表名;
结果集:
数据库执行DQL语句不会对数据进行改变,而是让数据库发送结果集给客户端
结果集:通过查询语句查询出来的数据以表的形式展示我们称这个表为虚拟结果集,存放在内存中,查询返回的结果集是一张虚拟表
查询指定列的数据:
select 列名, 列名2... from 表名;
条件查询:
在查询时给出where子句,在where子句中可以使用一些运算符及关键字
条件查询运算符及关键字:=, !=, <>, <, >, <=, >=, between...and, in(set), is null, is not null, and, or, not
查询性别为男,并且年龄为24的学生记录:
查询学号为003或者 名为zss的记录:
查询学号为001,002,003的记录:
或者
或者
查询score为null的记录:
查询年龄在21到23之间的学生记录:
或
查询性别非男的学生记录:
或
或
查询分数不为null的学生记录:
模糊查询:
根据指定的关键字进行查询,使用like关键字后跟通配符
通配符: _:任意一个字符 %:任意0-n个字符
查询姓名由6个字母构成的学生记录:
查询姓名由2个字母构成,并且第5个字母为s的学生记录:
查询姓名以“l”开头的学生记录:
查询姓名中第3个字母为d的学生记录:
查询姓名中包含“s”字母的学生记录:
字段控制查询:
去除重复记录:
select distinct 列名 from 表名;
把查询字段的结果进行计算,必须都要是数据型:
select *, 字段1+字段2 from 表名;
任何东西与null相加结果还是null,为了避免这种情况使用ifnull可将null转换成0:
select *, ifnull(列名1, 0) + ifnull(列名2, 0) from 表名;
对查询结果起别名:
很长的列名可为其起别名使其美观:
select *, ifnull(列名1, 0) + ifnull(列名2, 0) as total from 表名;
排序:
对查询的结果进行排序使用关键字order by:
升序asc(默认),降序desc
对所有员工薪水进行排序:
或
查询所有学生记录,按年龄降序排列:
查询所有雇员,按月薪降序排序,如果月薪相同时,按编号升序排序:
聚合函数:
对查询的结果进行统计计算
查询employee表中记录数:
查询员工表中有绩效的人数:
查询员工表中月薪大于2500的人数:
统计月薪与绩效之和大于5000的人数:
查询有绩效的人数和有管理费的人数:
查询所有雇员月薪和:
查询所有雇员月薪和,以及所有雇员绩效和:
查询所有雇员月薪加绩效和:
统计所有员工平均工资:
查询最高工资和最低工资: