DQL
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DQL相关的知识,希望对你有一定的参考价值。
DQL(Data QueryLanguage)
基本格式
select * from 表名
对于列进行限制
格式一:取指定列
select 列1,列2 from 表名
格式二:为列起别名的三种表示法,使用as关键字。
select 列名 as 别名 , 列名 名称 , 别名= 列名 from 表名
对于行进行限制
关键字top:表示取前n的数据
select top 2 * from 表名
select top 2 percent * from 表名
关键字distinct:消除重复项
select distinct 列名 from 表名
where子句
使用比较运算符:> < >= <= <> !=
select * from 表名
where 列名 > 5
使用逻辑运算符:and or not ,not运算符,优先级最高,仅次于小括号
where ... and ...
取范围,表示在一个连续的范围内between ... and ...
select * from 表名
where 列名 between ... and ...
in:取范围,表示一个不连续的范围
select * from 表名
where id=1 or id=4 or id=8
select * from 表名
where id in(1,4,8)
模糊查询
关键字 like _:任意一个字符 %:任意多个字符 []:显示一个连续区间 ^:放在[]中表示非
where 列名 like ‘%周杰伦%‘ //查询包含周杰伦的文本
where 列名like ‘李_‘ //查询在描述中以‘黑‘开头并且是2个字符的信息
where 列名like ‘%[%]%‘ //查询描述中包含‘%‘的班级,转义:使用[]括起来
[4-7]表示4,5,6,7 ,[4,7]和[47]表示4,7
查询描述中包含4-7的信息
where 列名 like ‘%[4-7]‘
查询描述中不包含4-7的信息
where 列名 like ‘%[^4-7]‘
空值判断is [not] null
where 列名 is not null
函数isnull:判断值是否为空,如果为空,不显示null而给一个默认值,并不改变存储在数据库中的值。
select 列名1 , 列名2 , ISNULL(列名3,‘暂未开班‘) from 表名
order by 子句
排序子句 asc升序 desc降序 ,不声明默认为asc
select * from 表名
order by id[ asc]
order by id desc
order by 列1 desc, 列2 asc //可以按照多列排序,先按列1进行排序,相同等级再按列2排序规则进行排序。
聚合函数(聚合:把多行合并成一行)
MAX() MIN() AVG() SUM() COUNT()
找出列中的最大值
select * from 表名
select MAX(列名) from 表名
其它同理
select count(*) from 表名 //求行数
分组子句 group by ... having ...
出现分组中的列,可以出现在查询结果中,其它的列不可以与聚合函数一起出现在结果中
select 分组列 ,COUNT(*) as 人数 from 表
group by 分组列 having COUNT(*) > 5
做选择having:在分组后,对结果集进行筛选
完整的select语句及执行顺序
5...select 5.2...distinct 7...top n [percent] 5.1 列名 聚合函数 (1.2 列名或表达式)
1...1.1->from 表名
2...where 条件
3...group by ... 4...having ...
6...order by ...
以上是关于DQL的主要内容,如果未能解决你的问题,请参考以下文章