zoukankan      html  css  js  c++  java
  • 数据库中和表并列的其他对象

    序列  sequence (除了表外,这个最重要)

    概念

    用来产生主键的值(自己控制主键值,很容易重复,用sequence可以自动增长产生主键值)

    序列可以产生1.0*10^38个数

     如何创建和使用序列

    • 创建序列:

    create sequence  序列名; (和建立表一样)

    用序列放入的主键值绝对不会重复

    • 使用序列:

    序列名。nextval(使用序列值的下一个数)  

    序列名。currval(使用当前序列数,基本不会用到)

     

    一张表只能用一个序列,不能用两个序列,否则可能重复

    可以两张表用一个序列,但是这样数会比较乱

    演示:

    (1) 创建表(之前要先删表)

    create table testseq(
      id number primary key,
      name varchar2(30),
      salary number,
    );

     

    (2) 创建序列

    create sequence testseq_id;

     

      (3) 使用序列,向表中插入数据 

    insert into testseq values(
        testseq_id, nextval,
        'test'|| testseq_id.currval,
        1000*testseq_id.currval,
    );

    如何删除序列

    drop sequence  序列名  ;(和删除表一样,不存在就说删不到)
    
    drop sequence testseq_id;

     

     

    drop sequence testseq_id;

    创建序列是可以规定其属性(知道就行)

    • create sequence  序列名(表名_要使用序列的字段名)
    • minva 1     最小值
    • maxvalue 9999999   最大值   
    • increment by  1   每次增长数
    • start with  216   从哪里开始
    • nocache   有没有缓存
    • noorded   能不能排序
    • nocycle ;  能不能循环

    索引  index(不重要,了解就行,DBA才用)

    作用

    加速查询速度

    原理

    底层通过树状结构组织数据,消耗了大量的空间和时间来加速查询。消耗的是建立索引的时间,一旦索引建立完毕,查询就很快。组织数据的树状结构消耗的空间很大。

     

    索引就像书的目录,正常的查找数据像在书中一页一页查询数据量越大,索引的优势越大

    ps:set  timing on  如此设置后就会统计每条操作的时间

    假设有3亿条数据,要查询其中一条数据:

    不用索引:

      用oracle(配置为2G内存,i3处理器时)

        查询一条数据大概需要60*8=480s

    用索引:0.01s

    创建语法

    对唯一性的字段,系统会自动建立索引,叫唯一性索引

    非唯一性索引建立:在表的某个字段上创建索引

     

    正常用法:

    create index  索引名  on 表名(要创建索引的字段名);

     

    快速建表(非正常用法)

    create table  表名  as select  id,first_name  name,salary  from  查询的表名

    (即建的表的数据和查询的数据一样)

    演示:

     

    删除语法

    drop index  索引名;
    

    总结

    数据库脚本(xxx.sql)里是怎样写的?(大小写不敏感)

    (1)删序列

    drop sequence   序列名;

    (2)删表   

    drop table  表名  cascade constraint /* 解除关联*/  ; 

    (3)创建序列(设置属性)(一般之前删了几个就创建几个)

    create  sequence  序列名  属性;

    (4)创建表(字段,列级约束,表级约束)  

    create table  表名(字段以及约束);

    (5)增加数据  

    insert into  表名  values(  匹配表的要求的要增加的数据  );

    (6)提交修改  

    commit  ;

    ***(4)(5)(6)每创建一个表写一次

    (7)加外键约束

    alter table  子表名
    add  constraint 子表名_加外键的字段名_fk
    foreign  key(加外键的字段名)reference(父表名_被加外键的字段名);

    (8)输出

    Prompt table   and  sequences created  and  populated.set feedback  on

      

  • 相关阅读:
    linux一些配置
    tomcat启动后,页面无法访问
    利用jmeter实现多IP压测
    java操作数据库
    excle中表头分割单元格
    常用的最大流算法 Dinic 和 最小费用最大流SPFA写法
    [kuangbin]带你飞之'网络流'专题
    (留坑以后再看)一般图'最大匹配' 带花树 算法
    二分图'多重匹配'
    二分图'最大匹配' HK 算法
  • 原文地址:https://www.cnblogs.com/cjaaron/p/9216920.html
Copyright © 2011-2022 走看看