SQL语法之二
UNION 操作符
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。
SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2
SELECT INTO 语句可用于创建表的备份复件或者用于对记录进行存档。
SELECT *
INTO Persons_backup
FROM Persons
mysql不支持以上语句
Create table orgBack (Select * from org);
IN 子句可用于向另一个数据库中拷贝表:
SELECT *
INTO Persons IN 'Backup.mdb'
FROM Persons
SQL SELECT INTO 实例 - 带有 WHERE 子句
我们也可以添加 WHERE 子句。
下面的例子通过从 "Persons" 表中提取居住在 "Beijing" 的人的信息,创建了一个带有两个列的名为 "Persons_backup" 的表:
SELECT LastName,Firstname
INTO Persons_backup
FROM Persons
WHERE City='Beijing'
SQL SELECT INTO 实例 - 被连接的表
从一个以上的表中选取数据也是可以做到的。
下面的例子会创建一个名为 "Persons_Order_Backup" 的新表,其中包含了从 Persons 和 Orders 两个表中取得的信息:
SELECT Persons.LastName,Orders.OrderNo
INTO Persons_Order_Backup
FROM Persons
INNER JOIN Orders
ON Persons.Id_P=Orders.Id_P
创建数据库
CREATE DATABASE database_name
创建表
CREATE TABLE student (
id BIGINT,
stuName VARCHAR(20),
age INT(8),
address VARCHAR(20)
)
SQL 约束 (Constraints
NOT NULL 约束
创建表时约束一些字段
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
UNIQUE 约束唯一标识数据库表中的每条记录。
UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
PRIMARY KEY 拥有自动定义的 UNIQUE 约束。
请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。
CREATE TABLE student (
id BIGINT NOT NULL,
stuName VARCHAR (20),
age INT (8),
address VARCHAR (20),
UNIQUE (id)
)
为多个列定义时候
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
)
当表已被创建时,如需在 "Id_P" 列创建 UNIQUE 约束,请使用下列 SQL:
ALTER TABLE Persons
ADD UNIQUE (Id_P)
ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
如需撤销 UNIQUE 约束,请使用下面的 SQL:
ALTER TABLE Persons
DROP INDEX uc_PersonID
PRIMARY KEY 约束
ALTER TABLE Persons
ADD PRIMARY KEY (Id_P)
FOREIGN KEY 约束
一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY
ALTER TABLE Orders
ADD FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)
ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)
撤销
ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders
CHECK 约束
CHECK 约束用于限制列中的值的范围。
如果对单个列定义 CHECK 约束,那么该列只允许特定的值。
如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制。
ALTER TABLE Persons
ADD CHECK (Id_P>0)
ALTER TABLE Persons
ADD CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
撤销
ALTER TABLE Persons
DROP CHECK chk_Person
DEFAULT 约束
ALTER TABLE Persons
ALTER City SET DEFAULT 'SANDNES'
撤销
ALTER TABLE Persons
ALTER City DROP DEFAULT
索引
可以重复值
CREATE INDEX index_name
ON table_name (column_name)
唯一的
CREATE UNIQUE INDEX index_name
ON table_name (column_name)
alter语句
-
在表中插入一个字段
ALTER TABLE table_name ADD column_name datatype
*在表中删除一个字段
ALTER TABLE table_name
DROP COLUMN column_name