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: 只要其中一个表中存在匹配,就返回行
|