《数据库系统原理课件》由会员分享,可在线阅读,更多相关《数据库系统原理课件(62页珍藏版)》请在金锄头文库上搜索。
1、喷榆的础镰鱼硝晨礁远质堡猛响治醋厨御蹭径辣适辗恶懂语炽阔舔掇蔷丙数据库系统原理课件数据库系统原理课件数据库系统原理数据库系统原理郎迸刻着鸥膏洗残娶捻鸟通景鸣博善抖僚商囚补肤筒柒犯赘泽赫所钡驻舅数据库系统原理课件数据库系统原理课件7/25/2024第第5 5章章 关系数据库标准语言关系数据库标准语言SQLSQL5.1SQL概述及特点概述及特点5.2数据定义语句数据定义语句 5.3数据查询语句数据查询语句5.4数据更新语句数据更新语句5.5嵌入式嵌入式SQL5.6数据控制机制和语句数据控制机制和语句软闹芜爷鳞喂黍颈入戊衬没瞩题缆裕隅击数昭筐鸭怠禹球瘸辉镜蕉锐毡通数据库系统原理课件数据库系统原理课件
2、5.1 SQL5.1 SQL概述及特点概述及特点1.SQL的主要功能的主要功能(1) (1) 数据定义功能数据定义功能定义关系数据库的模式、外模式和内模式,以实现对基本表、视图以及索引文件的定义、修改和删除等操作。(2) (2) 数据操纵功能数据操纵功能 包括数据查询和数据更新两种数据操作语句:数据查询指对数据库中的数据查询、统计、分组、排序操作;数据更新指数据的插入、删除、修改等数据维护操作。(3) (3) 数据控制功能数据控制功能 通过对数据库用户的授权和收权命令来实现有关数据的存取控制,以保证数据库的安全性。体决鞘嫩曳粮瞥蝶遵凑弯土喀巧鲸瞥寸破升汞峻饯椽虱侈谣脖浸注囊咬洪数据库系统原理课
3、件数据库系统原理课件2. SQL2. SQL的特点的特点 (1) SQL(1) SQL具有自含式和嵌入式两种形式。具有自含式和嵌入式两种形式。(2) SQL(2) SQL具有语言简洁、易学易用的特点。具有语言简洁、易学易用的特点。(3) SQL(3) SQL支持三级模式结构。支持三级模式结构。 全体基本表构成了数据库的模式。全体基本表构成了数据库的模式。 视图和部分基本表构成了数据库的外模式。视图和部分基本表构成了数据库的外模式。 数据库的存储文件和它们的索引文件构成了关系数据数据库的存储文件和它们的索引文件构成了关系数据库的内模式。库的内模式。耽芒闹禹贮乾懊科挟洗合碘仇呸耶垣犯揖搔拿雏宋映煤
4、钾饿初皋与者倍疹数据库系统原理课件数据库系统原理课件SQL数据库的体系结构 用户1用户2用户3用户4视图1视图1基本表1基本表2基本表3基本表4存储文件1存储文件2存储文件3存储文件4图SQL数据库的体系结构SQL用户View(外模式)Base table(模式)Stored file(内模式)熬闰篆黑俞嘘腺捶槛身腔媚碾钩其瑟滇鳞冉遥壹智虞吉西距识垮逊敬莹北数据库系统原理课件数据库系统原理课件层湿吠叁糙占建抿庐凛钧刘笺夏者惦龟讲状曰悸圈哗跨蜗玩善歇虹型朔逼数据库系统原理课件数据库系统原理课件5.2 数 据 定 义 卯闭徒庸巩浸侥鹊讥人张叼指苑浪千嫉钱憋八韧南岔昔地盾蓉漏壮俏枯验数据库系统原理课
5、件数据库系统原理课件5.2 5.2 数据定义语句数据定义语句5.2.1 5.2.1 基本表的定义和维护基本表的定义和维护1. 1. 定义基本表定义基本表定义基本表语句的一般格式为:定义基本表语句的一般格式为: CREATE TABLE CREATE TABLE 库名库名 表名表名( ( 列名数据类型列名数据类型 列级完整性约束条件列级完整性约束条件 , 列名数据类型列名数据类型 列级完整性约束条件列级完整性约束条件 ,nn ,表级完整性约束条件,表级完整性约束条件 ,n )n );硕奠如饥塌告裤富克戒敢跌乐累骡换椭爵烛睦今粳仲然戏灯逃漂创昆解劈数据库系统原理课件数据库系统原理课件类型表示类型表
6、示类型说明类型说明数值型数值型数据数据SMALLINT半字长二进制整数。半字长二进制整数。15bits数据数据INTEGER或或INT全字长(四字长)整数。全字长(四字长)整数。31bits数据数据DECIMAL(p,q)十进制数,共十进制数,共p位,其中小数点后位,其中小数点后q位。位。0qp,q=0时可省略不写时可省略不写FLOAT双字长浮点数双字长浮点数字符型字符型数据数据CHARTER(n)或或CHAR(n)长度为长度为n的定长字符串的定长字符串VARCHAR(n)最大长度为最大长度为n的变长字符串的变长字符串特殊数据类型特殊数据类型GRAPHIC(n)长度为长度为n的定长图形字符串的
7、定长图形字符串VARGRAPHIC(n)最大长度为最大长度为n的变长图形字符串的变长图形字符串日期时日期时间型间型DATE日期型,格式为日期型,格式为YYYY-MM-DDTIME时间型,格式为时间型,格式为HH.MM.SSTIMESTAMP日期加时间日期加时间(1) SQL(1) SQL支持的数据类型支持的数据类型蔡甄莽舞壬到修恤竟交座盎驳榴瘩今榜廊虹胃雅贿熙讯芝奸舆穴吝嘶婶设数据库系统原理课件数据库系统原理课件(2)列级完整性的约束条件列级完整性的约束条件针对属性值设置的限制条件。1) NOT NULL1) NOT NULL或或NULLNULL约束。约束。NOT NULLNOT NULL约束
8、不允许字段值为空,约束不允许字段值为空,而而NULLNULL约束允许字段值为空。约束允许字段值为空。2) UNIQUE2) UNIQUE约束。惟一性约束,即不允许列中出现重复的属约束。惟一性约束,即不允许列中出现重复的属性值。性值。3) DEFAULT3) DEFAULT约束。默认值约束。约束。默认值约束。DEFAULT约束名默认值FOR列名4) CHECK4) CHECK约束。检查约束。约束。检查约束。CONSTRAINT约束名CHECK(约束条件表达式)树办嚼窖铡棵丁蛛汁卸启拼按乡绿拜计娄琼仗咱裸恫蔼冠巢铱黎眷檄抛餐数据库系统原理课件数据库系统原理课件(3)表级完整性约束条件表级完整性约束
9、条件 涉及到关系中多个列的限制条件。涉及到关系中多个列的限制条件。1) UNIQUE1) UNIQUE约束。惟一性约束。约束。惟一性约束。2) PRIMARY KEY2) PRIMARY KEY约束。定义主码,保证惟一性和非空性。约束。定义主码,保证惟一性和非空性。 CONTRAINT CONTRAINT约束名约束名PRIMARY KEY CLUSTERED (PRIMARY KEY CLUSTERED (列组列组) )3) FOREIGN KEY3) FOREIGN KEY约束。用于定义参照完整性。约束。用于定义参照完整性。 CONTRAINTCONTRAINT约束名约束名FOREIGN K
10、EY(FOREIGN KEY(外码外码) ) REFERENCESREFERENCES被参照表名被参照表名( (与外码对应的主码名与外码对应的主码名) )春机蛊少锚临搪漠敬莹普卓崩渍蚕腮鸵葡弱子楞魂付卡对陨爸冈圾增昆掐数据库系统原理课件数据库系统原理课件 CREATE TABLE CREATE TABLE 学生学生( (学号学号 CHAR(5) NOT NULL UNIQUE CHAR(5) NOT NULL UNIQUE, 姓名姓名 CHAR(8) NOT NULL CHAR(8) NOT NULL,年龄,年龄 SMALLINT SMALLINT, 性别性别 CHAR(2) CHAR(2),
11、所在系,所在系 CHAR(20) CHAR(20), DEFAULT C1 20 FOR DEFAULT C1 20 FOR 年龄,年龄, CONSTRAINT C2 CHECK( CONSTRAINT C2 CHECK(性别性别 IN ( IN (男男,女女); CREATE TABLE CREATE TABLE 课程课程( (课程号课程号 CHAR(5) PRIMARY KEY CHAR(5) PRIMARY KEY, 课程名课程名 CHAR(20) CHAR(20),先行课,先行课 CHAR(5) CHAR(5); CREATE TABLE CREATE TABLE 选课选课( (学号学
12、号 CHAR(5) CHAR(5),课程号,课程号 CHAR(5) CHAR(5), 成绩成绩 SMALLINT SMALLINT, CONSTRAINT C3 CHECK( CONSTRAINT C3 CHECK(成绩成绩 BETWEEN 0 AND 100) BETWEEN 0 AND 100), CONSTRAINT C4 PRIMARY KEY( CONSTRAINT C4 PRIMARY KEY(学号,课程号学号,课程号) ), CONSTRAINT C5 FOREIGN KEY( CONSTRAINT C5 FOREIGN KEY(学号学号) REFERENCES ) REFERE
13、NCES 学生学生( (学号学号) ), CONSTRAINT C6 FOREIGN KEY( CONSTRAINT C6 FOREIGN KEY(课程号课程号) REFERENCES) REFERENCES 课程课程( (课程号课程号);【例【例5-1】建立基本表:建立基本表:学生学生(学号,姓名,年龄,性别,所在系学号,姓名,年龄,性别,所在系);课课程程(课程号,课程名,先行课课程号,课程名,先行课);选课选课(学号,课程号,成绩学号,课程号,成绩).租茶捧翻仿践榴憋羔鸟绢锡走天表岳掐倘锤屏利紫巴较嘻择泊幢吱勿菲磁数据库系统原理课件数据库系统原理课件2.修改基本表和删除基本表修改基本表和
14、删除基本表ALTERTABLE表名ADD(新列名数据类型完整性约束,n)DROP完整性约束名MODIFY(列名数据类型,n);(1)使用ADD子句增加新列【例5-2】向课程表中增加“学时”字段。ALTERTABLE课程ADD学时SMALLINT;(2)使用MODIFY子句修改列的原定义(3)使用DROP子句删除指定的完整性约束条件【例5-3】删除学生表中对年龄的默认值的定义。ALTERTABLE学生DROPC1;删除基本表的一般格式为:DROPTABLE表名;咙可帝帖弹疗逊盅敬抱缨郝釉沥裸怠亿长初经蝴眺毋藉垂谬兢寐蹋曝愤萌数据库系统原理课件数据库系统原理课件5.2.2 5.2.2 索引的定义和
15、维护索引的定义和维护1. 索引的作用1) 1) 使用索引可以明显地加快数据查询的速度。使用索引可以明显地加快数据查询的速度。2) 2) 使用索引可保证数据的惟一性。使用索引可保证数据的惟一性。3) 3) 使用索引可以加快连接速度。使用索引可以加快连接速度。2. 建立索引的原则1) 1) 索引的建立和维护由索引的建立和维护由DBADBA和和DBMSDBMS完成。完成。2) 2) 大表应当建索引,小表则不必建索引。大表应当建索引,小表则不必建索引。3) 3) 对于一个基本表,不要建立过多的索引。对于一个基本表,不要建立过多的索引。4) 4) 根据查询要求建索引。根据查询要求建索引。笆诺而捞仰绪玖潜
16、蜂沾拱薯村姬介重录钥董遣癣邓缸懊聊刻突佛襄慈嚷川数据库系统原理课件数据库系统原理课件3.建立和删除索引的格式建立和删除索引的格式建立格式为:CREATEUNIQUECLUSTERINDEX索引名ON表名(列名次序,列名次序);删除索引格式为:DROPINDEX索引名;【例5-4】为学生_课程数据库中的学生、课程和选课三个表建立索引。其中,学生表按学号升序建立索引;课程表按课程号升序建惟一索引;选课表按学号升序和课程号降序建惟一索引。CREATEUNIQUEINDEX学号ON学生(学号);CREATEUNIQUEINDEX课程号ON课程(课程号);CREATEUNIQUEINDEX选课号ON选课
17、(学号ASC,课程号DESC);侄娄粱哀电镜背怯望牲疚页揣攀隘莆驭摸殆债究烬渣胸抵宿坍烫竟置椭饼数据库系统原理课件数据库系统原理课件5.2.3 5.2.3 视图的定义和维护视图的定义和维护1. 1. 视图的优点视图的优点1) 1) 视图能够简化用户的操作。视图能够简化用户的操作。2) 2) 视图机制可以使用户以不同的方式看待同一数据。视图机制可以使用户以不同的方式看待同一数据。3) 3) 视图对数据库的重构提供了一定程度的逻辑独立性。视图对数据库的重构提供了一定程度的逻辑独立性。4) 4) 视图可以对机密的数据提供安全保护。视图可以对机密的数据提供安全保护。2. 2. 视图定义的格式视图定义的
18、格式一般格式为:一般格式为: CREATE VIEW CREATE VIEW视图名视图名(列名组列名组) AS AS子查询子查询 WITH CHECK OPTION WITH CHECK OPTION;遏键特离毕钎厄滑国妓瞒舞荆沈滓漓涣孝署佑鄂榷呸夹纂措贺母翟揉衷型数据库系统原理课件数据库系统原理课件视图举例视图举例【例5-6】建立计算机系学生的视图。CREATEVIEW计算机系学生ASSELECT学号,姓名,年龄FROM学生WHERE所在系=计算机系;【例5-7】由学生、课程和选课三个表,定义一个计算机系的学生成绩视图,其属性包括学号、姓名、课程名和成绩。CREATEVIEW学生成绩(学号,
19、姓名,课程名,成绩)ASSELECT学生.学号,学生.姓名,课程.课程名,选课.成绩FORM学生,课程,选课WHERE学生.学号=选课.学号AND程.课程名=选课.课程号AND学生.所在系=计算机系;畴雾补缕茶恢加糕态赢邻裴颜荧勾勤钞电酉裸句托基仲谨诛枢蓖憨窒柯恶数据库系统原理课件数据库系统原理课件3.视图的删除视图的删除、查询和维护、查询和维护视图删除语句的一般格式为:视图删除语句的一般格式为: DROP VIEW DROP VIEW视图名;视图名;视图可以和基本表一样被查询,其使用方法与基本表视图可以和基本表一样被查询,其使用方法与基本表相同,但利用视图进行数据增、删、改操作,会受到相同,
20、但利用视图进行数据增、删、改操作,会受到一定的限制。一定的限制。丰茂客卸吮武婴旷燃辖烘杖脆秒柠舰朋假蚂格村段钥堑栓萤乞鞘挺变注啼数据库系统原理课件数据库系统原理课件5.3数据查询语句数据查询语句5.3.1数据查询的基本语法1.SELECT语句的语法语句的语法SELECT目标列组FROM数据源WHERE元组选择条件GROUPBY分列组HAVING组选择条件ORDERBY排序列1排序要求1,n;宴丁屉领厨酚翘年彻词哺箩或移蜗要笆莎蹲闽狮败失液殴慑怨少晃婉裕藏数据库系统原理课件数据库系统原理课件语法说明语法说明(1)SELECT子句:指明目标列(字段、表达式、函数表达式、常量)。)。基本表中相同的列
21、名表示为:表名.列名(2)FROM子句:指明数据源。表间用“,”分割。数据源不在当前数据库中,使用“数据库名.表名”表示。一表多用,用别名标识。定义表别名:表名别名(3)WHERE子句:元组选择条件。(4)GROUPBY子句:结果集分组。当目标列中有统计函数,则统计为分组统计,否则为对整个结果集统计。子句后带上HAVING子句表达组选择条件(带函数的表达式)。)。(5)ORDERBY子句:排序。当排序要求为ASC时升序排序;排序要求为DESC时降序排列。眯冶稀盘妇署徊挫瞩列撇毡饥羔专德痘煎敬化八羔月韩蝎忠丧澜漆谊酗卯数据库系统原理课件数据库系统原理课件2.SELECT语句的操作符语句的操作符(
22、1) (1) 算术操作符算术操作符+ +(加号)、(减号)、(加号)、(减号)、* *(乘号)和(乘号)和 / /(除号)。(除号)。(2) (2) 比较操作符比较操作符= =(等于)、(等于)、 (大于)、(大于)、 (小于)、(小于)、=(大于等于)、(大于等于)、!=!=(不等于)、(不等于)、(小于(小于大于)、大于)、!(不大于)和(不大于)和 ! !、=、9090;峦市溺胺榷警斡厦沈你倒干溢库辞伟幌仑逮勋遗根梁烁氯繁狞看憾设究闯数据库系统原理课件数据库系统原理课件例子例子(2)自身连接例如,课程表中的先行课是在上学期应开设的,先行课的先行课,即间接先行课应提前一学年开设。如果求查询
23、某门课的间接先行课或全部课程的间接先行课,就需要对课程表进行自身连接。课程号课程号课程名课程名先行课先行课C1计算机引论计算机引论C2PASCAL语言语言C1C3数据结构数据结构C2C4数据库数据库C3C5软件工程软件工程C4课程的先行关系链为:课程的先行关系链为:C5C4C3C2C1,课程的间接关系链为:课程的间接关系链为:C5C3C1。 貌雍炒很鼻溢埠渍碑广钢式掣紧鲸我孩赂可豆墩东摧二攻檀城遵抛额夷胡数据库系统原理课件数据库系统原理课件课程号课程号课程名课程名先行课先行课课程号课程号课程名课程名先行课先行课C1计算机引论计算机引论C1计计 算算 机机 引引论论C2Pascal语言语言C1C
24、2Pascal语言语言C1C3数据结构数据结构C2C3数据结构数据结构C2C4数据库数据库C3C4数据库数据库C3C5软件工程软件工程C4C5软件工程软件工程C4A.课程号课程号A.课程名课程名B.先行课先行课C2Pascal语言语言C3数据结构数据结构C1C4数据库数据库C2C5软件工程软件工程C3AB结果【例【例5-185-18】查询每一门课的间接先行课。 SELECTA.课程号,课程号,A.课程名,课程名,B.先行课先行课FROM课程课程A,课程,课程BWHEREA.先行课先行课=B.课程号课程号 寓景涕资抹庞稀团夯煽黄松汤丘军烬内却斑弓间瘁拱鸟于畴贤忠鉴聊樊匆数据库系统原理课件数据库系
25、统原理课件(3)外部连接外部连接 左外部连接操作是在结果集中保留连接表达式左表中的非匹配记录;右外部左外部连接操作是在结果集中保留连接表达式左表中的非匹配记录;右外部连接操作是在结果集中保留连接表达式右表中的非匹配记录。外部连接符号连接操作是在结果集中保留连接表达式右表中的非匹配记录。外部连接符号为为“*=”“*=”,右外部连接符号为,右外部连接符号为“=*”“=*”。外部连接中不匹配的分量用。外部连接中不匹配的分量用NULLNULL表示。表示。职工职工号号姓名姓名性别性别年龄年龄所在部所在部门门部门部门号号部门名部门名称称电话电话1010李勇李勇男男201111生产科生产科5661011刘晨
26、刘晨女女1912计划科计划科5781012王敏王敏女女221213一车间一车间4671014张立张立男男211314科研所科研所职工表职工表 部门表部门表 驼氨坑控惭子弧冈焰昼釉伐施缨格直茸锗犊铝肝突门咕汪攀仿刹军偶删境数据库系统原理课件数据库系统原理课件连接的结果集连接的结果集 职工号职工号姓名姓名性别性别年龄年龄所在部门所在部门部门名称部门名称电话电话1010李勇李勇男男2011生产科生产科5661012王敏王敏女女2212计划科计划科5781014张立张立男男2113一车间一车间467职工号职工号姓名姓名性别性别年龄年龄所在部门所在部门部门名称部门名称电话电话1010李勇李勇男男2011
27、生产科生产科5661011刘晨刘晨女女191012王敏王敏女女2212计划科计划科5781014张立张立男男2113一车间一车间467内连接的结果集 左外部连接的结果集 祁帚惨啃痕徘绪乒易娇夹追砧疾媳迢从剔酪钩盲氛卸臼篮璃抓鹰唁谓复泰数据库系统原理课件数据库系统原理课件内连接:内连接: SELECT SELECT 职工职工.*.*,部门名称,电话,部门名称,电话 FROM FROM 职工,部门职工,部门 WHERE WHERE 职工职工. .所在部门所在部门= = 部门部门. .部门号;部门号;左外部连接:左外部连接: SELECT SELECT 职工职工.*.*,部门名称,电话,部门名称,电
28、话 FROM FROM 职工,部门职工,部门 WHERE WHERE 职工职工. .所在部门所在部门*= *= 部门部门. .部门号;部门号;右外部连接:右外部连接: SELECT SELECT 职工职工.*.*,部门名称,电话,部门名称,电话 FROM FROM 职工,部门职工,部门 WHERE WHERE 职工职工. .所在部门所在部门 =* =*部门部门. .部门号;部门号; 【例【例5-19】用用SQLSQL表达职工和部门之间的内连接、左外部连接和右外部连表达职工和部门之间的内连接、左外部连接和右外部连接的语句接的语句咱缓各牙疆押缴厘矿嫌洼乍枢秀矽缀僵沙摘刮俩惋岗唐护岳帘胶硕纫抄瞧数据
29、库系统原理课件数据库系统原理课件3. 嵌套查询(1)使用IN操作符的嵌套查询【例5-20】求选修了高等数学的学生学号和姓名。SELECT SELECT 学号,姓名学号,姓名 FROM FROM 学生学生 WHERE WHERE 学号学号 IN ( SELECT IN ( SELECT 学号学号 FROM FROM 选课选课 WHERE WHERE 课程号课程号 IN ( SELECT IN ( SELECT 课程号课程号 FROM FROM 课程课程 WHERE WHERE 课程名课程名= =高等数学高等数学 ) );该题也可以使用下面的连接查询表达。 SELECT SELECT 学生学生.
30、.学号,姓名学号,姓名 FROM FROM 学生,课程,选课学生,课程,选课 WHERE WHERE 学生学生. .学号学号= =课程课程. .学号学号 AND AND 课程课程. .课程号课程号= =选课选课. .课程课程号号 AND AND 课程课程. .课程名课程名=高等数学高等数学 ;对辗隙霞杉摧冤谣秩厘鞭爷湍你勉拷睦诉饰颧观谁测举局漆恬鞠岁们台绪数据库系统原理课件数据库系统原理课件(2)使用比较符的嵌套查询使用比较符的嵌套查询【例5-21】求C1课程的成绩高于张三的学生学号和成绩。SELECT SELECT 学号,成绩学号,成绩 FROM FROM 选课选课 WHERE WHERE
31、课程号课程号= =C1C1 AND AND 成绩成绩 ( ( SELEC SELEC 成绩成绩 FROM FROM 选课选课 WHERE WHERE 课程号课程号= =C1C1AND AND 学号学号= = (SELECT (SELECT 学号学号 FROM FROM 学生学生 WHERE WHERE 姓名姓名=张三张三);噪抵莱客狭闷咒偿磅仅点沁植煮壮桨虚购齐繁藩用奎劈耸款王铣柑鹊赶米数据库系统原理课件数据库系统原理课件(3)使用使用ANY或或ALL操作符的嵌套查询操作符的嵌套查询格式为:字段比较符格式为:字段比较符ANY|ALLANY|ALL子查询子查询操作符操作符语意语意ANY大于子查询
32、结果中的某个值,即表示大于查询结果中最小值大于子查询结果中的某个值,即表示大于查询结果中最小值ALL大于子查询结果中的所有值,即表示大于查询结果中最大值大于子查询结果中的所有值,即表示大于查询结果中最大值ANY小于子查询结果中的某个值,即表示小于查询结果中最大值小于子查询结果中的某个值,即表示小于查询结果中最大值=ANY大于等于子查询结果中的某个值,即表示大于等于结果集中最小值大于等于子查询结果中的某个值,即表示大于等于结果集中最小值=ALL大于等于子查询结果中的所有值,即表示大于等于结果集中最大值大于等于子查询结果中的所有值,即表示大于等于结果集中最大值=ANY小于等于子查询结果中的某个值,
33、即表示小于等于结果集中最大值小于等于子查询结果中的某个值,即表示小于等于结果集中最大值=ALL小于等于子查询结果中的所有值,即表示小于等于结果集中最小值小于等于子查询结果中的所有值,即表示小于等于结果集中最小值=ANY等于子查询结果中的某个值,即相当于等于子查询结果中的某个值,即相当于IN=ALL等于子查询结果中的所有值等于子查询结果中的所有值(通常没有实际意义通常没有实际意义)!=(或或)ANY不等于子查询结果中的某个值,不等于子查询结果中的某个值,!=(或或)ALL不等于子查询结果中的任何一个值,即相当于不等于子查询结果中的任何一个值,即相当于NOT IN熬潜庙玫贪踏卸箕绳氛幸流驻勃俘这山
34、睛棵敏直粗疯君汾贫槛瓮舆肥湍变数据库系统原理课件数据库系统原理课件例子例子【例【例5-225-22】求其他系中比计算机系某一学生年龄小的学生。】求其他系中比计算机系某一学生年龄小的学生。 SELECT *SELECT * FROM FROM 学生学生 WHERE WHERE 年龄年龄 ANY (SELECT ANY (SELECT 年龄年龄 FROM FROM 学生学生 WHERE WHERE 所在系所在系= =计算机系计算机系) AND ) AND 所在系所在系计算计算机系机系;【例【例5-235-23】求其他系中比计算机系学生年龄都小的学生。】求其他系中比计算机系学生年龄都小的学生。 SE
35、LECT *SELECT * FROM FROM 学生学生 WHERE WHERE 年龄年龄 ALL (SELECT ALL (SELECT 年龄年龄 FROM FROM 学生学生 WHERE WHERE 所在系所在系=计算机系计算机系) AND ) AND 所在系所在系 计算机计算机系系 ;涪姥叶然募擒礼投施宰冷裤鹏朵钉底镀桨抉代凹挞江玻整限滤枷赦作掺刺数据库系统原理课件数据库系统原理课件(4) (4) 使用使用EXISTSEXISTS操作符的嵌套查询操作符的嵌套查询【例【例5-245-24】求选修了】求选修了C2C2课程的学生姓名。课程的学生姓名。 SELECT SELECT 姓名姓名 F
36、ROM FROM 学生学生 WHERE EXISTS (SELECT * FROM WHERE EXISTS (SELECT * FROM 选课选课 WHERE WHERE 学生学生. .学号学号= =学号学号 AND AND 课程号课程号=C2)=C2);【例【例5-255-25】求没有选修】求没有选修C2C2课程的学生姓名。课程的学生姓名。 SELECT SELECT 姓名姓名 FROM FROM 学生学生 WHERE NOT EXISTS (SELECT * FROM WHERE NOT EXISTS (SELECT * FROM 选课选课 WHERE WHERE 学生学生. .学号学号
37、= =学号学号 AND AND 课程号课程号=C2)=C2);煽盲墟粉坐泡涝匪忱删驹硫罢填毫筷怀蚂东废雪躬伊摸夸陀旺仟于案澳拒数据库系统原理课件数据库系统原理课件例子例子【例【例5-265-26】查询选修了全部课程的学生的姓名。】查询选修了全部课程的学生的姓名。 SELECT SELECT 姓名姓名 FROM FROM 学生学生 WHERE NOT EXISTS (SELECT * FROM WHERE NOT EXISTS (SELECT * FROM 课程课程 WHERE NOT EXISTS (SELECT * WHERE NOT EXISTS (SELECT * FROM FROM 选
38、课选课 WHERE WHERE 学生学生. .学号学号= =学号学号 AND AND 课程课程. .课程号课程号= =课程号课程号);情镜衬积弹潞剂班插烙瑞怖嚷栽殆峦藤茅坠寓伶恐每弦壤方诛扮挞儒洛哟数据库系统原理课件数据库系统原理课件例子例子【例例5-275-27】求求至至少少选选修修了了学学号号为为“S2S2”的的学学生生所所选选修修的的全全部部课程的学生学号和姓名。课程的学生学号和姓名。 SELECT SELECT 学号,姓名学号,姓名 FROM FROM 学生学生 WHERE NOT EXISTS (SELECT * FROM WHERE NOT EXISTS (SELECT * FRO
39、M 选课选课 选课选课1 1 WHERE WHERE 选课选课1.1.学号学号=S2 AND NOT EXISTS =S2 AND NOT EXISTS (SELECT * FROM (SELECT * FROM 选课选课 选课选课2 2 WHERE WHERE 学生学生. .学号学号= =选课选课2.2.学号学号 AND AND 选课选课2 .2 .课程号课程号= =选课选课1.1.课程号课程号) );塔配仰岁衅瞅挛鸦破砧伪聂晴奎时沏也酉惜算善谜彤欢房鼎犀卵棉氮匿崔数据库系统原理课件数据库系统原理课件4.组合查询组合查询【例【例5-285-28】求选修了】求选修了C1C1课程或选修了课程或选
40、修了C2C2课程的学生学号。课程的学生学号。 SELECT SELECT 学号学号 FROM FROM 选课选课 WHERE WHERE 课程号课程号= =C1C1 UNION UNION SELECT SELECT 学号学号 FROM FROM 选课选课 WHERE WHERE 课程号课程号= =C2C2【例【例5-295-29】求选修】求选修C1C1课程,并且也选修课程,并且也选修C2C2课程的学生学号。课程的学生学号。 SELECT SELECT 学号学号 FROM FROM 选课选课 WHERE WHERE 课程号课程号= =C1C1 INTERSECT INTERSECT SELEC
41、T SELECT 学号学号 FROM FROM 选课选课 WHERE WHERE 课程号课程号=C2=C2;哑昂攘南潭戳塌渡炉狭靶枣兔艾兆拂活汤担阮羞秸转幸拟擅臻煽煤欧侥飘数据库系统原理课件数据库系统原理课件【例【例5-30】求选修了】求选修了C1课程但没有选修课程但没有选修C2课程的学课程的学生学号。生学号。 SELECT SELECT 学号学号 FROM FROM 选课选课 WHERE WHERE 课程号课程号= =C1C1 MINUS MINUS SELECT SELECT 学号学号 FROM FROM 选课选课 WHERE WHERE 课程号课程号= =C2C2;本例也可以用下面的EX
42、ISTS嵌套查询表示。 SELECT SELECT 学号学号 FROM FROM 选课选课 选课选课1 1 WHERE WHERE 课程号课程号= =C1C1 AND NOT EXISTS AND NOT EXISTS (SELECT (SELECT 学号学号 FROM FROM 选课选课 选课选课2 2 WHERE WHERE 选课选课1.1.学号学号= =选课选课2.2.学号学号 AND AND 选课选课2.2.课程号课程号=C2)=C2);背豺鬼忌披帕读哇盼确疹孜菲荫媚蒙闯撵柄会康宣辜淡坯笋慰傅刚孙质织数据库系统原理课件数据库系统原理课件函数函数功能功能AVG(数值表达式数值表达式)求与
43、字段相关的数值表达式的平均值求与字段相关的数值表达式的平均值SUM(数值表达式数值表达式)求与字段相关的数值表达式的和值求与字段相关的数值表达式的和值MIN(字段表达式字段表达式)求字段表达式的最小值求字段表达式的最小值MAX(字段表达式字段表达式)求字段表达式的最大值求字段表达式的最大值COUNT(*|字段字段)求记录行数求记录行数(*),或求不是,或求不是NULL的字段的行数的字段的行数5.使用分组和使用分组和SQL函数查询函数查询【例【例5-31】求学生的总人数。】求学生的总人数。 SELECT COUNT (*)SELECT COUNT (*) FROM FROM 学生;学生;茅过样秦
44、辐雁祝乎轰颊塑赎谆俏惶旺哼茂舶钾将曙眯副魂欠雌吗浪耙姜煎数据库系统原理课件数据库系统原理课件例子例子【例【例5-325-32】求选修了课程的学生人数。】求选修了课程的学生人数。 SELECT COUNT(DISTINCT SELECT COUNT(DISTINCT SELECT COUNT(DISTINCT SELECT COUNT(DISTINCT 学号学号学号学号) ) ) ) FROM FROM FROM FROM 选课;选课;选课;选课;【例【例5-335-33】求课程和选修该课程的人数。】求课程和选修该课程的人数。 SELECT SELECT SELECT SELECT 课程号,课程
45、号,课程号,课程号,COUNT(COUNT(COUNT(COUNT(学号学号学号学号) ) ) ) FROM FROM FROM FROM 选课选课选课选课 GROUP BY GROUP BY GROUP BY GROUP BY 课程号;课程号;课程号;课程号;【例【例5-345-34】求选修课超过】求选修课超过3 3门课的学生学号。门课的学生学号。 SELECT SELECT SELECT SELECT 学号学号学号学号 FROM FROM FROM FROM 选课选课选课选课 GROUP BY GROUP BY GROUP BY GROUP BY 学号学号学号学号 HAVING COUNT
46、(*)3 HAVING COUNT(*)3 HAVING COUNT(*)3 HAVING COUNT(*)3; 隔晾奴穴厘棺逐继踩废游羊份拓堕憾嚣韶掺杀障哑鄂幼涤瞒皂唁仓掉扛攒数据库系统原理课件数据库系统原理课件5.4 5.4 数据更新语句数据更新语句5.4.1 5.4.1 数据插入语句数据插入语句1. 1. 使用常量插入单个元组使用常量插入单个元组格式为:格式为: INSERT INSERT INTO INTO表名表名(属性列属性列1 1 ,属性列,属性列2 2) VALUES ( VALUES (常量常量1 1 ,常量,常量2 2);摸希镐啦息婆噬探伟鳞祭烬傣南午厢浅员瘩救岛刁核曹茵吹屑
47、籍熟越个粒数据库系统原理课件数据库系统原理课件例子例子【例【例5-355-35】将一个新学生记录】将一个新学生记录( (学号:学号:9801098010,姓名:,姓名:张三张三,年龄:,年龄:2020,所在系:,所在系:计算机系计算机系 ) )插入到学插入到学生表中。生表中。INSERTINSERTINTO INTO 学生学生VALUES (VALUES (9801098010,张三张三,2020,计算机系计算机系) );【例【例5-365-36】插入一条选课记录】插入一条选课记录( (学号:学号:9801198011,课程号:,课程号:C10C10,成绩不详,成绩不详) )。 INSERTI
48、NSERT INTO INTO 选课选课 ( (学号,课程号学号,课程号) ) VALUES (98011 VALUES (98011,C10)C10);蛤刑囊拂希氓匪剔音撒勺踊娱木咋付勋势勺戳食狸泻执澈两灰寇仔擎膀租数据库系统原理课件数据库系统原理课件2.在表中插入子查询的结果集在表中插入子查询的结果集 INSERTINSERT INTO INTO表名表名(属性列属性列1 1 ,属性列,属性列2 2 ) 子查询;子查询;【例【例5-375-37】求每个系学生的平均年龄,把结果存入数据库中。】求每个系学生的平均年龄,把结果存入数据库中。 CREATE TABLE CREATE TABLE 系平
49、均年龄系平均年龄 ( (系名称系名称CHAR(20)CHAR(20), 平均年龄平均年龄SMALLINT)SMALLINT); INSERT INSERT INTO INTO 系平均年龄系平均年龄 SELECT SELECT 所在系,所在系,AVG(ALLAVG(ALL年龄年龄) ) FROM FROM 学生学生 GROUP BY GROUP BY 所在系;所在系;蕴肝爹砒油捞亏辫圃薄赁鄂譬贡呸铱蝇踌妄瞳漫邪赞闷沿噶一趾伎栅搪蓝数据库系统原理课件数据库系统原理课件5.4.2 5.4.2 数据修改语句数据修改语句UPDATEUPDATE表名表名SETSET列名列名= =表达式表达式 ,列名,列名
50、= =表达式表达式,nnWHEREWHERE条件条件 ;【例【例5-385-38】将学生表中全部学生的年龄加上】将学生表中全部学生的年龄加上2 2岁。岁。 UPDATE UPDATE 学生学生 SET SET 年龄年龄= =年龄年龄+2+2;【例【例5-395-39】将选课表中的数据库课程的成绩乘以】将选课表中的数据库课程的成绩乘以1.21.2。 UPDATE UPDATE 选课选课 SET SET 成绩成绩= = 成绩成绩*1.2*1.2 WHERE WHERE 课程号课程号= (SELECT = (SELECT 课程号课程号 FROM FROM 课程课程 WHERE WHERE 课程名课程
51、名= = 数据库数据库 ) );醛呛蟹爸续攀妖遵穷进裂仑额萌层廓亲祈捕琴戚霹鸵量舰馏巴烯绳逮唾墨数据库系统原理课件数据库系统原理课件5.4.3数据删除语句数据删除语句 DELETEDELETE FROM FROM表名表名 WHERE WHERE条件条件 ;【例【例5-405-40】删除艺术系的学生记录及选课记录。】删除艺术系的学生记录及选课记录。 DELETEDELETE FROM FROM 选课选课 WHERE WHERE 学号学号 IN (SELECT IN (SELECT 学号学号 FROM FROM 学生学生 WHERE WHERE 所在系所在系=艺术系艺术系); DELETE DEL
52、ETE FROM FROM 学生学生 WHERE WHERE 所在系所在系=艺术系艺术系 ;潘腋辣衙烘眷紫役堪长阂倡型法醋尹等阑瞬园阀苫待传迪茸耐选炬满足哼数据库系统原理课件数据库系统原理课件5.5 嵌入式SQL5.5.1 5.5.1 嵌入式嵌入式SQLSQL的特点的特点1. 1. 嵌入式嵌入式SQLSQL应注意的问题应注意的问题1) SQL1) SQL和主语言的配合问题。和主语言的配合问题。2) 2) 合理选择主语言。合理选择主语言。2. SQL2. SQL嵌入主语言时必须解决的三个问题嵌入主语言时必须解决的三个问题(1) (1) 如何区别如何区别SQLSQL和主语言和主语言(2) (2)
53、使数据库的工作单元与程序工作单元之间能够通信使数据库的工作单元与程序工作单元之间能够通信1) 1) 主语言通过主变量向主语言通过主变量向SQLSQL语句提供参数。语句提供参数。 2) SQL 2) SQL语句的当前工作状态和运行环境数据要返馈给应用程序。语句的当前工作状态和运行环境数据要返馈给应用程序。(3) (3) 使用游标解决使用游标解决SQLSQL一次一集合的操作与主语言一次一一次一集合的操作与主语言一次一记录操作的矛盾记录操作的矛盾遗收醋沾壶页与钻鲸舟缀逻瞧赠望飞宣厘荚罢排钾容粗蛙泅宪素政奏省媒数据库系统原理课件数据库系统原理课件5.5.2不用游标的不用游标的SQL语句语句1. 1.
54、几种不需要使用游标的几种不需要使用游标的SQLSQL语句语句(1) (1) 用于说明主变量的说明性语句用于说明主变量的说明性语句 SQLSQL的说明性语句主要有两条:的说明性语句主要有两条: EXEC SQL BEGIN DECLARE SECTION EXEC SQL BEGIN DECLARE SECTION; EXEC SQL END DECLARE SECTION EXEC SQL END DECLARE SECTION;(2) (2) 数据定义和数据控制语句数据定义和数据控制语句(3) (3) 查询结果为单记录的查询语句查询结果为单记录的查询语句(4) (4) 数据的插入语句和某些数
55、据删除、修改语句数据的插入语句和某些数据删除、修改语句独立的数据删除和修改语句不需要使用游标;与查询语句配合,删独立的数据删除和修改语句不需要使用游标;与查询语句配合,删除或修改查询到的当前记录的操作,与游标有关。除或修改查询到的当前记录的操作,与游标有关。 稳盔亢念财池煮铲涣釜抗刹豁芯萍佑寓殉翰吠磋哑篇去栅谰夏瘴洗手鲁宏数据库系统原理课件数据库系统原理课件2.不用游标的查询语句不用游标的查询语句EXEC SQL SELECT ALL|DISTINCTEXEC SQL SELECT ALL|DISTINCT目标列表达式目标列表达式 ,nn INTO INTO主变量主变量 指示变量指示变量,nn
56、 FROM FROM表名或视图名表名或视图名 ,n n WHERE WHERE条件表达式条件表达式 ;1) 1) 在语句开始前要加在语句开始前要加EXEC SQLEXEC SQL前缀。前缀。2) 2) 该查询语句中又扩充了该查询语句中又扩充了INTOINTO子句。子句。3) 3) 在在WHEREWHERE子句的条件表达式中可以使用主变量。子句的条件表达式中可以使用主变量。4) 4) 由于查询的结果集中只有一条记录,该语句中不必有排序和由于查询的结果集中只有一条记录,该语句中不必有排序和分组子句。分组子句。5) INTO5) INTO子句中的主变量后面跟有指示变量时:结果列值为子句中的主变量后面
57、跟有指示变量时:结果列值为NULLNULL,指示变量为负值,结果列不向该主变量赋值;传递正常,指示,指示变量为负值,结果列不向该主变量赋值;传递正常,指示变量的值为变量的值为0 0;主变量宽度不够,则指示变量的值为数据截断前;主变量宽度不够,则指示变量的值为数据截断前的宽度。的宽度。挠他瘪霜舵鬃练杀哥居易鸵沉昆炮傍磨英擂癌究鼎烤苍峭俱袖憎携逾淋圃数据库系统原理课件数据库系统原理课件例子例子【例【例5-415-41】查询学号为主变量】查询学号为主变量givesnogivesno、课号为主变量、课号为主变量givecnogivecno的值的学生的值的学生选课记录。选课记录。 EXEC SQL SE
58、LECT EXEC SQL SELECT 学号,课程号,成绩学号,课程号,成绩 INTO :Sno INTO :Sno,:Cno:Cno,:grade :gradeid:grade :gradeid FROM FROM 选课选课 WHERE WHERE 学号学号= :givesno AND = :givesno AND 课程号课程号= :givecno= :givecno;3. 3. 不用游标的数据维护语句不用游标的数据维护语句(1) (1) 不用游标的数据删除语句不用游标的数据删除语句【例【例5-425-42】删除学号由主变量】删除学号由主变量SnoSno决定的学生记录。决定的学生记录。 E
59、XEC SQL DELETEEXEC SQL DELETE FROM FROM 学生学生 WHERE WHERE 学号学号= :Sno= :Sno;挺茨节卧突酚类甸或楼菇措迭负暇射挖搅膏耕填钟拍默蔼雷兑既湛好肯紊数据库系统原理课件数据库系统原理课件(2)不用游标的数据修改语句不用游标的数据修改语句【例【例5-435-43】将计算机系所有学生的年龄都加上主变量】将计算机系所有学生的年龄都加上主变量RaiseRaise。 EXEC SQL UPDATE EXEC SQL UPDATE 学生学生 SET SET 年龄年龄= =年龄年龄+:Raise+:Raise WHERE WHERE 所在系所在系
60、= =计算机系计算机系;【例【例5-445-44】将计算机系学生的年龄置空。】将计算机系学生的年龄置空。 Raiseid=-1Raiseid=-1 EXEC SQL UPDATE EXEC SQL UPDATE 学生学生 SET SET 年龄年龄= =年龄年龄+:Raise :Raiseid+:Raise :Raiseid;(3) (3) 不用游标的数据插入语句不用游标的数据插入语句【例【例5-455-45】将学号为主变量】将学号为主变量SnoSno、课程号为、课程号为CnoCno的选课记录,插到库中。的选课记录,插到库中。 EXEC SQL INSERTEXEC SQL INSERT INT
61、O INTO 选课选课 VALUES (:Sno VALUES (:Sno, :Cno) :Cno);商响诫期市饺街虹漏灌驭贫荐矿鲤频灿缨氢隙烹辙肤衬残越龚呢灾氖酷讽数据库系统原理课件数据库系统原理课件5.5.3使用游标的使用游标的SQL(1) (1) 定义游标命令定义游标命令 EXEC SQL DECLAREEXEC SQL DECLARE游标名游标名CURSORCURSOR FOR FOR子查询子查询 FOR UPDATE OF FOR UPDATE OF字段名字段名1 1 ,nn;删除和修改数据的语句中,删除和修改数据的语句中,WHEREWHERE为:为: WHERE CURRENT O
62、FWHERE CURRENT OF游标名游标名【例【例5-465-46】定义按主变量】定义按主变量DEPTDEPT查询系里学生的游标。查询系里学生的游标。 EXEC SQL DECLARE SX CURSOR FOR EXEC SQL DECLARE SX CURSOR FOR SELECT * FROM SELECT * FROM 学生学生 WHERE WHERE 所在系所在系= :DEPT= :DEPT;宅眷吮堕迹东掉比孝绪展铸敖盯防扬全苔呕挑江状掌垄浓扰雍余睹厦爱讫数据库系统原理课件数据库系统原理课件(2) (2) 打开、推进和关闭游标命令打开、推进和关闭游标命令EXEC SQL OPE
63、N EXEC SQL OPEN 游标名;游标名; 执行对应的查询语句,并将游标指向结果集的第一条记录前。执行对应的查询语句,并将游标指向结果集的第一条记录前。打开的游标处于活动状态,可以被推进。打开的游标处于活动状态,可以被推进。EXEC SQL FETCHEXEC SQL FETCH游标名游标名INTOINTO主变量组;主变量组; 将游标下移一行,读出当前的记录,将当前记录的各数据项将游标下移一行,读出当前的记录,将当前记录的各数据项值放到值放到INTOINTO后的主变量组中。后的主变量组中。EXEC SQL CLOSE EXEC SQL CLOSE 游标名;游标名; 【例【例5-475-4
64、7】打开】打开SXSX游标。游标。 DEPT= DEPT= 计算机系计算机系 EXEC SQL OPEN SX EXEC SQL OPEN SX; 【例【例5-485-48】将打开的指向系的游标向前推进。】将打开的指向系的游标向前推进。 EXEC SQL FETCH SX EXEC SQL FETCH SX INTO :Sno INTO :Sno,:Sname:Sname,:Sage:Sage,:Sdept:Sdept;肪蘑洱釉槛旗虹槽循毛淌至攻员美掖啤壁陨言法锄抬狼及捏仕虹警檄炽秉数据库系统原理课件数据库系统原理课件5.6 5.6 数据控制机制和语句数据控制机制和语句5.6.1 5.6.1
65、数据控制机制数据控制机制1. 1. 授权定义授权定义 具具有有授授权权资资格格的的用用户户,如如DBADBA或或DBODBO,通通过过数数据据控控制制语语言言DCLDCL,将授权决定告知数据库管理系统,将授权决定告知数据库管理系统。2. 2. 存权处理存权处理DBMSDBMS把授权的结果编译后存入数据字典中。把授权的结果编译后存入数据字典中。3. 3. 查权操作查权操作 当当提提出出操操作作请请求求时时,系系统统在在数数据据字字典典中中查查找找该该用用户户的的数数据据操操作作权权限限,当当拥拥有有该该操操作作权权时时执执行行其其操操作作,否否则则系系统统将将拒拒绝其操作。绝其操作。裁构淌糖基暂
66、尽砂尚依玄奴秃虹输挛豹岳携蓑莲卿袍柯内米忆鼎协乃伏沃数据库系统原理课件数据库系统原理课件5.6.2 5.6.2 数据控制语句数据控制语句1. 1. 授权语句授权语句 GRANTGRANT系统特权组系统特权组ToTo用户组用户组| PUBLIC| PUBLIC WITH GRANT OPTION WITH GRANT OPTION;1) PUBLIC1) PUBLIC指数据库的所有用户。指数据库的所有用户。2) WITH GRANT OPTION:2) WITH GRANT OPTION:获得权限的用户可以把该权限再授获得权限的用户可以把该权限再授予别的用户。予别的用户。 GRANT ALL P
67、RIVILIGES|GRANT ALL PRIVILIGES|对象特权组对象特权组ONON对象名对象名 TO TO用户组用户组| PUBLIC| PUBLIC WITH GRANT OPTION WITH GRANT OPTION;1) ALL PRIVILIGES1) ALL PRIVILIGES指所有的对象特权。指所有的对象特权。2) 2) 对象名指操作的对象标识,如表名、视图名和过程名等。对象名指操作的对象标识,如表名、视图名和过程名等。律裙辰轿玄逾匡片吁工刽删震尼啥宋荆公艾捍骸务淹数婆萍湾阶辖礁限邑数据库系统原理课件数据库系统原理课件例子例子【例【例5-515-51】把修改学生学号和查
68、询学生表的权力授予用户王】把修改学生学号和查询学生表的权力授予用户王平。平。 GRANT UPDATE(GRANT UPDATE(学号学号) ),SELECT ON SELECT ON 学生学生 TO TO 王平;王平;【例【例5-525-52】把建立数据库和备份数据库的权力赋给用户王平。】把建立数据库和备份数据库的权力赋给用户王平。 GRANT CREATE DATABASEGRANT CREATE DATABASE, BACKUP DATABASE TO BACKUP DATABASE TO 王平;王平;钱阐工锦担竹停手附遇毡吃冠锨翘烛瑶错毕坞虐囱骚粉搏宛纽倘惭疼瑚监数据库系统原理课件数据
69、库系统原理课件2. 收权语句REVOKEREVOKE语句的一般格式为:语句的一般格式为: REVOKE REVOKE权限组权限组|ALL PRIVILIGES ON|ALL PRIVILIGES ON对象名对象名 FROM FROM用户名组用户名组| PUBLIC| PUBLIC;其中:其中:ONON子句用于指定被收回特权的对象;子句用于指定被收回特权的对象;ALL ALL PRIVILIGESPRIVILIGES指收回所有特权;指收回所有特权;PUBLICPUBLIC指所有用户指所有用户【例【例5-535-53】将用户王平的可以在学生表中修改学生学号的】将用户王平的可以在学生表中修改学生学号
70、的权利收回。权利收回。 REVOKE UPDATE(REVOKE UPDATE(学号学号) ON ) ON 学生学生 FROM FROM 王平;王平;计侥翘磋桑味店绿酚锤逝哇宿笺晓磊侗攀祷开混射肢垄洋哺刨狰输锁登州数据库系统原理课件数据库系统原理课件3.拒绝访问语句拒绝访问语句拒绝访问语句的一般格式为:拒绝访问语句的一般格式为: DENY ALL PRIVILIGES | DENY ALL PRIVILIGES | 权限组权限组 ON ON 对象名对象名 TO TO 用户组用户组 | PUBLIC | PUBLIC;其中:其中:ONON子句用于说明对象特权的对象名;对象名指的子句用于说明对象特权的对象名;对象名指的是表名、视图名、视图和表的字段名或者过程名。是表名、视图名、视图和表的字段名或者过程名。瞎辅峡盎虾荷东觅薪惯洒站蹋廓琢诫膏籽搀黎拱泞蝴买猖这煽呆剪捐喻磺数据库系统原理课件数据库系统原理课件本章结束,谢谢勃扮责陪浓捐仓员怜酵酮介会我袭袍疑劣采痰洽际塌鞠仍藩祁蛀胃露场张数据库系统原理课件数据库系统原理课件