冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
外键:外键用于关联两个表。
复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。
MySQL UNION 操作符
MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。
UNION [ALL | DISTINCT]
其中union = union distinct,union默认已经删除了重复数据,所以 DISTINCT 修饰符对结果没啥影响,union all则包含重复数据。
MySQL 排序
SELECT field1, field2,...fieldN FROM table_name1, table_name2... ORDER BY field1 [ASC [DESC][默认 ASC]], [field2...] [ASC [DESC][默认 ASC]]
排序除了常见的逆序、顺序,也可以根据字段值进行自定义,如下:
SELECT * FROM `xxx` where id in (5064,5056,5057) order by field(id,5064,5056,5057);
MySQL GROUP BY 语句
with rollup是用来在分组统计数据的基础上再进行统计汇总,即用来得到group by的汇总信息。
最后一行是对前三行统计的汇总。
MySQL NULL 值处理
MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。
为了处理这种情况,MySQL提供了三大运算符:
- IS NULL: 当列的值是 NULL,此运算符返回 true。
- IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。
- <=>: 比较操作符(不同于 = 运算符),当比较的的两个值相等或者都为 NULL 时返回 true。