SQL高级教程(TOP子句/LIKE/通配符/IN/NOT IN)

以下全部内容来自W3School SQL教程,我在学习的过程中完全自己照着敲了一遍,加深学习印象。

SQL TOP 子句

TOP子句用于规定要返回的记录的数目。
对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。

注释:并非所有的数据库系统都支持 TOP 子句。

SQL Server 的语法:

SELECT TOP number|percent column_name(s) FROM table_name

MySQL TOP 和Oracle 中的SQL SELECT TOP 是等价的

MySQL语法:

SELECT column_name(s) FROM table_name LIMIT number

例子:

SELECT * FROM Persons LIMIT 10

Oracle 语法:

SELECT column_name(s) FROM table_name WHERE ROWNUM <= number

例子

SELECT * FROME Persons WHERE ROWNUM <= 10

Persons 表:

IdLastNameFirstNameAddressCity
1AdamsJohnOxford StreetLondon
2BushGeorgeFifth AvenueNew York
3CarterThomasChangan StreetBeijing
4ObamaBarackPennsylvania AvenueWashington


SQL TOP 实例:

现在,我们希望从上面的 “Persons” 表中选取头两条记录。
我们可以使用下面的 SELECT 语句:

SELECT TOP2 * FROM Persons

其结果是:

IdLastNameFirstNameAddressCity
1AdamsJohnOxford StreetLondon
2BushGeorgeFifth AvenueNew York


SQL TOP PERCENT 实例

现在,我们希望从上面的 “Persons” 表中选取 50% 的记录。
我们可以使用下面的 SELECT 语句:

SELECT TOP 50 PERCENT FROM Persons

其结果为:

IdLastNameFirstNameAddressCity
1AdamsJohnOxford StreetLondon
2BushGeorgeFifth AvenueNew York


SQL LIKE 操作符

LIKE 操作符

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。

SQL LIKE 操作符语法

SELECT column_numes(s)
FROM table_name
WHERE column_name LIKE pattern

Persons 表:

IdLastNameFirstNameAddressCity
1AdamsJohnOxford StreetLondon
2BushGeorgeFifth AvenueNew York
3CarterThomasChangan StreetBeijing

LIKE 操作符实例

实例1  以某字符开头

现在,我们希望从上面的 “Persons” 表中选取居住在
以 “N” 开始
的城市里的人:

我们可以使用下面的 SELECT 语句:

SELECT * 
FROM Persons 
WHERE City LIKE 'N%'

提示:”%” 可用于定义通配符(模式中缺少的字母)。
其结果为:

IdLastNameFirstNameAddressCity
2BushGeorgeFifth AvenueNew York


例子 2  以某字符结尾

接下来,我们希望从 “Persons” 表中选取居住在
以 “g” 结尾
的城市里的人:
我们可以使用下面的 SELECT 语句:

SELECT * 
FROM Persons 
WHERE City LIKE 'g%'

其结果为:

IdLastNameFirstNameAddressCity
3CarterThomasChangan StreetBeijing


例子 3  包含某字符

接下来,我们希望从 “Persons” 表中选取居住在
包含 “lon”
的城市里的人:

我们可以使用下面的 SELECT 语句:

SELECT * 
FROM Persons 
WHERE City LIKE '%lon%'

其结果为:

IdLastNameFirstNameAddressCity
1AdamsJohnOxford StreetLondon


例子 4  不包含某字符(排除)

通过使用 NOT 关键字,我们可以从 “Persons” 表中选取居住在
不包含 “lon”
的城市里的人:
我们可以使用下面的 SELECT 语句:

SELECT * 
FROM Persons 
WHERE City NOT LIKE '%lon%'

其结果为:

IdLastNameFirstNameAddressCity
2BushGeorgeFifth AvenueNew York
3CarterThomasChangan StreetBeijing


SQL 通配符

在搜索数据库中的数据时,我们可以使用 SQL 通配符。

SQL 通配符
在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。
SQL 通配符必须与 LIKE 运算符一起使用。

在 SQL 中,可使用以下通配符:

通配符描述
%替代一个或多个字符
_仅替代一个字符
[charlist]字符列中的任何单一字符

[^charlist]

或者

[!charlist]

不在字符列中的任何单一字符


Persons表:

IdLastNameFirstNameAddressCity
1AdamsJohnOxford StreetLondon
2BushGeorgeFifth AvenueNew York
3CarterThomasChangan StreetBeijing


使用 % 通配符(替代一个或多个字符)

例子 1

现在,我们希望从上面的 “Persons” 表中选取居住在
以 “Ne” 开始
的城市里的人:

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons WHERE City LIKE 'Ne%'

结果集:

IdLastNameFirstNameAddressCity
2BushGeorgeFifth AvenueNew York


例子 2

接下来,我们希望从 “Persons” 表中选取居住在
包含 “lond” 的
城市里的人:
我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons WHERE City LIKE '%lond%'

Persons表:

IdLastNameFirstNameAddressCity
1AdamsJohnOxford StreetLondon


使用 _ 通配符(仅替代一个字符)

例子 1

现在,我们希望从上面的 “Persons” 表中选取名字的第一个字符之后是 “eorge” 的人:

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons WHERE LastName like '_eorge'

结果集:

IdLastNameFirstNameAddressCity
2BushGeorgeFifth AvenueNew York

例子 2

接下来,我们希望从 “Persons” 表中选取的这条记录的姓氏以 “C” 开头,然后是一个任意字符,然后是 “r”,然后是任意字符,然后是 “er”:

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons WHERE LastName LIKE 'C_r_er'

结果集:

IdLastNameFirstNameAddressCity
3CarterThomasChangan StreetBeijing


使用 [charlist] 通配符(字符列中的任何单一字符)

例子 1

现在,我们希望从上面的 “Persons” 表中选取居住的城市
以 “A” 或 “L” 或 “N” 开头
的人:

我们可以使用下面的 SELECT 语句:

SELECT * FROM Psersons WHERE City LIKE '[ALN]%'

结果集:

IdLastNameFirstNameAddressCity
1AdamsJohnOxford StreetLondon
2BushGeorgeFifth AvenueNew York

例子 2

现在,我们希望从上面的 “Persons” 表中选取居住的城市
不以 “A” 或 “L” 或 “N” 开头
的人:

我们可以使用下面的 SELECT 语句:

SELECT * FROM Psersons WHERE City LIKE '[^ALN]%'
或者
SELECT * FROM Psersons WHERE City LIKE '[!ALN]%'

结果集:

IdLastNameFirstNameAddressCity
3CarterThomasChangan StreetBeijing

SQL IN 操作符

IN 操作符允许我们在 WHERE 子句中规定多个值。

SQL IN 语法:

SELECT column_name(s) 
FROM table_name 
WHERE colunm_name 
IN (value1,value2,……)

Persons表:

IdLastNameFirstNameAddressCity
1AdamsJohnOxford StreetLondon
2BushGeorgeFifth AvenueNew York
3CarterThomasChangan StreetBeijing


IN 操作符实例

现在,我们希望从上表中选取姓氏为 Adams 和 Carter 的人:
我们可以使用下面的 SELECT 语句:

SELECT * 
FROM Persons 
WHERE LasrName 
IN ('Adams','Caeter')

结果集:

IdLastNameFirstNameAddressCity
1AdamsJohnOxford StreetLondon
3CarterThomasChangan StreetBeijing


    原文作者:SQL
    原文地址: https://blog.csdn.net/zbj18314469395/article/details/79783054
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