这一节主要包含如下内容:
- UNION子句
- 修改表
- 截断表
一、UNION子句
说明:
UNION子句/运算符用于组合两个或多个SELECT语句的结果,而不返回任何重复的行。
1.UNION子句
语法:
SELECT column1 [,column2 ]
FROMtable1 [,table2 ]
[WHERE condition]
UNION
SELECT column1 [,column2 ]
FROM table1 [,table2 ]
[WHERE condition]
示例:
select fac_id, name, dept from employees inner join department
on employees.id=department.id
union
select fac_id, name, dept from employees left join department
on employees.id=department.id;
结果:
2.UNION ALL子句(查询结果包括重复行)
语法:
SELECT column1 [,column2 ]
FROMtable1 [,table2 ]
[WHERE condition]
UNION ALL
SELECT column1 [,column2 ]
FROM table1 [,table2 ]
[WHERE condition]
示例1:
select fac_id, name, dept from employees inner join department
on employees.id=department.id
union all
select fac_id, name, dept from employees left join department
on employees.id=department.id;
结果:
二、修改表
语法:
在现有表中添加新列:
ALTER TABLE table_name ADD column_name datatype;
删除某列:
ALTER TABLE table_name DROP COLUMN column_name;
更改表中列的DATA TYPE:
ALTER TABLE table_name ALTER COLUMN column_name TYPE datatype;
向表中的列添加NOT NULL约束:
ALTER TABLE table_name MODIFY column_name datatype NOT NULL;
添加唯一约束ADD UNIQUE CONSTRAINT到表中:
ALTER TABLE table_name
ADD CONSTRAINT MyUniqueConstraint UNIQUE(column1, column2...);
将“检查约束”添加到表中:
ALTER TABLE table_name
ADD CONSTRAINT MyUniqueConstraint CHECK (CONDITION);
添加主键ADD PRIMARY KEY约束下:
ALTER TABLE table_name
ADD CONSTRAINT MyPrimaryKey PRIMARY KEY (column1, column2...);
从表中删除约束(DROP CONSTRAINT):
ALTER TABLE table_name
DROP CONSTRAINT MyUniqueConstraint;
从表中删除主键约束(DROP PRIMARY KEY):
ALTER TABLE table_name
DROP CONSTRAINT MyPrimaryKey;
三、截断表
说明:
实际功效与delete相同,但是不扫描表,所以更快,适合删除大表
语法:
TRUNCATE TABLE table_name;
示例:
truncate table employees;
结果: