一、表是Oracle常见的数据库对象
Oracle中的表分为
①用户定义的表:
--由用户创建并维护的一组表
--包含用户所需的信息
②数据字典:
--由Oracle server 自动创建的一组表
--包含数据库信息
③查询数据字典
select table_name from user_tables; --查看用户定义表 select distinct object_type from user_objects; --查看用户定义的各种数据库对象 select * from user_catalog; --查看用户定义的表,视图,同意词和序列
二、创建表
语法:
create table 表名(
字段名 数据类型 约束(可无),
字段名 数据类型 约束(可无),
字段名 数据类型 约束(可无),
字段名 数据类型 约束(可无)
)
注意:
① 表名和列名:
必须以字母开头
必须在 1–30 个字符之间
必须只能包含 A–Z, a–z, 0–9, _, $, 和 #
必须不能和用户定义的其他对象重名
必须不能是Oracle 的保留字
② 数据类型
创建表的两种方式
方法一 ------------创建新表-------------- CREATE TABLE dept ( deptno NUMBER(2), dname VARCHAR2(14), loc VARCHAR2(13) ); 方法二 ------------由旧表创建新表-------------
使用子查询创建(复制旧表,结构和数据一起复制)
CREATE TABLE dept2 AS select * from dept;
拓展:
CREATE TABLE dept2
AS
select deptno,dname
from dept
where dname = ‘chen‘;
注意:方法二 dept2 不仅表结构和dept一样,而且表中数据也一模一样
如果只想取dept2中部分数据和字段也可 select 部分字段 from 表 where 部分数据
三、修改已有表$$删除表
1.修改表:ALTER TABLE 语句
①追加新的列
ALTER TABLE table
ADD
(
字段名 数据类型 约束,
字段名 数据类型 约束,
......
);
alter table dept
add(sex varchar2(10) )
----------------------------------
②修改现有的列 (修改列的数据类型,长度、约束、默认值)
ALTER TABLE table
MODIFY
(
字段名 数据类型 约束,
字段名 数据类型 约束,
......
);
alter table dept
modify (sex number(20) )
----------------------------------
③为新追加的列定义默认值(default)
alter table dept
modify (sex number(20) default 100 )
注意 :对默认值的修改只影响今后对表的修改
----------------------------------
④删除一个列
ALTER TABLE table
DROP COLUMN column_name;
alter table dept
drop COLUMN sex
----------------------------------
⑤重命名表的一个列名
ALTER TABLE table_name
RENAME COLUMM
old_column_name
TO new_column_name
alter table dept
rename column sex to id
----------------------------------
2.删除表 :DROP TABLE 语句
DROP TABLE dept(表名)
注意:
--数据和结构都被删除
--所有正在运行的相关事务被提交
--所有相关索引被删除
--DROP TABLE 语句不能回滚
3.清空表 TRUNCATE TABLE 语句:
TRUNCATE TABLE 语句: 删除表中所有的数据 释放表的存储空间 注意: TRUNCATE语句不能回滚 可以使用 DELETE 语句删除数据,可以回滚 对比: delete from emp; select * from emp; rollback; select * from emp;
4.改变表的名称
执行RENAME语句改变表, 视图, 序列, 或同义词的名称 RENAME dept TO detail_dept; 必须是对象的
总结
语句 |
描述 |
CREATE TABLE |
创建表 |
ALTER TABLE |
修改表结构 |
DROP TABLE |
删除表 |
RENAME TO |
重命名表 |
TRUNCATE TABLE |
删除表中的所有数据,并释放存储空间 |
以上这些DDL的命令操作后皆不可回滚!