SQL高级教程标准版

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1.TOPTOP子句TOP子句用于规定要返回的记录的数目。对于拥有数千条记录的大型表来说,TOP子句是非常有用的。注释:并非所有的数据库系统都支持TOP子句。SQLServer的语法:SELECTTOPnumber|percentcolumn_name(s)FROMtable_nameMySQL和Oracle中的SQLSELECTTOP是等价的MySQL语法SELECTcolumn_name(s)FROMtable_nameLIMITnumber例子SELECT*FROMPersonsLIMIT5Oracle语法SELECTcolumn_name(s)FROMtable_nameWHEREROWNUM=number例子SELECT*FROMPersonsWHEREROWNUM=5原始的表(用在例子中的):Persons表:IdLastNameFirstNameAddressCity1AdamsJohnOxfordStreetLondon2BushGeorgeFifthAvenueNewYork3CarterThomasChanganStreetBeijing4ObamaBarackPennsylvaniaAvenueWashingtonSQLTOP实例现在,我们希望从上面的Persons表中选取头两条记录。我们可以使用下面的SELECT语句:SELECTTOP2*FROMPersons结果:IdLastNameFirstNameAddressCity1AdamsJohnOxfordStreetLondon2BushGeorgeFifthAvenueNewYorkSQLTOPPERCENT实例现在,我们希望从上面的Persons表中选取50%的记录。我们可以使用下面的SELECT语句:SELECTTOP50PERCENT*FROMPersons结果:IdLastNameFirstNameAddressCity1AdamsJohnOxfordStreetLondon2BushGeorgeFifthAvenueNewYork2.LikeLIKE操作符用于在WHERE子句中搜索列中的指定模式。LIKE操作符LIKE操作符用于在WHERE子句中搜索列中的指定模式。SQLLIKE操作符语法SELECTcolumn_name(s)FROMtable_nameWHEREcolumn_nameLIKEpattern原始的表(用在例子中的):Persons表:IdLastNameFirstNameAddressCity1AdamsJohnOxfordStreetLondon2BushGeorgeFifthAvenueNewYork3CarterThomasChanganStreetBeijingLIKE操作符实例例子1现在,我们希望从上面的Persons表中选取居住在以N开始的城市里的人:我们可以使用下面的SELECT语句:SELECT*FROMPersonsWHERECityLIKE'N%'提示:%可用于定义通配符(模式中缺少的字母)。结果集:IdLastNameFirstNameAddressCity2BushGeorgeFifthAvenueNewYork例子2接下来,我们希望从Persons表中选取居住在以g结尾的城市里的人:我们可以使用下面的SELECT语句:SELECT*FROMPersonsWHERECityLIKE'%g'结果集:IdLastNameFirstNameAddressCity3CarterThomasChanganStreetBeijing例子3接下来,我们希望从Persons表中选取居住在包含lon的城市里的人:我们可以使用下面的SELECT语句:SELECT*FROMPersonsWHERECityLIKE'%lon%'结果集:IdLastNameFirstNameAddressCity1AdamsJohnOxfordStreetLondon例子4通过使用NOT关键字,我们可以从Persons表中选取居住在不包含lon的城市里的人:我们可以使用下面的SELECT语句:SELECT*FROMPersonsWHERECityNOTLIKE'%lon%'结果集:IdLastNameFirstNameAddressCity2BushGeorgeFifthAvenueNewYork3CarterThomasChanganStreetBeijing3.通配符在搜索数据库中的数据时,您可以使用SQL通配符。SQL通配符在搜索数据库中的数据时,SQL通配符可以替代一个或多个字符。SQL通配符必须与LIKE运算符一起使用。在SQL中,可使用以下通配符:通配符描述%替代一个或多个字符_仅替代一个字符[charlist]字符列中的任何单一字符[^charlist]或者[!charlist]不在字符列中的任何单一字符原始的表(用在例子中的):Persons表:IdLastNameFirstNameAddressCity1AdamsJohnOxfordStreetLondon2BushGeorgeFifthAvenueNewYork3CarterThomasChanganStreetBeijing使用%通配符例子1现在,我们希望从上面的Persons表中选取居住在以Ne开始的城市里的人:我们可以使用下面的SELECT语句:SELECT*FROMPersonsWHERECityLIKE'Ne%'结果集:IdLastNameFirstNameAddressCity2BushGeorgeFifthAvenueNewYork例子2接下来,我们希望从Persons表中选取居住在包含lond的城市里的人:我们可以使用下面的SELECT语句:SELECT*FROMPersonsWHERECityLIKE'%lond%'结果集:IdLastNameFirstNameAddressCity1AdamsJohnOxfordStreetLondon使用_通配符例子1现在,我们希望从上面的Persons表中选取名字的第一个字符之后是eorge的人:我们可以使用下面的SELECT语句:SELECT*FROMPersonsWHEREFirstNameLIKE'_eorge'结果集:IdLastNameFirstNameAddressCity2BushGeorgeFifthAvenueNewYork例子2接下来,我们希望从Persons表中选取的这条记录的姓氏以C开头,然后是一个任意字符,然后是r,然后是任意字符,然后是er:我们可以使用下面的SELECT语句:SELECT*FROMPersonsWHERELastNameLIKE'C_r_er'结果集:IdLastNameFirstNameAddressCity3CarterThomasChanganStreetBeijing使用[charlist]通配符例子1现在,我们希望从上面的Persons表中选取居住的城市以A或L或N开头的人:我们可以使用下面的SELECT语句:SELECT*FROMPersonsWHERECityLIKE'[ALN]%'结果集:IdLastNameFirstNameAddressCity1AdamsJohnOxfordStreetLondon2BushGeorgeFifthAvenueNewYork例子2现在,我们希望从上面的Persons表中选取居住的城市不以A或L或N开头的人:我们可以使用下面的SELECT语句:SELECT*FROMPersonsWHERECityLIKE'[!ALN]%'结果集:IdLastNameFirstNameAddressCity3CarterThomasChanganStreetBeijing4.InIN操作符IN操作符允许我们在WHERE子句中规定多个值。SQLIN语法SELECTcolumn_name(s)FROMtable_nameWHEREcolumn_nameIN(value1,value2,...)原始的表(在实例中使用:)Persons表:IdLastNameFirstNameAddressCity1AdamsJohnOxfordStreetLondon2BushGeorgeFifthAvenueNewYork3CarterThomasChanganStreetBeijingIN操作符实例现在,我们希望从上表中选取姓氏为Adams和Carter的人:我们可以使用下面的SELECT语句:SELECT*FROMPersonsWHERELastNameIN('Adams','Carter')结果集:IdLastNameFirstNameAddressCity1AdamsJohnOxfordStreetLondon3CarterThomasChanganStreetBeijing5.BetweenBETWEEN操作符在WHERE子句中使用,作用是选取介于两个值之间的数据范围。BETWEEN操作符操作符BETWEEN...AND会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。SQLBETWEEN语法SELECTcolumn_name(s)FROMtable_nameWHEREcolumn_nameBETWEENvalue1ANDvalue2原始的表(在实例中使用:)Persons表:IdLastNameFirstNameAddressCity1AdamsJohnOxfordStreetLondon2BushGeorgeFifthAvenueNewYork3CarterThomasChanganStreetBeijing4GatesBillXuanwumen10BeijingBETWEEN操作符实例如需以字母顺序显示介于Adams(包括)和Carter(不包括)之间的人,请使用下面的SQL:SELECT*FROMPersonsWHERELastNameBETWEEN'Adams'AND'Carter'结果集:IdLastNameFirstNameAddressCity1AdamsJohnOxfordStreetLondon2BushGeorgeFifthAvenueNewYork重要事项:不同的数据库对BETWEEN...AND操作符的处理方式是有差异的。某些数据库会列出介于Adams和Carter之间的人,但不包括Adams和Carter;某些数据库会列出介于Adams和Carter之间并包括Adams和Carter的人;而另一些数据库会列出介于Adams和Carter之间的人,包括Adams,但不包括Carter。所以,请检查你的数据库是如何处理BETWEEN....AND操作符的!实例2如需使用上面的例子显示范围之外的人,请使用NOT操作符:SELECT*FROMPersonsWHERELastNameNOTBETWEEN'Adams'AND'Carter'结果集:IdLastNameFirstNameAddressCity3CarterThomasChanganStreetBeijing4GatesBillXuanwumen10Beijing6.AliasesSQLAlias表的SQLAlias语法SELECTcolumn_name(s)FROMtable_nameASalias_name列的SQLAlias语法SELECTcolumn_nameASalias_nameFROMtable_nameAlias实例:使用表名称别名假设我们有两个表分别是:Persons和Product_Orders。我们分别为它们指定别名p和po。现在,我们希望列出JohnAdams的所有定单。我们可以使用下面的SELECT语句:SELECTpo.OrderID,p.LastName,p.FirstNameFROMPersonsASp,Product_OrdersASpoWHEREp.LastName='Adams'ANDp.Fi

1 / 67
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功