zoukankan      html  css  js  c++  java
  • Oracle表管理

    /*-----------------------创建和管理表-----------------------------*/
    一、Orcale之中的数据类型:
    1.NUMBER、DATE、VARCAHR、CLOB、BLOB

    二、表的建立
    CREATE TABLE 表名称(
     字段名1  字段类型  [DEFAULT 默认值],
     字段名2  字段类型  [DEFAULT 默认值],
     ...
     字段名N  字段类型  [DEFAULT 默认值]
    );

    CREATE TABLE 表名称 AS(子查询)
    ·如果子查询写的是 SELECT * FROM emp,表示把表结构和表内容一起复制
    ·如果子查询写的是 SELECT * FROM WHERE 1==2,加入了一个永远不成立的条件,则表示只复制表结构,不复制内容!

    三、表单的删除
    DROP TABLE 表名称

    四、表的修改
    1、增加列:
    ·ALTER TABLE 表名称 ADD(列的名称 列的类型 DEFAULT 默认值,...);
     ALTER TABLE person ADD(address VARCHAR(200) DEFAULT'暂无地址');
    2、修改列:
    ·ALTER TABLE 表名称 MODIFY(列的名称 列的类型 DEFAULT 默认值)
     ·但是,在修改表结构的时候,如果假设数据中对应的字段里有一个很长的数据,是无法将表的长度缩小的


    五、表的重命名[Orcale特有]
    ·RENAME 命令:RENAME 旧的表名  TO  新的表名;

    六、截断表
    清空表数据,但是希望立刻清空,而不需要rollback,commit之类的
    TRUNCATE TABLE 表名称; 

    七、表约束【重点】
    ·主键约束:主键表示唯一的标识,本身不能为空,不可重复
    ·唯一约束:在一个表之中只允许建立一个主键约束,其他表如果希望不能出现重复值的话,则可以用唯一约束
    ·检查约束:检查一个列的内容是否合法  NUMBER(5)
    ·非空约束:NOT NULL
    ·外键约束:在两张表进行约束的操作

    范例:
    DROP TABLE person;  --删除
    CREATE TABLE person(  --创建
    pid VARCHAR(18)  PRIMARY KEY,
    name VARCHAR(200),
    age NUMBER(3) NOT NULL CHECK(SEX IN('男','女')),--非空约束 检查约束
    birthday DATE,
    sex VARCHAR(2) DEFAULT '男'
    CONSTRAINT person_pid_key PRIMARY KEY(pid); --主键
    CONSTRAINT person_name_unique UNIQUE(name); --唯一约束
    CONSTRAINT person_age_ck CHECK(age BETWEEN 0 AND 150)  --检查约束
    );


    1、主键约束(PRIMARY KEY)
    ·可以在建立表的时候加你,默认不能为空且不能后重复!
    ·也可以在建表后再加入:
     指令  约束别名 约束
     CONSTRAINT person_pid_pk PRIMARY KEY(pid)

    2、非空约束:和主键一样能够在建表时候添加,也可以在之后添加,NOT NULL


    3、唯一约束(UNIQUE):表示唯一约束,也能在建表时候添加


    4、检查约束(CHECK):判断插入的内容是否合法
    例:年龄 CHECK(SEX IN('男','女'))
    年龄  CHECK(age BETWEEN 0 AND 150)


    5、外键约束(FOREGIN KEY):
    CONSTRAINT person_book_pid_fk FOREGIN KEY(pid) REFERENCES person(pid) ONDELETE CASCADE;
    表示级联删除


    七、修改约束:
    ·如果一个表已经建立完成了之后,则可以为其添加约束。
    CREATE TABLE person(
    pid  VARCHAR(18) ,
    name  VARCHAR(200),
    age  NUMBER(3),
    birthday DATE,
    sex  VARCHAR(2) DEFAULT '男'
    );

    ALTER TABLE 表名称 ADD CONSTRAINT 约束名  约束类型(约束字段);
    命名规范:
    ·PRIMARY KEY :主键字段_PL
    ·UNIQUE:  主键_UK
    ·CHECK: 主键_CK
    ·FOREIGN KEY:  父字段_子字段_FK

    ALTER TABLE person ADD CONSTRAINT person_age CHECK(age BETWEEN 0 AND 150);
    ALTER TABLE book ADD CONSTRAINT person_book_pid_fk FOREIGN KEY(pid) REFERENCES person(pid) ONDELETECASDE;


    八、删除约束 上面的ADD修改成DROP

    ALTER TABLE person DROP CONSTRAINT person_age CHECK(age BETWEEN 0 AND 150);


    九、ROWNUM(重点)
    ROWNUM其实是在查询之后才给定的编号
    表示行号,实际上此是一个列,一个伪列,此列在任意表之中存在
    SELECT ROWNUM,ename FROM emp;
        ROWNUM ENAME
    ---------- ----------
             1 ALLEN
             2 WARD
             3 JONES
             4 MARTIN
             5 BLAKE
             6 CLARK
             7 SCOTT
             8 KING
             9 TURNER
            10 ADAMS
            11 JAMES
            12 FORD
            13 MILLER

    ROWNUM不能使用BETWEEN n AND m 来进行截取。如果想要进行中间截取
    则只能采用子查询。

    SELECT *
    FROM (SELECT ROWNUM rn,e.* FROM emp e WHERE ROWNUM<=10) temp
    WHERE temp.rn>5;


    这样才能够显示6-10的数据

  • 相关阅读:
    Asp.Net Winform 条形码系列之Code39 Code39 Of .Net BarCode Serial Blog
    .NET 中文星期几的简单实现方式
    C#使用SQLite数据库(asp.net/winform)
    .Net日期时间格式化输出大全 DateTime.ToString(?)
    C#使用HTTP头检测网络资源是否有效
    [转]C#(VB.NET)操作Windows自带的防火墙 之 添加/删除允许通过防火墙的例外程序
    华为C2800进入工程模式
    android webview 加载网页显示对话框
    SVN 与 VS2003
    VisualSVN1.7.7 序列号
  • 原文地址:https://www.cnblogs.com/liuhuapiaoyuan/p/3177163.html
Copyright © 2011-2022 走看看