《Oracle 12c数据库基础教程》教学课件—07数据库对象管理
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据类型 创建表 修改表 删除表 插入数据 修改数据 删除数据 设置DEFAULT列属性 表约束
7.2.1 数据类型
Oracle数据类型包括字符型、数值型、 日期/时间型、大对象(LOB)型和Rowid 型等。
1.字符型
数据类型 CHAR(size)
NCHAR(size)
NVARCHAR2(size) VARCHAR2(size) LONG RAW LONGRAW
(5)删除不可用的列
在ALTER TABLE语句中使用DROP UNUSED COLUMNS 子句可以删除不可用的列。 【例7.7】 删除表C##HRSYS.Departments中所 有的不可用列,语句如下:
ALTER TABLE C##HRSYS.Departments DROP UNUSED COLUMNS;
【例7.9】
Dep_id 1 2 3 4
5
人事部 办公室 财务部 技术部
服务部
Dep_name
INSERT INTO C##HRSYS.Departments(Dep_id, Dep_name) VALUES ( 1, '人事部');
INSERT INTO C##HRSYS.Departments(Dep_id, Dep_name) VALUES ( 2, '办公室');
2500 3100 5000
2800
IdCard
110123aadx1 dddx2 aadx3 dddx4
aadx5 dddx6 110123aadx7
110123dddx8
Dep_I d
1 1 1 2
2 2 3
3
INSERT INTO C##HRSYS.Employees VALUES ( 1,'张三', '男','部门经理', 6000, '110123aadx1', 1); INSERT INTO C##HRSYS.Employees VALUES ( 2,'李四', '男','职员', 3000, '110123dddx2', 1); INSERT INTO C##HRSYS.Employees VALUES ( 3,'王五', '女','职员', 3500, '1110123aadx3', 1); INSERT INTO C##HRSYS.Employees VALUES ( 4,'赵六', '男','部门经理', 6500, '110123dddx4', 2); INSERT INTO C##HRSYS.Employees VALUES ( 5,'高七', '男','职员', 2500, '110123aadx5', 2); INSERT INTO C##HRSYS.Employees VALUES ( 6,'马八', '男','职员', 3100, '110123dddx6', 2); INSERT INTO C##HRSYS.Employees VALUES ( 7,'钱九', '女','部门经理', 5000, '1110123aadx7', 3); INSERT INTO C##HRSYS.Employees VALUES ( 8,'孙十', '男','职员', 2800, '110123dddx8', 3);
在ALTER TABLE语句中使用SET UNUSED子句可以 将列设置为不可用。 【例7.6】 将表C##HRSYS.Departments中的列 tmpcol_1设置为不可用,语句如下:
ALTER TABLE C##HRSYS.Departments SET UNUSED (tmpcol_1);
7.2.3 修改表
可以使用ALTER TABLE语句修改表。 (1)添加列。在ALTER TABLE语句中使用ADD子句可以在 表中添加列。 【例7.3】 在表C##HRSYS.Departments中添加一个列 tmpcol,数据类型为NUMBER(5,2),语句如下:
ALTER TABLE C##HRSYS.Departments ADD (tmpcol NUMBER(5,2));
最大长度 2 000字节
2 000字节
4 000字节 4 000字节 2GB 2 000字节 2GB
说明 固定长度字符串,size表示存储的字符数量
固定长度的NLS(National Language Support,国家语言支持) 字符串,size表示存储的字符串数量。NLS字符串的作用是用本 国语言和格式来存储、处理和检索数据
(2)修改列名
在ALTER TABLE语句中使用RENAME COLUMN…TO…子句可以修改列名。 【例7.4】 将表C##HRSYS.Departments中 tmpcol列的名称修改为tmpcol_1,语句如下:
ALTER TABLE C##HRSYS.Departments RENAME COLUMN tmpcol TO tmpcol_1;
(3)删除列
在ALTER TABLE语句中使用DROP COLUMN子句可以 删除列。 【例7.5】 将表C##HRSYS.Departments中的列 tmpcol_1删除,语句如下:
ALTER TABLE C##HRSYS.Departments DROP COLUMN tmpcol_1;
(4)将列设置为不可用
Oracle 12c数据库基础教程(第3版)
第7章 数据库对象管理
学前提示
本章主要介绍Oracle 数据库常用对象的管 理方法,包括表管理、 索引管理、视图管理、 序列管理和约束管理 等。
知识要点
7.1 7.2 7.3 7.4 7.5 7.6 7.7
配置管理数据库对象的用户 表管理 数据查询 视图 索引 簇 序列管理
);
【例7.1】
参照表7.1在C##HRSYS方案创建表 Departments的SQL语句如下。
CREATE TABLE C##HRSYS.Departments
(Dep_id
Number,
Dep_name Varchar2(100)
);
【例7.2】参照表7.7在C##HRSYS方案创建员工 表Employees
指向服务器文件系统上的二进制文件的文件定位器,该二进制文件保 存在数据库之外
BLOB
保存非结构化的二进制大对象数据
CLOB
保存单字节或多字节字符数据
NCLOB
保存unicode编码字符数据
5.Rowid型
数据类型
说明
ROWID
64位基本编号系统(64 base number system),表示行在表中的 唯一地址
UROWID(siz e)
通用的rowid类型,即可以保存物理rowid,也可以保存逻辑rowid
7.2.2 创建表
列 名
数据类型
具体说明
Dep_id
NUMBER 部门编号
Dep_name
VARCHAR 部门名称 2 (100)
CREATE TABLE语句的基本语法如下
CREATE TABLE [方案名.]表名 ( 列名1 数据类型, 列名2 数据类型, …… 列名n 数据类型
7.1 配置管理数据库对象的用户
GRANT CONNECT, RESOURCE TO C##HRSYS; GRANT SELECT ANY DICTIONARY TO C##HRSYS;
7.2 表 管 理
7.2.1 7.2.2 7.2.3 7.2.4 7.2.5 7.2.6 7.2.7 7.2.8 7.2.9
浮点数类型。属于近似数据类型,它并不存储为多数数字指定的精确 值,只储存这些值的最近似值。
与number(p, s)相同 与number(p, s)相同 整数类型 同integer 短整类型 实数类型,与float一样,属于近似数据类型 双精度类型
3.日期/时间型
数据类型
说明
DATE
日期类型
TIMESTAMP(<微秒的精确范 与date数据类型相比,timestamp类型可以精确到微秒,微秒的
COMMIT;
SELECT * FROM C##HRSYS.Departments;
查看表HRSYS.Departments中的数据
【例7.10】
Emp_Id Emp_Na Sex
Hale Waihona Puke me1男2
男
3
女
4
六
男
5
七
男
6
八
男
7
女
8
男
Title
职员 部门经 理 职员 职员 部门经 理 职员
Wage
6000 3000 3500 6500
>) TO MONTH
表示年份的数字的位数,默认值为2
INTERVAL DAY (<日精度>) TO SECOND (<微秒的精确范 围>)
用于按照日、小时、分钟和秒来存储一个时段。日精度表示 day字段的位数,默认为2;微秒的精确范围为0~9,默认值为6
4.大对象(LOB)型
数据类型
说明
BFILE
NUMBER
所在部门编号
使用CREATE TABLE语句创建表Employees
CREATE TABLE C##HRSYS.Employees (
Emp_id NUMBER, Emp_name VARCHAR2(50), Sex VARCHAR2(10), Title VARCHAR2(50), Wage NUMBER, IdCard VARCHAR2 (20), Dep_id NUMBER );
7.2.4 删除表
可以使用DROP TABLE语句删除表。 【例7.8】 删除表C##HRSYS.Departments ,可以使用下面的语句:
DROP TABLE C##HRSYS.Departments;
7.2.5 插入数据
INSERT INTO <表名>(列名1,列名 2,…,列名n) VALUES(值1,值2,…,值n);
可变长度的NLS字符串,size表示存储的字符数量 可变长度字符串,size表示存储的字符数量 可变长度字符串,只为提供向后兼容而保留,不建议使用 可变长度二进制字符串 可变长度二进制字符串,只为提供向后兼容而保留,不建议使 用
提示
Oracle包括支持国际语言的体系结构,用户 可以使用本地化语言来存储、处理和检索数据 。可以通过参数NLS_LANG查看和设置Oracle当 前支持的语言。
列名
Emp_id
Emp_na me Sex
Title
Wage
IdCard
Dep_id
数据类型
NUMBER
员工编号
VARCHAR2 (50) 员工姓名
具体说明
VARCHAR2 (10) 员工性别
VARCHAR2 (50) 员工职务
NUMBER
工资(精度8,小数位数2)
VARCHAR2 (20) 身份证号
2.数值型
数据类型
NUMBER(p, s)
NUMERIC (p, s)
FLOAT
DEC(p, s) DECIMAL (p, s) INTEGER INT SMALLINT REAL DOUBLE
说明 包含小数位的数值类型。参数p表示精度,参数s表示小数点后的位数。 例如number(10, 2)表示小数点之前最多可以有8位数字,小数位有两位 数字 与number(p, s)相同
(3)使用CREATE DATABASE语句创建数 据库
CREATE DATABASE 数据库名 [USER 用户名 IDENTIFIED BY 密码] [CONTROLFILE REUSE] [LOGFILE [GROUP n] 日志文件, ……] [MAXLOGFILES 整数] [MAXLOGMEMBERS 整数] [MAXDATAFILES 整数] [MAXINSTANCES 整数] [ARCHIVELOG | NOARCHIVELOG] [CHARACTER SET 字符集] [DATAFILE 数据文件, ……] [SYSAUX DATAFILE 数据文件, ……] [DEFAULT TABLESPACE 表空间名] [DEFAULT TEMPORARY TABLESPACE 临时表空间名 TEMPFILE 临时文件] [UNDO TABLESPACE 撤销表空间名 DATAFILE 文件名]
INSERT INTO C##HRSYS.Departments(Dep_id, Dep_name) VALUES ( 3, '财务部');
INSERT INTO C##HRSYS.Departments(Dep_id, Dep_name) VALUES ( 4, '技术部');
INSERT INTO C##HRSYS.Departments(Dep_id, Dep_name) VALUES ( 5, '服务部');
围>)
精确范围为0~9,默认值为6
TIMESTAMP (<微秒的精确范 围>) WITH TIME ZONE
带时区偏移量的timestamp数据类型
TIMESTAMP (<微秒的精确范
围>) WITH LOCAL TIME
带本地时区偏移量的timestamp数据类型
ZONE
INTERVAL YEAR (<年份精度 使用year和month日期时间字段存储一个时段。年份精度指定