zoukankan      html  css  js  c++  java
  • java:Oracle(视图,索引,序列)

    1.索引:索引一共分为4种

      -- 在oracle中,
      -- normal:普通索引
      -- unique:唯一索引
      -- bitmap:位图索引
      -- B 树索引:默认:如果不建立索引的情况下,oracle就自动给每一列都加一个B 树索引

      -- index(下标,索引):作为索引,在oracle如果自带索引能满足当前查询需求,就只需要建立索引,oracle自带机制会帮你使用
      -- 如果当前查询oracle自带的索引满足不了,就要自己编写索引 (不学)
      -- 索引就可以直接理解为一个目录

      -- 二叉树:可以有多层,但是每一层最多有两个节点
      -- 但是B 树:也可以有层,不过每一层可以有多个节点
      

      -- 什么情况下,才会启用索引查找呢?
      -- 只要有where(条件查询)存在,就一定会启动索引
      -- 所有的索引分类,不是属于(适用于)一张表,而是适用于某一列的

      

      -- normal:普通索引
      -- 就相当于一个普通的字段
      -- normal,unique索引的运行机制:他会给绑定的列都加一个下标,一旦在where使用建立了索引的列,就会自动启动索引,先把            description找出来,把所有下标列出来,通过下标进行比较,如果找到了就返回该条数据,如果找不到就返回null
      select * from classes where description = 'Java基础';

     

      -- unique:唯一索引
      -- 索引绑定的列的数据不能有任何一条重复,但是可以为null,唯一索引主要用于主键id ,地区表,国家表,市区表,身份证号
      -- 当一个表的主键和唯一键被建立的时候,自动建立了一个唯一索引

     

      -- B 树索引:和二叉树一样,但是二叉树只能有两个节点,但是B 树可以有多个节点

      

      -- bitmap:位图索引
      -- 怎么实现?
      -- 以性别为例:把男的标记1,把女的标记为0,在查找的时候,会把性别转换为数字,(比如查询出所有为男性用户信息),和1,0进行          对比,如果是1全部找出来,如果是0 全部排除
           -- 位图索引适用的场景:有大量的重复数据,并且数据选择性很少(性别,婚否,是否成年。。。)

      

    2.视图:

      -- view(视图):虚拟的表(需要真实的表提供数据)
        -- 可视化图像
        -- 在oracle视图是虚拟不存在的,不会存储在硬盘上
        -- 视图的机制:通过真正的表映射出来的数据存储在视图中,映射的整个过程在内存中进行,所以查询视图比查询真实的表速度快
        -- 视图的好处:第一查询速度快,第二不占用任何硬盘空间,第三可以很好的对需要保密的数据进行处理

     

      -- 视图就是为了解决:
        -- 第一:信息安全问题
        -- 第二:查询效率问题
        -- 第三:方便查询

     

      -- 怎么建立一个视图?
      -- 找views文件夹,点击新建-->name:视图的名字,item list:列名,table list:以表为基础所建立视图的表名,where clause :限制条件 
      -- 视图的建立:
      -- 如果需要更换视图数据,但是不需要更换视图名称的时候 or replace
      -- 无论是定时器,PL/SQL,视图,存储过程 create or replace
      create view test_views as (select * from classes);
      create or replace view test_views as (select * from classes); (创建一个名字为 test_views的视图)
      -- where clause:限制条件
      create view test_views2 as (select * from teacher) with read only;
      select * from test_views;
      select * from teacher;


       !=,==,<=,>=,<,>:对应的英文: (没什么用gt大于  lt小于)

             
      create or replace view lt_one_thround_five_hundrand as(select tor.total_price prices, tut.type_name, tur.username from t_order tor
      inner join t_user tur on tur.id = tor.user_id
      inner join t_user_type tut on tut.id = tur.user_type_id where tor.total_price > 1500);

      select * from lt_one_thround_five_hundrand;

     

    3.序列:sequence

      概念:

      有序的队列(等差数列,等比数列..):第一有一定顺序,第二是形成一种队列
      所谓oracle的序列,最常用到的就是自增主键

      在pl/sql中,有一个文件夹,就叫做sequences,在这个文件夹下存的东西就叫序列

      

      怎么建立一个序列:
        名称:序列的名字(可以任意命名)
        开始于:此序列从哪里开始
        增量:每次增加的数
        最小值:自己定义的最小的数字,(以主键id为例)来限制id的范围
        同理最大值是和最小值一样的
        建立一个序列的时候,如果没有特殊的要求,只需要起一个名字即可,其他的值都有默认值
        在使用默认值的时候,开始于这一栏的值就会从0开始(当前值)

      

        JDBC插入序列:
        首先在sequences建一个序列
        insert into 表名(id,name) values(序列名.nextval,'hello')

      在查询序列时,有两个属性:nextval,currval
      -- nextval: next value下一个值
      -- currval: current value 当前的值
      使用select 序列名.属性名 from dual;进行查询一个序列的值
      

      oracle规定,第一次查询序列的时候,一定要使用nextval,因为序列也是需要初始化
      在序列中,递增的数字,由增量来控制。

      序列:最主要用到的场景,就是oracle中主键的自增
      如果使用自增id这个场景的时候,序列只需要起一个名字即可,不需要修改任何属性值

      

    4.Other:

      算法首先要学习数据结构
        算法分析:sin cos tan cotan 矩阵 拉格朗日 朴素贝叶斯 遗传算法 
        算法导论

      -- package:就是Java中的包
      -- 就相当于你把文件进行归类的文件夹
      -- Java中包下面放的可以是Class,Interface,package,xml...
      -- 在真实开发环境中:Cars.class-->entity(实体),操作数据库的class-->dao,业务逻辑层--->service,查询出的数据是需要传到页面进          行展示--->controller,工具类--->util,过滤器(filter)--->filter,interceptor(拦截器)--->interceptor
      -- model view controller--->MVC
      insert into teacher(id, name, age, description, hire_date) values(s_teacher_id.nextval,'hehehe', 17, '测试数据', sysdate);

  • 相关阅读:
    MAC记住 git的用户名密码
    webpack初学踩坑记
    __dirname和__filename和process.cwd()三者的区别
    webpack
    日期格式在ios中的兼容性
    php实现导出excel功能
    node 之koa项目学习
    nodejs之socket.io 私发消息和选择群组发消息
    nodejs之socket.io 聊天实现
    mongoDB基础语法
  • 原文地址:https://www.cnblogs.com/kuangzhisen/p/7105582.html
Copyright © 2011-2022 走看看