SQL语句基础之DML (2).ppt

上传人:牧羊曲112 文档编号:6521036 上传时间:2023-11-08 格式:PPT 页数:92 大小:335.99KB
返回 下载 相关 举报
SQL语句基础之DML (2).ppt_第1页
第1页 / 共92页
SQL语句基础之DML (2).ppt_第2页
第2页 / 共92页
SQL语句基础之DML (2).ppt_第3页
第3页 / 共92页
SQL语句基础之DML (2).ppt_第4页
第4页 / 共92页
SQL语句基础之DML (2).ppt_第5页
第5页 / 共92页
点击查看更多>>
资源描述

《SQL语句基础之DML (2).ppt》由会员分享,可在线阅读,更多相关《SQL语句基础之DML (2).ppt(92页珍藏版)》请在三一办公上搜索。

1、第3章 SQL语句基础之DML,授课人:吴志霞电话:http:/,课程目标,熟练掌握及运用SQL语句,进行数据的查询及管理,课程内容,数据管理SQL语句数据查询SQL语句,课时安排,理论:4学时实践:4学时,授课方法,案例演示,数据管理,数据的插入数据的修改数据的删除,数据的插入,两种插入数据方式1.插入元组2.插入子查询结果,插入元组,语句格式INSERTINTO(,)VALUES(,)功能将新元组插入指定表中示例INSER INTO Student(Sno,Sname,Ssex,Sdept,Sage)VALUES(200215128,陈冬,男,IS,18),注意事项,INTO子句属性列的顺

2、序可与表定义中的顺序不一致没有指定属性列指定部分属性列 VALUES子句 提供的值必须与INTO子句匹配值的个数值的类型,课堂练习,例1 插入一条课程记录(1,计算机英语)。例2 插入一条选课记(200215128,1)。,插入子查询结果,语句格式 INSERT INTO(,)子查询功能 将子查询结果插入指定表中,注意事项,INTO子句(与插入元组类似)子查询SELECT子句目标列必须与INTO子句匹配值的个数值的类型,示例,对每一个系,求学生的平均年龄,并把结果存入数据库。第一步:建表 CREATE TABLE Dept_age(Sdept CHAR(20)/*系名*/Avg_age SMA

3、LLINT);/*学生平均年龄*/第二步:插入数据 INSERT INTO Dept_age(Sdept,Avg_age)SELECT Sdept,AVG(Sage)FROM Student GROUP BY Sdept;,修改数据,语句格式 UPDATE SET=,=WHERE 功能修改指定表中满足WHERE子句条件的元组,三种修改方式,1.修改某一个元组的值2.修改多个元组的值3.带子查询的修改语句,示例,例 将学生200215126的年龄改为22岁 UPDATE Student SET Sage=22 WHERE Sno=200215126 例 将所有学生的年龄增加1岁 UPDATE S

4、tudent SET Sage=Sage+1例 将计算机科学系全体学生的成绩置零。UPDATE SC SET Grade=0 WHERE IS=(SELETE Sdept FROM Student WHERE Student.Sno=SC.Sno),删除数据,语句格式 DELETE FROM WHERE;功能删除指定表中满足WHERE子句条件的元组WHERE子句指定要删除的元组缺省表示要删除表中的全部元组,表的定义仍在字典中,三种删除方式,1.删除某一个元组的值2.删除多个元组的值3.带子查询的删除语句,示例,例 删除学号为200215128的学生记录。DELETE FROM Student

5、WHERE Sno=200215128 例 删除所有的学生选课记录。DELETE FROM SC;例 删除计算机科学系所有学生的选课记录。DELETE FROM SC WHERE CS=(SELETE Sdept FROM Student WHERE Student.Sno=SC.Sno);,数据查询,语句格式 SELECT ALL|DISTINCT,FROM,WHERE GROUP BY HAVING ORDER BY ASC|DESC;,数据查询,单表查询连接查询嵌套查询集合查询Select语句的一般形式,单表查询,查询仅涉及一个表:一、选择表中的若干列二、选择表中的若干元组三、ORDER

