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的主要内容,如果未能解决你的问题,请参考以下文章

数据库基本操作 DML DQL DDL

MySQL数据库基本操作-DQL-基本查询

第6讲:SQL语句之DQL类型的数据查询语言

MySQL_基本概念&DQL查询语言

MySQL基本查询 SELECT的执行顺序(DQL语句)

MySQL之DQL——查询语言