一、表是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 TABLEdept
(
deptnoNUMBER(2),
dnameVARCHAR2(14),
locVARCHAR2(13)
);
方法二------------由旧表创建新表-------------
使用子查询创建(复制旧表,结构和数据一起复制)
CREATE TABLEdept2AS
select *
from dept;
拓展:
CREATE TABLEdept2
AS
select deptno,dname
from dept
where dname= 'chen';
注意:方法二 dept2 不仅表结构和dept一样,而且表中数据也一模一样
如果只想取dept2中部分数据和字段也可 select 部分字段 from 表 where 部分数据
三、修改已有表$$删除表
1.修改表:ALTER TABLE 语句
①追加新的列
ALTER TABLE table
ADD(
字段名 数据类型 约束,
字段名 数据类型 约束,
......
);
alter tabledept
add(sex varchar2(10) )
----------------------------------
②修改现有的列 (修改列的数据类型,长度、约束、默认值)
ALTER TABLE tableMODIFY
(
字段名 数据类型 约束,
字段名 数据类型 约束,
......
);
alter tabledept
modify (sex number(20) )
----------------------------------
③为新追加的列定义默认值(default)
alter tabledept
modify (sex number(20) default 100)
注意 :对默认值的修改只影响今后对表的修改
----------------------------------
④删除一个列
ALTER TABLE table
DROP COLUMNcolumn_name;
alter tabledept
drop COLUMNsex
----------------------------------
⑤重命名表的一个列名
ALTER TABLEtable_name
RENAME COLUMM
old_column_name
TOnew_column_name
alter tabledept
rename column sex toid
----------------------------------
2.删除表 :DROP TABLE 语句
DROP TABLE dept(表名)
注意:
--数据和结构都被删除
--所有正在运行的相关事务被提交
--所有相关索引被删除
--DROP TABLE 语句不能回滚
3.清空表 TRUNCATETABLE语句:
TRUNCATE TABLE语句:
删除表中所有的数据
释放表的存储空间
注意:
TRUNCATE语句不能回滚
可以使用DELETE语句删除数据,可以回滚
对比:delete fromemp;select * fromemp;rollback;select * from emp;
4.改变表的名称
执行RENAME语句改变表, 视图, 序列, 或同义词的名称
RENAME deptTOdetail_dept;必须是对象的
总结
语句
描述
CREATE TABLE
创建表
ALTER TABLE
修改表结构
DROP TABLE
删除表
RENAME TO
重命名表
TRUNCATE TABLE
删除表中的所有数据,并释放存储空间
以上这些DDL的命令操作后皆不可回滚!