《SQL语句基础之DML》PPT课件.ppt

上传人:公**** 文档编号:569537509 上传时间:2024-07-30 格式:PPT 页数:92 大小:312.50KB
返回 下载 相关 举报
《SQL语句基础之DML》PPT课件.ppt_第1页
第1页 / 共92页
《SQL语句基础之DML》PPT课件.ppt_第2页
第2页 / 共92页
《SQL语句基础之DML》PPT课件.ppt_第3页
第3页 / 共92页
《SQL语句基础之DML》PPT课件.ppt_第4页
第4页 / 共92页
《SQL语句基础之DML》PPT课件.ppt_第5页
第5页 / 共92页
点击查看更多>>
资源描述

《《SQL语句基础之DML》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《SQL语句基础之DML》PPT课件.ppt(92页珍藏版)》请在金锄头文库上搜索。

1、第第3章章 SQL语句基础之语句基础之DML授课人:吴志霞电话:15305553060QQ:1035837738http:/ 将学生将学生200215126的年龄改为的年龄改为22岁岁 UPDATE Student SET Sage=22 WHERE Sno= 200215126 例例 将所有学生的年龄增加将所有学生的年龄增加1岁岁 UPDATE Student SET Sage= Sage+1例例 将计算机科学系全体学生的成绩置零。将计算机科学系全体学生的成绩置零。 UPDATE SC SET Grade=0 WHERE IS= (SELETE Sdept FROM Student WHER

2、E Student.Sno = SC.Sno)删除数据o语句格式DELETEFROMWHERE;o功能n删除指定表中满足WHERE子句条件的元组oWHERE子句n指定要删除的元组n缺省表示要删除表中的全部元组,表的定义仍在字典中三种删除方式1.删除某一个元组的值2.删除多个元组的值3.带子查询的删除语句示例例删除学号为200215128的学生记录。DELETEFROMStudentWHERESno=200215128例删除所有的学生选课记录。DELETEFROMSC;例删除计算机科学系所有学生的选课记录。DELETEFROMSCWHERECS=(SELETESdeptFROMStudentWH

3、EREStudent.Sno=SC.Sno);数据查询数据查询o语句格式SELECTALL|DISTINCT,FROM,WHEREGROUPBYHAVINGORDERBYASC|DESC;数据查询数据查询o单表查询单表查询o连接查询连接查询o嵌套查询嵌套查询o集合查询集合查询oSelect语句的一般形式语句的一般形式 单表查询单表查询o查询仅涉及一个表:n一、选择表中的若干列n二、选择表中的若干元组n三、ORDERBY子句n四、聚集函数n五、GROUPBY子句选择表中的若干列查询指定列例1查询全体学生的学号与姓名。SELECTSno,SnameFROMStudent;选择表中的若干列查询全部列

4、方法一:在SELECT关键字后面列出所有列名方法二:指定为*例查询全体学生的详细记录。SELECTSno,Sname,Ssex,Sage,SdeptFROMStudent;=SELECT*FROMStudent;选择表中的若干列查询经过计算的值oSELECT子句的可以为:n算术表达式n字符串常量n函数n列别名例查全体学生的姓名及其出生年份。SELECTSname,2009-Sage/*假定当年的年份为2009年*/FROMStudent;选择表中的若干列查询经过计算的值(示例)例查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名SELECTSname,YearofBirth:,L

5、OWER(Sdept)FROMStudent;单表查询单表查询o查询仅涉及一个表:n一、选择表中的若干列n二、选择表中的若干元组n三、ORDERBY子句n四、聚集函数n五、GROUPBY子句选择表中的若干元组DISTINCT关键词o消除取值重复的行运定DISTINCT关键词例查询选修了课程的学生学号。SELECTSnoFROMSC;=SELECTALLSnoFROMSCSELECTDISTINCTSnoFROMSC/运定DISTINCT关键词,去掉表中重复的行如果没有指定DISTINCT关键词,则缺省为ALL选择表中的若干元组查询满足条件的元组查 询 条 件谓 词比 较=,=,=,!=,!,!

6、;NOT+上述比较运算符确定范围BETWEEN AND,NOT BETWEEN AND确定集合IN,NOT IN字符匹配LIKE,NOT LIKE空 值IS NULL,IS NOT NULL多重条件(逻辑运算)AND,OR,NOT选择表中的若干元组查询满足条件的元组(示例)例查询计算机科学系全体学生的名单。SELECTSnamefromstudentwheresdept=IS例查询所有年龄在20岁以下,性别为女的学生姓名及其年龄。SelectSname,Sagefromstudentwheresage20ANDssex=女例查询年龄在2023岁(包括20岁和23岁)之间的学生的姓名、系别和年龄

