SQL语句的基本语法_第1页
SQL语句的基本语法_第2页
SQL语句的基本语法_第3页
SQL语句的基本语法_第4页
SQL语句的基本语法_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SQL语句的基基本语法一.SELECCT语句的完完整语法为:SELECCTALLL|DISTTINCT|DISTIINCTROOW|TOPP*|ttalbe.*|taable.fieldd1AS aliass1,tablee.fieeld2AAS aliias2,FROM tableeexpreessionn,IN exxternaaldataabaseWHERREGGROUP BYHAVINNGOORDER BYWITH OWNERRACCESSS OPTTION说说明:用中括括号()括起来的部部分表示是可可选的,用大大括号()括起来的的部分是表示示必须从中选选择其中的一一个。1 FROM子

2、子句FROMM子句指定了了SELECCT语句中字字段的来源。FFROM子句句后面是包含含一个或多个个的表达式(由逗号分开开),其中的的表达式可为为单一表名称称、已保存的的查询或由 INNERR JOINN、LEFTT JOINN 或 RIIGHT JJOIN 得得到的复合结结果。如果表表或查询存储储在外部数据据库,在INN 子句之后后指明其完整整路径。例:下列SQLL语句返回所所有有定单的的客户:SEELECT OrderrID,Cuustomeer.cusstomerrIDFROOM Ordders CCustommersWHHERE OOrderss.CusttomerIID=Cussto

3、merrs.CusstomeeersID2 ALL、DDISTINNCT、DIISTINCCTROW、TTOP谓词(1) ALLL 返回满满足SQL语语句条件的所所有记录。如如果没有指明明这个谓词,默默认为ALLL。例:SEELECT ALL FFirstNName,LLastNaameFROOM Empployeees(2) DISTIINCT 如如果有多个记记录的选择字字段的数据相相同,只返回回一个。(33) DISSTINCTTROW 如如果有重复的的记录,只返返回一个(44) TOPP显示查询头头尾若干记录录。也可返回回记录的百分分比,这是要要用 TOPP N PEERCENTT子句(

4、其中中N 表示百百分比)例:返回5%定定货额最大的的定单SELLECT TTOP 5 PERCEENT*FRROM Orderr DetaailsOORDER BY UnnitPriice*Quuantitty*(1-Discoount) DESC3 用 AS 子句为字段段取别名如果果想为返回的的列取一个新新的标题,或或者,经过对对字段的计算算或总结之后后,产生了一一个新的值,希希望把它放到到一个新的列列里显示,则则用AS保留留。例:返回回FirsttName字字段取别名为为NickNNameSEELECT FirsttName AS NiickNamme ,LaastNamme ,Ciity

5、FROOM Empployeees例:返回回新的一列显显示库存价值值SELECCT ProoductNName ,UnitPPrice ,UnittsInSttock ,UnitPPrice*UnitssInStoock ASS valuueInSttockFRROM Prroductts二 .WHERRE 子句指指定查询条件件1 比较运算符符比较运算符符 含义= 等于 大大于= 大于于等于= 小于等于 不等于于! 不大大于!#11/1/966# ANDD OrdeerDatee#966-1-1#也可以表示示为:WHEERE OrrderDaateDaatevallue(11/1/966)使用

6、 NOOT 表达式式求反。例:查看96年年1月1日以以后的定单WWHERE Not OOrderDDateQuanntity另另一种方法是是用 Miccrosoff JET SQL 独独有的 JNNNER JJOIN语法法:FROMM tablle1 INNNER JJOIN ttable22ON taable1.fieldd1 commparission ttable22.fielld2其中ccomparrisionn 就是前面面WHEREE子句用到的的比较运算符符。SELEECT FiirstNaame,laastNamme,OrdderID,CustoomerIDD,OrdeerDate

7、eFROM EmplooyeesIINNER JOIN Orderrs ON Emplooyees.EmplooyeeIDD=Ordeers.EmmployeeeID注意意:INNEER JOIIN不能连接接Memo OLE OObjectt Singgle Doouble 数据类型字字段。在一个个JOIN语语句中连接多多个ON子句句语法:SELLECT ffieldssFROM tablee1 INNNER JOOIN taable2OON tabble1.ffield11 comppopr ttable22.fielld1 ANNDON ttable11.fielld2 coompoprr

