友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
喜书网 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

oracle从入门到精通(PDF格式)-第13章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!




  新增加的字段一定是放在表的最后。  

  *、修改表字段的类型和长度  

  ALTER TABLE table modify (col datatype 'default';。。。;。。。。);  

  对默认值的修改只会影响到新插入的行。  

  如果字段下有值的话,类型的修改成功率很小(要修改数据类型,要修改的列必须为空,即没 

  有数据项)。  

  CHAR 类型不能修改长度。  

  *、删除表字段  

  ALTER TABLE table DROP COLUMN (COLUMN_NAME_LIST);  

  9I2 版可以修改列名   

  *、SET UNUSED 设置字段为不可用。  

  原理:清楚掉字典信息(撤消存储空间),不可恢复。  

  可以使用 SET UNUSED 选项标记一列或者多列不可用。  

  使用 DROP SET UNUSED 选项删除被被标记为不可用的列。  

    

  语法:  

  ALTER TABLE table SET UNUSED (COLlist 多个) 或者  ALTER TABLE table SET UNUSED COLUMN  

  col 单个;  

  ALTER TABLE table DROP UNUSED COLUMNS;   

  删除表:  

  删除关联:drop table table_name cascade;  

  改对象名:  

    RENAME 对象原名 TO 要改的对象名;  

  注: 必须是对象的所有者才能进行改名的操作。  

    



4、截取:  



  不能回滚;  

  删除表中所有数据;  



                             第 35 页,共 106 页 


…………………………………………………………Page 36……………………………………………………………

资源来自网络,仅供学习!                                                Oracle 从入门到精通 



  释放存储空间;  

  语法:        

  TRUNCATE TABLE 表名称;  

  DELETE 也可以删除所有行,但:  

  可以回滚。  

  不释放存储空间。  

    



5、给表加注释:MENT  



  ment on table table_name is '注释内容';  

    



6、约束条件:  



  如果经常用到约束条件的话,最好自己命名。  

  当定义约束的时候可以将定义的语句作为 CREATE TABLE 中的参数的一部分来完成。  

  表级别约束定义:  

  CONSTRAINT 约束名 约束条件(字段名)  

  约束在表上强制了规则。  

  如果有参照的花,约束防止表的删除。  

  ORACLE 支持的约束条件:  

  1。NOT NULL 非空  

           特点:唯一一个只能在列级定义的约束条件。  

  2。UNIQUE  唯一  

     允许有空值(空值不做比较);  

     特点:当创建约束的时候,系统会自动创建对应其的索引。  

  3。PRIMARY KEY 主键  

      特点:当创建约束的时候,系统会自动创建对应其的索引。  

      在一个表中只允许一个主键。                

  4。FOREIGN KEY 外键    

    外键参照的一定是主表的主键或唯一键;  

    保证子表外键字段的值一定是主表中的被参照字段值的真子集;  

    当主表字段被参照的时候,其值不允许被直接删除。  

 5。CONSTRAINT 约束名 FOREIGN KEY (外键字段名) REFERENCES 主表名(主表字段名);  

        如果在字段列表中定义外键就可以不写 FOREIGN KEY 关键字。  

        如下格式:CONSTRAINT 约束名 REFERENCES 主表名(主表字段名);  

 6。ON DELETE CASCADE  当主表的行被删除的时候,要删除子表中参照主表的行。  

  ALTER TABLE TABLE_NAME DROP (PK) CASCADE CONSTRAINTS;把作为主键的字段也同时删除了。  

 7。ON DELETE SET NULL 当主表的行被删除的时候,转换子表中的参照值为空。  

    

  CHECK  

  定义一个每行都必须满足的条件。  

  CREATE TABLE table_name  

  (  。。。。  



                              第 36 页,共 106 页 


…………………………………………………………Page 37……………………………………………………………

资源来自网络,仅供学习!                                                     Oracle 从入门到精通 



  salary number(10;2);  

  CONSTRAINT 约束名 CHECK(SALARY》0);  

    。。。。     

  );  

    

  约束的使用:  

  约束的命名:给约束命名或者 ORACLE 服务器将使用 SYS_Cn 的格式为约束命名。  

    

  创建时期:在创建表的同时或者在建表之后。  

  定义级别:  

  可以在表级定义或列级定义。  

  在数据字典中可以查看约束。  

    

  使用 ALTER TABLE 语句:  

  *、添加或者删除约束条件,但是不能修改约束条件。                     就算列名上已经有约束条件,还可以 

  继续添加约束条件的。  

  添加:ALTER TABLE table_name ADD 'CONSTRAINT ' 约束名 约束条件(column);  

  删除:ALTER TABLE table_name drop constraint 约束名;    

  ALTER TABLE table_name PRIMARY KEY CASCADE;删除主键的时候,不用约束名。  

  *、启动或禁用约束条件  

    ALTER TABLE table_name Disable constraint 约束名; 禁用  

    ALTER TABLE table_name ENABLE constraint 约束名; 启用  

  *、通过 MODIFY 添加 NOT NULL 约束条件(因为 NOT NULL 为列级约束,只能用 MODIFY 添加)。  

  ALTER TABLE table_name MODIFY(col type NOT NULL);  

    

  查看约束条件:  

  //desc user_constraints  

  OWNER 拥有者;  

  CONSTRAINT_NAME 约束名称  

  CONSTRAINT_TYPE 约束类型  

  SEARCH_CONDITION  check 的条件  

  select constraint_name; constraint_type;search_condition;status   

  from user_constraint where table_name='b';  

    



