zoukankan      html  css  js  c++  java
  • 常见的数据库对象

    对象 描述
    基本的数据存储集合,由行和列组成
    视图 从表中抽出的逻辑上相关的数据集合
    序列 提供有规律的数值
    索引 提高查询的效率
    同义词 给对象起别名

    序列:主要提供主键值,将序列值装入内存可以提高访问效率

    create sequence empseq
    increment by 10  --每次增长10
    start with 10  --从10开始
    maxvalue 100  --提供的最大值
    cycle  --需要循环
    nocache  --不需要缓存登录

    序列:主要用来提供主键值

    select empseq.nextval from dual;

    --序列使用:

    create table emp11 
    as
    select employee_id,last_name,salary
    from employees
    where 1=2;
    insert into emp11
    values(empseq.nextval,'DD',5000);
    EMPLOYEE_ID LAST_NAME                     SALARY
    ----------- ------------------------- ----------
             41 DD                              5000 

    --修改序列

     alter sequence empseq
     increment by 1
     nocycle ;
     
     insert into emp11
    values(empseq.nextval,'EE',6000);
    EMPLOYEE_ID LAST_NAME                     SALARY
    ----------- ------------------------- ----------
             41 DD                              5000 
             42 EE                              6000 

    注意:修改系列的初始值只能通过删除序列之后重建序列的方法实现

    裂缝:多个表使用同一个序列

               回滚

               系统异常

        

    --查看序列:

    select  sequence_name ,min_value,max_value,increment_by,last_number
    from user_sequences;
    SEQUENCE_NAME                   MIN_VALUE  MAX_VALUE INCREMENT_BY LAST_NUMBER
    ------------------------------ ---------- ---------- ------------ -----------
    MVIEW$_ADVSEQ_GENERIC                   1 4294967295            1           1 
    MVIEW$_ADVSEQ_ID                        1 4294967295            1           1 
    LOGMNR_EVOLVE_SEQ$                      1    1.0E+27            1           1 

    --删除序列:

    drop sequence empseq;

    索引:

     -- 索引被损坏或删除,不会对表产生影响,其影响的只是查询的速度

     --通过指针加速 orale服务器的查询速度

    --创建索引:自动创建:在定义primary  key或unique约束后系统自动在相应的列上创建唯一性索引

                        手动创建: 用户可以在其他列上创建非唯一的索引,以加速查询

    -- 手动创建:

    create index emp1_id_ix
    on emp1(employee_id);

    --删除索引:

    drop index emp1_id_ix;

    --什么时候使用索引较好:

                      列中数据分布范围广

                      列经常在where字句或连接条件中出现

                      表经常被访问而且数据量很大,访问的数据大概占数据总量的2%到4%

    --不要创建索引:表小表

                             表常更新

                             列经常在where字句或连接条件中出现

                             查询的数据大于2%到4%

    同义词(synonym):创建及删除

    create synonym e for employees;
    drop synonym e;

    练习:

    --1.创建序列dept_id_seq,开始值为200,每次增长10,最大值为10000

    create sequence dept_id_seq
    start with 200
    increment by 10
    maxvalue 10000

    --2.使用序列向表dept中插入数据

    create table dept
    as 
    select department_id id,department_name name 
    from departments
    where 1=2
    insert into dept01
    values(dept_id_seq.nextval,'Account')
    All that work will definitely pay off
  • 相关阅读:
    55最佳实践系列:Logging最佳实践
    关于 Multiget hole:spymemcached对此的实现方法
    Java两则故障分析和常见连接超时时间
    spymemcached :某个mc节点操作连续超时超过998次就 AutoReconnect 的特性
    最佳实践系列:前端代码标准和最佳实践
    随手小记:PHPFPM模式下PHP最大执行时间、Pragma和postcheck
    Storm 是如何跟踪一条消息以及它衍生出来的消息都被成功处理的
    Tumblr的消息通知系统是如何构建的
    职业化之可以固化的六个工作模式
    三个实例演示 Java Thread Dump 日志分析
  • 原文地址:https://www.cnblogs.com/afangfang/p/12561251.html
Copyright © 2011-2022 走看看