• Oracle的常用修改表及字段的语句


    单行注释:--

    多行注释:/* */

    Oracle中修改表结构

    增加字段   
      ALTER TABLE table_name 

      ADD column_name data_type;

    删除字段   
      ALTET TABLE table_name

      DROP COLUMN column_name;
    修改字段类型   
      ALTER TABLE table_name 

      ALTER COLUMN column_name new_data_type;

    设置主键   
      ALTER TABLE table_name ADD CONSTRAINT PK_ID  PRIMARY KEY(ID) ;

    重命名

      RENAME obj_name TO new_obj_name;

    约束视图
    两个数据字典视图提供了约束的详细信息:USER_CONSTRAINTS和USER_CONS_COLUMNS.
    一张表可能有也可能没有约束,对于一张表的每一个约束在USER_CONSTRAINTS中都有一条记录描述这个约束。包括约束应用到的表名称。如果你知道约束名想知道约束类型,查询USER_CONSTRAINTS表。这个视图描述了约束的定义。它不提供约束定义在哪些字段名称上。
    在USER_CONS_COLUMNS视图中显示约束的字段名称。如果主键是个联合主键,这个视图中将有这个约束的两条记录。联合主键的每一个字段对应一条记录。每一条记录通过POSITION(在联合主键中的位置)来区别。 USER_CONSTRAINTS 和USER_CONS_COLUMNS都有字段CONSTRAINT_NAME 和TABLE_NAME.
    ---------------------------------------------------------------------

    USER_CONSTRAINTS                    USER_CONS_COLUMNS
    ---------------------------------------------------------------------
     CONSTRAINT_NAME                     CONSTRAINT_NAME
     CONSTRAINT_TYPE                       TABLE_NAME
     TABLE_NAME                                COLUMN_NAME
                                                         POSITION

    参考信息

    http://blog.sina.com.cn/s/blog_4c22550c010007s3.html

    VARRAY的应用

    一个例子:

    CREATE TYPE phone_type IS VARRAY(20) OF VARCHAR2(20);
    /
    CREATE TABLE employee(
        id NUMBER(4),
        name VARCHAR2(10),
        sal NUMBER(6,2),
        phone phone_type);
    /

    插入示例:

    INSERT INTO employee values(1,'NewName',1000,phone_type('1','2'));

    nestedTable的应用

    一个例子:

    CREATE OR REPLACE TYPE emp_type2 AS OBJECT
        (empno NUMBER(4),
         ename VARCHAR2(10),
         job VARCHAR2(9),
         mgr NUMBER(4),
         hiredate DATE,
         sal NUMBER(7,2),
             comm NUMBER(7,2)
            );
    /

    CREATE OR REPLACE TYPE emp_tab_type AS TABLE OF emp_type2;
    /

    --使用嵌套表

    CREATE TABLE dept_and_emp2
        (deptno NUMBER(2) PRIMARY KEY,
         dname VARCHAR2(14),
         loc VARCHAR2(13),
         emps emp_tab_type
        )NESTED TABLE emps STORE AS emp_nest2;

    插入示例:

    insert into dept_and_emp2 values(1,'NewName','NewLoc',emp_tab_type(emp_type2(1,'newName','newJob',7788,sysdate,1000,100),emp_type2(......)));

    这两种集合的插入方式是一样的。

    IS EMPTY 操作符只适用于嵌套表,而不适用于VARRAY,用于判断集合里的元素是否为空,如果判断是否初始化(是否为null)应该用 IS NULL。

    转载来源:http://blog.csdn.net/aqszhuaihuai/article/details/4065482

  • 相关阅读:
    《30天自制操作系统》17_day_学习笔记
    《30天自制操作系统》18_day_学习笔记
    湖大OJ-实验E----可判定的DFA的空问题
    湖大OJ-实验C----NFA转换为DFA
    《30天自制操作系统》16_day_学习笔记
    《30天自制操作系统》19_day_学习笔记
    《30天自制操作系统》15_day_学习笔记
    《30天自制操作系统》14_day_学习笔记
    [Leetcode Week11]Kth Largest Element in an Array
    [Leetcode Week10]Minimum Time Difference
  • 原文地址:https://www.cnblogs.com/wllcs/p/6212023.html
Copyright © 2020-2023  润新知