常用的SQL语句

SQL 数据库

SQL 是一门 ANSI 的标准计算机语言,用来访问和操作数据库系统。SQL 语句用于取回和更新数据库中的数据。SQL 可与数据库程序协同工作,比如 MS Access、DB2、Informix、MS SQL Server、Oracle、Sybase 以及其他数据库系统。

SQL SELECT 语句

语法:

1
2
3
SELECT 列名称 FROM 表名称
或者
SELECT * FROM 表名称

注释:SQL 语句对大小写不敏感。SELECT 等效于 select。

SQL SELECT DISTINCT 语句

在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。

语法:

1
2
SELECT DISTINCT 列名称 FROM 表名称

SQL WHERE 子句

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

操作符 描述
= 等于
<> 不等于

| 大于
< | 小于
= | 大于等于
<= | 小于等于
BETWEEN | 在某个范围内
LIKE | 搜索某种模式

SQL AND & OR 运算符

AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

1
2
3
SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter'
SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'

SQL ORDER BY 子句

ORDER BY 语句用于对结果集进行排序。

1
2
3
SELECT Company, OrderNumber FROM Orders ORDER BY Company
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC

SQL INSERT INTO 语句

INSERT INTO 语句用于向表格中插入新的行。

语法:

1
2
INSERT INTO 表名称 VALUES (值1, 值2,....)

我们也可以指定所要插入数据的列:

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

例如:

1
2
INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')
INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees')

SQL UPDATE 语句

Update 语句用于修改表中的数据。

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

例:

1
2
UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing'
WHERE LastName = 'Wilson'

SQL DELETE 语句

DELETE 语句用于删除表中的行。

语法:

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

删除所有的行

1
2
3
4
DELETE FROM table_name
或者
DELETE * FROM table_name

例:

1
2
DELETE FROM Person WHERE LastName = 'Wilson' 

SQL PRIMARY KEY 约束

PRIMARY KEY 约束唯一标识数据库表中的每条记录。
主键必须包含唯一的值。
主键列不能包含 NULL 值。
每个表都应该有一个主键,并且每个表只能有一个主键。

1
2
3
4
5
6
7
8
9
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (Id_P)
)

如果在表已存在的情况下为 “Id_P” 列创建 PRIMARY KEY 约束,请使用下面的 SQL:

1
2
ALTER TABLE Persons
ADD PRIMARY KEY (Id_P)

撤销 PRIMARY KEY 约束

1
2
ALTER TABLE Persons
DROP PRIMARY KEY

SQL FOREIGN KEY 约束

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

FOREIGN KEY 约束用于预防破坏表之间连接的动作。
FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。

1
2
3
4
5
6
7
8
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)
)

如果在 “Orders” 表已存在的情况下为 “Id_P” 列创建 FOREIGN KEY 约束,请使用下面的 SQL:

1
2
3
ALTER TABLE Orders
ADD FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)

撤销 FOREIGN KEY 约束

1
2
ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

SQL JOIN

SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。

1
2
3
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons, Orders
WHERE Persons.Id_P = Orders.Id_P
1
2
3
4
5
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName

不同的 SQL JOIN

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