文档详情

MySQL数据库笔记三:数据查询语言(DQL)与事务控制语言(TCL).doc

发布:2024-10-12约3.55千字共8页下载文档
文本预览下载声明

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

显示全部
相似文档