目录
一、SQL TOP语句
1.TOP 子句
2.SQL TOP 实例
3.SQL TOP PERCENT 实例
二、SQL LIKE 操作符
1.LIKE 操作符
2.SQL LIKE 操作符语法
3.LIKE 操作符实例
三、SQL通配符
1.SQL 通配符
2.使用 % 通配符
3.使用 _ 通配符
4.使用 [charlist] 通配符
四、SQL IN操作符
1.IN 操作符
2.SQL IN 语法
3.IN 操作符实例
五、SQL BETWEEN操作符
1.BETWEEN 操作符
2.SQL BETWEEN 语法
3.BETWEEN 操作符实例
六、SQL Alias(别名)
1.SQL Alias
2.使用表名称别名
3.使用一个列名别名
一、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语句。