这是错误的:
SELECT * FROM Persons WHERE FirstName=Bush 数值:
这是正确的:
SELECT * FROM Persons WHERE Year>1965
这是错误的:
SELECT * FROM Persons WHERE Year>'1965'
SQL AND & OR 运算符
AND 和 OR 运算符用于基于一个以上的条件对记录进行过滤。 AND 和 OR 运算符
AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。 如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。 原始的表 (用在例子中的): LastName Adams Bush Carter Carter FirstName John George Thomas William Address Oxford Street Fifth Avenue Changan Street Xuanwumen 10 City London New York Beijing Beijing AND 运算符实例 使用 AND 来显示所有姓为 \并且名为 \的人:
SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter' 结果: LastName Carter FirstName Thomas Address Changan Street City Beijing OR 运算符实例 使用 OR 来显示所有姓为 \或者名为 \的人:
SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter' 结果: LastName Carter Carter FirstName Thomas William Address Changan Street Xuanwumen 10 City Beijing Beijing 结合 AND 和 OR 运算符
我们也可以把 AND 和 OR 结合起来(使用圆括号来组成复杂的表达式):
6
SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William') AND LastName='Carter' 结果: LastName Carter Carter FirstName Thomas William Address Changan Street Xuanwumen 10 City Beijing Beijing SQL ORDER BY 子句
ORDER BY 语句用于对结果集进行排序。 ORDER BY 语句
ORDER BY 语句用于根据指定的列对结果集进行排序。 ORDER BY 语句默认按照升序对记录进行排序。
如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。 原始的表 (用在例子中的): Orders 表: Company IBM W3School Apple W3School 实例 1
以字母顺序显示公司名称:
SELECT Company, OrderNumber FROM Orders ORDER BY Company 结果: Company Apple IBM W3School W3School OrderNumber 4698 3532 6953 2356 OrderNumber 3532 2356 4698 6953 实例 2
以字母顺序显示公司名称(Company),并以数字顺序显示顺序号(OrderNumber): SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber 结果: Company Apple OrderNumber 4698 7
IBM W3School W3School 实例 3
以逆字母顺序显示公司名称:
3532 2356 6953 SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC 结果: Company W3School W3School IBM Apple 实例 4
以逆字母顺序显示公司名称,并以数字顺序显示顺序号:
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC 结果: Company W3School W3School IBM Apple OrderNumber 2356 6953 3532 4698 OrderNumber 6953 2356 3532 4698 注意:在以上的结果中有两个相等的公司名称 (W3School)。只有这一次,在第一列中有相同的值时,第二列是以升序排列的。如果第一列中有些值为 nulls 时,情况也是这样的。 SQL INSERT INTO 语句 INSERT INTO 语句
INSERT INTO 语句用于向表格中插入新的行。 语法
INSERT INTO 表名称 VALUES (值1, 值2,....) 我们也可以指定所要插入数据的列:
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....) 插入新的行
\表: LastName
FirstName Address City 8
Carter SQL 语句: Thomas Changan Street Beijing INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing') 结果: LastName Carter Gates 在指定的列中插入数据 \表: LastName Carter Gates SQL 语句: INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees') 结果: LastName Carter Gates Wilson FirstName Thomas Bill Address Changan Street Xuanwumen 10 Champs-Elysees City Beijing Beijing FirstName Thomas Bill Address Changan Street Xuanwumen 10 City Beijing Beijing FirstName Thomas Bill Address Changan Street Xuanwumen 10 City Beijing Beijing
SQL UPDATE 语句 Update 语句
Update 语句用于修改表中的数据。 语法:
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 Person: LastName Gates Wilson FirstName Bill Address Xuanwumen 10 Champs-Elysees City Beijing 更新某一行中的一个列
我们为 lastname 是 \的人添加 firstname:
UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson' 结果:
9
LastName Gates Wilson FirstName Bill Fred Address Xuanwumen 10 Champs-Elysees City Beijing 更新某一行中的若干列
我们会修改地址(address),并添加城市名称(city):
UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson' 结果: LastName Gates Wilson FirstName Bill Fred Address Xuanwumen 10 Zhongshan 23 City Beijing Nanjing
DELETE 语句
DELETE 语句用于删除表中的行。 语法
DELETE FROM 表名称 WHERE 列名称 = 值 Person: LastName Gates Wilson 删除某行
\会被删除:
DELETE FROM Person WHERE LastName = 'Wilson' 结果: LastName Gates FirstName Bill Address Xuanwumen 10 City Beijing FirstName Bill Fred Address Xuanwumen 10 Zhongshan 23 City Beijing Nanjing 删除所有行
可以在不删除表的情况下删除所有的行。这意味着表的结构、属性和索引都是完整的: DELETE FROM table_name 或者:
DELETE * FROM table_name
SQL TOP 子句 TOP 子句
10