6、 BY子句四、聚集函数五、GROUP BY子句,选择表中的若干列查询指定列,例1 查询全体学生的学号与姓名。SELECT Sno,Sname FROM Student;,选择表中的若干列查询全部列,方法一:在SELECT关键字后面列出所有列名 方法二:指定为*例 查询全体学生的详细记录。SELECT Sno,Sname,Ssex,Sage,Sdept FROM Student;=SELECT*FROM Student;,选择表中的若干列查询经过计算的值,SELECT子句的可以为:算术表达式字符串常量函数列别名 例 查全体学生的姓名及其出生年份。SELECT Sname,2009-Sage/*假

7、定当年的年份为2009年*/FROM Student;,选择表中的若干列查询经过计算的值(示例),例 查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名SELECT Sname,Year of Birth:,LOWER(Sdept)FROM Student;,单表查询,查询仅涉及一个表:一、选择表中的若干列二、选择表中的若干元组三、ORDER BY子句四、聚集函数五、GROUP BY子句,选择表中的若干元组DISTINCT关键词,消除取值重复的行运定DISTINCT关键词 例 查询选修了课程的学生学号。SELECT Sno FROM SC;=SELECT ALL Sno FROM

8、 SC SELECT DISTINCT Sno FROM SC/运定DISTINCT关键词,去掉表中重复的行 如果没有指定DISTINCT关键词,则缺省为ALL,选择表中的若干元组查询满足条件的元组,选择表中的若干元组查询满足条件的元组(示例),例查询计算机科学系全体学生的名单。SELECT Sname from student where sdept=IS 例查询所有年龄在20岁以下,性别为女的学生姓名及其年龄。Select Sname,Sage from student where sage20 AND ssex=女 例查询年龄在2023岁(包括20岁和23岁)之间的学生的 姓名、系别和年

9、龄 Select sname,sdept,sage from Student where sage between 20 and 23例查询既不是信息系(IS)、外语系(EN),也不是中文(CN)系的学生的姓名和性别。Select sname,ssex from Student where sdept NOT IN(IS,EN,CN),选择表中的若干元组查询满足条件的元组(Like关键字的用法),匹配串为固定字符串 例 查询学号为200215121的学生的详细情况。SELECT*FROM Student WHERE Sno LIKE 200215121;SELECT*FROM Student

10、WHERE Sno=200215121;2)匹配串为含通配符的字符串(“%”与“_”)例 查询所有姓李学生的姓名、学号和性别。Select Sname,Sage,Ssex from student where Sname like 李%例 查询姓欧阳且全名为三个汉字的学生的姓名。Select Sname from student where Sname like 欧阳_3)使用换码字符将通配符转义为普通字符 例 查询所有以_打头第三个字为阳的学生的姓名、学号和性别。Select Sname,Sno,Ssex from student where Sname like _阳%ESCAPE Sel

11、ect Sname,Sno,Ssex from student where Sname like*_阳%ESCAPE*,课堂练习,例 查询名字中第2个字为阳字的学生的姓名和学号。例 查询所有不姓刘的学生姓名。,SELECT Sname,Sno FROM Student WHERE Sname LIKE _阳%;SELECT Sname,Sno,Ssex FROM Student WHERE Sname NOT LIKE 刘%;,选择表中的若干元组查询满足条件的元组(IS NULL 或 IS NOT NULL的用法),“IS”不能用“=”代替 例 某些学生选修课程后没有参加考试,所以有选课记录,

12、但没 有考试成绩。查询缺少成绩的学生的学号和相应的课程号。SELECT Sno,Cno FROM SC WHERE Grade IS NULL例 查所有有成绩的学生学号和课程号。SELECT Sno,Cno FROM SC WHERE Grade IS NOT NULL;,选择表中的若干元组查询满足条件的元组(多重条件查询),逻辑运算符:AND和 OR来联结多个查询条件 AND的优先级高于OR 可以用括号改变优先级可用来实现多种其他谓词 NOT IN NOT BETWEEN AND,示例,例 查询信息系(IS)、外语系(EN)和中文系(CN)学生的姓名和性别。SELECT Sname,Ssex

