UNION 操作符
UNION操作符合并两个或多个SELECT语句的结果,每一个选择语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个选择语句中的列的顺序必须相同。
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
#UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
#UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。
SELECT INTO 语句
从一个表复制数据,将数据插入到另一个新表中
SELECT *
INTO newtable
FROM table1;
CREATE DATABASE 语句
用于创建数据库
CREATE DATABASE dbname;
CREATE TABLE 语句
用于创建数据库中的表,表由行和列组成,每一个表必须有个表名。
CREATE TABLE table_name
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
....
)
SQL 约束
约束用于规定表中的数据规则。如果存在违反约束的数据行为,行为会被约束终止,约束可以在创建表的时候规定,或者在表创建之后规定。
CERATE TABLE table_name
(
column_name1 date_type(size) constraint_name,
column_name2 data_type(size) constraint_name,
column_name3 data_type(size) constraint_name,
....
);
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
)
CREATE TABLE Orders
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
)
- NOT NULL指示某列不能存储NULL值
- UNIQUE 保证某列的每行必须有唯一的值
- PRIMARY KEY 确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录
- FOREIGN KEY 保证一个表中的数据匹配另一个表中的值的参照完整性,一个表中的 FOREIGN KEY 指向另一个表中的 UNIQUE KEY(唯一约束的键)。用于预防破坏表之间的连接行为,也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。
- CHECK 保证列中的值符合指定的条件
- DEFAULT 规定没有给列赋值时的默认值
CREATE INDEX语句
用于在表中创建索引,在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。
创建索引,可以更加快速高效地查询数据。更新一个包含索引的表需要比更新一个没有索引的表话费更多的时间,这是由于索引本身也需要更新。因此,理想的做法仅仅在常常被搜索的列上创建索引。
CREATE INDEX index_name
ON table_name(column_name)
撤销索引、撤销表以及撤销数据库
通过使用 DROP 语句,可以轻松地删除索引、表和数据库。
如果我们仅仅需要删除表内的数据,请使用 TRUNCATE TABLE 语句。
ALTER TABLE 语句
ALTER TABLE 语句用于在已有的表中添加、删除或修改列。
ALTER TABLE table_name
ADD column_name datatype
ALTER TABLE table_name
DROP COLUMN column_name
AUTO INCREMENT 字段
Auto-increment 会在新记录插入表中时生成一个唯一的数字。
ALTER TABLE Persons AUTO_INCREMENT=100
视图(Views)
视图是基于 SQL 语句的结果集的可视化的表。
视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。
您可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,也可以呈现数据,就像这些数据来自于某个单一的表一样。
CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
CREATE OR REPLACE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
DROP VIEW view_name