7、Selectsname,sdept,sagefromStudentwheresagebetween20and23例查询既不是信息系(IS)、外语系(EN),也不是中文(CN)系的学生的姓名和性别。Selectsname,ssexfromStudentwheresdeptNOTIN(IS,EN,CN)选择表中的若干元组查询满足条件的元组(Like关键字的用法)1)匹配串为固定字符串例查询学号为200215121的学生的详细情况。SELECT*FROMStudentWHERESnoLIKE200215121;SELECT*FROMStudentWHERESno=200215121;2)匹配串为含通

8、配符的字符串(“%”与“_”)例查询所有姓李学生的姓名、学号和性别。SelectSname,Sage,SsexfromstudentwhereSnamelike李%例查询姓欧阳且全名为三个汉字的学生的姓名。SelectSnamefromstudentwhereSnamelike欧阳_3)使用换码字符将通配符转义为普通字符例查询所有以_打头第三个字为阳的学生的姓名、学号和性别。SelectSname,Sno,SsexfromstudentwhereSnamelike_阳%ESCAPESelectSname,Sno,SsexfromstudentwhereSnamelike*_阳%ESCAPE*课

9、堂练习例查询名字中第2个字为阳字的学生的姓名和学号。例查询所有不姓刘的学生姓名。SELECT SELECT SnameSname,SnoSno FROM Student FROM Student WHERE WHERE SnameSname LIKE _LIKE _阳阳% ;SELECT SELECT SnameSname,SnoSno,SsexSsex FROM Student FROM Student WHERE WHERE SnameSname NOT LIKENOT LIKE 刘刘%;选择表中的若干元组查询满足条件的元组(ISNULL或ISNOTNULL的用法)o“IS”不能用“=”代

10、替例某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。查询缺少成绩的学生的学号和相应的课程号。SELECTSno,CnoFROMSCWHEREGradeISNULL例查所有有成绩的学生学号和课程号。SELECTSno,CnoFROMSCWHEREGradeISNOTNULL;选择表中的若干元组查询满足条件的元组(多重条件查询)o逻辑运算符:AND和OR来联结多个查询条件oAND的优先级高于ORo可以用括号改变优先级o可用来实现多种其他谓词oNOTINoNOTBETWEENAND示例例查询信息系(IS)、外语系(EN)和中文系(CN)学生的姓名和性别。SELECTSname,Sse

11、xFROMStudentWHERESdeptIN(IS,EN,CN)可改写为:SELECTSname,SsexFROMStudentWHERESdept=ISORSdept=ENORSdept=CN单表查询单表查询o查询仅涉及一个表:n一、选择表中的若干列n二、选择表中的若干元组n三、ORDERBY子句n四、聚集函数n五、GROUPBY子句ORDERBY子句oORDERBY子句n可以按一个或多个属性列排序n升序:ASC;降序:DESC;缺省值为升序o当排序列含空值时nASC:排序列为空值的元组最后显示nDESC:排序列为空值的元组最先显示o示例例查询计算机系学生的学号及其姓名,查询结果按年龄降

12、序排列。例查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列。SELECT*FROMStudentORDERBYSdept,SageDESC单表查询单表查询o查询仅涉及一个表:n一、选择表中的若干列n二、选择表中的若干元组n三、ORDERBY子句n四、聚集函数n五、GROUPBY子句聚集函数o聚集函数:n计数COUNT(DISTINCT|ALL*)COUNT(DISTINCT|ALL)n计算总和SUM(DISTINCT|ALL)n计算平均值AVG(DISTINCT|ALL)n最大最小值MAX(DISTINCT|ALL)MIN(DISTINCT|ALL)示例:例查询学

13、生总人数。SELECTCOUNT(*)FROMStudent;例计算1号课程的学生平均成绩。SELECTAVG(Grade)FROMSCWHERECno=1例查询选修1号课程的学生最高分数。SELECTMAX(Grade)FROMSCWHERCno=1例查询学生07001选修课程的总分数。selectsum(score)assumfromscwheresno=07001单表查询单表查询o查询仅涉及一个表:n一、选择表中的若干列n二、选择表中的若干元组n三、ORDERBY子句n四、聚集函数n五、GROUPBY子句GROUPBY子句oGROUPBY子句分组:细化聚集函数的作用对象n未对查询结果分组