13、FROM StudentWHERE Sdept IN(IS,EN,CN)可改写为:SELECT Sname,SsexFROM StudentWHERE Sdept=IS OR Sdept=EN OR Sdept=CN,单表查询,查询仅涉及一个表:一、选择表中的若干列二、选择表中的若干元组三、ORDER BY子句四、聚集函数五、GROUP BY子句,ORDER BY子句,ORDER BY子句可以按一个或多个属性列排序升序:ASC;降序:DESC;缺省值为升序当排序列含空值时ASC:排序列为空值的元组最后显示DESC:排序列为空值的元组最先显示 示例 例 查询计算机系学生的学号及其姓名,查询结果按

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

15、查询学生总人数。SELECT COUNT(*)FROM Student;例 计算1号课程的学生平均成绩。SELECT AVG(Grade)FROM SC WHERE Cno=1 例 查询选修1号课程的学生最高分数。SELECT MAX(Grade)FROM SC WHER Cno=1 例查询学生07001选修课程的总分数。select sum(score)as sum from sc where sno=07001,单表查询,查询仅涉及一个表:一、选择表中的若干列二、选择表中的若干元组三、ORDER BY子句四、聚集函数五、GROUP BY子句,GROUP BY子句,GROUP BY子句分组:

16、细化聚集函数的作用对象 未对查询结果分组,聚集函数将作用于整个查询结果 对查询结果分组后,聚集函数将分别作用于每个组 作用对象是查询的中间结果表按指定的一列或多列值分组,值相等的为一组,示例:,例 求各个课程号及相应的选课人数。SELECT Cno,COUNT(Sno)FROM SC GROUP BY Cno例 查询选修了3门以上课程的学生学号。SELECT sno,count(cno)FROM SC GROUP BY sno HAVING COUNT(*)3HAVING短语与WHERE子句的区别:作用对象不同WHERE子句作用于基表或视图,从中选择满足条件的元组HAVING短语作用于组,从中

17、选择满足条件的组。,数据查询,单表查询连接查询嵌套查询集合查询Select语句的一般形式,自身连接,自身连接:一个表与其自己进行连接需要给表起别名以示区别由于所有属性名都是同名属性,因此必须使用别名前缀例查询SQLSERVER2000,NorthWind数据库中所有雇员姓名及该雇员汇报工作的直接上级雇员姓名。Select low.firstName,low.lastName,high.firstName,high.lastName from employees low,employees high where low.reportsTO=high.employeeid Select low.f

18、irstName,low.lastName,high.firstName,high.lastName from employees low left outer join employees high on low.reportsTO=high.employeeid Select low.firstName,low.lastName,high.firstName,high.lastName from employees low right outer join employees high on low.reportsTO=high.employeeid,内连接,也称为普通连接,又称为自然连接

19、。用来输出满足连接条件的元组 例列显学生选修课程的学号,姓名,以及所选课程的编号。Select sc.sno,sname,cno from student,sc where student.sno=sc.sno,外连接,外连接与普通连接的区别普通连接操作只输出满足连接条件的元组外连接操作以指定表为连接主体,将主体表中不满足连接条件的元组一并输出 SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade FROM Student LEFT JOIN SC ON(Student.Sno=SC.Sno);SELECT Student.Sno,Sname,S

20、sex,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.Sno;/右连接,外连接(续),左外连接列出左边关系中所有的元组 右外连接列

21、出右边关系中所有的元组,复合条件连接,复合条件连接:使用多个连接条件例查询选修2号课程且成绩在90分以上的所有学生SELECT Student.Sno,SnameFROM Student,SCWHERE Student.Sno=SC.Sno AND SC.Cno=2 AND SC.Grade 90;例查询每个学生的学号、姓名、选修的课程名及成绩 SELECT Student.Sno,Sname,Cname,Grade FROM Student,SC,Course/*多表连接*/WHERE Student.Sno=SC.Sno and SC.Cno=Course.Cno;,数据查询,单表查询连接

