您的位置:首页 > 数据库 > Oracle

Oracle 11g 学习六:表的创建及管理

2014-08-10 10:07 429 查看
一、表的创建及管理

    对于数据库而言实际上每一张表都表示一个数据库对象,而数据库的对象指的是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  转载请注明出处*************
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: