表:基本的数据存储集合,由行和列组成。
用户定义的表:
用户自己创建并维护的一组表
包含了用户所需的信息
查看用户创建的表:
SELECT * FROM user_tables;
数据字典:
由Oracle Server 自动创建的一组表
包含数据库信息
查看用户定义的表:
SELECT table_name
FROM user_tables ;
查看用户定义的各种数据库对象:
SELECT DISTINCT object_type
FROM user_objects ;
查看用户定义的表, 视图, 同义词和序列:
SELECT * FROM user_catalog ;
表名和列名:
必须以字母开头
必须在1–30 个字符之间
必须只能包含A–Z, a–z, 0–9, _, $, 和#
必须不能和用户定义的其他对象重名
必须不能是Oracle 的保留字
CREATE TABLE 语句
必须具备:
CREATE TABLE权限
存储空间
必须指定:
表名
列名, 数据类型, 尺寸
语法:
create table my_dept(
deptno NUMBER(2),
dname VARCHAR2(14),
loc VARCHAR2(13));
查看表结构:
DESC my_dept;
使用子查询创建表:
使用AS subquery 选项,将创建表和插入数据结合起来
指定的列和子查询中的列要一一对应
通过列名和默认值定义列
CREATE TABLE table
[(column, column...)]
AS subquery;
ALTER TABLE 语句:
追加新的列
修改现有的列
为新追加的列定义默认值
删除一个列
重命名表的一个列
追加
ALTER TABLE table
ADD(column datatype [DEFAULT expr]
[, column datatype]...);
修改
ALTER TABLE table
MODIFY(column datatype [DEFAULT expr]
[, column datatype]...);
删除列
ALTER TABLE table
DROP COLUMN column_name;
重命名一个列:
ALTER TABLE my_employee
RENAME COLUMN job_id TO id;
删除表:
DROP TABLE my_employee;
数据和结构都被删除
所有正在运行的相关事务被提交
所有相关索引被删除
DROP TABLE 语句不能回滚
清空表:
TRUNCATE TABLE语句:
–删除表中所有的数据
–释放表的存储空间
-RUNCATE语句不能回滚
TRUNCATE TABLE my_employee;
ENAME语句:改变表, 视图, 序列, 或同义词的名称(必须是对象的拥有者)
RENAME my_employee TO new_employee;