初识Oracle三 (自用)

13.视图
    一般来说视图是基于某条select语句的结果集而创建出来的虚表,能像物理表一样进行操作,但一般只用作查询,物理表的数据发生改变时,基于它创建的视图也会变。

    视图命名:
        一般以v_开头

    视图的名称:
        如果创建视图的select语句是基于单表的不含函数及group by语句则被称为简单视图,如果是基于单表,并且含有函数或group by语句则称为复杂视图,如果是基于多张表的,则被称为连接视图。

    视图的作用:
        1.简化查询语句,如果需要多次使用某种复杂的查询,则可以将其中的某些select语句中的查询创建视图,以后就只需从视图查询
        2.保密:使用视图可以使操作人员看不到原始表中某些列,起到保密的作用。

    视图的创建需要权限:管理员授权语句:grant create view to ...

    创建视图:create view ***(视图名) as select ...
    
    修改视图对应的列:create or replace view ***  as select ...
    
    增加和修改删除视图内的数据:insert into v_ values('')等,注:这会造成原表的数据也随之改变,因此,不建议使用。

    约束:
        1.check option约束
            首先视图只操作它可以查询出来的数据,对于它查询不出的数据,即使基表有,也不可以通过视图来操作。在创建视图的最后加上with check option即可。

        2.readonly 约束
    
14.序列
    序列创建:

    CREATE SEQUENCE SEQ_MANAGER_RECRUIT_ID
    INCREMENT BY 1    --每次增长1
    MINVALUE 1    --最小值为1
    MAXVALUE 9999  --  最大值为9999
    START WITH 71  --  从71开始
    NOCACHE       -- 缓存    
    CYCLE ;       -- 达到最大之后是否继续

    使用序列:
 

insert into table_name values(seq_name,...)
--seq_name指序列名

    删除 :
        drop sequence 序列名

15.索引:
    索引是一种允许直接访问数据表中某一数据行的树型结构,为了提高查询效率而引入,是独立于表的对象,可以存放在与表不同的表空间(TABLESPACE)中
    索引记录中存有索引关键字和指向表中数据的指针(地址)
    对索引进行的I/O操作比对表进行操作要少很多
    索引一旦被建立就将Oracle系统自动维护,查询语句中不用指定使用哪个索引
    索引是一种提高查询效率的机制
    ❤️ 注意:
    索引是数据库对象之一,索引是为了提高查询效率。索引的统计与应用是数据库自动完成的,只要数据库认为可以使用某个已创建的索引时就会自动应用。

    创建方式:
        create index index_name on table_name(row_name);

    重建索引(提高空间利用率):
        alter index index_name rebulid;

    删除不常用的索引:
        drop index index_name ;

    索引用处:
        经常使用where语句,order by,distinct语句的字段
        如果是复合索引,字段顺序应与关键字后面的字段一致
        经常作为表的连接条件的字段,不为经常做DML操作的表
        不为小表作索引,限制索引数目,索引不是越多越好。
        适当删除不常用、不合理的索引

16.约束
    16.1.非空约束(NOT NULL ):简称NU
        一般直接在建表时的字段后加 NOT NULL
        或者正规写法:字段名 字段类型 constraint 约束名称 NOT NULL
        修改表时添加非空约束:ALTER table *** modify(列名,列类型 NOT NULL) ALTER table *** add constraint *** NOT NULL(列名)
        取消非空约束:
        ALTER table *** modify(列名,列类型 NULL) 

    16.2.唯一性约束(UNIQUE):简称UK
        与非空类似

    16.3.主键约束(PRIMARY KEY):简称PK
    
    16.4.外键约束(FOREIGN KEY):简称FK
        注:外键约束必须在两表数据一一对应的情况下才能建立,即两表的左外连接,右外连接,外连接和内连接所得到的数据一样的情况。

    16.5.检查约束(CHECK):简称CK
        ALTER TABLE *** ADD CONSTRAINT *** 
        CHECK (...);

17.connect by和level
    基本语法
    树状结构的数据
    从父节点(根节点)开始找子节点
    

select * 
from table 
[start with condition1] --condition是表达式代指从哪个父节点开始。省略则输出全部。下类似
connect by [prior] id=parentid --prior不加则只会返回一条数据

    从子节点返回去找父节点

    select * from table [start with condition1]
    connect by id= [prior] parentid

    例子:

    select t.*, level, CONNECT_BY_ROOT(id)
    from tab_test t
    start with t.id = 0 
    connect by prior t.id = t.fid;

    从子节点返回有两种写法
  

    --1.
    select t.*, level, CONNECT_BY_ROOT(id)
    from tab_test t
    start with t.id = 4
    connect by  t.id = prior t.fid;
    --2.
    select t.*, level, CONNECT_BY_ROOT(id)
    from tab_test t
    start with t.id = 4
    connect by prior t.fid = t.id;

资料来源:Oracle数据库基础(五)(视图,序列,索引)_Alive的博客-CSDN博客

Oracle数据库基础(六)(约束)_Alive的博客-CSDN博客

oracle connect by用法篇_一直在路上-CSDN博客

https://www.bilibili.com/video/BV1AE411p79z?p=1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值