视图
在一般的DBMS中定义视图时不能使用ORDER BY语句,视图和表一样,数据行都是没有顺序的
ALTER VIEW <视图名> AS <SELECT语句>,修改视图结构的基本语法
包含以下结构的任意一种都是不可以被更新:
聚合函数 SUM()、MIN()、MAX()、COUNT() 等。
DISTINCT 关键字。
GROUP BY 子句。
HAVING 子句。
UNION 或 UNION ALL 运算符。
FROM 子句中包含多个表。
子查询
子查询就是将用来定义视图的 SELECT 语句直接用于 FROM 子句当中
标量子查询:要求我们执行的SQL语句只能返回一个值,也就是要返回表中具体的某一行的某一列
关联子查询:通过一些标志将内外两层的查询连接起来起到过滤数据的目的;首先执行不带WHERE的主查询
根据主查询讯结果匹配product_type,获取子查询结果
将子查询结果再与主查询结合执行完整的SQL语句
函数
ABS 函数用于计算一个数字的绝对值,表示一个数到原点的距离
MOD 是计算除法余数(求余)的函数,是 modulo 的缩写。小数没有余数的概念,只能对整数列求余数
ROUND 函数用来进行四舍五入操作:当参数 保留小数的位数 为变量时,可能会遇到错误
CONCAT 函数进行拼接
LOWER 函数只能针对英文字母使用,它会将参数中的字符串全都转换为小写, UPPER 函数用于大写转换
REPLACE – 字符串的替换
SUBSTRING – 字符串的截取
SUBSTRING_INDEX – 字符串按索引截取:用来获取原始字符串按照分隔符分割后,第 n 个分隔符之前(或之后)的子字符串,支持正向和反向索引,索引起始值分别为 1 和 -1(SUBSTRING_INDEX (原始字符串, 分隔符,n)
CURRENT_DATE – 获取当前日期
CURRENT_TIME – 当前时间
CURRENT_TIMESTAMP – 当前日期和时间
EXTRACT – 截取日期元素
CAST – 类型转换:CAST(转换前的值 AS 想要转换的数据类型)
COALESCE – 将NULL转换为其他值:COALESCE(数据1,数据2,数据3……)
谓词就是返回值为真值的函数。包括TRUE / FALSE / UNKNOWN(LIKE,BETWEEN,IS NULL、IS NOT NULL,IN,EXISTS)
LIKE谓词 – 用于字符串的部分一致查询
BETWEEN谓词 – 用于范围查询:BETWEEN 的特点就是结果中会包含 100 和 1000 这两个临界值,也就是闭区间。如果不想让结果中包含临界值,那就必须使用 < 和 >
IS NULL、 IS NOT NULL – 用于判断是否为NULL
IN谓词 – OR的简便用法;使用子查询作为IN谓词的参数
EXIST 谓词:判断是否存在满足某种条件的记录,如果存在这样的记录就返回真(TRUE),如果不存在就返回假(FALSE)。
EXIST(存在)谓词的主语是“记录”。
CASE 表达式是在区分情况时使用的,这种情况的区分在编程中通常称为(条件)分支:当待转换列为数字时,可以使用SUM AVG MAX MIN等聚合函数;当待转换列为文本时,可以使用MAX MIN等聚合函数