广东海洋大学第四章SQLSERVER的使用.ppt
《广东海洋大学第四章SQLSERVER的使用.ppt》由会员分享,可在线阅读,更多相关《广东海洋大学第四章SQLSERVER的使用.ppt(211页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章第四章 SQL SERVERSQL SERVER的使用的使用本章内容:介绍本章内容:介绍SQL SERVERSQL SERVER的主要功能操作的主要功能操作示例示例1 1:RecruitmentRecruitment示例示例2 2:GlobalToyzGlobalToyzq 查询数据库查询数据库*关于招收新人的材料存储在本地关于招收新人的材料存储在本地SQL Server SQL Server 的的RECRUITMENTRECRUITMENT数据库中。这些表格包括关于候选人、他们的资格和联系材料、数据库中。这些表格包括关于候选人、他们的资格和联系材料、可提供的空缺等方面的数据,及招收新人
2、代理需要的其它信息。可提供的空缺等方面的数据,及招收新人代理需要的其它信息。查询所有外部候选者的名字,城市,和电话号码的信息。查询所有外部候选者的名字,城市,和电话号码的信息。SELECT vFirstName,vLastName,cCity,cPhoneSELECT vFirstName,vLastName,cCity,cPhoneFROM FROM ExternalCandidateExternalCandidate*显示显示RecruitmentRecruitment数据库中各种职位和当前人数。数据库中各种职位和当前人数。SELECT cPositionCode,vDescription
3、,SELECT cPositionCode,vDescription,iCurrentLength iCurrentLengthFROM FROM PositionPositionv 显示带用户自定义标题的列显示带用户自定义标题的列 当查询结果对照当查询结果对照SELECTSELECT语句显示时,结果集的列名与表中的语句显示时,结果集的列名与表中的列名是一样的。当任何一种表达式作用在列上时,列名是一样的。当任何一种表达式作用在列上时,SQL SERVERSQL SERVER隐隐藏列标题。藏列标题。用户自定义的列标题可以代替缺省列标题。包括两种方法:用户自定义的列标题可以代替缺省列标题。包括两种
4、方法:一种列标题在列名之前,一种列标题在列名之后。一种列标题在列名之前,一种列标题在列名之后。*查询合同招聘人员的名字和他们的雇佣费用。要求查询结果查询合同招聘人员的名字和他们的雇佣费用。要求查询结果的列标题作出改变,显示格式如下:的列标题作出改变,显示格式如下:招聘人员名字招聘人员名字雇佣薪金雇佣薪金方法方法1 1:(其中(其中asas可以省略)可以省略)SELECT cName SELECT cName asas 招聘人员名字招聘人员名字,siPercentageCharge siPercentageCharge asas 雇佣薪金雇佣薪金FROM ContractRecruiterFRO
5、M ContractRecruiter方法方法2 2:SELECT SELECT 招聘人员名字招聘人员名字=cName,cName,雇佣薪金雇佣薪金=siPercentageChargesiPercentageChargeFROM ContractRecruiterFROM ContractRecruiterv 使用通配符使用通配符 给给RecruitmentRecruitment雇员(雇员(EmployeeEmployee)表的表的cPhonecPhone列增加一个约束,列增加一个约束,要求该列的字符串格式为要求该列的字符串格式为(*)*-*-*,其中,其中*为数为数字字符。如字字符。如(1
6、20)903-3989(120)903-3989就是符合条件的一个例子。就是符合条件的一个例子。ALTERALTER TABLETABLE Employee EmployeeADD CONSTRAINT ADD CONSTRAINT CK_Employee_cPhoneCK_Employee_cPhoneCHECK CHECK(cPhone(cPhone likelike(0-90-90-9)0-90-90-(0-90-90-9)0-90-90-9-0-90-90-90-9)9-0-90-90-90-9)*根据测试的成绩,成绩最高的三位外部候选人将获得面试的根据测试的成绩,成绩最高的三位外部候
7、选人将获得面试的机会。测试的时间是机会。测试的时间是20012001年年3 3月份进行的。先需要列出满足条件月份进行的。先需要列出满足条件的外部候选人的左右信息。的外部候选人的左右信息。v 显示顶部几行显示顶部几行 与与SELECTSELECT语句一起使用的语句一起使用的TOPTOP子句限制了结果集合中返回的行子句限制了结果集合中返回的行数。数。语法:语法:SELECTSELECT TOPTOP nPERCENT nPERCENT 列名列名,列名列名 FROMFROM 表名表名 WHERE WHERE 查询条件查询条件 ORDER BY ORDER BY 列名列名,列名列名*根据测试的成绩,成
8、绩最高的三位外部候选人将获得面试的根据测试的成绩,成绩最高的三位外部候选人将获得面试的机会。测试的时间是机会。测试的时间是20012001年年3 3月份进行的。先需要列出满足条件月份进行的。先需要列出满足条件的外部候选人的左右信息。查询语句如下:的外部候选人的左右信息。查询语句如下:语法:语法:SELECTSELECT TOPTOP 3 3*FROMFROM ExternalCandidate ExternalCandidateWHEREWHERE dTestDate=2001-3-1 dTestDate=2001-3-1 AND dTestDate=3/31/2001 AND dTestDa
9、te=3/31/2001ORDER BYORDER BY siTestScore siTestScore DESCDESCv GROUP BY ALLGROUP BY ALL GROUP BYGROUP BY子句中的关键字子句中的关键字ALLALL用于显示所有的组,包括那些被用于显示所有的组,包括那些被WHEREWHERE子句排除的组。子句排除的组。例子:例子:SELECTSELECT Sno,AVG(Grade)Sno,AVG(Grade)FROMFROM SC SCWHEREWHERE Sno in(95001,95002)Sno in(95001,95002)GROUP BYGROUP
10、BY ALLALL Sno Snov 使用使用COMPUTECOMPUTE和和COMPUTE BYCOMPUTE BY子句子句 使用带使用带SELECTSELECT语句的语句的COMPUTECOMPUTE子句,在查询结果中使用聚合函子句,在查询结果中使用聚合函数产生汇总行。数产生汇总行。COMPUTECOMPUTE子句用于对于整个查询结果产生总计值,子句用于对于整个查询结果产生总计值,COMPUTE BYCOMPUTE BY子句对于每个组产生小计值。子句对于每个组产生小计值。语法:语法:SELECTSELECT 列名列名,列名列名 FROMFROM 表名表名 WHEREWHERE 查询条件查询
11、条件 ORDER BYORDER BY 列名列名,列名列名COMPUTECOMPUTE 聚合函数(列名)聚合函数(列名),聚合函数聚合函数(列名列名)BYBY 列名列名,列名列名*打印出所有的选修记录,并在查询结果的底部打印汇总所有打印出所有的选修记录,并在查询结果的底部打印汇总所有学生的平均成绩,总成绩。学生的平均成绩,总成绩。SELECTSELECT *FROMFROM SC SCCOMPUTECOMPUTE AVG(Grade),SUM(Grade)AVG(Grade),SUM(Grade)*打印出每个学生的选修记录,并在每个学生查询结果的尾部打印出每个学生的选修记录,并在每个学生查询结
12、果的尾部打印汇总每个学生的平均成绩,总成绩。打印汇总每个学生的平均成绩,总成绩。SELECTSELECT *FROMFROM SC SC ORDER BYORDER BY Sno Sno COMPUTECOMPUTE AVG(Grade),SUM(Grade)AVG(Grade),SUM(Grade)BYBY Sno Sno*对于对于pubspubs数据库,打印每类书籍的类型名称和预付款项,在数据库,打印每类书籍的类型名称和预付款项,在每种类型书籍记录的尾部汇总每类书籍的预付款总额每种类型书籍记录的尾部汇总每类书籍的预付款总额SELECTSELECT Tyte,Advance Tyte,Adv
13、anceFROMFROM Titles Titles ORDER BYORDER BY Type Type COMPUTECOMPUTE SUM(Advance)SUM(Advance)BYBY Type Type COMPUTE COMPUTE和和COMPUTE BYCOMPUTE BY子句的使用规则子句的使用规则*COMPUTECOMPUTE子句所用到的所有列必须出现在子句所用到的所有列必须出现在SELECTSELECT列表中列表中*使用使用COMPUTE BYCOMPUTE BY子句,必须同时使用子句,必须同时使用ORDER BYORDER BY子句子句*在在COMPUTE BYCOMP
14、UTE BY子句列出的列,必须与子句列出的列,必须与ORDER BYORDER BY子句使用的列子句使用的列匹配匹配*在在COMPUTE BYCOMPUTE BY子句中,不同聚合函数可以用于一个以上的列子句中,不同聚合函数可以用于一个以上的列*针对上述规则中的第三条和第四条针对上述规则中的第三条和第四条当对当对TitlesTitles表查询时使用如下的表查询时使用如下的ORDER BYORDER BY子句时:子句时:ORDER BYORDER BY Type Type,Price,AdvancePrice,Advance下面的下面的COMPUTE BYCOMPUTE BY子句,对于上面的子句,
15、对于上面的ORDER BYORDER BY子句来说是有效的子句来说是有效的COMPUTE COMPUTE AVG(Advance),AVG(Price)AVG(Advance),AVG(Price)BY BY Type Type,Price,AdvancePrice,AdvanceCOMPUTE COMPUTE AVG(Advance),AVG(Price)AVG(Advance),AVG(Price)BY BY Type Type,PricePriceCOMPUTE COMPUTE AVG(Advance),AVG(Price)AVG(Advance),AVG(Price)BY BY Typ
16、e Typev 内连接查询内连接查询。查询外部候选人的名字以及他们的招聘代理的。查询外部候选人的名字以及他们的招聘代理的名称。名称。SELECTSELECT vFirstName,vLastName,cNamevFirstName,vLastName,cNameFROMFROM ExternalCandidateExternalCandidate JOINJOIN RecruitmentAgenciesRecruitmentAgenciesONON ExternalCandidate.cAgencyCode=ExternalCandidate.cAgencyCode=RecruitmentAg
17、encies.cAgencyCodeRecruitmentAgencies.cAgencyCode *思考:查询外部候选人和他们看招聘广告查询的报纸。要求思考:查询外部候选人和他们看招聘广告查询的报纸。要求的信息包括外部候选人的姓名和报纸的名称。的信息包括外部候选人的姓名和报纸的名称。SELECTSELECT vFirstName vFirstName,vLastNamevLastName,cNewspaperNamecNewspaperNameFROMFROM ExternalCandidate ExternalCandidate JOINJOIN NewsAd NewsAd ONON Ex
18、ternalCandidate.cNewsAdNo=NewsAd.cNewsAdNo ExternalCandidate.cNewsAdNo=NewsAd.cNewsAdNoJOINJOIN Newspaper Newspaper ONON NewsAd.cNewspaperCode=NewsAd.cNewspaperCode=Newspaper.cNewspaperCodeNewspaper.cNewspaperCodev 外连接查询外连接查询。列出所有外部候选人的名字,由招聘代理方式。列出所有外部候选人的名字,由招聘代理方式来的候选人显示他们的招聘代理的名字。来的候选人显示他们的招聘代理的
19、名字。SELECTSELECT vFirstName,vLastName,cNamevFirstName,vLastName,cNameFROMFROM ExternalCandidateExternalCandidate LEFT OUTER LEFT OUTER JOINJOIN RecruitmentAgenciesRecruitmentAgenciesONON ExternalCandidate.cAgencyCode=ExternalCandidate.cAgencyCode=RecruitmentAgencies.cAgencyCodeRecruitmentAgencies.cAg
20、encyCode v 交叉连接交叉连接。实现两个表的笛卡尔乘积的连接。实现两个表的笛卡尔乘积的连接。SELECTSELECT *FROM FROM Student,SCStudent,SC另一种形式的交叉连接:另一种形式的交叉连接:SELECTSELECT *FROM FROM Student Student CROSS JOINCROSS JOIN SC SCv 自身连接自身连接。并列输出价格为。并列输出价格为2.99002.9900的一对书籍的书名。的一对书籍的书名。SELECTSELECT *FROM FROM titles t1 titles t1 JOINJOIN titles t2
21、 titles t2 ONON t1.price=t2.price t1.price=t2.price WHEREWHERE t1.price=2.99 t1.price=2.99 ANDAND t1.titlet2.title t1.title(t1.Advance(SELECTSELECT AVGAVG(t2.Advance)(t2.Advance)FROMFROM titles t2 titles t2 WHERE WHERE t1.Type=t2.Type t1.Type=t2.Type)*思考:列出学生选课记录,只列出那些高于自己平均分的那思考:列出学生选课记录,只列出那些高于自己平
22、均分的那些记录的学号、课程号、成绩。些记录的学号、课程号、成绩。SELECTSELECT Sno Sno,CnoCno,GradeGradeFROMFROM SC X SC XWHEREWHERE X.Grade(X.Grade(SELECTSELECT AVGAVG(Grade)(Grade)FROMFROM SC Y SC Y WHEREWHERE X.Sno=Y.Sno)X.Sno=Y.Sno)v 抽取数据到另一个表中抽取数据到另一个表中。需要需要20012001年年5 5月申请招聘的外部候选月申请招聘的外部候选人的材料,抽取这些人的材料到一个新表中。人的材料,抽取这些人的材料到一个新表
23、中。语法:语法:SELECTSELECT 列名列名,列名列名 INTOINTO 新表名新表名FROMFROM 表名表名 WHERE WHERE 查询条件查询条件 SELECTSELECT *INTOINTO#tempExternalCandidate#tempExternalCandidateFROM FROM ExternalCandidateExternalCandidateWHERE WHERE dDateOfApplication=2001-5-31 dDateOfApplication=2001-5-1 dDateOfApplication=2001-5-1注:注:在在SQL SER
24、VERSQL SERVER中,对象前加上符号中,对象前加上符号#表示该对象为临时表示该对象为临时对象,临时对象存储在数据库对象,临时对象存储在数据库tempdbtempdb中。一个中。一个#表示为局部表示为局部临时表,两个临时表,两个#表示全局临时表。表示全局临时表。*思考:创建一个全局临时表思考:创建一个全局临时表abcabc,其中包括其中包括4 4个属性(编号、个属性(编号、姓名、性别、年龄),其中编号为整数类型,且为自动编号类型,姓名、性别、年龄),其中编号为整数类型,且为自动编号类型,初始编号值为初始编号值为100100,以后每一个增,以后每一个增1 1。其余属性自定类型。其余属性自定
25、类型。CREATE TABLE CREATE TABLE#abc(#abc(itemNo itemNo intint IDENTITYIDENTITY(100,1),(100,1),itemName itemName varcharvarchar(50),(50),itemgender itemgender ncharnchar(1),(1),itemage itemage intint)IDENTITYIDENTITY:IDENTITYIDENTITY用于那些需要自动产生唯一系统值的列,用于那些需要自动产生唯一系统值的列,该特性可用于产生有序列。具体用法:该特性可用于产生有序列。具体用法:I
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 广东 海洋大学 第四 SQLSERVER 使用
限制150内