一、表的创建及管理
对于数据库而言实际上每一张表都表示一个数据库对象,而数据库的对象指的是DDL所定义的所有操作,例如:表、视图、索引、序列、约束等等,都属于对象操作,所以表的建立就是对象的建立,对象操作主要分为三类语法:
创建对象:CREATE 对象名称 ... ;
删除对象:DELETE 对象名称 ... ;
修改对象:ALTER 对象名称 ... ;
1、每一个数据表都有若干字段,而每个字段都有相应的数据类型,Oracle常用的数据类型有如下几种:
字符串 VARCHAR2(n) n:字符串最大长度,最长在200个左右
整数 NUMBER(n) n:最多有n位,也可以用INT代替
小数 NUMBER(n,m) m为小数位数,n-m为整数位数,也可以用float代替
日期 DATE 存放时间、日期
大文本 CLOB 可以存储海量文字(4G)文本
大对象 BLOB 存放二进制数据,例如:视频,音频,图片,文字
一般在开发之中使用VARCHAR2/NUMBER/DATE/CLOB,而BLOB很少用。
2、表的创建
CREATE TABLE 表名称(
字段1 数据类型 [DEFAULT 默认值],
字段2 数据类型 [DEFAULT 默认值],
....
字段n 数据类型 [DEFAULT 默认值]
);
例:创建一张成员表member,保存姓名、年龄、生日、个人简介
CREATE TABLE member(
name VARCHAR2(20) DEFAULT '无名氏',
age NUMBER(3) ,
birthday DATE DEFAULT SYSDATE,
content CLOB
);
添加内容:
INSERT INTO member(name,age,birthday,content) VALUES('张三',22,TO_DATE('1987-05-25','yyyy-mm-dd'),'一个好人') ;
INSERT INTO member(name,age,content) VALUES('李四',24,'一个坏蛋') ;
3、表的复制、语法
CREATE TABLE 表名称 AS 子查询 ;
例:复制一张只包括20部门的雇员信息表
CREATE TABLE emp20 AS SELECT * FROM emp WHERE deptno=20 ;
例:复制emp的表结构不要数据 --> 写一个永远也满足不了条件
CREATE TABLE empnull AS SELECT * FROM emp WHERE 1=2 ;
4、为表重命名
在Oracle之中所有数据都是通过数据字典保存的。如SELECT * FROM tab ;就是一个数据字典,而在Oracle中存在三种类型的数据字典,最常用的是:dba_和user_。
查询一个user_tables数据字典:select * from user_tables ;
Oracle中所有数据是按照文件保存的,所有内容保存在数据字典中注册,所谓修改表名称对Oracle而言就是修改一条数据,修改表名称语法:
RENAME 旧表名称 TO 新表名称 ;
例:将member表重命名为person表 RENAME member TO person ;
此语法仅限于Oracle使用
5、截断表
如果想释放一张表所占用的资源(表空间、表索引等)可以使用截断表,语法:
TRUNCATE TABLE 表名称 ;
例:截断表person TRUNCATE TABLE person ;
6、表的删除
表的删除指的是数据库对象的删除,使用DROP语法:
DROP TABLE 表名称;
例如:删除person表 DROP TABLE person ;
通过SELECT * FROM tab ;会发现表删除后留下的痕迹,Oracle 10g之后增加了闪回技术,为了防止用户误删除进行表的恢复,称为闪回(FALSHBACK)。
例:查看回收站 SHOW RECYCLEBIN ;
例:从回收站恢复删除的表,语法: FLASHBACK TABLE 表名称 TO BEFORE DROP ;
FLASHBACK TABLE person TO BEFROE DROP ;
例:也可以直接删除掉回收站的表,语法:PURGE TABLE 表名称 ;
删除回收站的表person:PURGE TABLE person ;
例:清空回收站语法 : PURGE RECYCLEBIN ;
例:删除一张表而又不希望其进入回收站,此时可以在删除时增加PURGE字段
直接删除person表不进入回收站 DROP TABLE person PURGE ;
8、修改表结构
已经建立的一张表已不再满足要求,则可以修改表结构
例:建立一张表 CREATE TABLE member( mid NUMBER,name VARCHAR2(30));
a. 增加字段语法:ALTER TABLE 表名称 ADD(列名称 数据类型 [DEFAULT 默认值],列名称 数据类型[DEFAULT 默认值]) ;
ALTER TABLE member(age NUMBER(3) DEFAULT 0,birthday VARCHAR2(30) DEFAULTE SYSDATE);
b. 修改字段,修改已有表结构:ALTER TABLE 表名称 MODIFY(列名称 数据类型 [DEFUALE 默认值],列名称 数据类型 [DEFUALE 默认值]) ;
ALTER TABEL member(name VARCHAR2(50) DEFAULTE '无名氏');
在SQL语法之中及Oracle数据库中都给出了修改表结构的操作,但是在实际使用过程中建议不要使用,如果需要修改表结构建议删除旧表重新建新表。
*************by jixiangrurui 转载请注明出处*************