别名:select LastName AS Family, FirstName AS Name FROM Persons
in 操作符:SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,…) -->允许在where子句中规定多个值
Join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据
-->SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons, Orders W,HERE Persons.Id_p = Orders.Id_p
-->SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons INNER JOIN Orders ON Persons.Id_p = Order.Id_p ORDER BY Persons.LastName
UNION -->用于合并两个或多个SELECT 语句的结果集(UNION操作符默认选取不同的值,如果允许重复,请使用UNION ALL)
SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2
SELECT INTO --> 从一个表中选取数据,然后把数据插入到另一个表中(通常用于创建表的备份复件或者用于对记录进行存档)
SELECT * INTO new_table_name[IN externaldatabase] FROM old_table_name
SQL约束:
--> NOT NULL -->强制不为空
-->UNIQUE -->约束唯一标识数据库表中的每条记录
|-创建表时添加约束:直接在语句后面加UNIQUE-->Id_p int NOT NULL UNIQUE
或是直接在结尾添加-->UNIQUE(Id_p)
|-声明多个约束:在结尾添加-->CONSTRAINT uc_PersonID UNIQUE (Id_p,LastName)
|-表已被创建,添加UNIQUE约束-->ALTER TABLE table_name ADD UNIQUE(Id_p)
|-表已被创建,添加多个UNIQUE约束-->ALTER TABLE table_name ADD CONSTRAINT uc_PersonID UNIQUE(Id_p,LastName)
|-撤销约束-->Mysql-->ALTER TABLE Persons DROP INDEX uc_PersonID
-->ORACLE/SQLServer--> ALTER TABLE Persons DROP CONSTRAINT uc_PersonID
-->PRIMARY KEY-->约束唯一标识数据库表中的每条记录
用法同上
-->FOREIGN KEY -->一个表中的FOREIGN KEY 指向另一个表中的PRIMARY KEY(用法同上)
MySQL:
CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (Id_O),
FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
)
SQL Server / Oracle / MS Access:
CREATE TABLE Orders
(
Id_O int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
Id_P int FOREIGN KEY REFERENCES Persons(Id_P)
)
-->CHECK约束用于限制类中的值得范围(用法同上
)
My SQL:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (Id_P>0)
)
SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
Id_P int NOT NULL CHECK (Id_P>0)
,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
-->DEFAULT约束用于向列中插入默认值(用法同上)
用于 Oracle 的语法
在 Oracle 中,代码稍微复杂一点。
您必须通过 sequence 对创建 auto-increment 字段(该对象生成数字序列)。
请使用下面的 CREATE SEQUENCE 语法:
CREATE SEQUENCE seq_person MINVALUE 1 START WITH 1 INCREMENT BY 1 CACHE 10
上面的代码创建名为 seq_person 的序列对象,它以 1 起始且以 1 递增。该对象缓存 10 个值以提高性能。CACHE 选项规定了为了提高访问速度要存储多少个序列值。
要在 "Persons" 表中插入新记录,我们必须使用 nextval 函数(该函数从 seq_person 序列中取回下一个值):
INSERT INTO Persons (P_Id,FirstName,LastName) VALUES (seq_person.nextval,'Lars','Monsen')
上面的 SQL 语句会在 "Persons" 表中插入一条新记录。"P_Id" 的赋值是来自 seq_person 序列的下一个数字。"FirstName" 会被设置为 "Bill","LastName" 列会被设置为 "Gates"。