22、查询嵌套查询集合查询Select语句的一般形式,嵌套查询,嵌套查询概述也叫子查询一个SELECT-FROM-WHERE语句称为一个查询块将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为嵌套查询,嵌套查询示例,SELECT Sname/*外层查询/父查询*/FROM Student WHERE Sno IN(SELECT Sno/*内层查询/子查询*/FROM SC WHERE Cno=2),嵌套查询(续),子查询的限制不能使用ORDER BY子句层层嵌套方式反映了 SQL语言的结构化有些嵌套查询可以用连接运算替代,嵌套查询(续),一、带有IN谓词的子查询 二、

23、带有比较运算符的子查询 三、带有ANY或ALL谓词的子查询 四、带有EXISTS谓词的子查询,嵌套查询-带有IN谓词的子查询,例 查询与“刘晨”在同一个系学习的学生。此查询要求可以分步来完成 确定“刘晨”所在系名 SELECT Sdept FROM Student WHERE Sname=刘晨 结果为:IS 查找所有在IS系学习的学生。SELECT Sno,Sname,Sdept FROM Student WHERE Sdept=IS,将第一步查询嵌入到第二步查询的条件中 SELECT Sno,Sname,Sdept FROM Student WHERE Sdept IN(SELECT Sde

24、pt FROM Student WHERE Sname=刘晨);,子查询执行后以一个列的形式返回查询结果,嵌套查询-带有IN谓词的子查询,SELECT Sno,Sname 最后在Student关系中 FROM Student 取出Sno和Sname WHERE Sno IN(SELECT Sno 然后在SC关系中找出选 FROM SC 修了3号课程的学生学号 WHERE Cno IN(SELECT Cno 首先在Course关系中找出 FROM Course“信息系统”的课程号,为3号 WHERE Cname=信息系统);,例查询选修了课程名为“信息系统”的学生学号和姓名,嵌套查询(续),一、

25、带有IN谓词的子查询 二、带有比较运算符的子查询 三、带有ANY或ALL谓词的子查询 四、带有EXISTS谓词的子查询,嵌套查询-带有比较运算符的子查询,当能确切知道内层查询返回单值时,可用比较运算符(,=,)。与ANY或ALL谓词配合使用,嵌套查询-带有比较运算符的子查询,SELECT Sno,Sname,Sdept FROM Student WHERE Sdept=(SELECT Sdept FROM Student WHERE Sname=刘晨),例查询与“刘晨”在同一个系学习的学生。,分析:假设一个学生只可能在一个系学习,并且必须属于一个系,则可以用=代替IN,子查询一定要跟在比较符之

26、后 错误的例子:SELECT Sno,Sname,Sdept FROM Student WHERE(SELECT Sdept FROM Student WHERE Sname=刘晨)=Sdept;,思考题,SELECT Sno,Cno FROM SC x WHERE Grade=(SELECT AVG(Grade)FROM SC y WHERE y.Sno=x.Sno);,例找出每个学生超过他选修课程平均成绩的课程号。,分析步骤,可能的执行过程:1.从外层查询中取出SC的一个元组x,将元组x的Sno值(200215123)传送给内层查询。SELECT AVG(Grade)FROM SC y W

27、HERE y.Sno=2002151232.执行内层查询,得到值88(近似值),用该值代替内层查询,得到外层查询:SELECT Sno,Cno FROM SC x WHERE Grade=88 and y.Sno=200215123,分析步骤(续),3.执行这个查询,得到(200215123,1)(200215123,3)4.外层查询取出下一个元组重复做上述1至3步骤,直到外层的SC元组全部处理完毕。结果为:(200215123,1)(200215123,3)(200215123,2),嵌套查询(续),一、带有IN谓词的子查询 二、带有比较运算符的子查询 三、带有ANY或ALL谓词的子查询 四

28、、带有EXISTS谓词的子查询,嵌套查询-带有ANY或ALL谓词的子查询,谓词语义ANY:任意一个值ALL:所有值需要配合使用比较运算符 ANY大于子查询结果中的某个值 ALL大于子查询结果中的所有值=ANY大于等于子查询结果中的某个值=ALL大于等于子查询结果中的所有值)ANY不等于子查询结果中的某个值!=(或)ALL不等于子查询结果中的任何一个值,嵌套查询示例,例 查询其他系中比计算机科学系所有学生年龄都小的学生姓名及年龄。方法一:用ALL谓词 SELECT Sname,Sage FROM Student WHERE Sage IS;,方法二:用聚集函数 SELECT Sname,Sage

