数据定义和事务控制语言.ppt

上传人:小飞机 文档编号:6364925 上传时间:2023-10-21 格式:PPT 页数:54 大小:490KB
返回 下载 相关 举报
数据定义和事务控制语言.ppt_第1页
第1页 / 共54页
数据定义和事务控制语言.ppt_第2页
第2页 / 共54页
数据定义和事务控制语言.ppt_第3页
第3页 / 共54页
数据定义和事务控制语言.ppt_第4页
第4页 / 共54页
数据定义和事务控制语言.ppt_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《数据定义和事务控制语言.ppt》由会员分享,可在线阅读,更多相关《数据定义和事务控制语言.ppt(54页珍藏版)》请在三一办公上搜索。

1、wnt 2000(C)copyright,1,Oracle数据库,数据定义和事务控制语言,9,主讲教师:,wnt 2000(C)copyright,2,SQL Statements,wnt 2000(C)copyright,3,本章目标,更改表结构更改表名称删除表截断表使用表约束 数据控制语言 事务控制命令,wnt 2000(C)copyright,4,Alter Table:作用,添加一个新列 修改一个现有的列删除一个现有的列,wnt 2000(C)copyright,5,Alter Table:语法,wnt 2000(C)copyright,6,Alter Table:添加新列,DEPT8

