DQL语言
1.5 SELECT语句中的算术表达式
用算数运算符+、-、*、/
创建数字和日期数据的表达式。
注:如果对日期进行计算,我们只能对DATE和TIMESTAMP类型数据使用加减操作
1.5.1 运算符的优先级
SQL中运算符的优先级和我们数学中的优先级是一样的;
- 先做乘除法,后计算加减法
- 相同优先级的运算符,从左到右计算
- 圆括号的优先级更高,建议存在优先级时,多使用
()
1.5.2 运算示例
1.5.2.1 计算employees
表中员工全年薪水加100后的薪水是多少?
select t.first_name,
t.last_name,
(t.salary * 12) + 100
from employees t;
1.5.2.1 计算employees
表中员工薪水加100后的全年薪水是多少?
select t.first_name,
t.last_name,
(t.salary + 100) * 12
from employees t;
1.6 定义空值
控制是指未分配的、为止的,或不适用的值
控制不是0
,也不是空格()
1.6.1 空值
如果一行中的某个单位缺少数据值,该值被置为空值。空值null
和0
或者空格不相同:
0
是一个数字- 空值
是一个字符串。
任何数据类型的列都可以是空值。但列存在某些约束时,列不能为空。如:NOT NULL
、PRIMARY KEY
1.6.2 算术表达式中的空值
包含空值的算术表达式计算结果为空。
select t.first_name, t.last_name, t.salary * 12 * (1 + t.commission_pct) from employees t;
1.7 定义列的别名
1.7.1 列别名:
- 改变查询结果集列的名称;
- 紧跟在列明的后面,在列明和别名之间可以有选项
AS
关键字; - 如果别名中有空格或者特殊字符或者大小写敏感,需使用双引号;
在SELECT列表中的列名后面指定别名,列名和别名之间使用空格分开。默认情况下,别名标题用大写字母。
1.7.2 示例
- 查询employees表中last_name,commission_pct并将佣金列明改为comm。
select last_name,commission_pct comm from employees;
- 计算所有员工的全年薪水,将列明改为Annual Salary。
select t.first_name, t.last_name, t.salary * 12 * (1 + t.commission_pct) "Annual Salary" from employees t;