MySQL数据库笔记三:数据查询语言(DQL)与事务控制语言(TCL).doc
PAGE
PAGE1
MySQL数据库笔记三:数据查询语言(DQL)与事务控制语言(TCL)
五、数据查询语言(DQL)(重中之重)
完整语法格式:
select表达式1|字段,
[from表名where条件]
[groupby列名]
[having条件]
[orderby列名[asc|desc]]
[limit位置,数量]
lt;1普通查询
select查询表达式;//最简单的sql语句,是一个函数
selectdatabase();selectversion();selectnow();
lt;2条件查询
where条件表达式,支持运算符和函数
MySQL支持的运算符:
=、!=、、=、lt;、lt;=、lt;
and、or、not
isnull、isnotnull
between...and区间查询多少到多少之间
in(set);
like通配符和占位符:%_(模糊查询)
%:表示0个或者多个字符
_:表示占位一个
--查询所有的老师信息
select*fromteacher;
--查询id大于2的老师信息
select*fromteacherwhereid2;
--查询姓名为空的老师信息在数据库中null永远的不等于null,那么怎么去判断null值呢?通过isnull、isnotnull
select*fromteacherwherenameisnotnull
--查询id为1并且姓名是xiaosi的老师信息
select*fromteacherwhereid=1andname=xiaosi;
--查询id为1或者姓名是xiaosi的老师信息
select*fromteacherwhereid=1orname=xiaosi;
--查询薪水在2000到10000之间的老师信息
select*fromteacherwheresal=2000andsallt;=10000;
select*fromteacherwheresalbetween2000and10000;#这种方式等同于上面这种方式
--查询姓名中有拿字的老师信息
select*fromteacherwherenamelike%拿%;
--查询姓名是三个字的
select*fromteacherwherenamelike___;
--查询姓小的老师信息
select*fromteacherwherenamelike小%;
--查询名字中含有下划线的老师
select*fromteacherwherenamelike%\_%;
lt;3分组查询
[groupby列名][having条件]
一般情况分组查询结合聚合函数一起使用
(max()、min()、sum()、avg()、count())
--查询每个部门的平均薪资
selectdname,avg(sal)fromteachergroupbydname
--查询部门平均薪资大于5000的部门
selectdname,avg(sal)fromteachergroupbydnamehavingavg(sal)5000
selectdname,avg(sal)asalfromteachergroupbydnamehavingasal5000
记住:分组的正确使用方式,groupby后面没有出现的列名不能出现在select和from的中间,虽然不报错但是不是分组的正确使用方式。聚合函数中出现的列名groupby后面没有无所谓。
lt;4排序查询
语法格式:orderby列名asc|desc默认升序(asc)
--查询老师信息,要求根据薪资从大到小进行排序
select*fromteacherorderbysaldesc根据sal进行降序排序
select*fromteacherorderbysalasc根据sal进行升序排序
select*fromteacherorderbysal根据sal进行升序排序,利用默认排序
lt;5限制结果集数量的查询(分页)
编号商品名称商品价格操作
1大拿娃娃100.0删除修改
2吕吕娃娃200.0