ALTER TABLE 语句
ALTER TABLE 语句用于在已有的表中添加、删除或修改列。
# 添加列 ALTER TABLE table_name ADD column_name datatype # 删除表中的列 ALTER TABLE table_name DROP COLUMN column_name # 改变表中列的数据类型 ALTER TABLE table_name MODIFY COLUMN column_name datatype # 修改字段命或者类型(MySQL) ALTER TABLE table_name CHANGE old_column_name new_column_name datatype; # 添加 PRIMARY KEY 约束 ALTER TABLE table_name ADD PRIMARY KEY (primary_key_name) ALTER TABLE table_name ADD CONSTRAINT new_column_name PRIMARY KEY (column_name1,column_name2) # 撤销 PRIMARY KEY 约束 ALTER TABLE table_name DROP PRIMARY KEY # 创建 FOREIGN KEY 约束 ALTER TABLE table_name1 ADD CONSTRAINT foreign_key_name FOREIGN KEY (column_name1) REFERENCES table_name2(primary_key_name) # 撤销 FOREIGN KEY 约束 ALTER TABLE table_name DROP FOREIGN KEY foreign_key_name # 创建 UNIQUE 约束 ALTER TABLE table_name ADD UNIQUE (unique_column_name) # 撤销 UNIQUE 约束 ALTER TABLE Persons DROP INDEX uc_PersonID
连接(JOIN)
SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。
最常见的 JOIN 类型:SQL INNER JOIN(简单的 JOIN)。 SQL INNER JOIN 从多个表中返回满足 JOIN 条件的所有行。
INNER JOIN 关键字
INNER JOIN 关键字在表中存在至少一个匹配时返回行。
SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name=table2.column_name; SELECT column_name(s) FROM table1 JOIN table2 ON table1.column_name=table2.column_name;
LEFT JOIN 关键字
LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。
SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_name=table2.column_name; SELECT column_name(s) FROM table1 LEFT OUTER JOIN table2 ON table1.column_name=table2.column_name;
RIGHT JOIN 关键字
RIGHT JOIN 关键字从右表(table2)返回所有的行,即使左表(table1)中没有匹配。如果左表中没有匹配,则结果为 NULL。
SELECT column_name(s) FROM table1 RIGHT JOIN table2 ON table1.column_name=table2.column_name; SELECT column_name(s) FROM table1 RIGHT OUTER JOIN table2 ON table1.column_name=table2.column_name;
FULL OUTER JOIN 关键字
FULL OUTER JOIN 关键字只要左表(table1)和右表(table2)其中一个表中存在匹配,则返回行.
FULL OUTER JOIN 关键字结合了 LEFT JOIN 和 RIGHT JOIN 的结果。
SELECT column_name(s) FROM table1 FULL OUTER JOIN table2 ON table1.column_name=table2.column_name;
UNION 操作符
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。
# 默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。 SELECT column_name(s) FROM table1 UNION SELECT column_name(s) FROM table2; # UNION ALL 语法 SELECT column_name(s) FROM table1 UNION ALL SELECT column_name(s) FROM table2;
SELECT INTO 语句
SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中。
SELECT * INTO newtable [IN externaldb] FROM table1; SELECT column_name(s) INTO newtable [IN externaldb] FROM table1;
INSERT INTO SELECT 语句
INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。目标表中任何已存在的行都不会受影响。
# 我们可以从一个表中复制所有的列插入到另一个已存在的表中: INSERT INTO table2 SELECT * FROM table1; # 或者我们可以只复制希望的列插入到另一个已存在的表中: INSERT INTO table2 (column_name(s)) SELECT column_name(s) FROM table1;