SQL高级教程 标准版.docx
《SQL高级教程 标准版.docx》由会员分享,可在线阅读,更多相关《SQL高级教程 标准版.docx(67页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.TOPTOP 子句TOP 子句用于规定要返回的记录的数目。对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。注释:并非所有的数据库系统都支持 TOP 子句。SQL Server 的语法:SELECT TOP number|percent column_name(s)FROM table_nameMySQL 和 Oracle 中的 SQL SELECT TOP 是等价的MySQL 语法SELECT column_name(s)FROM table_nameLIMIT number例子SELECT *FROM PersonsLIMIT 5Oracle 语法SELECT column_n
2、ame(s)FROM table_nameWHERE ROWNUM = number例子SELECT *FROM PersonsWHERE ROWNUM = 5原始的表 (用在例子中的):Persons 表:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijing4ObamaBarackPennsylvania AvenueWashingtonSQL TOP 实例现在,我们希望从上面的 Persons 表
3、中选取头两条记录。我们可以使用下面的 SELECT 语句:SELECT TOP 2 * FROM Persons结果:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew YorkSQL TOP PERCENT 实例现在,我们希望从上面的 Persons 表中选取 50% 的记录。我们可以使用下面的 SELECT 语句:SELECT TOP 50 PERCENT * FROM Persons结果:IdLastNameFirstNameAddressCity1AdamsJohnO
4、xford StreetLondon2BushGeorgeFifth AvenueNew York2.LikeLIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。LIKE 操作符LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。SQL LIKE 操作符语法SELECT column_name(s)FROM table_nameWHERE column_name LIKE pattern原始的表 (用在例子中的):Persons 表:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeF
5、ifth AvenueNew York3CarterThomasChangan StreetBeijingLIKE 操作符实例例子 1现在,我们希望从上面的 Persons 表中选取居住在以 N 开始的城市里的人:我们可以使用下面的 SELECT 语句:SELECT * FROM PersonsWHERE City LIKE N%提示:% 可用于定义通配符(模式中缺少的字母)。结果集:IdLastNameFirstNameAddressCity2BushGeorgeFifth AvenueNew York例子 2接下来,我们希望从 Persons 表中选取居住在以 g 结尾的城市里的人:我们可
6、以使用下面的 SELECT 语句:SELECT * FROM PersonsWHERE City LIKE %g结果集:IdLastNameFirstNameAddressCity3CarterThomasChangan StreetBeijing例子 3接下来,我们希望从 Persons 表中选取居住在包含 lon 的城市里的人:我们可以使用下面的 SELECT 语句:SELECT * FROM PersonsWHERE City LIKE %lon%结果集:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon例子 4通过使用
7、 NOT 关键字,我们可以从 Persons 表中选取居住在不包含 lon 的城市里的人:我们可以使用下面的 SELECT 语句:SELECT * FROM PersonsWHERE City NOT LIKE %lon%结果集:IdLastNameFirstNameAddressCity2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijing3.通配符在搜索数据库中的数据时,您可以使用 SQL 通配符。SQL 通配符在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。SQL 通配符必须与 LIKE 运算符一起
8、使用。在 SQL 中,可使用以下通配符:通配符描述%替代一个或多个字符_仅替代一个字符charlist字符列中的任何单一字符charlist或者!charlist不在字符列中的任何单一字符原始的表 (用在例子中的):Persons 表:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijing使用 % 通配符例子 1现在,我们希望从上面的 Persons 表中选取居住在以 Ne 开始的城市里的人:我们可以使
9、用下面的 SELECT 语句:SELECT * FROM PersonsWHERE City LIKE Ne%结果集:IdLastNameFirstNameAddressCity2BushGeorgeFifth AvenueNew York例子 2接下来,我们希望从 Persons 表中选取居住在包含 lond 的城市里的人:我们可以使用下面的 SELECT 语句:SELECT * FROM PersonsWHERE City LIKE %lond%结果集:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon使用 _ 通配符例子
10、 1现在,我们希望从上面的 Persons 表中选取名字的第一个字符之后是 eorge 的人:我们可以使用下面的 SELECT 语句:SELECT * FROM PersonsWHERE FirstName LIKE _eorge结果集:IdLastNameFirstNameAddressCity2BushGeorgeFifth AvenueNew York例子 2接下来,我们希望从 Persons 表中选取的这条记录的姓氏以 C 开头,然后是一个任意字符,然后是 r,然后是任意字符,然后是 er:我们可以使用下面的 SELECT 语句:SELECT * FROM PersonsWHERE L
11、astName LIKE C_r_er结果集:IdLastNameFirstNameAddressCity3CarterThomasChangan StreetBeijing使用 charlist 通配符例子 1现在,我们希望从上面的 Persons 表中选取居住的城市以 A 或 L 或 N 开头的人:我们可以使用下面的 SELECT 语句:SELECT * FROM PersonsWHERE City LIKE ALN%结果集:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueN
12、ew York例子 2现在,我们希望从上面的 Persons 表中选取居住的城市不以 A 或 L 或 N 开头的人:我们可以使用下面的 SELECT 语句:SELECT * FROM PersonsWHERE City LIKE !ALN%结果集:IdLastNameFirstNameAddressCity3CarterThomasChangan StreetBeijing4.InIN 操作符IN 操作符允许我们在 WHERE 子句中规定多个值。SQL IN 语法SELECT column_name(s)FROM table_nameWHERE column_name IN (value1,v
13、alue2,.)原始的表 (在实例中使用:)Persons 表:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijingIN 操作符实例现在,我们希望从上表中选取姓氏为 Adams 和 Carter 的人:我们可以使用下面的 SELECT 语句:SELECT * FROM PersonsWHERE LastName IN (Adams,Carter)结果集:IdLastNameFirstNameAddre
14、ssCity1AdamsJohnOxford StreetLondon3CarterThomasChangan StreetBeijing5.BetweenBETWEEN 操作符在 WHERE 子句中使用,作用是选取介于两个值之间的数据范围。BETWEEN 操作符操作符 BETWEEN . AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。SQL BETWEEN 语法SELECT column_name(s)FROM table_nameWHERE column_nameBETWEEN value1 AND value2原始的表 (在实例中使用:)Persons 表:Id
15、LastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijing4GatesBillXuanwumen 10BeijingBETWEEN 操作符实例如需以字母顺序显示介于 Adams(包括)和 Carter(不包括)之间的人,请使用下面的 SQL:SELECT * FROM PersonsWHERE LastNameBETWEEN Adams AND Carter结果集:IdLastNameFirstNameAddr
16、essCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York重要事项:不同的数据库对 BETWEEN.AND 操作符的处理方式是有差异的。某些数据库会列出介于 Adams 和 Carter 之间的人,但不包括 Adams 和 Carter ;某些数据库会列出介于 Adams 和 Carter 之间并包括 Adams 和 Carter 的人;而另一些数据库会列出介于 Adams 和 Carter 之间的人,包括 Adams ,但不包括 Carter 。所以,请检查你的数据库是如何处理 BETWEEN.AND 操作符的!实例
17、 2如需使用上面的例子显示范围之外的人,请使用 NOT 操作符:SELECT * FROM PersonsWHERE LastNameNOT BETWEEN Adams AND Carter结果集:IdLastNameFirstNameAddressCity3CarterThomasChangan StreetBeijing4GatesBillXuanwumen 10Beijing6.AliasesSQL Alias表的 SQL Alias 语法SELECT column_name(s)FROM table_nameAS alias_name列的 SQL Alias 语法SELECT colu
18、mn_name AS alias_nameFROM table_nameAlias 实例: 使用表名称别名假设我们有两个表分别是:Persons 和 Product_Orders。我们分别为它们指定别名 p 和 po。现在,我们希望列出 John Adams 的所有定单。我们可以使用下面的 SELECT 语句:SELECT po.OrderID, p.LastName, p.FirstNameFROM Persons AS p, Product_Orders AS poWHERE p.LastName=Adams AND p.FirstName=John不使用别名的 SELECT 语句:SEL
19、ECT Product_Orders.OrderID, Persons.LastName, Persons.FirstNameFROM Persons, Product_OrdersWHERE Persons.LastName=Adams AND Persons.FirstName=John从上面两条 SELECT 语句您可以看到,别名使查询程序更易阅读和书写。Alias 实例: 使用一个列名别名表 Persons:IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York
20、3CarterThomasChangan StreetBeijingSQL:SELECT LastName AS Family, FirstName AS NameFROM Persons结果:FamilyNameAdamsJohnBushGeorgeCarterThomas7.JoinSQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。Join 和 Key有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值
21、都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。请看 Persons 表:Id_PLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijing请注意,Id_P 列是 Persons 表中的的主键。这意味着没有两行能够拥有相同的 Id_P。即使两个人的姓名完全相同,Id_P 也可以区分他们。接下来请看 Orders 表:Id_OOrderNoId_P177895324467
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL高级教程 标准版 SQL 高级 教程
限制150内