Oracle-SQL05

来源:互联网 发布:快速选择算法求中位数 编辑:程序博客网 时间:2024/04/29 13:08

视图

  1. 视图是数据库对象之一,视图在SQL语句中体现的角色与表相同,但视图不是真实的表,而是一个查询语句对应的结果集
  2. 视图分为:简单视图:查询语句基于单表建立,不包含任何函数和表达式,视图是基表的子集
    复杂视图:查询语句基于单表建立,包含函数和表达式分组等操作
    连接视图:查询语句基于多表建立,也算是复杂视图的一种
  3. 当视图对应的子查询的字段含有函数或表达式时,必须对该字段定义别名,那么视图该字段使用别名作为字段名
  4. 创建视图: CREATE VIEW v_基表名_过滤条件 AS 查询语句
    覆盖视图的查询条件: CREATE OR REPLACE VIEW v_基表名_过滤条件 AS 查询语句
  5. 视图作用:简化复杂查询,限制数据访问
  6. 对简单视图可以进行DML操作,但是复杂视图不可以,对视图进行DML操作就是对视图数据来源的基表进行的DML
    *当插入一条视图看不见的数据时,会对基表造成”污染”,更新数据同样会对基表造成污染,更新后数据对于视图而言不可控,删除数据不存在该问题
    *WITH CHECK OPTION:检查选项
    为视图添加检查选项,可以避免对视图操作后视图对数据不可控的情况,当添加检查选项后,对视图进行:INSERT:插入的数据必须视图可见 UPDATE:更新后视图必须对数据可见
    *WITH READ ONLY:只读选项 为视图添加只读选项,添加后该视图不允许执行DML操作
  7. 复杂视图不可进行DML操作
  8. DROP VIEW 视图名:删除视图不会对视图数据来源的基表做任何操作
  9. 和视图相关的数据字典: 在数据字典USER_OBJECTS中查询所有视图名称,
    在数据字典USER_VIEWS中查询指定视图,
    在数据字典USER_UPDATABLE_COLUMNS中查询视图
  10. 和表有关的数据字典:USER_TABLES:所有已创建过的表
  11. DROP VIEW 视图名 删除视图

序列

  1. 数据库对象之一,可以按照指定的规则生成一系列的数字,序列生成的数字通常是为了某张表的主键提供值的
  2. 创建序列: CREATE SEQUENCE 序列名 START WITH 开始的序列值 INCREMENT BY 步进序列值
  3. 序列支持两个伪列:
    *NEXTVAL:让序列生成一个数字,使用序列最后生成的数字加上步长得到的,新创建的序列调用时返回START WITH指定的值
    *CURRVAL:获取序列当前数字(即最后一次通过NEXTVAL生成的数字),新创建的序列必须先至少执行一次NEXTVAL以后才可使用CURRVAL
    *NEXTVAL会导致序列增长,而且增长后不能获取原来生成过的值
  4. DROP SEQUENCE 序列名 删除序列

索引

  1. 数据库对象之一,为某张表的某些字段添加索引可以调高表的查询,排序,去重等操作的效率
  2. 索引的算法和维护是数据库自行维护的,我们不能干涉,只需告诉数据库是否创建索引即可
  3. 当执行某些SQL时数据库会自行使用可以索引来提高执行效率
  4. ALTER INDEX 索引名 REBUILD 重建索引
  5. DROP INDEX 索引名 删除索引

约束

  1. 约束是在数据表上强制执行的一些数据校验规则,当执行DML操作时,数据必须符合这些规则,如果不符合则无法执行
  2. 约束作用:可以保证表中数据的完整性,保证数据间的商业逻辑
  3. NOT NULL:简称NN 非空约束—列级约束
    *用于确保字段值不为空
    *添加NN ALTER TABLE 表名 MODIFY(字段名 字段类型 NOT NULL)
  4. UNIQUE:简称UK 唯一性约束—列级约束 表级约束
    *用于保证字段或者字段的组合不出现重复值,当给表的某个列定义了唯一约束条件,该列的值不允许重复,但允许是NULL值
    *添加UK ALTER TABLE 表名 ADD CONSTRAINT 表名_字段名_uk UNIQUE(字段名)
  5. PRIMARY KEY:简称PK 主键约束 —列级约束
    *在主键约束下的单字段或者多字段组合上不允许有空值,也不允许有重复值
    *一个表上只允许建立一个主键,而其它约束条件则没有明确的个数限制
    *添加PK ALTER TABLE 表名 ADD CONSTRAINT 表名_字段名_pk PRIMARY KEY(字段名)
  6. FOREIGN KEY:简称FK 外键约束 —列级约束 表级约束
    *定义在两个表的字段或一个表的两个字段上,用于保证相关两个字段的关系
  7. CHECK:简称CK 检查约束 —列级约束表级约束
    *用来强制在字段上的每个值都要满足Check中定义的条件,当定义了Check约束的列新增或修改数据时,数据必须符合Check约束中定义的条件
    *添加CK ALTER TABLE 表名 ADD CONSTRAINT 表名_字段名_check CHECK(约束条件)
0 0
原创粉丝点击