2、0,ALTER TABLE DEPT80 ADD(JOB_ID NUMBER);Table altered.,DEPT80,新列使用 NULL 值填充,新列添加到表的结尾处,表可以为空也可以包含数据,只有当表为空时,才可将列定义为 NOT NULL,wnt 2000(C)copyright,7,Alter Table:修改已有列,无法更改列名称,随时都可以将列从 NOT NULL 更改为NULL,若要更改列的数据类型,则所有列值都必须是 NULL,若要减小,则所有列值都必须是 NULL,ALTER TABLE dept80MODIFY(last_name VARCHAR2(30),wnt 20

3、00(C)copyright,8,Alter Table:删除已有列,示例 ALTER TABLE dept80DROP COLUMN job_id,wnt 2000(C)copyright,9,本章目标,更改表结构更改表名称删除表截断表使用表约束 数据控制语言 事务控制命令,wnt 2000(C)copyright,10,Rename,示例 RENAME emp TO myEmp,源表名,目标表名,wnt 2000(C)copyright,11,本章目标,更改表结构更改表名称删除表截断表使用表约束 数据控制语言 事务控制命令,wnt 2000(C)copyright,12,Drop Tabl

4、e,示例 DROP TABLE employee,wnt 2000(C)copyright,13,本章目标,更改表结构更改表名称删除表截断表使用表约束 数据控制语言 事务控制命令,wnt 2000(C)copyright,14,Truncate Table,示例 TRUNCATE TABLE employee,是最有效率的去除表中所有记录的方法,不能用 Rollback 撤销 Truncate Table 命令,释放表中记录所占用的空间,移除表中的所有行,wnt 2000(C)copyright,15,本章目标,更改表结构更改表名称删除表截断表使用表约束 数据控制语言 事务控制命令,wnt 2

5、000(C)copyright,16,Constraint,可以在表中放置下列约束以确保数据完整性 PRIMARY KEYFOREIGN KEYNOT NULLDEFAULTCHECKUNIQUE,主键,外键,禁止为空,设置默认值,检查数据合法性,设置唯一性,wnt 2000(C)copyright,17,Constraint:命名方式,CREATE TABLE emp(emp_id NUMBER(6),first_name VARCHAR2(20)NOT NULL,),CREATE TABLE emp(emp_id NUMBER(6),first_name VARCHAR2(20)CONST

6、RAINT emp_first_name_nn NOT NULL,),系统命名,用户命名,CREATE TABLE emp(emp_id NUMBER(6),first_name VARCHAR2(20),CONSTRAINT emp_first_name_nn NOT NULL(first_name),用户命名,wnt 2000(C)copyright,18,Constraint:PRIMARY KEY(例),CREATE TABLE departments(department_id NUMBER(4),department_name VARCHAR2(30)CONSTRAINT dept

7、_name_nn NOT NULL,manager_id NUMBER(6),CONSTRAINT dept_id_pk PRIMARY KEY(department_id)/,wnt 2000(C)copyright,19,Constraint:PRIMARY KEY,wnt 2000(C)copyright,20,Constraint:FOREIGN KEY(例),CREATE TABLE employees(employee_id NUMBER(6),last_name VARCHAR2(25)NOT NULL,hire_date DATE NOT NULL,.department_id

8、 NUMBER(4),CONSTRAINT emp_dept_fk FOREIGN KEY(department_id)REFERENCES departments(department_id),CONSTRAINT emp_email_uk UNIQUE(email)/,wnt 2000(C)copyright,21,Constraint:FOREIGN KEY,wnt 2000(C)copyright,22,ALTER TABLE books ADD CONSTRAINT books_name_unq UNIQUE(book_name),将约束添加到表,可将约束添加到现有表 使用 ALTE

9、R TABLE 语句 示例,wnt 2000(C)copyright,23,禁用约束,可以临时禁用约束 使用 ALTER TABLE 语句 示例,ALTER TABLE books DISABLE CONSTRAINT books_name_unq,wnt 2000(C)copyright,24,启用约束,禁用约束后可对其重新启用使用 ALTER TABLE 语句 示例,ALTER TABLE books ENABLE CONSTRAINT books_name_unq,wnt 2000(C)copyright,25,删除约束,可临时删除约束 使用 ALTER TABLE 语句 示例 可使用下

10、列语句强制除去主键约束,ALTER TABLE books DROP CONSTRAINT books_name_unq,ALTER TABLE books DROP PRIMARY KEY CASCADE,wnt 2000(C)copyright,26,本章目标,更改表结构更改表名称删除表截断表使用表约束 数据控制语言 事务控制命令,wnt 2000(C)copyright,27,数据控制语言(DCL),通过给已授权用户分配权限和特权来提供对数据的保护 可撤消已授予给用户的特权 两个主要的命令 GRANTREVOKE,wnt 2000(C)copyright,28,数据控制语言:GRANT,

11、允许将数据库对象上的某些特权授予其他用户 可以授予的特权是 Select、Insert、Update 和 Delete WITH GRANT OPTION 允许用户将数据库对象上的特权传递给其他用户 GRANT ALL 用于将所有特权授予用户,GRANT privilege,privilege.TO user,user.;,wnt 2000(C)copyright,29,数据控制语言:GRANT(续),SQL GRANT create table,create sequence,create view 2 TO scott;Grant succeeded.,wnt 2000(C)copyrig

12、ht,30,数据控制语言:REVOKE,允许收回已授予用户的特权 可以撤消的特权是 Select、Insert、Update 和 Delete REVOKE ALL 用于撤消用户的所有特权,wnt 2000(C)copyright,31,数据控制语言:REVOKE(续),REVOKE SELECT,INSERT,UPDATE,DELETE ON EMPFROM TEST,REVOKE ALL ON EMPFROM TEST,wnt 2000(C)copyright,32,控制用户访问,Databaseadministrator,Users,Username and passwordprivil

13、eges,wnt 2000(C)copyright,33,控制用户访问:权限,数据库安全:系统安全数据安全系统权限:控制对数据库的访问对象权限:操作数据库对象中的内容Schema:Collection of objects,such as tables,views,and sequences,wnt 2000(C)copyright,34,控制用户访问:系统权限,80个以上的权限可供选择.DBA 拥有高级别权限:Create new usersRemove usersRemove tablesBack up tables,wnt 2000(C)copyright,35,控制用户访问:创建用户,

14、SQL CREATE USER scott 2 IDENTIFIED BY tiger;User created.,CREATE USER user IDENTIFIED BY password;,wnt 2000(C)copyright,36,控制用户访问:什么是角色,Allocating privilegeswithout a role,Allocating privilegeswith a role,Privileges,Users,Manager,wnt 2000(C)copyright,37,控制用户访问:创建角色并授权,SQL CREATE ROLE manager;Role cr

15、eated.,SQL GRANT create table,create view 2 to manager;Grant succeeded.,SQL GRANT manager to BLAKE,CLARK;Grant succeeded.,wnt 2000(C)copyright,38,控制用户访问:修改用户密码,SQL ALTER USER scott 2 IDENTIFIED BY lion;User altered.,wnt 2000(C)copyright,39,控制用户访问:对象权限,Object Privilege TableViewSequenceProcedureALTER

16、 DELETE EXECUTE INDEX INSERT REFERENCES SELECT UPDATE,wnt 2000(C)copyright,40,控制用户访问:对象权限(续),GRANTobject_priv(columns)ONobject TOuser|role|PUBLIC WITH GRANT OPTION;,wnt 2000(C)copyright,41,控制用户访问:对象权限(续),SQL GRANTselect 2 ONemp 3 TOsue,rich;Grant succeeded.,SQL GRANTupdate(dname,loc)2 ONdept 3 TOsco

17、tt,manager;Grant succeeded.,wnt 2000(C)copyright,42,控制用户访问:对象权限(续),SQL GRANTselect,insert 2 ONdept 3 TOscott 4 WITH GRANT OPTION;Grant succeeded.,SQL GRANTselect 2 ONalice.dept 3 TOPUBLIC;Grant succeeded.,wnt 2000(C)copyright,43,控制用户访问:对象权限(续),REVOKE privilege,privilege.|ALLON objectFROM user,user.|

18、role|PUBLICCASCADE CONSTRAINTS;,wnt 2000(C)copyright,44,控制用户访问:对象权限(续),SQL REVOKEselect,insert 2 ONdept 3 FROMscott;Revoke succeeded.,SQL REVOKEall 2 ONdept 3 FROMscott;Revoke succeeded.,wnt 2000(C)copyright,45,本章目标,更改表结构更改表名称删除表截断表使用表约束 数据控制语言 事务控制命令,wnt 2000(C)copyright,46,事务控制命令,事务是一个或多个 SQL 语句序列

19、 在程序更新数据库时事务至关重要,因为必须维护数据库的完整性 三个事务控制命令 COMMITSAVEPOINTROLLBACK,wnt 2000(C)copyright,47,COMMIT,用于结束事务 对数据库做永久性更改 擦除事务中的所有保存点 COMMIT 语句表示 所有 SQL 语句均已执行 事务成功结束 数据库处于一致状态,wnt 2000(C)copyright,48,COMMIT(续),示例 INSERT INTO memberVALUES(M0719,TIMMY,1239876);COMMIT WORK;,wnt 2000(C)copyright,49,SAVEPOINT,“保

20、存点”就像一个标记,用来将很长的事务划分为若干个较小的事务 标识事务中的某个点以便将来可以回滚 它与回滚一起使用以回滚当前事务部分,wnt 2000(C)copyright,50,SAVEPOINT(续),示例 INSERT INTO memberVALUES(M0719,TIMMY,1239876);SAVEPOINT mem1;INSERT INTO memberVALUES(M0720,ALLEN,6547865);SAVEPOINT mem2;INSERT INTO memberVALUES(M0721,BOSCO,8091265);,wnt 2000(C)copyright,51,R

21、OLLBACK,用于撤消当前事务中完成的工作ROLLBACK 语句 放弃对数据库所做的更改 表示事务不成功结束 将数据库恢复到事务前的状态,wnt 2000(C)copyright,52,ROLLBACK(续),示例 INSERT INTO memberVALUES(M0722,DAVID,2137634);ROLLBACK WORK;或ROLLBACK TO SAVEPOINT mem2;,wnt 2000(C)copyright,53,本章总结,wnt 2000(C)copyright,54,本章总结(续),StatementActionCREATE USERAllows the DBA to create a userGRANTAllows the user to give other usersprivileges to access the usersobjectsCREATE ROLEAllows the DBA to create a collectionof privilegesALTER USERAllows users to change theirpasswordREVOKERemoves privileges on an object fromusers,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号