29、 FROM Student WHERE Sage IS;,嵌套查询,一、带有IN谓词的子查询 二、带有比较运算符的子查询 三、带有ANY或ALL谓词的子查询 四、带有EXISTS谓词的子查询,嵌套查询-带有EXISTS谓词的子查询,1.EXISTS谓词存在量词 带有EXISTS谓词的子查询不返回任何数据,只产生逻辑真值“true”或逻辑假值“false”。若内层查询结果非空,则外层的WHERE子句返回真值若内层查询结果为空,则外层的WHERE子句返回假值由EXISTS引出的子查询,其目标列表达式通常都用*,因为带EXISTS的子查询只返回真值或假值,给出列名无实际意义2.NOT EXISTS谓

30、词若内层查询结果非空,则外层的WHERE子句返回假值若内层查询结果为空,则外层的WHERE子句返回真值,嵌套查询示例,SELECT Sname FROM Student WHERE EXISTS(SELECT*FROM SC WHERE Sno=Student.Sno AND Cno=1),思路分析:1.本查询涉及Student和SC关系2.在Student中依次取每个元组的Sno值,用此值去检查SC关系3.若SC中存在这样的元组,其Sno值等于此Student.Sno值,并且其Cno=1,则取此Student.Sname送入结果关系,例查询所有选修了1号课程的学生姓名。,思考题,SELECT

31、 Sname FROM Student WHERE NOT EXISTS(SELECT*FROM SC WHERE Sno=Student.Sno AND Cno=1),例 查询没有选修1号课程的学生姓名。,数据查询,单表查询连接查询嵌套查询集合查询Select语句的一般形式,集合查询,集合操作的种类并操作UNION交操作INTERSECT/SQL2000没有提供交操作差操作EXCEPT/SQL2000没有提供差操作参加集合操作的各查询结果的列数必须相同;对应项的数据类型也必须相同,集合查询示例,例 查询计算机科学系的学生及年龄不大于19岁的学生。方法一:SELECT*FROM Student

32、 WHERE Sdept=IS UNION SELECT*FROM Student WHERE Sage=19UNION:将多个查询结果合并起来时,系统自动去掉重复元组。UNION ALL:将多个查询结果合并起来时,保留重复元组 方法二:SELECT DISTINCT*FROM Student WHERE Sdept=CS OR Sage=19,集合查询示例,例 查询计算机科学系的学生与年龄不大于19岁的学生的交集,分析:实际上就是查询计算机科学系中年龄不大于19岁的学生,SELECT*FROM Student WHERE Sdept=IS AND Sage=19,SELECT*FROM St

33、udentWHERE Sdept=CS INTERSECTSELECT*FROM StudentWHERE Sage=19,集合查询示例,例查询计算机科学系的学生与年龄不大于19岁的学生的差集。,SELECT*FROM Student WHERE Sdept=CS EXCEPT SELECT*FROM Student WHERE Sage=19;,分析:实际上是查询计算机科学系中年龄大于19岁的学生,SELECT*FROM Student WHERE Sdept=CS AND Sage19,视图的创建,语句格式 CREATE VIEW(,)AS WITH CHECK OPTION;组成视图的属

34、性列名:全部省略或全部指定子查询不允许含有ORDER BY子句和DISTINCT短语,基于单个基表的视图,例 建立信息系学生的视图。CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept=IS补充:在对视图查询时,按视图的定义从基本表中将数据查出。,基于单个基表的视图(续),例建立信息系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有“信息系”的学生。CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept=I

