-
UNION这个命令无法列出在中国和美国的所有雇员。在上面的例子中,我们有两个名字相同的雇员,他们当中只有一个人被列出来了。UNION 命令只会选取不同的值。相当于pandas的concat加drop_duplicates
-
UNION ALL 命令和 UNION 命令几乎是等效的,相当于pandas的concat,不过 UNION ALL 命令会列出所有的值。
-
SQL 约束
约束用于限制加入表的数据的类型。
可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句)。
4.PRIMARY KEY 约束唯一标识数据库表中的每条记录。主键必须包含唯一的值。主键列不能包含 NULL 值。每个表都应该有一个主键,并且每个表只能有一个主键。
5.CHECK 约束用于限制列中的值的范围。
如果对单个列定义 CHECK 约束,那么该列只允许特定的值。
如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制。
6.DEFAULT 约束用于向列中插入默认值。
如果没有规定其他的值,那么会将默认值添加到所有的新记录。
7.Auto-increment 会在新记录插入表中时生成一个唯一的数字。
P_Id int NOT NULL AUTO_INCREMENT,
8.在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与GROUP BY函数一起使用。
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value
9.缺失值补充COALESCE或IFNULL
COALESCE(x,y,z) = x if x is not NULL
COALESCE(x,y,z) = y if x is NULL and y is not NULL
COALESCE(x,y,z) = z if x and y are NULL but z is not NULL
COALESCE(x,y,z) = NULL if x and y and z are all NULL
Mysql: IFNULL(x,y) = x if x is not NULL
IFNULL(x,y) = y if x is NULL