【数据结构】常用SQL总结

2018-04-17

SELECT

1
2
3
SELECT DISTINCT 列名称 FROM 表名称

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

ORDER BY
ORDER BY 语句用于根据指定的列对结果集进行排序。(DECS为逆序)

1
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC

INSERT

1
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

UPDATE

1
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

DELETE

1
DELETE FROM 表名称 WHERE 列名称 = 值

TOP
TOP 子句用于规定要返回的记录的数目。

1
SELECT TOP 2 * FROM Persons

LIKE
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。

1
2
SELECT * FROM Persons
WHERE City LIKE '%lon%'

IN
IN 操作符允许我们在 WHERE 子句中规定多个值。

1
2
SELECT * FROM Persons
WHERE LastName IN ('Adams','Carter')

JOIN

1
2
3
4
5
6
7
8
9
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons, Orders
WHERE Persons.Id_P = Orders.Id_P

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName

JOIN 类型,以及它们之间的差异。

  • JOIN: 如果表中有至少一个匹配,则返回行
  • LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
  • RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
  • FULL JOIN: 只要其中一个表中存在匹配,就返回行

UNION 和 UNION ALL

1
2
3
4
5
6
7
列出所有在中国和美国的不同的雇员名:

SELECT E_Name FROM Employees_China
UNION
SELECT E_Name FROM Employees_USA

//UNION ALL 命令会列出所有的值。

SELECT INTO
从一个表中选取数据,然后把数据插入另一个表中。
SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档。

1
2
3
SELECT *
INTO Persons_backup
FROM Persons

IN 子句可用于向另一个数据库中拷贝表:

1
2
3
SELECT *
INTO Persons IN 'Backup.mdb'
FROM Persons

如果我们希望拷贝某些域,可以在 SELECT 语句后列出这些域:

1
2
3
SELECT LastName,FirstName
INTO Persons_backup
FROM Persons

创建数据库

1
CREATE DATABASE database_name

创建表

1
2
3
4
5
6
7
CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
....
)

SQL约束
NOT NULL 约束强制列不接受 NULL 值。

UNIQUE 约束唯一标识数据库表中的每条记录。

UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。

PRIMARY KEY 拥有自动定义的 UNIQUE 约束。

每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。

PRIMARY KEY

1
2
3
4
5
6
7
PRIMARY KEY (Id_P)

CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName) //命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束

ADD PRIMARY KEY (Id_P) //在表已存在的情况下为 "Id_P" 列创建 PRIMARY KEY 约束

DROP PRIMARY KEY //撤销

FOREIGN KEY
一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。

1
FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)

CHECK 约束
用于限制列中的值的范围。

1
2
3
CHECK (Id_P>0) //创建表时限制

ADD CHECK (Id_P>0)//表已存在的情况下

CREATE INDEX 语句用于在表中创建索引。

1
2
CREATE INDEX index_name
ON table_name (column_name)

Auto-increment 会在新记录插入表中时生成一个唯一的数字。

ALTER TABLE

1
2
ALTER TABLE table_name
ADD column_name datatype