14、,聚集函数将作用于整个查询结果n对查询结果分组后,聚集函数将分别作用于每个组n作用对象是查询的中间结果表n按指定的一列或多列值分组,值相等的为一组示例:例求各个课程号及相应的选课人数。SELECTCno,COUNT(Sno)FROMSCGROUPBYCno例查询选修了3门以上课程的学生学号。SELECTsno,count(cno)FROMSCGROUPBYsnoHAVINGCOUNT(*)3oHAVING短语与WHERE子句的区别:n作用对象不同nWHERE子句作用于基表或视图,从中选择满足条件的元组nHAVING短语作用于组,从中选择满足条件的组。数据查询数据查询o单表查询单表查询o连接查询

15、连接查询o嵌套查询嵌套查询o集合查询集合查询oSelect语句的一般形式语句的一般形式 自身连接o自身连接:一个表与其自己进行连接o需要给表起别名以示区别o由于所有属性名都是同名属性,因此必须使用别名前缀例查询SQLSERVER2000,NorthWind数据库中所有雇员姓名及该雇员汇报工作的直接上级雇员姓名。Selectlow.firstName,low.lastName,high.firstName,high.lastNamefromemployeeslow,employeeshighwherelow.reportsTO=high.employeeidSelectlow.firstName

16、,low.lastName,high.firstName,high.lastNamefromemployeeslowleftouterjoinemployeeshighonlow.reportsTO=high.employeeidSelectlow.firstName,low.lastName,high.firstName,high.lastNamefromemployeeslowrightouterjoinemployeeshighonlow.reportsTO=high.employeeid内连接o也称为普通连接,又称为自然连接。用来输出满足连接条件的元组例列显学生选修课程的学号,姓名,以

17、及所选课程的编号。Selectsc.sno,sname,cnofromstudent,scwherestudent.sno=sc.sno外连接o外连接与普通连接的区别外连接与普通连接的区别n普通连接操作只输出满足连接条件的元组普通连接操作只输出满足连接条件的元组n外连接操作以指定表为连接主体,将主体表中不满足连接条件的元组一并输出外连接操作以指定表为连接主体,将主体表中不满足连接条件的元组一并输出 SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade FROM Student LEFT JOIN SC ON (Student.Sno=SC.Sno

18、); SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade FROM Student ,SC WHERE Student.Sno*=SC.Sno; /左连接左连接 SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade FROM Student RIGHT JOIN SC ON (Student.Sno=SC.Sno); SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade FROM Student ,SC WHERE Student.Sno=*SC.S

19、no; /右连接右连接外连接(续)o左外连接n列出左边关系中所有的元组o右外连接n列出右边关系中所有的元组复合条件连接o复合条件连接:使用多个连接条件例查询选修2号课程且成绩在90分以上的所有学生SELECTStudent.Sno,SnameFROMStudent,SCWHEREStudent.Sno=SC.SnoANDSC.Cno=2ANDSC.Grade90;例查询每个学生的学号、姓名、选修的课程名及成绩SELECTStudent.Sno,Sname,Cname,GradeFROMStudent,SC,Course/*多表连接多表连接*/WHEREStudent.Sno=SC.Snoand

20、SC.Cno=Course.Cno;数据查询数据查询o单表查询单表查询o连接查询连接查询o嵌套查询嵌套查询o集合查询集合查询oSelect语句的一般形式语句的一般形式 嵌套查询o嵌套查询概述n也叫子查询n一个SELECT-FROM-WHERE语句称为一个查询块查询块n将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为嵌套查询嵌套查询嵌套查询示例SELECTSname/*外层查询/父查询*/FROMStudentWHERESnoIN(SELECTSno/*内层查询/子查询*/FROMSCWHERECno=2)嵌套查询(续)n子查询的限制不能使用ORDERBY子句n

21、层层嵌套方式反映了SQL语言的结构化n有些嵌套查询可以用连接运算替代嵌套查询(续)一、带有IN谓词的子查询二、带有比较运算符的子查询三、带有ANY或ALL谓词的子查询四、带有EXISTS谓词的子查询嵌套查询-带有IN谓词的子查询例查询与“刘晨”在同一个系学习的学生。此查询要求可以分步来完成确定“刘晨”所在系名SELECTSdeptFROMStudentWHERESname=刘晨结果为:IS查找所有在IS系学习的学生。SELECTSno,Sname,SdeptFROMStudentWHERESdept=IS将第一步查询嵌入到第二步查询的条件中 SELECT Sno,Sname,Sdept FRO

