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
  • 相关阅读:
    如何调试PHP程序
    Win10系统80端口被pid=4的System进程占用 -- 解决方法
    初用DataGrip,连接后看不到自己创建的数据库的问题
    AJAX实现跨域的三种方法
    Webstrom (或Phpstrom)使用git(oschina-码云)
    EXCEL 数字+E+数字 自动识别为指数形式的解决办法
    解决安装office2013时提示已安装相同版本的office
    将excel导入mysql(使用navicat)
    mysql按汉语拼音首字母排序
    SQL查询语句去除重复行
  • 原文地址:https://www.cnblogs.com/afangfang/p/12561251.html
Copyright © 2011-2022 走看看