oracle数据库对象管理.ppt_第1页
oracle数据库对象管理.ppt_第2页
oracle数据库对象管理.ppt_第3页
oracle数据库对象管理.ppt_第4页
oracle数据库对象管理.ppt_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章 数据库对象管理,操作系统认证方式: OSDBA对应的用户组为ORA_DBA; OSOPER对应的用户组为ORA_OPER。,Review,创建用户 修改用户 权限管理语句 删除用户,(1)授予系统权限: GRANT TO (2)授予数据对象权限: GRANT ON TO ,用户的管理,第7章 数据库对象管理,Review角色,不使用角色分配权限,使用角色分配权限,权限,用户,Manager,角色是若干权限的组合,第7章 数据库对象管理,Oracle系统角色 创建角色 对角色授权 指定用户的角色 修改角色 删除角色,Review角色的管理,第7章 数据库对象管理,第7章 数据库对象管理,本章主要介绍Oracle数据库中表、索引、视图和序列的管理方法,第7章 数据库对象管理,本章学习目标,掌握表的创建、修改和删除方法; 掌握对表中数据的插入、更新和删除的方法; 掌握使用select语句进行数据查询的方法; 掌握视图的概念及视图的创建、修改和删除方法; 理解索引的概念,掌握如何创建、管理和删除索引; 掌握创建、修改、删除和使用序列的方法;,第7章 数据库对象管理,本章主要内容,7.1 表管理 7.2 数据查询 7.3 视图管理 7.4 索引管理 7.5 序列管理,第7章 数据库对象管理,7.1 表管理,创建表 修改表 删除表 插入数据 修改数据 删除数据,第7章 数据库对象管理,创建表,表Users的结构,第7章 数据库对象管理,创建表,管理页面,第7章 数据库对象管理,创建表,表管理页面,第7章 数据库对象管理,创建表,选择方案,第7章 数据库对象管理,创建表,选择表组织,第7章 数据库对象管理,创建表,表管理器,第7章 数据库对象管理,数据类型,第7章 数据库对象管理,创建表,数据类型 NUMBER 可以用来表示所有的数值数据: fieldname NUMBER (precision, scale); VARCHAR2 用来表示变长的字符串数据类型: fieldname VARCHAR2 (max_length); CHAR 保存固定长度字符串,最大长度为2KB。 DATE 保存固定长度的日期数据。 BLOB 保存二进制大对象,通常用来保存图像和文档等二进制数据。 CLOB 保存字符型大对象。varchar2数据类型最多只能保存4000个字符,如果要保存的字符串数据超过此范围,应使用clob数据类型。,precision是最大长度,scale是小数点后的位数,第7章 数据库对象管理,创建表,CREATE TABLE语句的基本使用方法如下所示: Create table schema. table_name (column datatype default_expression column_constraint | table_constraint , ) tablespace tablespace_name 【例】创建表Users,SQL语句如下: CREATE TABLE Users (UserId Number Primary Key, UserName Varchar2(40) NOT NULL, UserType Number(1), UserPwd Varchar2(40) );,第7章 数据库对象管理,创建表数据完整性,数据完整性是关系数据库模型的基本原则,是用户在表上定义的一系列规则或约束条件,以及在表之间定义的一系列相互关系。,DEPTNO的值必须与表DEPT中的DEPTNO值匹配,EMPNO每行都必须非空且惟一,数据完整性的作用:强制要求数据库中只能接受正确的、合理的数据,防止错误的或无效的数据被插入到表中。,第7章 数据库对象管理,数据完整性分为三类: 实体完整性 参照完整性 用户定义的完整性 实体完整性: 规则1:主键的各个属性都不能为空值。 参照完整性: 规则2:外键或者取空值,或者等于被参照关系中的主键的某个值。 用户定义的完整性: 规则3:属性(或属性组)的取值应当满足用户定义的约束条件。,创建表数据完整性,第7章 数据库对象管理,Oracle通过为表中的列定义各种约束来实现数据完整性。约束条件 Not Null:防止NULL值进入到指定的列。 Unique:保证在指定的各列中没有重复的值。 Check:检查在约束中指定的条件是否得到了满足。 Primary key:用来惟一地标识出表的每一行,并且防止出现NULL值。一个表只能有一个主键约束。 Foreign key:通过使用公共列在表之间建立一种父子关系。在表上定义的外键可以指向其他表的主键或者惟一键。 约束级别 列级约束 表级约束,创建表数据完整性的定义,第7章 数据库对象管理,创建表,如果要在自己的方案中创建表,要求用户必须具有CREATE TABLE系统权限。如果要在其他方案中建表,则要求用户必须具有CREATE ANY TABLE系统权限。 Create table语法如下: Create table schema. table_name (column datatype default_expression column_constraint | table_constraint , ) tablespace tablespace_name,第7章 数据库对象管理,注意事项: 如果不指定约束名 Oracle server 自动按照 SYS_Cn 的格式指定约束名 在什么时候创建约束: 建表的同时 建表之后 可以在表级或列级定义约束 可以通过数据字典视图查看约束,创建表,第7章 数据库对象管理,创建表约束的定义格式,CREATE TABLE employees( employee_id NUMBER(6), last_name VARCHAR2(25) NOT NULL, salary NUMBER(8,2), commission_pct NUMBER(2,2), hire_date DATE CONSTRAINT emp_hire_date_nn NOT NULL, .,NOT NULL的定义格式(只能定义在列级):,第7章 数据库对象管理,NOT NULL 约束,保证列值不能为空:,第7章 数据库对象管理,UNIQUE约束的定义格式:,CREATE TABLE employees( employee_id NUMBER(6), last_name VARCHAR2(25) NOT NULL, email VARCHAR2(25), salary NUMBER(8,2), commission_pct NUMBER(2,2) UNIQUE, hire_date DATE NOT NULL, . CONSTRAINT emp_email_uk UNIQUE(email);,创建表约束的定义格式,第7章 数据库对象管理,UNIQUE 约束,EMPLOYEES,UNIQUE 约束,INSERT INTO,第7章 数据库对象管理,主键的定义格式:,Create table students( Sno varchar2(10) primary key, Sname varchar2(8) not null, Ssex varchar2(2) not null check (Ssex=F or Ssex=M), Sage number, Sdept varchar2(15) default Computer);,创建表约束的定义格式,Constraint PK_Sno primary key (Sno),第7章 数据库对象管理,PRIMARY KEY 约束,DEPARTMENTS,PRIMARY KEY,第7章 数据库对象管理,外键的定义格式:,CREATE TABLE employees( employee_id NUMBER(6), last_name VARCHAR2(25) NOT NULL, email VARCHAR2(25), salary NUMBER(8,2), commission_pct NUMBER(2,2), 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);,创建表约束的定义格式,第7章 数据库对象管理,可以定义在表级或列级:,CREATE TABLE employees( employee_id NUMBER(6), last_name VARCHAR2(25) NOT NULL, email VARCHAR2(25), salary NUMBER(8,2), commission_pct NUMBER(2,2), 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);,References departments(department_id),第7章 数据库对象管理,FOREIGN KEY 约束的关键字 FOREIGN KEY: 在表级指定子表中的列 REFERENCES: 标示在父表中的列 ON DELETE CASCADE: 当父表中的列被删除时,子表中相对应的列也被删除 ON DELETE SET NULL: 子表中相应的列置空 ON DELETE NO ACTION:不进行任何操作,第7章 数据库对象管理,FOREIGN KEY 约束,DEPARTMENTS,EMPLOYEES,Students,Courses,Enrollment,第7章 数据库对象管理,在数据库StuDB中定义一个表,表名为Students,表中各列的要求见表。,创建表语句举例,第7章 数据库对象管理,Create table students( Sno varchar2(10) primary key, Sname varchar2(8) not null, Ssex varchar2(2) not null check (Ssex=F or Ssex=M), Sage number, Sdept varchar2(15) default Computer);,列级约束,第7章 数据库对象管理,Create table students( Sno varchar2(10) , Sname varchar2(8) not null, Ssex varchar2(2) not null, Sage number, Sdept varchar2(15) default Computer, constraint PK_SNO primary key (Sno), constraint CHK_SSEX check (Ssex in (F,M) ),表级约束,Students,Courses,Enrollment,第7章 数据库对象管理,练习,【练习】请写出创建表Courses和Enrollment的SQL命令。,CREATE TABLE COURSES( Cno VARCHAR2(6) PRIMARY KEY, Cname VARCHAR2(20) NOT NULL, PreCno VARCHAR2(6), Credits NUMBER );,CREATE TABLE ENROLLMENT( Sno VARCHAR2(10), Cno VARCHAR2(6), Grade NUMBER, CONSTRAINT PK_SCNO PRIMARY KEY (SNO,CNO), CONSTRAINT FK_SNO FOREIGN KEY (SNO) REFERENCES STUDENTS (SNO), CONSTRAINT FK_CNO FOREIGN KEY (CNO) REFERENCES COURSES (CNO) );,第7章 数据库对象管理,查看约束信息,查询当前方案中某表的约束信息 select table_name, constraint_name,constraint_type,deferred,deferrable,status from user_constraints where table_name=STUDENTS; 查询定义了约束的列 Select table_name, constraint_name,column_name,position from user_cons_columns where table_name=ENROLLMENT;,第7章 数据库对象管理,7.1 表管理,创建表 修改表 删除表 插入数据 修改数据 删除数据,第7章 数据库对象管理,修改表,查看和编辑表Users中的数据,第7章 数据库对象管理,修改表,表在创建之后还允许对其进行更改,如添加或删除表中的列,修改表中的列,以及对表进行重新命名和重新组织等。 普通用户只能对自己方案中的表进行更改,而具有ALTER ANY TABLE系统权限的用户可以修改任何方案中的表。 修改表 Alter table table_name Add column datatype, |Modify (column datatype,.) |Drop unused column(column_name1, column_name1) |rename column column_name to newname |set unused (column_name1, column_name1),第7章 数据库对象管理,修改表,ALTER TABLE语句修改表 (1)添加列。 【例】在表Users中添加一个列tmpcol: SQL ALTER TABLE Users ADD (tmpcol NUMBER(5,2); (2)修改列名。 【例】将表Users中tmpcol列的名称修改为tmpcol_1: SQL ALTER TABLE Users RENAME COLUMN tmpcol TO tmpcol_1;,第7章 数据库对象管理,修改表,(3)删除列。 【例】将表Users中的列tmpcol_1删除: SQL ALTER TABLE Users DROP COLUMN tmpcol_1; (4)将列设置为不可用。 【例】将表Users中的列tmpcol_1设置为不可用: SQL ALTER TABLE Users SET UNUSED (tmpcol_1); (5)删除不可用的列。 【例】删除表Users中所有的不可用列: SQL ALTER TABLE Users DROP UNUSED COLUMNS;,第7章 数据库对象管理,添加约束,创建表之后如果需要添加约束(除NOT NULL以外),可以用以下语句实现: ALTER TABLE table_name Add CONSTRAINT constraint_name Constraint_type(col1,col2,)condition,第7章 数据库对象管理,Students,Courses,Enrollment,课程名唯一,第7章 数据库对象管理,添加约束,【例】修改Courses表的定义,要求课程名必须唯一。 alter table courses add constraint Unique_Cname unique(Cname); 【例】修改Students表的定义,要求学生的年龄不能为空。 alter table Students modify Sage not null;,只能用modify格式,第7章 数据库对象管理,删除约束,ALTER TABLE Students Drop CONSTRAINT CHK_SSEX; ALTER TABLE Courses Drop UNIQUE (Cname); ALTER TABLE Courses Drop Primary Key Cascade; ALTER TABLE Students Modify Sage NULL;,第7章 数据库对象管理,删除约束,第7章 数据库对象管理,删除约束,第7章 数据库对象管理,删除约束,第7章 数据库对象管理,7.1 表管理,创建表 修改表 删除表 插入数据 修改数据 删除数据,第7章 数据库对象管理,删除表,删除选项窗口,DROP TABLE语句删除表。 【例】删除表Users: DROP TABLE Users;,第7章 数据库对象管理,7.1 表管理,创建表 修改表 删除表 插入数据 修改数据 删除数据,第7章 数据库对象管理,插入数据,INSERT语句的基本使用方法如下所示: INSERT INTO (列名1, 列名2, , 列名n) VALUES (值1, 值2, , 值n); 【例】向表Users中插入数据 INSERT INTO Users (UserId, UserName, UserType, UserPwd) VALUES ( 1, Admin, 1, Admin); INSERT INTO Users (UserId, UserName, UserType, UserPwd) VALUES ( 2, Lee, 1, Lee); INSERT INTO Users (UserId, UserName, UserType, UserPwd)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论