zoukankan      html  css  js  c++  java
  • Day06 杂乱与4个对象

    1.杂乱

      -- 数据库的分页操作

          -- 分页使用的是rownum

          例1:    

    1 select rownum,empno,ename
    2      from emp
    3      where rownum <= 5;

         结果:

          例2:

    1 select r,empno,ename
    2  from (
    3      select rownum r,empno,ename
    4      from emp
    5      where rownum <= 5
    6       )
    7  where r >1;

        结果:

            --注意: 给字段取别名不要给表取

            --可以根据需求来决定1页要显示的数据条数。

       --rowid  用来指定本地文件里面数据存放的位置。

       -- purge 回收站
          --oracle的回收站
            show recyclebin;

             -- 查询回收站里面的表的数据           如果你需要查询回收站里面的内容那么你需要满足一个格式,就是给表名添加双引号(" ")。

                   select * from "BIN$7VBJkRCLTEmSMoICIxm6lg==$0";

             -- 双引号的作用 

                  -- 1). 别名              2). 常量     3). 用来查询回收站里面的表的数据
             -- 如何还原回收站里面的内容 -- 闪回 在oracle中一共有7中闪回技术。

       -- oracle中的约束条件

            1). 主键约束 primary key 非空且唯一
            2). 非空约束 not null
            3). 唯一性约束 unique
            4). check约束  check
            5). 外键约束 foreign key  

            例:

    1  create table testemp(
    2                     id number(5) primary key,
    3                     name varchar2(20) not null,
    4                     gender varchar2(10) check(gender in('','')),
    5                     cardid varchar2(3) unique,
    6                     detpno number references dept(deptno)
    7                 );

         -- constraint 用来修改oracle的错误提示编码

    1 create table testemp
    2             (
    3                 id number(5) primary key,
    4                 name varchar2(20) constraint name_not_null not null,
    5                 gender varchar2(10) constraint gender_check check(gender in('','')),
    6                 cardid varchar2(3) constraint carid_unique unique,
    7                 detpno number constraint fk references dept(deptno)
    8             );

    2.4个对象(视图索引序列同义词
        -- 视图(视图是一个逻辑表,用来简化sql查询语句,视图本身不存放数据,视图不能提高查询效率

           -- 视图的创建

              -- 默认情况下scott用户是没有创建视图的权限的(view) 。

              -- 给soctt用户授权,让它可以创建视图 (grant create view to scott)。 

                    -- 登录dba的命令 cmd  >>输入:  sqlplus / as sysdba;    然后输入 :grant create view to scott;

                 例:  

    1 create view myview   
    2 as  
    3 select * from emp;
    1 create view myview
    2     as
    3     select e.ename,d.dname,e.job,e.sal,e.comm
    4     from emp e,dept d
    5     where e.deptno = d.deptno;

          -- 视图的第二个用途: 对于一些敏感的数据可以用来隐藏。

          -- 一般创建视图的时候都不希望用视图去修改其真实的表。(添加一个  with read only;)

            

     1 SQL> create view myview
     2          as
     3          select empno,ename,job
     4          from emp
     5          with read only;
     6 
     7 视图已创建。
     8 
     9 SQL> insert into myview values(1001,'ddd','SAL');
    10 insert into myview values(1001,'ddd','SAL')
    11 *
    121 行出现错误: 
    13 ORA-01733: 此处不允许虚拟列    //这样就可以隐藏一些敏感数据

       ---索引(index)
         -- 索引的用途: 可以用来提高查询的效率, 索引可以在一定程度上提高我们的查询效率,但是它要根据数据量来决定,数据量越多提高的效果越明显,数据越低效果越不明显。

            create index myjob on emp(job);

               注意:  -- 可以通过查询sql执行的日志,来查看是否调用了我们的索引。
                    -- 经常变动的列不适合建立索引。

        -- 索引的实现          -- B树索引和位图索引(矩阵)

       -- 序列
           sequence 主要用来做主键的自增长。
              -- 创建一个序列
                  create sequence myseq;

              -- 如何使用序列: nextval,currentval

                  select myseq.nextval from dual;

                  select myseq.currval from dual;

                  drop sequence myseq;   --删除序列

                  -- 创建一个序列从50开始
                       create sequence myseq start with 50;

                  -- 创建一个序列从50开始,然后每次增加10
                       create sequence myseq
                       start with 100
                       increment by 5;

         -- 同义词
             -- synonym: oracle中表的别名。
             -- 主要用途: 用来给其他用户下的表添加别名。
       

  • 相关阅读:
    centos7使用163 yum源
    Package has no installation candidate解决方法
    HTML 5 canvas相关
    git rebase 使用总结
    Redis不是只有get set那么简单
    k8s---pod常用操作
    Navigator.sendBeacon 无阻塞发送统计数据
    如何在页面关闭或跳转时优雅的发送Ajax请求
    mysql的触发器、视图、索引,受益匪浅
    杂集:centos7中利用logrotate工具切割tomcat日志
  • 原文地址:https://www.cnblogs.com/kylyww/p/5317047.html
Copyright © 2011-2022 走看看