以下内容来自 3c school
17:SQL UNION 和 UNION ALL 操作符 24
l SQL SELECT INTO 实例 - 制作备份复件 26
l SQL SELECT INTO 实例 - 带有 WHERE 子句 27
l SQL SELECT INTO 实例 - 被连接的表 27
l SQL UNIQUE Constraint on CREATE TABLE 30
SQL Server / Oracle / MS Access: 30
MySQL / SQL Server / Oracle / MS Access: 31
SQL UNIQUE Constraint on ALTER TABLE 31
MySQL / SQL Server / Oracle / MS Access: 31
MySQL / SQL Server / Oracle / MS Access: 31
SQL Server / Oracle / MS Access: 32
SQL PRIMARY KEY Constraint on CREATE TABLE 32
SQL Server / Oracle / MS Access: 32
MySQL / SQL Server / Oracle / MS Access: 33
SQL PRIMARY KEY Constraint on ALTER TABLE 33
MySQL / SQL Server / Oracle / MS Access: 33
MySQL / SQL Server / Oracle / MS Access: 33
SQL Server / Oracle / MS Access: 34
SQL FOREIGN KEY Constraint on CREATE TABLE 34
SQL Server / Oracle / MS Access: 35
MySQL / SQL Server / Oracle / MS Access: 35
SQL FOREIGN KEY Constraint on ALTER TABLE 35
MySQL / SQL Server / Oracle / MS Access: 35
MySQL / SQL Server / Oracle / MS Access: 36
SQL Server / Oracle / MS Access: 36
SQL CHECK Constraint on CREATE TABLE 36
SQL Server / Oracle / MS Access: 37
MySQL / SQL Server / Oracle / MS Access: 37
SQL CHECK Constraint on ALTER TABLE 37
MySQL / SQL Server / Oracle / MS Access: 37
MySQL / SQL Server / Oracle / MS Access: 38
SQL Server / Oracle / MS Access: 38
SQL DEFAULT Constraint on CREATE TABLE 38
My SQL / SQL Server / Oracle / MS Access: 38
SQL DEFAULT Constraint on ALTER TABLE 39
SQL Server / Oracle / MS Access: 39
SQL Server / Oracle / MS Access: 39
用于 Microsoft SQLJet (以及 Microsoft Access) 的语法: 41
我们希望在表 "Persons" 中添加一个名为 "Birthday" 的新列。 43
SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数 52
"Persons" table (在大部分的例子中使用过) 59
SQL COUNT(DISTINCT column_name) 语法 63
SQL COUNT(DISTINCT column_name) 实例 64
1:Sql 分为两个部分:
l 数据操作语言 DML:
SELECT 查询
UPDATE 更新
DELETE 删除
INSERT INTO 插入
l 数据定义语言 DDL
CREATE DATABASE 创建数据库
ALTER DATABASE 修改数据库结构
CREATE TABLE 创建表
DROP TABLE 删除表
CREATE INDEX 创建索引
DROP INDEX 删除索引
2:查询
v 查询指定的列信息:
SELECT 列名,列名... FROM 表名
v 查询表中所有信息:
SELECT * FROM 表名
v 如果不希望查询出的某列中包含重复的值则使用 DISTINCT 关键字
SELECTL DISTINCT列名 FROM 表名
v 指定条件查询 使用关键字 WHERE
SELECT 列名 FROM 表名 WHERE 列 运算符 值
Eg:
SELECT * FROM Persons WHERE City='Beijing'
SELECT * FROM Persons WHERE Year>1965
(注意 文本值 使用单引号, 数值不用)
v AND 和 OR 运算符
AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。
Eg:
使用AND:
SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'
使用OR:
SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter'
组合使用 AND OR:
SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William')
AND LastName='Carter'
v 使用ORDER BY 对结果集进行排序
ORDER BY 默认对结果集进行升序排序,如果要是采用降序:使用DESC 关键字
① SELECT Company, OrderNumber FROM Orders ORDER BY Company
以字母顺序显示公司名称:
② SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber
以字母顺序显示公司名称(Company),并以数字顺序显示顺序号(OrderNumber):
③ SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC
以逆字母顺序显示公司名称:
④ SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC
以逆字母顺序显示公司名称,并以数字顺序显示顺序号:
备注:
升序 : ascending order
降序: descending order
3:插入:
l INSERT INTO 语句用于向表格中插入新的行。
语法: INSERT INTO 表名 VALUES (值1,值2.。。。)
INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')
l 我们也可以指定所要插入数据的列:
INSERT INTO table_name (列1,列2,...) VALUES (值1,值2,...)
INSERT INTO Persons (LastName, Address) VALUES ('Wilson','Champs-Elysees')
4:数据库更新 UPDATE
Update 语句用于修改表中的数据。
UPDATE 表名 SET 列名=新值 WHERE 列名 = 某值
l 我们为 lastname 是 "Wilson" 的人添加 firstname:
UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson'
l 我们会修改地址(address),并添加城市名称(city):
UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing'WHERE LastName = 'Wilson'
5:删除 DELETE
DELETE 语句用于删除表中的行
l DELETE FROM 表名 WHERE 列名= 值
DELETE FROM Person WHERE LastName = 'Wilson'
l 删除所有行,表的结构、属性和索引 都是完整的
① DELETE FROM table_name
② DELETE * FROM table_name
6:Sql TOP 子句:
TOP 子句用于规定要返回的记录的数目
SELETE TOP number| percent colum_name(s) FROM table
Eg:
1) SELECT TOP 2 * FROM Persons
我们希望从上面的 "Persons" 表中选取 50% 的记录。
2) SELECT TOP 50 PERCENT * FROM Persons
7: SQL LIKE 操作符
LIKE 操作符用于在 WHERE 子句中搜索列中指定模式
SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern
l Eg1:
l Eg:2
l Eg:3
l Eg:4
8:SQL 通配符
Ø 在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。
Ø SQL 通配符必须与 LIKE 运算符一起使用。
Eg:
² 使用 % 通配符
例如1:
现在,我们希望从上面的 "Persons" 表中选取居住在以 "Ne" 开始的城市里的人:
我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons WHERE City LIKE 'Ne%'
例如2:
接下来,我们希望从 "Persons" 表中选取居住在包含 "lond" 的城市里的人:
我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons WHERE City LIKE '%lond%'
² 使用 _ 通配符
例子 1
现在,我们希望从上面的 "Persons" 表中选取名字的第一个字符之后是 "eorge" 的人:
我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons WHERE FirstName LIKE '_eorge'
例子 2
接下来,我们希望从 "Persons" 表中选取的这条记录的姓氏以 "C" 开头,然后是一个任意字符,然后是 "r",然后是任意字符,然后是 "er":
我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons WHERE LastName LIKE 'C_r_er'
² 使用 [charlist] 通配符
例子 1
现在,我们希望从上面的 "Persons" 表中选取居住的城市以 "A" 或 "L" 或 "N" 开头的人:
我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons WHERE City LIKE '[ALN]%'
例子 2
现在,我们希望从上面的 "Persons" 表中选取居住的城市不以 "A" 或 "L" 或 "N"