oracle学习记录(刷题),持续更新

5/10:

    oracle的逻辑结构:

        1)tablespace表空间:oracle中最大的逻辑结构,每一个tablespace隶属于一个database,其中有一个tablespace叫做system,用来存储系统的存储过程、函数、数据字典等等,也可以存放用户的表、索引。

         2)segament段:oracle中有数据段、索引段、回滚段、临时段。数据段用来存放数据,索引段用来存放索引,回滚段对应事务,一对多,一个事务对应一个回滚段,一个回滚段可以对应多个事务,临时段在order by时产生。

         3)extent区:磁盘空间分配的最小单元。

         4)data block数据块:数据文件磁盘存储空间单位,最小的I/O单元。


    oracle安装完毕后,会自动分配三个角色:sys超级管理员,system系统管理员,scott普通用户。(请注意sysdba并不是用户名,它是一种权限)


    for update在select字句中将会放置一行或多行的排它锁(记录锁定,相对应的lock table表锁定)


    oracle同义词:CREATE [PUBLIC] SYNONYM synonym FOR object;

        有Public创建出来的就是共有同义词,所有用户都可以访问,否则只有创建的用户可以使用。同义词可以取代用户名.表名直接使用,如果出现同名public synonym和私有synonym,以私有为先。


    savepoint可以设置回滚点。语法:

           SAVEPOINT save_point;

            ROLLBACK TO SAVEPOINT save_point;


    oracle中的单引号和双引号:

            单引号有两个作用:引用字符串/转义

            双引号在字符串中只是一个普通字符,在to_char中有特殊用法,用来包装非法的格式,当去掉引号包装的格式后,应该是语法正确的引用。如to_char(sysdate,'hh24"小时"mm"分"ss"秒"')


    oracle的序列在修改时,若想要修改起始值,必须删除序列再重新创建。


    oracle的视图可以在子查询中的where语句后加上with check option,若如此做,当对视图进行DML操作时,如果更新后的数据违反了where条件,就会返回错误信息。如果没有where语句,加上with check opiton,并不影响什么。


    oracle的视图在做DML操作时需要注意:出现以下:

                组函数

                GROUP BY 子句
                DISTINCT 关键字

                ROWNUM 伪列

    时,将不能执行DML。对于update和insert,如果有列的定义是表达式,则不能操作。对于insert,如果有非空列未被包含,也不能操作。


    关于oracle的索引,将会专门开一博客


    关于oracle游标,将会专门开一博客


    

       

你可能感兴趣的:(读书笔记,oracle)