2。5。视图 (VIEW)   



            一个或多个表的数据集的逻辑表示(虚表,不存储数据)  

  视图不能提高查询的性能。  

  分类:  

  简单  

       数目:一个  

       函数:不包含  

       分组数据:不包含  

       可以做 DML操作  

  复杂  



                                第 37 页,共 106 页 


…………………………………………………………Page 38……………………………………………………………

资源来自网络,仅供学习!                                                       Oracle 从入门到精通 



       数目:一个或多个  

       函数:包含  

       分组数据:包含  

       不一定能做 DML 操作  

  视图也可以用 DESC 描述。  

  创建视图:  

  CREATE 'or replace(修改视图)' 'force/noforce' VIEW view_name(col coltype ;。。。。。。)  

  as   

  subquery  

  'WITH CHECK OPTION 'CONSTRAINT constraint''  

  'WITH READ ONLY'CONSTRAINT constraint'';  

    

  USER_VIEWS 关于视图的字典  

  修改视图:  

  CREATE OR REPLACE 原视图名 (字段列表)  

  AS 子查询;  

    

  包含:  

  GROUP BY 、DISTINCT、ROWNUM  

  不能对视图进行删除操作;  

    

  包含:  

  GROUP BY   

  DISTINCT  

  ROWNUM  

  通过表达式定义的列不能对视图进行修改操作;  

    

  包含:  

  GROUP BY   

  DISTINCT  

  ROWNUM  

  通过表达式定义的列  

  在视图中没有包含基表中的 NOT NULL 列,不能对视图进行插入操作;  

    

  使用视图的原因;  

  为了限制对数据的访问;  

  为了使复杂的查询变得简单;  

  提供了数据的独立性;  

  提供了对相同数据的不同显示;  

    

  使用 WITH CHECK OPTION 子句创建视图  

  创建视图时通过 WITH CHECK OPTION 子句确保执行的 DML 语句不会引起数据不出现在视图上。  

  在对视图做 DML 操作的时候,一定要符合 WHERE子句中的条件。  

  CREATE OR REPLACE VIEW empvu20 as select * from employees  

  where check option constraint 'empvu20_ck';  

    



                                 第 38 页,共 106 页 


…………………………………………………………Page 39……………………………………………………………

资源来自网络,仅供学习!                                                        Oracle 从入门到精通 



  WITH READ ONLY  

  不可以进行 DML 操作;  

    

  删除视图:  

  DROP VIEW view_name;  

    

  行内视图:是一个在 SQL 语句中使用的带有别名的子查询,该子查询放在 FROM 之后;  

    

  TOP…N:  

  select 'col_list';rownum rank(排名)  

  from (select 'col_list' from table_name order by top…n_col)  

  where rownum
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!