35、S WITH CHECK OPTION,基于单个基表的视图(续),对IS_Student视图的更新操作:修改操作:自动加上Sdept=IS的条件删除操作:自动加上Sdept=IS的条件插入操作:自动检查Sdept属性值是否为IS 如果不是,则拒绝该插入操作如果没有提供Sdept属性值,则自动定义Sdept为IS,基于多个基表的视图,例 建立信息系选修了1号课程的学生视图。CREATE VIEW IS_S1(Sno,Sname,Grade)AS SELECT Student.Sno,Sname,Grade FROM Student,SC WHERE Sdept=IS AND Student.Sn

36、o=SC.Sno AND SC.Cno=1;,基于视图的视图,例 建立信息系选修了1号课程且成绩在90分以上的学生的视图。CREATE VIEW IS_S2 AS SELECT Sno,Sname,Grade FROM IS_S1 WHERE Grade=90;,带表达式的视图,例 定义一个反映学生出生年份的视图。CREATE VIEW BT_S(Sno,Sname,Sbirth)AS SELECT Sno,Sname,2000-Sage FROM Student;,分组视图,例 将学生的学号及他的平均成绩定义为一个视图 假设SC表中“成绩”列Grade为数字型 CREAT VIEW S_G(

37、Sno,Gavg)AS SELECT Sno,AVG(Grade)FROM SC GROUP BY Sno;,不指定属性列,例将Student表中所有女生记录定义为一个视图 CREATE VIEW F_Student(F_Sno,name,sex,age,dept)AS SELECT*FROM Student WHERE Ssex=女;缺点:修改基表Student的结构后,Student表与F_Student视图的映象关系被破坏,导致该视图不能正确工作,视图的特点,虚表,是从一个或几个基本表(或视图)导出的表。只存放视图的定义,不存放视图对应的数据。基表中的数据发生变化,从视图中查询出的数据也

38、随之改变。,查询视图,查询视图与查询基本表相同 例 在信息系学生的视图中找出年龄小于20岁的学生。SELECT Sno,Sage FROM IS_Student WHERE Sage20;,更新视图,例 将信息系学生视图IS_Student中学号200215122的学生姓名改为“刘辰”。UPDATE IS_StudentSET Sname=刘辰WHERE Sno=200215122;转换后的语句:UPDATE StudentSET Sname=刘辰WHERE Sno=200215122 AND Sdept=IS;,视图的删除,语句的格式:DROP VIEW;该语句从数据字典中删除指定的视图定义

39、如果该视图上还导出了其他视图,使用CASCADE级联删除语句,把该视图和由它导出的所有视图一起删除 删除基表时,由该基表导出的所有视图定义都必须显式地使用DROP VIEW语句删除,示例,例 删除视图BT_S:DROP VIEW BT_S;删除视图IS_S1:DROP VIEW IS_S1;拒绝执行级联删除:DROP VIEW IS_S1 CASCADE;,小结,数据管理sql语句数据查询sql语句,Employee表(职员表),dept表(部门表),要求,step1:创建company_db数据库step2:创建部门表与职员表,职员表中的dept必须存在于部门表,职员表的姓名不能为空,性别为

40、男或女,是否离职默认为N。step3:为部门表与职员表插入记录,职员表中的入职日期为当前系统日期(至少添加)step4:运用update语句,将年龄25岁以下的职员,年龄加1step5:运用update语句,将2010年01月以前入职的职员,工资加500step6:运用delete语句,将年龄18岁以下并已离职的职员信息进行删除step7:运用select语句,查询已离职人员的信息step8:运用select语句,查询2011年以后入职,并尚未离职的人员信息step9:运用order by语句,按部门及工资排序,将职员信息按工资从高到低排序输出显示step9:运用聚合函数,统计输出已离职人员数step10:运用聚合函数,统计输出未离职人员,公司最长及最幼年龄。step11:统计输出未离职人员的男职员与女职员人数step12:统计输出各部门在职人数step13:统计输出各部门在职人员最高工资数额step14:运用内连接语句,输出未离职人员的工号,姓名,性别,入职日期,部门名称step15:创建视图in_employee,此视图为未离职人员,视图所含字段有工号,姓名,性别,入职日期,部门名称,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号