22、M Student WHERE Sdept IN (SELECT Sdept FROM Student WHERE Sname= 刘晨 );子查询执行后以一个列的形式返回查询结果子查询执行后以一个列的形式返回查询结果嵌套查询-带有IN谓词的子查询SELECTSno,Sname最后在Student关系中FROMStudent取出Sno和SnameWHERESnoIN(SELECTSno然后在SC关系中找出选FROMSC修了3号课程的学生学号WHERECnoIN(SELECTCno首先在Course关系中找出FROMCourse“信息系统”的课程号,为3号WHERECname=信息系统); 例例

23、查询选修了课程名为查询选修了课程名为“ “信息系统信息系统” ”的学生学号和姓名的学生学号和姓名嵌套查询(续)一、带有IN谓词的子查询二、带有比较运算符的子查询三、带有ANY或ALL谓词的子查询四、带有EXISTS谓词的子查询嵌套查询-带有比较运算符的子查询o当能确切知道内层查询返回单值时,可用比较运算符(,=,=,!=或)。o与ANY或ALL谓词配合使用嵌套查询-带有比较运算符的子查询SELECTSno,Sname,SdeptFROMStudentWHERESdept=(SELECTSdeptFROMStudentWHERESname=刘晨)例查询与例查询与例查询与例查询与“ “刘晨刘晨刘晨

24、刘晨” ”在同一个系学习的学生。在同一个系学习的学生。在同一个系学习的学生。在同一个系学习的学生。分析:假设一个学生只可能在一个系学习,并且必须属于一个系,则可以分析:假设一个学生只可能在一个系学习,并且必须属于一个系,则可以用用 = = 代替代替ININ 子查询一定要跟在比较符之后 错误错误的例子: SELECT Sno,Sname,Sdept FROM Student WHERE ( SELECT Sdept FROM Student WHERE Sname= 刘晨 ) = Sdept;思考题SELECTSno,CnoFROMSCxWHEREGrade=(SELECTAVG(Grade)F

25、ROMSCyWHEREy.Sno=x.Sno);例找出每个学生超过他选修课程平均成绩的课程号。例找出每个学生超过他选修课程平均成绩的课程号。例找出每个学生超过他选修课程平均成绩的课程号。例找出每个学生超过他选修课程平均成绩的课程号。分析步骤o可能的执行过程:可能的执行过程:1.从外层查询中取出SC的一个元组x,将元组x的Sno值(200215123)传送给内层查询。SELECTAVG(Grade)FROMSCyWHEREy.Sno=2002151232.执行内层查询,得到值88(近似值),用该值代替内层查询,得到外层查询:SELECTSno,CnoFROMSCxWHEREGrade=88and

26、y.Sno=200215123分析步骤(续)3.执行这个查询,得到(200215123,1)(200215123,3)4.外层查询取出下一个元组重复做上述1至3步骤,直到外层的SC元组全部处理完毕。结果为:(200215123,1)(200215123,3)(200215123,2)嵌套查询(续)一、带有IN谓词的子查询二、带有比较运算符的子查询三、带有ANY或ALL谓词的子查询四、带有EXISTS谓词的子查询嵌套查询-带有ANY或ALL谓词的子查询谓词语义谓词语义nANY:任意一个值nALL:所有值需要配合使用比较运算符需要配合使用比较运算符ANY大于子查询结果中的某个值ALL大于子查询结果

27、中的所有值ANY小于子查询结果中的某个值=ANY大于等于子查询结果中的某个值=ALL大于等于子查询结果中的所有值=ANY小于等于子查询结果中的某个值=ALL小于等于子查询结果中的所有值=ANY等于子查询结果中的某个值=ALL等于子查询结果中的所有值(通常没有实际意义)!=(或)ANY不等于子查询结果中的某个值!=(或)ALL不等于子查询结果中的任何一个值嵌套查询示例例查询其他系中比计算机科学系所有学生年龄都小的学生姓名及年龄。方法一:用ALL谓词SELECTSname,SageFROMStudentWHERESageALL(SELECTSageFROMStudentWHERESdept=IS)

28、ANDSdeptIS;方法二:用聚集函数 SELECT Sname,Sage FROM Student WHERE Sage (SELECT MIN(Sage) FROM Student WHERE Sdept= IS ) AND Sdept IS ;嵌套查询一、带有IN谓词的子查询二、带有比较运算符的子查询三、带有ANY或ALL谓词的子查询四、带有EXISTS谓词的子查询嵌套查询-带有EXISTS谓词的子查询o1.EXISTS谓词n存在量词n带有EXISTS谓词的子查询不返回任何数据,只产生逻辑真值“true”或逻辑假值“false”。若内层查询结果非空,则外层的WHERE子句返回真值若内层

29、查询结果为空,则外层的WHERE子句返回假值n由EXISTS引出的子查询,其目标列表达式通常都用*,因为带EXISTS的子查询只返回真值或假值,给出列名无实际意义o2.NOTEXISTS谓词若内层查询结果非空,则外层的WHERE子句返回假值若内层查询结果为空,则外层的WHERE子句返回真值嵌套查询示例SELECTSnameFROMStudentWHEREEXISTS(SELECT*FROMSCWHERESno=Student.SnoANDCno=1)思路分析:1.本查询涉及Student和SC关系2.在Student中依次取每个元组的Sno值,用此值去检查SC关系3.若SC中存在这样的元组,其

30、Sno值等于此Student.Sno值,并且其Cno= 1,则取此Student.Sname送入结果关系 例例例例 查询所有选修了查询所有选修了查询所有选修了查询所有选修了1 1号课程的学生姓名。号课程的学生姓名。号课程的学生姓名。号课程的学生姓名。思考题SELECTSnameFROMStudentWHERENOTEXISTS(SELECT*FROMSCWHERESno=Student.SnoANDCno=1) 例例例例 查询没有选修查询没有选修查询没有选修查询没有选修1 1号课程的学生姓名。号课程的学生姓名。号课程的学生姓名。号课程的学生姓名。数据查询数据查询o单表查询单表查询o连接查询连接

31、查询o嵌套查询嵌套查询o集合查询集合查询oSelect语句的一般形式语句的一般形式 集合查询o集合操作的种类n并操作UNIONn交操作INTERSECT/SQL2000没有提供交操作n差操作EXCEPT/SQL2000没有提供差操作o参加集合操作的各查询结果的列数必须相同;对应项的数据类型也必须相同集合查询示例例查询计算机科学系的学生及年龄不大于19岁的学生。方法一:SELECT*FROMStudentWHERESdept=ISUNIONSELECT*FROMStudentWHERESage=19nUNION:将多个查询结果合并起来时,系统自动去掉重复元组。nUNIONALL:将多个查询结果合

32、并起来时,保留重复元组方法二:SELECTDISTINCT*FROMStudentWHERESdept=CSORSage=19集合查询示例例查询计算机科学系的学生与年龄不大于19岁的学生的交集分析:实际上就是查询计算机科学系中年龄不大于19岁的学生SELECT * FROM Student WHERE Sdept=IS AND Sage=19 SELECT *FROM StudentWHERE Sdept=CS INTERSECTSELECT *FROM StudentWHERE Sage=19集合查询示例例查询计算机科学系的学生与年龄不大于19岁的学生的差集。 SELECT * FROM S

33、tudent WHERE Sdept=CS EXCEPT SELECT * FROM Student WHERE Sage 19视图的创建o语句格式CREATEVIEW(,)ASWITHCHECKOPTION;o组成视图的属性列名:全部省略或全部指定o子查询不允许含有ORDERBY子句和DISTINCT短语基于单个基表的视图例 建立信息系学生的视图。CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept= IS补充:在对视图查询时,按视图的定义从基本表中将数据查出。基于单个基表的视图(续)例建立信息系学生

34、的视图,并要求进行修改和插入操作时仍需保证该视图只有“信息系”的学生。CREATEVIEWIS_StudentASSELECTSno,Sname,SageFROMStudentWHERESdept=ISWITHCHECKOPTION基于单个基表的视图(续)对IS_Student视图的更新操作:o修改操作:自动加上Sdept=IS的条件o删除操作:自动加上Sdept=IS的条件o插入操作:自动检查Sdept属性值是否为ISn如果不是,则拒绝该插入操作n如果没有提供Sdept属性值,则自动定义Sdept为IS基于多个基表的视图例建立信息系选修了1号课程的学生视图。CREATEVIEWIS_S1(S

35、no,Sname,Grade)ASSELECTStudent.Sno,Sname,GradeFROMStudent,SCWHERESdept=ISANDStudent.Sno=SC.SnoANDSC.Cno=1;基于视图的视图例建立信息系选修了1号课程且成绩在90分以上的学生的视图。CREATEVIEWIS_S2ASSELECTSno,Sname,GradeFROMIS_S1WHEREGrade=90;带表达式的视图例定义一个反映学生出生年份的视图。CREATEVIEWBT_S(Sno,Sname,Sbirth)ASSELECTSno,Sname,2000-SageFROMStudent;分组

36、视图例将学生的学号及他的平均成绩定义为一个视图假设SC表中“成绩”列Grade为数字型CREATVIEWS_G(Sno,Gavg)ASSELECTSno,AVG(Grade)FROMSCGROUPBYSno;不指定属性列例将Student表中所有女生记录定义为一个视图CREATEVIEWF_Student(F_Sno,name,sex,age,dept)ASSELECT*FROMStudentWHERESsex=女;缺点:修改基表Student的结构后,Student表与F_Student视图的映象关系被破坏,导致该视图不能正确工作视图的特点o虚表,是从一个或几个基本表(或视图)导出的表。o只

37、存放视图的定义,不存放视图对应的数据。o基表中的数据发生变化,从视图中查询出的数据也随之改变。查询视图o查询视图与查询基本表相同例 在信息系学生的视图中找出年龄小于20岁的学生。 SELECT Sno,Sage FROM IS_Student WHERE Sage20;更新视图例将信息系学生视图IS_Student中学号200215122的学生姓名改为“刘辰”。UPDATEIS_StudentSETSname=刘辰WHERESno=200215122;转换后的语句:UPDATEStudentSETSname=刘辰WHERESno=200215122ANDSdept=IS;视图的删除o语句的格式

38、:DROPVIEW;n该语句从数据字典中删除指定的视图定义n如果该视图上还导出了其他视图,使用CASCADE级联删除语句,把该视图和由它导出的所有视图一起删除n删除基表时,由该基表导出的所有视图定义都必须显式地使用DROPVIEW语句删除示例例删除视图BT_S:DROPVIEWBT_S;删除视图IS_S1:DROPVIEWIS_S1;拒绝执行级联删除:DROPVIEWIS_S1CASCADE;小结o数据管理数据管理sql语句语句o数据查询数据查询sql语句语句Employee表(职员表)工号工号eno姓姓 名名ename性性 别 sex年年 龄 age工工资salary入入职日期日期inday

39、是否离是否离职 is_left所所 在在 部部门dept200200620020022002004200200520020032002001李勇李勇刘晨刘晨王敏王敏张立立王青王青李志李志男男女女女女男男女女女女1629382921182100180032005400200020002011-01-012012-02-072010-03-092009-03-012010-01-022009-03-04YNNNYY001002003001002001dept表(部门表)部门号部门号dpno部门名部门名 dpname001002003 ITINVSALES 要求ostep1:创建company_db

40、数据库ostep2:创建部门表与职员表,职员表中的dept必须存在于部门表,职员表的姓名不能为空,性别为男或女,是否离职默认为N。ostep3:为部门表与职员表插入记录,职员表中的入职日期为当前系统日期(至少添加)ostep4:运用update语句,将年龄25岁以下的职员,年龄加1ostep5:运用update语句,将2010年01月以前入职的职员,工资加500ostep6:运用delete语句,将年龄18岁以下并已离职的职员信息进行删除ostep7:运用select语句,查询已离职人员的信息ostep8:运用select语句,查询2011年以后入职,并尚未离职的人员信息ostep9:运用orderby语句,按部门及工资排序,将职员信息按工资从高到低排序输出显示ostep9:运用聚合函数,统计输出已离职人员数ostep10:运用聚合函数,统计输出未离职人员,公司最长及最幼年龄。ostep11:统计输出未离职人员的男职员与女职员人数ostep12:统计输出各部门在职人数ostep13:统计输出各部门在职人员最高工资数额ostep14:运用内连接语句,输出未离职人员的工号,姓名,性别,入职日期,部门名称ostep15:创建视图in_employee,此视图为未离职人员,视图所含字段有工号,姓名,性别,入职日期,部门名称

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号