数据查询语言(DQL:Data Query Language):语句主要包括 SELECT,用于从表中检索数据。 下文对DQL做了一个较为全面的总结
目录
基本SELECT语句
- 基本SELECT语句语法 :
SELECT [DISTINCT]{*|column|expression [alias],…} FROM table where子句; - 注意:
- SELECT子句表示所需检索的数据列。
- FROM子句 表示检索的数据来自哪个表。
- 举例:
选择所有列
-
SELECT * FROME TABLE;
例如:
-
SELECT 列1,列2,····列n FROM TABLE;
例如:
算术运算符
以在SELECT语句中使用算术运算符(加减乘除),改变输出结果。
- 算术运算符优先级
- 乘除优先于加减
- 相同优先权的表达式按照从左至右的顺序依次计算
- 括弧可以提高优先权,并使表达式的描述更为清晰
- 算术表达式中的空值NULL:NULL值是指一种无效的、未赋值、未知的或不可用的值。NULL空值不同于零或者空格。
- 任何包含空值的算术表达式运算后的结果都为空值 NULL。
列别名——用来重新命名列的显示标题
如果SELECT语句中包含计算列,通常使用列别名来重新定义列标题。
-
使用列别名的方法
- 方式1:列名 列别名
- 方式2:列名 AS 列别名
-
以下三种情况列别名两侧需要添加双引号
- 列别名中包含有空格
- 列别名中要求区分大小写
- 列别名中包含有特殊字符
消除重复行——DISTINCT
ELECT字句中使用关键字DISTINCT可消除重复行。
选择限定数据行
- 使用WHERE子句可以返回限定的数据行,语法如下:
SELECT [DISTINCT] {*| column | expression [alias], …} FROM table [WHERE condition(s)];
•WHERE子句紧跟在FROM子句之后
• condition(s)表示条件表达式,通常格式为:列名 比较操作符 要比较的值
3.特殊比较运算符
LIKE运算符
- 使用LIKE运算符判断要比较的值是否满足部分匹配,也叫模糊查询。模糊查询中两个通配符:
- % 代表零或任意更多的字符
- _代表一个字符,必须有且只能有一个字符
逻辑运算符
注意:
- 比较操作符中等于号为“=”
- 字符型数据和日期型数据作为被比较的值时,必须用单引号引起来 ,字符型数值区分大小写
例如:
排序——ORDER BY
-
使用ORDER BY子句能对查询结果集进行排序,语法结构如下:
SELECT [DISTINCT] { * | 列名 |表达式 [别名][,…]} FROM 表名 [WHERE 条件] [ORDER BY {列名|表达式|列别名|列序号} [ASC|DESC],…]; -
其中:
• 可以按照列名、表达式、列别名、结果集的列序号排序
• ASC: 升序,默认值 DESC: 降序
• ORDER BY 子句必须写在SELECT语句的最后
• 可按多个字段排序,写在前面的字段优先排序 -
排序规则(以升序为例) :
- 数字升序排列小值在前,大值在后。即按照数字大小顺序由小到大排列。
- 日期升序排列相对较早的日期在前,较晚的日期在后。
- 字符升序排列按照字母由小到大的顺序排列。即由A-Z排列;
- 中文升序按照字典顺序排列。 如果不是gbk编码,还需要
- 空值在升序排列中排在最前面,在降序排列中排在最后。
- 按列别名排序
- 多列参与排序
举例:
- 参与排序的多列都可以指定升序或者降序
- ORDER BY子句中可以写没在SELECT列表中出现的列
- 写在前面的字段优先排序
限制记录的行数——LIMIT
-
使用select语句时,经常要返回前几条或者中间某几行记录,可以使用关键字limit。语法格式如下:
select 字段列表 from 数据源 limit [start,]length; -
说明:
- limit接受一个或两个整数参数。start表示从第几行记录开始输 出,length表示输出的记录行数。
- 表中第一行记录的start值为0(不是 1)。
-
例如:查询员工表的前5条记录