目录
一、SQL TOP语句
1.TOP 子句
TOP 子句用于规定要返回的记录的数目。
注释:并非所有的数据库系统都支持 TOP 子句。MySQL 和 Oracle 中的 SQL SELECT TOP 是等价的。
SQL Server 的语法:
SELECT TOP number|percent column_name(s)
FROM table_name
MySQL 的语法:
SELECT column_name(s)
FROM table_name
LIMIT number
例如:
SELECT *
FROM Persons
LIMIT 5
Oracle 的语法:
SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number
例如:
SELECT *
FROM Persons
WHERE ROWNUM <= 5
Persons 表:
Id | LastName | FirstName | Address | City |
001 | Aam | Joh | Oxd Street | London |
002 | Buh | Grge | Fifth Aue | New York |
003 | Car | Tmas | Can Street | Beijing |
004 | Obam | Barack | Pensy Aue | Washington |
2.SQL TOP 实例
从 "Persons" 表中选取头两条记录,使用的 SELECT 语句:
SELECT TOP 2 * FROM Persons
结果:
Id | LastName | FirstName | Address | City |
001 | Aam | Joh | Oxd Street | London |
002 | Buh | Grge | Fifth Aue | New York |
3.SQL TOP PERCENT 实例
从 "Persons" 表中选取 50% 的记录,使用的 SELECT 语句:
SELECT TOP 50 PERCENT * FROM Persons
结果:
Id | LastName | FirstName | Address | City |
001 | Aam | Joh | Oxd Street | London |
002 | Buh | Grge | Fifth Aue | New York |
二、SQL LIKE 操作符
1.LIKE 操作符
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
2.SQL LIKE 操作符语法
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern
Persons 表:
Id | LastName | FirstName | Address | City |
001 | Aam | Joh | Oxd Street | London |
002 | Buh | Grge | Fifth Aue | New York |
003 | Car | Tmas | Can Street | Beijing |
3.LIKE 操作符实例
①从 "Persons" 表中选取居住在以 "N" 开始的城市里的人,使用的 SELECT 语句:
SELECT * FROM Persons
WHERE City LIKE 'N%'
注释:"%" 可用于定义通配符(模式中缺少的字母)。
结果集:
Id | LastName | FirstName | Address | City |
002 | Buh | Grge | Fifth Aue | New York |
②从 "Persons" 表中选取居住在以 "g" 结尾的城市里的人,使用的 SELECT 语句:
SELECT * FROM Persons
WHERE City LIKE '%g'
结果集:
Id | LastName | FirstName | Address | City |
003 | Car | Tmas | Can Street | Beijing |
③从 "Persons" 表中选取居住在包含 "lon" 的城市里的人,使用的 SELECT 语句:
SELECT * FROM Persons
WHERE City LIKE '%lon%'
结果集:
Id | LastName | FirstName | Address | City |
001 | Aam | Joh | Oxd Street | London |
④使用 NOT 关键字,从 "Persons" 表中选取居住在不包含 "lon" 的城市里的人,使用的 SELECT 语句:
SELECT * FROM Persons
WHERE City NOT LIKE '%lon%'
结果集:
Id | LastName | FirstName | Address | City |
002 | Buh | Grge | Fifth Aue | New York |
003 | Car | Tmas | Can Street | Beijing |
三、SQL通配符
1.SQL 通配符
在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。
注:SQL 通配符必须与 LIKE 运算符一起使用。
在 SQL 中,可使用以下通配符:
通配符 | 描述 |
% | 代表零个或多个字符 |
_ | 仅替代一个字符 |
[charlist] | 字符列中的任何单一字符 |
[^charlist]或者[!charlist] | 不在字符列中的任何单一字符 |
Persons 表:
Id | LastName | FirstName | Address | City |
001 | Aam | Joh | Oxd Street | London |
002 | Buh | Grge | Fifth Aue | New York |
003 | Car | Tmas | Can Street | Beijing |
2.使用 % 通配符
①从 "Persons" 表中选取居住在以 "Ne" 开始的城市里的人,使用的 SELECT 语句:
SELECT * FROM Persons
WHERE City LIKE 'Ne%'
结果集:
Id | LastName | FirstName | Address | City |
002 | Buh | Grge | Fifth Aue | New York |
②从 "Persons" 表中选取居住在包含 "lond" 的城市里的人,使用的 SELECT 语句:
SELECT * FROM Persons
WHERE City LIKE '%lond%'
结果集:
Id | LastName | FirstName | Address | City |
001 | Aam | Joh | Oxd Street | London |
3.使用 _ 通配符
①从 "Persons" 表中选取名字的第一个字符之后是 "rge" 的人,使用的 SELECT 语句:
SELECT * FROM Persons
WHERE FirstName LIKE '_rge'
结果集:
Id | LastName | FirstName | Address | City |
002 | Buh | Grge | Fifth Aue | New York |
②从 "Persons" 表中选取的这条记录的姓氏以 "C" 开头,然后是一个任意字符,然后是 "a",然后是一个任意字符,然后是 "r",使用的 SELECT 语句:
SELECT * FROM Persons
WHERE LastName LIKE 'C_a_r'
结果集:
Id | LastName | FirstName | Address | City |
003 | Car | Tmas | Can Street | Beijing |
注:灵活运用通配符
4.使用 [charlist] 通配符
①从"Persons" 表中选取居住的城市以 "A" 或 "L" 或 "N" 开头的人,使用的 SELECT 语句:
SELECT * FROM Persons
WHERE City LIKE '[ALN]%'
结果集:
Id | LastName | FirstName | Address | City |
001 | Aam | Joh | Oxd Street | London |
002 | Buh | Grge | Fifth Aue | New York |
②从"Persons" 表中选取居住的城市不以 "A" 或 "L" 或 "N" 开头的人,使用的 SELECT 语句:
SELECT * FROM Persons
WHERE City LIKE '[!ALN]%'
结果集:
Id | LastName | FirstName | Address | City |
003 | Car | Tmas | Can Street | Beijing |
四、SQL IN操作符
1.IN 操作符
IN 操作符允许我们在 WHERE 子句中规定多个值。
2.SQL IN 语法
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)
Persons 表:
Id | LastName | FirstName | Address | City |
001 | Aam | Joh | Oxd Street | London |
002 | Buh | Grge | Fifth Aue | New York |
003 | Car | Tmas | Can Street | Beijing |
3.IN 操作符实例
从上表中选取姓氏为 Aam 和 Car 的人,使用的 SELECT 语句:
SELECT * FROM Persons
WHERE LastName IN ('Aam','Car')
结果集:
Id | LastName | FirstName | Address | City |
001 | Aam | Joh | Oxd Street | London |
003 | Car | Tmas | Can Street | Beijing |
五、SQL BETWEEN操作符
1.BETWEEN 操作符
BETWEEN 操作符在 WHERE 子句中使用,操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
2.SQL BETWEEN 语法
SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2
Persons 表:
Id | LastName | FirstName | Address | City |
001 | Aam | Joh | Oxd Street | London |
002 | Buh | Grge | Fifth Aue | New York |
003 | Car | Tmas | Can Street | Beijing |
004 | Gates | Bill | Xuanwumen 10 | Beijing |
3.BETWEEN 操作符实例
①以字母顺序显示介于 "Aam"(包括)和 "Car"(不包括)之间的人,使用的 SQL语句:
SELECT * FROM Persons
WHERE LastName
BETWEEN 'Adams' AND 'Carter'
结果集:
Id | LastName | FirstName | Address | City |
001 | Aam | Joh | Oxd Street | London |
002 | Buh | Grge | Fifth Aue | New York |
注:不同的数据库对 BETWEEN...AND 操作符的处理方式是有差异的。某些数据库会列出介于 "Aam" 和 "Car" 之间的人,但不包括 "Aam" 和 "Car" ;某些数据库会列出介于 "Aam" 和 "Car" 之间并包括 "Aam" 和 "Car" 的人;而另一些数据库会列出介于 "Aam" 和 "Car" 之间的人,包括 "Aam" ,但不包括 "Car" 。
②使用上面的例子显示范围之外的人,使用 NOT 操作符:
SELECT * FROM Persons
WHERE LastName
NOT BETWEEN 'Adams' AND 'Carter'
结果集:
Id | LastName | FirstName | Address | City |
003 | Car | Tmas | Can Street | Beijing |
004 | Gates | Bill | Xuanwumen 10 | Beijing |
六、SQL Alias(别名)
通过使用 SQL命令语句,可以为列名称和表名称指定别名(Alias)。
1.SQL Alias
表的 SQL Alias 语法
SELECT column_name(s)
FROM table_name
AS alias_name
列的 SQL Alias 语法
SELECT column_name AS alias_name
FROM table_name
2.使用表名称别名
假设有两个表分别是:"Persons" 和 "Product_Orders"。分别为它们指定别名 "p" 和 "po"。
列出 "Joh Aam" 的所有定单,使用的 SELECT 语句:
SELECT po.OrderID, p.LastName, p.FirstName
FROM Persons AS p, Product_Orders AS po
WHERE p.LastName='Aam' AND p.FirstName='Joh'
不使用别名的 SELECT 语句:
SELECT Product_Orders.OrderID, Persons.LastName, Persons.FirstName
FROM Persons, Product_Orders
WHERE Persons.LastName='Aam' AND Persons.FirstName='Joh'
得出结论:别名使查询程序更易阅读和书写。
3.使用一个列名别名
Persons 表:
Id | LastName | FirstName | Address | City |
001 | Aam | Joh | Oxd Street | London |
002 | Buh | Grge | Fifth Aue | New York |
003 | Car | Tmas | Can Street | Beijing |
从Persons表中抽取LastName列重命名为Family,FirstName列重命名为Name,使用的SQL语句:
SELECT LastName AS Family, FirstName AS Name
FROM Persons
结果集:
Family | Name |
Aam | Joh |
Buh | Grge |
Car | Tmas |
提醒:各位看官可不要光只顾着看,还要在自己建立的数据库模型中不断地实操才能更好的掌握SQL语句。