8、 tablle2.fiield2 ORON tablee1.fieeld3 ccompoppr tabble2.ffield33也可以SELLECT ffieldssFROM tablee1 INNNER JOOIN(taable2 INNERR JOINN ( tablee3INNNER JOOER ( taablexINNERR JOINNON ttable11.fielld1 coompoprr tablle2.fiield1OON tabble1.ffield22 comppopr ttable22.fielld2ON tablee1.fieeld3 ccompoppr tabble2

9、.ffield33外部连接返返回更多记录录,在结果中中保留不匹配配的记录,不不管存不存在在满足条件的的记录都要返返回另一侧的的所有记录。FROM table LEFT|RIGHTJOIN table2ON table1.field1comparision table.field2用左连接来建立外部连接,在表达式的左边的表会显示其所有的数据例:不管有没有定货量,返回所有商品SELECT ProductName ,OrderIDFROM ProductsLEFT JOIN Orders ON Products.PrductsID=Orders.ProductID右连接与左连接的差别在于:不管左侧表

10、里有没有匹配的记录,它都从左侧表中返回所有记录。例:如果想了解客户的信息,并统计各个地区的客户分布,这时可以用一个右连接,即使某个地区没有客户,也要返回客户信息。空值不会相互匹配,可以通过外连接才能测试被连接的某个表的字段是否有空值。SELECT *FROM talbe1LEFT JOIN table2 ON table1.a=table2.c1 连接查询中中使用Iiff函数实现以以0值显示空空值Iif表表达式: IIif(IssNull(Amounnt,0,AAmout)例:无论定定货大于或小小于¥50,都都要返回一个个标志。Iiif(Ammount50,?Big oorder?,?Smaa

11、ll orrder?)五. 分组和总总结查询结果果在SQL的的语法里,GGROUP BY和HAAVING子子句用来对数数据进行汇总总。GROUUP BY子子句指明了按按照哪几个字字段来分组,而而将记录分组组后,用HAAVING子子句过滤这些些记录。GRROUP BBY 子句的的语法SELLECT ffidldllistFRROM taableWHHERE ccriterriaGRROUP BBY grooupfieeldlisst HAAVING grouppcriteeria注:Miccrosofft Jett数据库 JJet 不能能对备注或OOLE对象字字段分组。GGROUP BY字段中中

12、的Nulll值以备分组组但是不能被被省略。在任任何SQL合合计函数中不不计算Nulll值。GRROUP BBY子句后最最多可以带有有十个字段,排排序优先级按按从左到右的的顺序排列。例:在WA地区的雇员表中按头衔分组后,找出具有同等头衔的雇员数目大于1人的所有头衔。SELECT Title ,Count(Title) as TotalFROM EmployeesWHERE Region = WAGROUP BY TitleHAVING Count(Title)1JET SQL 中的聚积函数聚集函数 意义SUM ( ) 求和AVG ( ) 平均值COUNT ( ) 表达式中记录的数目COUNT (

13、* ) 计算记录的数目MAX 最大值MIN 最小值VAR 方差STDEV 标准误差FIRST 第一个值LAST 最后一个值六. 用Parrameteers声明创创建参数查询询Parammeterss声明的语法法:PARAAMETERRS namme dattatypee,namme dattatypee, 其中naame 是参参数的标志符符,可以通过过标志符引用用参数.Daatatyppe说明参数数的数据类型型.使用时要要把PARAAMETERRS 声明置置于任何其他他语句之前.例:PARAAMETERRSLoww pricce Cuurrenccy,Beeginniing daatedaat

14、atimmeSELEECT OrrderIDD ,OrdderAmoountFRROM OrrdersWWHERE OrderrAMounntloow priiceANND OrdderDatte=BBeginnning ddate七. 功能查询询所谓功能查查询,实际上上是一种操作作查询,它可可以对数据库库进行快速高高效的操作.它以选择查查询为目的,挑选出符合合条件的数据据,再对数据据进行批处理理.功能查询询包括更新查查询,删除查查询,添加查查询,和生成成表查询.1 更新查询UUPDATEE子句可以同同时更改一个个或多个表中中的数据.它它也可以同时时更改多个字字段的值.更更新查询语法法:UPD

15、AATE 表名名SET 新新值WHERRE 准则例例:英国客户户的定货量增增加5%,货货运量增加33%UPDAATE OEEDERSSSET OrrderAmmount = OrdderAmoount *1.1Frreightt = Frreightt*1.033WHEREE ShippCounttry = UK2 删除查询DDELETEE子句可以使使用户删除大大量的过时的的或冗于的数数据.注:删删除查询的对对象是整个记记录.DELLETE子句句的语法:DDELETEE 表名.*FROOM 来源表表WHEREE 准则例: 要删除所所有94年前前的定单DEELETE *FROMM Ordeers

16、WHEERE OrrderDaata#994-1-11#3 追加查询IINSERTT子句可以将将一个或一组组记录追加到到一个或多个个表的尾部.INTO 子句指定接接受新记录的的表valuueS 关键键字指定新记记录所包含的的数据值.IINSERTT 子句的语语法:INSSETR IINTO 目目的表或查询询(字段1,字段2,)valuueS(数值值1,数值22,)例:增加一个客客户INSEERT INNTO Emmployeees(FiirstNaame,LaastNamme,tittle)vaalueS(Harrry,WWashinngton,Traainee)4 生成表查询询可以一次性性地

17、把所有满满足条件的记记录拷贝到一一张新表中.通常制作记记录的备份或或副本或作为为报表的基础础.SELEECT INNTO子句用用来创建生成成表查询语法法:SELEECT 字段段1,字段22,INTTO 新表IN 外部部数据库FFROM 来来源数据库WWHERE 准则例:为为定单制作一一个存档备份份SELECCT *INNTO OrrdersAArchivveFROMM Ordeers八. 联合查询询UNIONN运算可以把把多个查询的的结果合并到到一个结果集集里显示.UUNION运运算的一般语语法:表查询1 UUNION ALL查询2 UUNION 例:返回回巴西所有供供给商和客户户的名字和城城

18、市SELEECT CoompanyyName,CityFFROM SSuppliiersWHHERE CCountrry = BraziilUNIIONSELLECT CCompannyNamee,CityyFROM CustoomersWWHERE Counttry = Brazzil注:缺省的情况况下,UNIION子句不不返回重复的的记录.如果果想显示所有有记录,可以以加ALL选选项UNIOON运算要求求查询具有相相同数目的字字段.但是,字段数据类类型不必相同同.每一个查查询参数中可可以使用GRROUP BBY 子句 或 HAVVING 子子句进行分组组.要想以指指定的顺序来来显示返回的的

19、数据,可以以在最后一个个查询的尾部部使用OREEER BYY子句.九. 交叉查询询交叉查询可可以对数据进进行总和,平平均,计数或或其他总和计计算法的计算算,这些数据据通过两种信信息进行分组组:一个显示示在表的左部部,另一个显显示在表的顶顶部.Miccrosofft Jett SQL 用TRANNSFROMM语句创建交交叉表查询语语法:TRAANSFORRM agggfuncttionSEELECT 语句GROOUP BYY 子句PIIVOT ppivotffieldIN(vaalue1 ,vallue2,) Aggffouncttion指SSQL聚积函函数,SELLECT语句句选择作为标标题的

20、的字段段,GROUUP BY 分组说明:Pivottfieldd 在查询结结果集中创建建列标题时用用的字段或表表达式,用可可选的IN子子句限制它的的取值.vaalue代表表创建列标题题的固定值.例:显示在在1996年年里每一季度度每一位员工工所接的定单单的数目:TTRANSFFORM CCount(OrderrID)SEELECT FirsttName&LaastNamme AS FullNNameFRROM Emmployeees INNNER JJOIN OOrderssON Emmployeees.EmmployeeeID = Ordeers.EmmployeeeIDWHHERE DDa

21、tePaart(“yyyyy”,OrderrDate)= 19996GRROUP BBY FirrstNamme&LastNNameORRDER BBY FirrstNamme&LastNNamePOOVOT DDatePaart(“qq”,OrdderDatte)&季季度十 .子查询子子查询可以理理解为 套查查询.子查询询是一个SEELECT语语句.1 表达式的值值与子查询返返回的单一值值做比较语法法:表达式 compaarisioon ANNY|ALLL|SOMEE(子查询询)说明:ANYY和SOMEE谓词是同义义词,与比较较运算符(=,=)一一起使用.返返回一个布尔尔值Truee或Falsse.ANYY的意思是,表达式与子子查询返回的的一系列的值值逐一比较,只

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论