创建和维护表

数据库对象

数据库对象:是数据库的组成部分,有表、约束 、索引、视图、序列、同义词、触发器、存储过程、函数等。

创建表

CREATE TABLE [schema.]table
(column datatype[DEFAULT expr][, ...]); 
--您必须具备:   
--CREATE TABLE的权限  
--一定的存贮空间(ALTER USER 用户名QUOTA 尺寸ON 表空间名字)  
--您需要指定:  
--表名、列名、列的类型及列的宽度  

例如:

CREATE TABLE DOSSIER ( 
ID NUMBER(4), 
CNAME VARCHAR2(20 ), 
BIRTHDAY DATE, 
STATURE    NUMBER(3), 
WEIGHT NUMBER(5, 2), 
COUNTRY_CODE CHAR(2 ) DEFAULT ‘01’);  

用子查询语法创建表

CREATE TABLE table[(column, column...)] 
AS subquery;

创建和表二一样表头的表一,仅含表头。

creat table 表1 as select * from 表二 where 1=0

default

–指定在插入或更新数据时,列的默认值
–合法的值可以是字面值、表达式或SQL函数
–非法的值是另一个列的名称或虚拟列
–默认值的数据类型必须和列的类型匹配

修改默认值
例如:

update dossier set country_code=default where id=2;

数据类型

字符型

数值型


日期型

图片类型

修改表

添加列
ALTER TABLE table  
ADD (columnname datatype[DEFAULT expr] 
        [, columnname datatype]...);
修改列
ALTER TABLE table 
MODIFY(columnnamedatatype[DEFAULT expr] 
        [, columnnamedatatype]...);
删除列
ALTER TABLE table 
DROP (columnname [,columnname]); 

删除表

DROP TABLE table;

重命名表

RENAME old_name TO new_name;

截断表

TRUNCATE TABLE table; 

TRUNCATE和DELETE区别
TRUNCATE是DDL,只能删除表中所有记录,释放存储空间, 使用ROLLBACK不可以回滚。
DELETE是DML,可以删除指定记录,不释放存储空间,使用 ROLLBACK可以回滚。

数据字典

查询数据字典

SELECT table_name 
FROM  user_tables;

查看数据字典结构

DESC user_tables