zoukankan      html  css  js  c++  java
  • 数据库对象管理 (表)

    实验10表的创建和修改&&答案 http://pan.baidu.com/share/link?shareid=447633&uk=3912660076

    SQL Statements

    数据类型

    NUMBER 可以用来表示所有的数值数据:
    fieldname NUMBER (precision, scale); precision(精确度)是最大长度,scale(范围)是小数点后的位数
    VARCHAR2 用来表示变长的字符串数据类型:
    fieldname VARCHAR2 (max_length);
    CHAR 保存固定长度字符串,最大长度为2KB。
    DATE  保存固定长度的日期数据。
    BLOB 保存二进制大对象,通常用来保存图像和文档等二进制数据。
    CLOB 保存字符型大对象。varchar2数据类型最多只能保存4000个字符,如果要保存的字符串数据超过此范围,应使用clob数据类型。

    创建表—数据完整性

        数据完整性是关系数据库模型的基本原则,是用户在表上定义的一系列规则或约束条件,以及在表之间定义的一系列相互关系。

      数据完整性的作用:强制要求数据库中只能接受正确的、合理的数据,防止错误的或无效的数据被插入到表中。

    数据完整性分为三类:
      实体完整性
      参照完整性
      用户定义的完整性
    实体完整性:
      规则1:主键的各个属性都不能为空值。
    参照完整性:
      规则2:外键或者取空值,或者等于被参照关系中的主键的某个值
    用户定义的完整性:
      规则3:属性(或属性组)的取值应当满足用户定义的约束条件

    Oracle通过为表中的列定义各种约束来实现数据完整性

    约束(constraint)条件:
      Not Null:防止NULL值进入到指定的列。(只能定义在列级)

        forexample: ...UserName     Varchar2(40)    NOT NULL,...(系统命名)

                ...data       Data   CONSTRAINT  constraint_name    NOT NULL );(自定义命名)


      Unique:保证在指定的各列中没有重复的值。

        forexample:...age     number   UNIQUE,...(系统命名)

                CONSTRAINT  constraint_name    UNIQUE(age) );(自定义命名)            --->表级


      Check:检查在约束中指定的条件是否得到了满足。

       forexample:...Sex   varchar2(2)   not   null   CHECK(Sex='F' or Sex='M'),...

                CONSTRAINT  CHK_name  CHECK(Sex in('F','M'));    --->表级


      Primary key:用来惟一地标识出表的每一行,并且防止出现NULL值。一个表只能有一个主键约束。

        forexample:...BugsBug   varchar2(8)   primary key,...

                CONSTRAINT  PK_constraint_name    primary key(BugsBug,[agr]...) );(自定义命名)       --->表级


      Foreign key:通过使用公共列在表之间建立一种父子关系。在表上定义的外键可以指向其他表的主键或者惟一键。(可以定义在表级列级)

        forexample:...CONSTRAINT  FK_constraint_name  FOREIGN  KEY(BugsBug)   REFERENCES  othertable_name(BugsBug));

          Default : 在表上定义行的默认值.

        forexample:...Sdept varchar2(15)  default  'Computer');

       参数:

    FOREIGN KEY: 在表级指定子表中的列
    REFERENCES: 标示在父表中的列
    ON DELETE CASCADE: 当父表中的列被删除时,子表中相对应的列也被删除
    ON DELETE SET NULL: 子表中相应的列置空
    ON DELETE NO ACTION:不进行任何操作

    约束级别
      列级约束
      表级约束

    添加约束:

         创建表之后如果需要添加约束(除NOT NULL以外),可以用以下语句实现:
            ALTER TABLE table_name  Add  [CONSTRAINT constraint_name]  Constraint_type(col1,col2,…)  [condition]

    只能用modify格式

    删除约束:

    创建表语法:

    create table  table_name

    ({column_name    datatype   [default_expression]    [column_constraint] | [table_constraint]},....)

    [tablespace tablespace_name];

    注意事项:
      如果不指定约束名 Oracle server 自动按照 SYS_Cn 的格式指定约束名
      在什么时候创建约束:
        建表的同时
        建表之后
        可以在表级或列级定义约束
     可以通过数据字典视图查看约束

     

     查看约束信息:

        表的约束信息:desc user_constraints;

      列的约束信息:desc  user_cons_columns;

     修改表:

    表在创建之后还允许对其进行更改,如添加或删除表中的列,修改表中的列,以及对表进行重新命名和重新组织等。
    普通用户只能对自己方案中的表进行更改,而具有ALTER ANY TABLE系统权限的用户可以修改任何方案中的表。

     Alter table  table_name
           Add(newcolumn_name   datatype[,…])                                                     //添加列
          | Modify  column datatype|(column datatype [,...])                                    //修改列
          | Drop  [unused  columns]|column  column_name|(column_name1, ...)      //删除列
          | rename  column   oldcolumn_name  to  newcolumn_name                      //重命名列
          | set unused  (column_name1, column_name1…                                  // 设置不可用==》删除列

     

     查看表的列名

    删除列:

    修改列不可用:

    删除不可用的列:  ALTER TABLE Users  DROP UNUSED COLUMNS

    插入数据:INSERT   INTO   <表名>  [列名1, 列名2, …, 列名n]   VALUES  (值1, 值2, …, 值n);

    修改数据:UPDATE   <表名>   SET    列名1 = 值1, ...  WHERE  <更新条件表达式>

    删除数据:DELETE  FROM  <表名>  WHERE   <删除条件表达式>

     

     COMMIT; 在用DML(INSERT,UPDATE,DELETE)语句对数据库修改之后,需要提交事务。

     COMMIT WORK;(DELETE) 

     删除表 :


  • 相关阅读:
    [bzoj3261]最大异或和(可持久化trie)
    [luogu3384] 【模板】树链剖分
    [luogu3369]普通平衡树(替罪羊树模板)
    fhq-treap模板
    [luogu3391] 【模板】文艺平衡树(fhq-treap反转区间)
    [luogu3369]普通平衡树(fhq-treap模板)
    [luogu3369]普通平衡树(treap模板)
    [bzoj3223]文艺平衡树(splay区间反转模板)
    A Path Plan(2018黑龙江省赛)
    Abandoned Animal(BAPC2017 Preliminaries )
  • 原文地址:https://www.cnblogs.com/wjshan0808/p/3063798.html
Copyright © 2011-2022 走看看