Oracle_创建和管理表
2016-09-30 19:13
543 查看
创建和管理表
常见的数据库对象
Oracle 数据库中的表
查询数据字典
命名规则
数据类型
使用子查询创建表
删除表
清空表
改变对象的名称
注意
用户自己创建并维护的一组表
包含了用户所需的信息
如:SELECT * FROM user_tables;查看用户创建的表
数据字典:
由 Oracle Server 自动创建的一组表
包含数据库信息
查询数据字典
查看用户定义的表
查看用户定义的各种数据库对象
查看用户定义的表,视图,同义词和序列
命名规则
表名和列名:
必须以字母开头
必须在 1–30 个字符之间
必须只能包含 A–Z, a–z, 0–9, _, $, 和 #
必须不能和用户定义的其他对象重名
必须不能是Oracle 的保留字
必须具备:
CREATE TABLE权限
存储空间
必须指定:
表名
列名, 数据类型, 尺寸
创建表
语法
确认使用
Table created.
数据类型
使用子查询创建表
使用 AS subquery 选项,将创建表和插入数据结合起来
指定的列和子查询中的列要一一对应
通过列名和默认值定义列
复制现有的表
使用子查询创建表举例
使用 ALTER TABLE 语句可以:
追加新的列
修改现有的列
为新追加的列定义默认值
删除一个列
重命名表的一个列名
使用 ALTER TABLE 语句追加, 修改, 或删除列的语
添加一个新列
使用 ADD 子句追加一个新列
修改一个列
可以修改列的数据类型, 尺寸和默认值
对默认值的修改只影响今后对表的修改
删除一个列
使用
重命名一个列
使用
删除表
数据和结构都被删除
所有正在运行的相关事务被提交
所有相关索引被删除
清空表
TRUNCATE TABLE 语句:
删除表中所有的数据
释放表的存储空间
TRUNCATE语句不能回滚
可以使用 DELETE 语句删除数据,可以回滚
对比:
改变对象的名称
执行RENAME语句改变表, 视图, 序列, 或同义词的名称
必须是对象的拥有者
注意
以上这些DDL的命令,操作外,皆不可回滚!
常见的数据库对象
Oracle 数据库中的表
查询数据字典
命名规则
CREATE TABLE语句
数据类型
使用子查询创建表
ALTER TABLE语句
删除表
清空表
改变对象的名称
注意
创建和管理表
常见的数据库对象
表、视图、序列、索引、同义词Oracle 数据库中的表
用户定义的表:用户自己创建并维护的一组表
包含了用户所需的信息
如: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 [schema.]table (column datatype [DEFAULT expr][, ...]);
必须指定:
表名
列名, 数据类型, 尺寸
创建表
语法
确认使用
DESCRIBE dept或者
DESC dept
CREATE TABLE dept (deptno NUMBER(2), dname VARCHAR2(14), loc VARCHAR2(13));
Table created.
数据类型
使用子查询创建表
使用 AS subquery 选项,将创建表和插入数据结合起来
CREATE TABLE table [(column, column...)] AS subquery;
指定的列和子查询中的列要一一对应
通过列名和默认值定义列
复制现有的表
create table emp1 as select * from employees; create table emp2 as select * from employees where 1=2; -- 创建的emp2是空表。
使用子查询创建表举例
CREATE TABLE dept80 AS SELECT employee_id, last_name, salary * 12 ANNSAL, hire_date FROM employees WHERE department_id = 80; -- 验证创建的表 DESC dept80;
ALTER TABLE语句
使用 ALTER TABLE 语句可以:
追加新的列
修改现有的列
为新追加的列定义默认值
删除一个列
重命名表的一个列名
使用 ALTER TABLE 语句追加, 修改, 或删除列的语
-- 追加 ALTER TABLE TABLE_NAME ADD ( COLUMN datatype [ DEFAULT expr ] [, COLUMN datatype ]... ); -- 修改 ALTER TABLE TABLE_NAME MODIFY ( COLUMN datatype [ DEFAULT expr ] [, COLUMN datatype ]... ); -- 删除 ALTER TABLE TABLE_NAME DROP COLUMN column_name; -- 重命名 ALTER TABLE TABLE_NAME RENAME COLUMM old_column_name TO new_column_name
添加一个新列
使用 ADD 子句追加一个新列
ALTER TABLE dept80 ADD (job_id VARCHAR2(9));
修改一个列
可以修改列的数据类型, 尺寸和默认值
对默认值的修改只影响今后对表的修改
-- 修改尺寸 ALTER TABLE dept80 MODIFY (last_name VARCHAR2(30)); -- 修改默认值 ALTER TABLE dept80 MODIFY ( salary number (9, 2) DEFAULT 1000 );
删除一个列
使用
DROP COLUMN子句删除不再需要的列.
ALTER TABLE dept80 DROP COLUMN job_id;
重命名一个列
使用
RENAME COLUMN [table_name]TO子句重命名列
ALTER TABLE dept80 RENAME COLUMN job_id TO id;
删除表
数据和结构都被删除
所有正在运行的相关事务被提交
所有相关索引被删除
DROP TABLE语句不能回滚
DROP TABLE dept80;
清空表
TRUNCATE TABLE 语句:
删除表中所有的数据
释放表的存储空间
TRUNCATE语句不能回滚
可以使用 DELETE 语句删除数据,可以回滚
对比:
DELETE FROM emp2; SELECT * FROM emp2; ROLLBACK; SELECT * FROM emp2;
TRUNCATE TABLE detail_dept;
改变对象的名称
执行RENAME语句改变表, 视图, 序列, 或同义词的名称
必须是对象的拥有者
RENAME dept TO detail_dept;
注意
以上这些DDL的命令,操作外,皆不可回滚!
相关文章推荐
- ORACLE中的用户管理、创建、删除和查询
- ORACLE中的用户管理、创建、删除和查询
- oracle表的管理(数据类型,表创建删除,数据CRUD 操作)
- 00060.Oracle创建本地管理的表空间
- 00059.Oracle创建数据字典管理的表空间
- Oracle管理与维护.安装创建启动关闭数据库的常见问题(一)
- 42、Oracle管理与维护.手工创建数据库以及脚本
- ORACLE创建用户、角色及权限管理
- oracle 创建用户与授权管理
- Oracle的学习二:表管理(数据类型、创建/修改表、添加/修改/删除数据、数据查询)
- Oracle使用配置文件创建口令管理策略
- Oracle创建外部管理表
- ORACLE创建用户 管理用户常用语句
- (oracle)ORACLE创建用户、角色及权限管理
- 全面学习ORACLE Scheduler特性(4)创建和管理Schedule
- Oracle管理与维护.手工创建数据库以及脚本
- Oracle管理与维护.手工创建数据库以及脚本
- 全面学习ORACLE Scheduler特性(4)创建和管理Schedule
- 创建与管理Oracle的分区表和本地索引
- Oracle管理与维护.手工创建数据库以及脚本