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

上传人:max****ui 文档编号:14551916 上传时间:2020-07-23 格式:PPT 页数:54 大小:659.31KB
返回 下载 相关 举报
数据定义和事务控制语言.ppt_第1页
第1页 / 共54页
数据定义和事务控制语言.ppt_第2页
第2页 / 共54页
数据定义和事务控制语言.ppt_第3页
第3页 / 共54页
点击查看更多>>
资源描述
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 : 添加新列,DEPT80,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 dept80 MODIFY ( last_name VARCHAR2(30) ),wnt 2000(C) copyright,8,Alter Table : 删除已有列,示例 ALTER TABLE dept80 DROP 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 Table,示例 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 2000(C) copyright,16,Constraint,可以在表中放置下列约束以确保数据完整性 PRIMARY KEY FOREIGN KEY NOT NULL DEFAULT CHECK UNIQUE,主键,外键,禁止为空,设置默认值,检查数据合法性,设置唯一性,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) CONSTRAINT 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_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 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),将约束添加到表,可将约束添加到现有表 使用 ALTER 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 语句 示例 可使用下列语句强制除去主键约束,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),通过给已授权用户分配权限和特权来提供对数据的保护 可撤消已授予给用户的特权 两个主要的命令 GRANT REVOKE,wnt 2000(C) copyright,28,数据控制语言 :GRANT,允许将数据库对象上的某些特权授予其他用户 可以授予的特权是 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) copyright,30,数据控制语言 :REVOKE,允许收回已授予用户的特权 可以撤消的特权是 Select、Insert、Update 和 Delete REVOKE ALL 用于撤消用户的所有特权,wnt 2000(C) copyright,31,数据控制语言 :REVOKE (续),REVOKE SELECT, INSERT, UPDATE, DELETE ON EMP FROM TEST,REVOKE ALL ON EMP FROM TEST,wnt 2000(C) copyright,32,控制用户访问,Database administrator,Users,Username and password privileges,wnt 2000(C) copyright,33,控制用户访问:权限,数据库安全: 系统安全 数据安全 系统权限: 控制对数据库的访问 对象权限: 操作数据库对象中的内容 Schema: Collection of objects, such as tables, views, and sequences,wnt 2000(C) copyright,34,控制用户访问:系统权限,80个以上的权限可供选择. DBA 拥有高级别权限: Create new users Remove users Remove tables Back up tables ,wnt 2000(C) copyright,35,控制用户访问:创建用户,SQL CREATE USER scott 2 IDENTIFIED BY tiger; User created.,CREATE USER user IDENTIFIED BY password;,wnt 2000(C) copyright,36,控制用户访问:什么是角色,Allocating privileges without a role,Allocating privileges with a role,Privileges,Users,Manager,wnt 2000(C) copyright,37,控制用户访问:创建角色并授权,SQL CREATE ROLE manager; Role created.,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 TableViewSequenceProcedure ALTER 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 TOscott, 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.|ALL ON object FROM user, user.|role|PUBLIC CASCADE 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 语句序列 在程序更新数据库时事务至关重要,因为必须维护数据库的完整性 三个事务控制命令 COMMIT SAVEPOINT ROLLBACK,wnt 2000(C) copyright,47,COMMIT,用于结束事务 对数据库做永久性更改 擦除事务中的所有保存点 COMMIT 语句表示 所有 SQL 语句均已执行 事务成功结束 数据库处于一致状态,wnt 2000(C) copyright,48,COMMIT(续),示例 INSERT INTO member VALUES(M0719,TIMMY, 1239876); COMMIT WORK;,wnt 2000(C) copyright,49,SAVEPOINT,“保存点”就像一个标记,用来将很长的事务划分为若干个较小的事务 标识事务中的某个点以便将来可以回滚 它与回滚一起使用以回滚当前事务部分,wnt 2000(C) copyright,50,SAVEPOINT(续),示例 INSERT INTO member VALUES(M0719,TIMMY, 1239876); SAVEPOINT mem1; INSERT INTO member VALUES(M0720,ALLEN, 6547865); SAVEPOINT mem2; INSERT INTO member VALUES(M0721,BOSCO, 8091265);,wnt 2000(C) copyright,51,ROLLBACK,用于撤消当前事务中完成的工作 ROLLBACK 语句 放弃对数据库所做的更改 表示事务不成功结束 将数据库恢复到事务前的状态,wnt 2000(C) copyright,52,ROLLBACK(续),示例 INSERT INTO member VALUES(M0722,DAVID, 2137634); ROLLBACK WORK; 或 ROLLBACK TO SAVEPOINT mem2;,wnt 2000(C) copyright,53,本章总结,wnt 2000(C) copyright,54,本章总结(续),StatementAction CREATE USERAllows the DBA to create a user GRANTAllows the user to give other usersprivileges to access the usersobjects CREATE ROLEAllows the DBA to create a collectionof privileges ALTER USERAllows users to change theirpassword REVOKERemoves privileges on an object fromusers,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!