目标
通过本章学习,您将可以:
l 描述主要的数据库对象。
l 创建表。
l 描述各种数据类型。
l 修改表的定义。
l 删除,重命名和清空表。
常见的数据库对象
表、视图、序列、索引、同义词
序列:提供有规律的数值
同义词:给对象起别名
查询数据字典
查看用户定义的表
SELECT table_name from user_tables;
查看用户定义的各种数据库对象
SELECT DISTINCT object_type
FROM user_objects ;
查看用户定义的表, 视图, 同义词和序列
SELECT *
FROM user_catalog;
命名规则
表名和列名:
l 必须以字母开头
l 必须在 1–30 个字符之间
l 必须只能包含 A–Z, a–z, 0–9, _, $, 和 #
l 必须不能和用户定义的其他对象重名
l 必须不能是Oracle 的保留字
数据类型
varchar2(size) 可变长度字符数据
char(size) 定长字符数据
number(p,s) 可变长度数值数据
date 日期型数据
long 可变长字符数据,最大可达到2G
clob 字符数据,最大可以达到4G
raw(long raw) 原始的二进制数据
blob 二进制数据,最大可达到4G
bfile 存储外部文件的二进制数据,最大可达到4G
rowid 存储外部文件的二进制数据,最大可达到4G行地址
其中,常用的数据类型有以下几种:
varchar2(size),char(size),number(p,s),date,blob
使用子查询创建表
CREATE TABLE dept80
AS
SELECT employee_id, last_name,
salary*12 ANNSAL,
hire_date
FROM employees
WHERE department_id = 80;
ALTER TABLE 语句
使用 ADD 子句追加一个新列
ALTER TABLE dept80
ADD (job_id VARCHAR2(9));
修改一个列
ALTER TABLE dept80
MODIFY (last_name VARCHAR2(30));
删除一个列
ALTER TABLE dept80
DROP COLUMN job_id;
删除表
l 数据和结构都被删除
l 所有正在运行的相关事物被提交
l 所有相关索引被删除
l DROP TABLE 语句不能回滚
DROP TABLE dept80;
改变对象的名称
l 执行RENAME语句改变表, 视图, 序列, 或同义词的名称
RENAME dept TO detail_dept;//将表名改变
清空表
TRUNCATE TABLE detail_dept;
l TRUNCATE语句不能回滚
l 可以使用 DELETE 语句删除数据
delete from emp2;
rollback;//删除数据后使用rollback回滚还原数据