第5章 Oracle模式对象

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 在数据字典和控制文件中记录下新创建的表空间。 2. 在操作系统中按指定的位置和文件名创建指定大小的操作 系统文件,作为该表空间对应的数据文件。 3. 在预警文件中记录下创建表空间的信息。
表空间和数据文件的维护:
维护表空间的操作包括重命名表空间和数据文件,改变表空 间和数据文件的状态,设置默认表空间,扩展表空间,删除表空 间及数据文件,以及查看表空间和数据文件的信息等。
1-23
《Oracle数据库应用与实践》.
FOREIGN KEY约束 创建表时定义FOREIGN KEY约束格式如下:
CREATE TABLE [schema.]table_name1 ( … //省略创建表的字段部分 [ CONSTRAINT constraint_name ] FOREIGN KEY ( column_name11 [, column_name12, … ] ) REFERENCES [schema.]table_name2 ( column_name21 [, column_name22, … ]) [ON DELETE [ CASCADE | SET NULL | NO ACTION ]] );
1-16
二、表的约束的定义及使用方法
按照约束的用途可将表的完整性约束分为以下五类: (1)NOT NULL:非空约束。 (2)UNIQUE:唯一性约束。 (3)PRIMARY KEY:主键约束。 (4)FOREIGN KEY:外键约束。 (5)CHECK:检查约束。
1-17
《Oracle数据库应用与实践》.
表已创建。
1-10
《Oracle数据库应用与实践》.
管理表
增加字段 修改字段名称
管理字段
修改字段的数据类型
删除字段
管理操作
重命名表 移动表
管理表
截断表 删除表
1-11
《Oracle数据库应用与实践》.
1、管理字段
(1)增加字段 为表增加字段的语Hale Waihona Puke Baidu格式如下:
ALTER TABLE table_name ADD(column_name1 datatype [[,column_name2 datatype] …]);
1-21
《Oracle数据库应用与实践》.
PRIMARY KEY(主键)约束 1. 定义单个字段的PRIMARY KEY约束
单个字段的PRIMARY KEY约束定义一般应在该字段定义完 毕后指定。
2. 定义多个字段的PRIMARY KEY约束
多个字段的PRIMARY KEY约束定义必须在所有字段定义完 毕后再指定,并且必须明确指定约束名。
1-13
《Oracle数据库应用与实践》.
2. 管理表
(1)重命名表 使用RENAME语句修改表名的语法格式如下:
RENAME table_name TO new_table_name;
(2)移动表 移动表的语法格式如下:
ALTER TABLE table_name MOVE TABLESPACE tablespace_name;
表是常见的一种组织数据的方式,一 张表一般都具有多个列,或者称为字段。 每个字段都具有特定的属性,这些属 性在创建表时被确定。
1-5
《Oracle数据库应用与实践》.
创建表
• 创建表时需要使用CREATE TABLE语句。 • 此外,用户还必须在指定的表空间中具有一 定的配额存储空间。
1-6
《Oracle数据库应用与实践》.
1-14
《Oracle数据库应用与实践》.
2. 管理表
(3)截断表 截断操作的语法格式如下:
TRUNCATE TABLE table_name;
(4)删除表 删除操作语法格式如下:
DROP TABLE table_name [CASCADE CONSTRAINTS] [PURGE];
1-15
《Oracle数据库应用与实践》.
【例5-18】创建一个学生表(student_5),表中包括学号(sno)、 姓名(sname)、性别(ssex)、出生日期(sbirthday)、邮箱 (semail)、所在系(sdept),要求为学号(sno)定义PRIMARY KEY约束。 SQL> CREATE TABLE student_5 ( 2 sno CHAR(10) PRIMARY KEY, 3 sname VARCHAR2(30), 4 ssex CHAR(2), 5 sbirthday DATE, 6 semail VARCHAR2 (25), 7 sdept VARCHAR2 (30) 8 ); 表已创建。
1-9
《Oracle数据库应用与实践》.
【例5-2】利用子查询创建一个表(emp_select),表中包括职工号 (emp_no)、职工姓名(emp_name)、职工所在部门号(dept_no), 该表用于保存工资高于2000的员工的员工号、员工名和部门号。 SQL> CREATE TABLE emp_select( 2 3 4 5 emp_no, emp_name, dept_no ) AS SELECT empno, ename, deptno FROM emp WHERE sal>2000;
NOT NULL(非空)约束 1. 定义NOT NULL约束 通过创建表的语法格式来实现向表中字段定义 NOT NULL约束。 2. 删除NOT NULL约束 如果需要删除表中已定义的NOT NULL约束,可 以使用ALTER TABLE … MODIFY语句来实现,语法 形式如下:
ALTER TABLE table_name MODIFY column_name NULL;
ALTER TABLE table_name MODIFY column_name new_datatype;
(4)删除字段 一次删除表中一个字段的语法格式如下:
ALTER TABLE table_name DROP COLUMN column_name;
一次删除表中多个字段的语法格式如下:
ALTER TABLE table_name DROP (column_name1, …);
创建表
【例5-1】创建一个学生表(student_1),表 中包括学号(sno)、姓名(sname)、性别 (ssex)、出生日期(sbirthday)、所在系 (sdept)。
1-8
《Oracle数据库应用与实践》.
创建表
SQL> CREATE TABLE student_1 ( 2sno CHAR(10), 3sname VARCHAR2(30), 4ssex CHAR(2), 5sbirthday DATE, 6sdept VARCHAR2 (30) 7); 表已创建。
3. 删除PRIMARY KEY约束
删除字段上的PRIMARY KEY约束,可以使用ALTER TABLE … DROP语句,但删除时需要指定约束名,形式如下:
ALTER TABLE table_name DROP CONSTRAINT constraint_name;
1-22
《Oracle数据库应用与实践》.
1-18
《Oracle数据库应用与实践》.
【例5-15】创建一个学生表(student_2),表中包括学号 (sno)、姓名(sname)、性别(ssex)、出生日期 (sbirthday)、邮箱(semail)、所在系(sdept),要求为姓名 (sname)定义NOT NULL约束。 SQL> CREATE TABLE student_2 ( 2 sno CHAR(10), 3 sname VARCHAR2(30) CONSTRAINT sname_notnull NOT NULL, 4 ssex CHAR(2), 5 sbirthday DATE, 6 semail VARCHAR2 (25), 7 sdept VARCHAR2 (30) 8 ); 表已创建。
如果UNIQUE约束未指定名称,删除时,可以使用ALTER TABLE … DROP语句,形式如下:
ALTER TABLE table_name DROP (column_name);
1-20
《Oracle数据库应用与实践》.
【例5-16】创建一个学生表(student_3),表中包括学号(sno)、姓 名(sname)、性别(ssex)、出生日期(sbirthday)、邮箱(semail)、 所在系(sdept),要求为邮箱(semail)定义UNIQUE约束。 SQL> CREATE TABLE student_3 ( 2 sno CHAR(10), 3 sname VARCHAR2(30), 4 ssex CHAR(2), 5 sbirthday DATE, 6 semail VARCHAR2 (25) CONSTRAINT semail_unique UNIQUE, 7 sdept VARCHAR2 (30) 8 ); 表已创建。
【例5-3】为已创建的学生表(student_1)增加新字段手机号(stelephone)、邮箱(semail)和 通信地址(saddress)。 SQL>ALTER TABLE student_1 2 ADD (stelephone CHAR(11), semail VARCHAR2(20), saddress VARCHAR2(50)); 表已更改。 使用DESCRIBE命令查看student表的结构,观察是否已经为该表成功添加新字段手机号( stelephone): SQL>DESCRIBE student_1 名称 是否为空? 类型 ----------------------------------------------------- ---------------SNO CHAR(10) SNAME VARCHAR2(30) SSEX CHAR(2) SBIRTHDAY DATE SDEPT VARCHAR2 (30) STELEPHONE CHAR(11) SEMAIL VARCHAR2 (20) SADDRESS VARCHAR2 (50) 《Oracle数据库应用与实践》.
创建表
说明: 1. 表、列和其它数据库模式对象的名称,必须是合法 标识符,长度为1~30 字节,并且以字母开头。 2. 在使用PCTFREE和PCTUSED子句时要注意使用原 则。 3. 在Oracle 11g中,除了INITIAL参数外,其余参数 都会变为空值。
1-7
《Oracle数据库应用与实践》.
第5章 Oracle模式对象
《Oracle数据库应用与实践》
复 习 提 问
回顾
• • 创建表空间的方法 表空间和数据文件的维护
引入
• • • Oracle数据库为什么要引入逻辑结构类? 简述表空间的基本功能。 了解表空间和数据文件的概念及关系。
1-2
《Oracle数据库应用与实践》.
复习1:影响数据库系统性能的要素 在表空间的创建过程中,Oracle 会完成以下工作:
(2)修改字段名称 修改表中字段的名称的语法格式如下:
ALTER TABLE table_name RENAME COLUMN column_name TO new_column_nam;
1-12
《Oracle数据库应用与实践》.
1、管理字段
(3)修改字段的数据类型 修改表中字段的数据类型的语法格式如下:
1-24
《Oracle数据库应用与实践》.
【例5-21】分别创建学生表(student_7)(包含学号(sno)、姓名 (sname)、性别(ssex)和班级号(classid))和班级表(class)(包含班级 号(classid)、班级名称(classname)和班级人数(classcount)),表结构定 义见表5-2和表5-3。并使用外键关联这两个表。 SQL> CREATE TABLE class ( 2 classid NUMBER PRIMARY KEY, 3 classname VARCHAR2(30), 4 classcount NUMBER 5 ); 表已创建。 SQL> CREATE TABLE student_7 ( 2 sno CHAR(10), 3 sname VARCHAR2(30), 4 ssex CHAR(2), 5 classid NUMBER, 6 CONSTRAINT student_7_class FOREIGN KEY ( classid ) 7 REFERENCE class ( classid ) 8 );
1-19
《Oracle数据库应用与实践》.
UNIQUE(唯一性)约束 1. 定义单个字段的UNIQUE约束
单个字段的UNIQUE约束定义一般应在该字段定义完毕后 指定。
2. 定义多个字段的UNIQUE约束
多个字段的UNIQUE约束定义必须在所有字段定义完毕后 再指定,并且必须明确指定约束名。
3. 删除UNIQUE约束
1-3
《Oracle数据库应用与实践》.
主要内容
• • • • • • 一、表的创建及管理方法 二、表的约束的定义及使用方法 三、视图的创建及管理方法 四、索引的分类、创建及管理方法 五、序列的创建、使用及管理方法 六、同义词的创建及删除方法
1-4
《Oracle数据库应用与实践》.
一、表的创建及管理方法
相关文档
最新文档