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中表的别名。
         -- 主要用途: 用来给其他用户下的表添加别名。
   

原文地址:https://www.cnblogs.com/kylyww/p/5317047.html