第十二讲SQL语言的DML和DCL.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十二讲 SQL语言的DML和DCL 本讲内容 介绍SQL语言的DML,即数据操作语句。 介绍SQL语言的DCL,即数据控制语句。 数据操作 插入数据——INSERT 修改数据——UPDATE 删除数据——DELETE 插入数据 插入单个元组 格式: INSERT INTO 表名 [(属性列1[,属性列2]……)] VALUES (常量1[,常量2]……); 插入多个元组(子查询结果) 格式: INSERT INTO 表名 [(属性列1[,属性列2]……)] 子查询; 例:对每一个系,求学生的平均年龄,并把结果存入数据库。 INSERT INTO Deptage(Sdept,Avgage) SELECT Sdept,AVG(Sage) FROM Student GROUP BY Sdept; 修改数据 格式: UPDATE 表名 SET 列名=表达式[,列名=表达式]…… [WHERE 条件]; 根据条件的指定可以 修改一个元组的值,也可以 修改多个元组的值,此外也可以使用 带子查询的修改语句。 例:将计算机科学系的学生的成绩置零。 UPDATE SC SET Grade=0 WHERE ‘CS’= (SELECT Sdept FROM Student WHERE Student.Sno=SC.Sno); 一致性问题 UPDATE语句一次只能操作一个表。这会带来数据库的一致性问题。例如,学号为95007的学生因病休学一年,复学后需要将其学号改为96089,由于Student表和SC表都有关于95007的信息,因此两个表都需要修改,而这种修改只能通过两条UPDATE语句进行。在执行了一句修改后(例如对Student中相应的记录做了修改),数据库中的数据处于不一致状态,数据的参照完整性受到破坏(此时原来95007选修的课程还没有归于96089)。只有两条修改语句都执行了,数据库才会再次处于一致状态,为了保证这两条语句要么都做,要么都不做,数据库系统引入了事务(transaction)的概念,这在以后再讲。 事务可以保证若干操作要么同时被执行,要么全部不被执行。而不会产生其中一些被执行,另一些不被执行的情况。 删除数据 删除语句的一般格式为: DELETE FROM 表名 [WHERE 条件]; DELETE语句的功能是从指定表中删除满足WHERE子句条件的所有元组。如果省略WHERE子句,则表示删除表中全部元组,但表的定义仍在字典中。也就是说,DELETE语句删除的是表中的数据,而不是关于表的定义。 与修改语句一样,根据指定条件的不同,可以分别完成一个元组、多个元组的删除,也可以完成带子查询的删除,而且也可能造成数据库的一致性问题 数据控制 数据控制也称数据保护,分为安全性控制、完整性控制、并发控制和恢复。 安全性控制主要是防止数据泄密和破坏,其主要措施是进行存取控制。 完整性控制是为了保证数据的正确性和相容性。 安全性控制 数据的安全性是指保护数据库,以防止非法使用造成数据泄露和破坏。保证数据安全性的主要方法是通过对数据库存取权力的控制来防止使用数据库中的数据,即限定不同用户操作不同的数据对象的权限。 授权 收回权限 授权 数据库管理员专用的授权格式: GRANT CONNECT|RESOURCE|DBA TO 用户 [IDENTIFIED BY 口令]; CONNECT权限是指连接数据库的权限,通常这类用户可以连接数据库并查看授予他的各种数据表,但不能创建属于自己的数据对象,如表。 RESOURCE权限允许用户建立自己的新关系模式,如表。通常,拥有RESOURCE权限的用户也应拥有CONNECT权限。 DBA权限是数据库管理特权。 当使用IDENTIFIED BY子句时,系统会将指定的用户的口令进行更改,如果该用户不存在,则创建之。 例:授予用户MM连接数据库权限。 GRANT CONNECT TO MM IDENTIFIED BY plmm; 用户可用的授权格式: GRANT 权限1[,权限2]…… [ON 对象类型 对象名[,对象名]……] TO 用户[,用户]…… [WITH GRANT OPTION]; 关于对象的权限 不同对象类型允许的操作权限如下表所示: 示例 例: GRANT SELECT ON TABLE Student TO U1; GRANT ALL PRIVILEGES ON TABLE Student,Course TO U2,U3; GRANT SELECT ON TABLE SC TO PUBLIC; GRANT UPDATE(Sno),SELECT ON TABLE Stud

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档