Day06 杂乱与4个对象
2016-03-24 20:34
197 查看
1.杂乱
-- 数据库的分页操作
-- 分页使用的是rownum
例1:
结果:
![](http://images2015.cnblogs.com/blog/898066/201603/898066-20160324194828636-272551825.png)
例2:
结果:
![](http://images2015.cnblogs.com/blog/898066/201603/898066-20160324195040870-2083999283.png)
--注意: 给字段取别名不要给表取
--可以根据需求来决定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
例:
-- constraint 用来修改oracle的错误提示编码
2.4个对象(视图、索引、序列、同义词)
-- 视图(视图是一个逻辑表,用来简化sql查询语句,视图本身不存放数据,视图不能提高查询效率)
-- 视图的创建
-- 默认情况下scott用户是没有创建视图的权限的(view) 。
-- 给soctt用户授权,让它可以创建视图 (grant create view to scott)。
-- 登录dba的命令 cmd >>输入: sqlplus / as sysdba; 然后输入 :grant create view to scott;
例:
-- 视图的第二个用途: 对于一些敏感的数据可以用来隐藏。
-- 一般创建视图的时候都不希望用视图去修改其真实的表。(添加一个 with read only;)
---索引(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中表的别名。
-- 主要用途: 用来给其他用户下的表添加别名。
-- 数据库的分页操作
-- 分页使用的是rownum
例1:
select rownum,empno,ename from emp where rownum <= 5;
结果:
![](http://images2015.cnblogs.com/blog/898066/201603/898066-20160324194828636-272551825.png)
例2:
select r,empno,ename from ( select rownum r,empno,ename from emp where rownum <= 5 ) where r >1;
结果:
![](http://images2015.cnblogs.com/blog/898066/201603/898066-20160324195040870-2083999283.png)
--注意: 给字段取别名不要给表取
--可以根据需求来决定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
例:
create table testemp( id number(5) primary key, name varchar2(20) not null, gender varchar2(10) check(gender in('男','女')), cardid varchar2(3) unique, detpno number references dept(deptno) );
-- constraint 用来修改oracle的错误提示编码
create table testemp ( id number(5) primary key, name varchar2(20) constraint name_not_null not null, gender varchar2(10) constraint gender_check check(gender in('男','女')), cardid varchar2(3) constraint carid_unique unique, detpno number constraint fk references dept(deptno) );
2.4个对象(视图、索引、序列、同义词)
-- 视图(视图是一个逻辑表,用来简化sql查询语句,视图本身不存放数据,视图不能提高查询效率)
-- 视图的创建
-- 默认情况下scott用户是没有创建视图的权限的(view) 。
-- 给soctt用户授权,让它可以创建视图 (grant create view to scott)。
-- 登录dba的命令 cmd >>输入: sqlplus / as sysdba; 然后输入 :grant create view to scott;
例:
create view myview as select * from emp;
create view myview as select e.ename,d.dname,e.job,e.sal,e.comm from emp e,dept d where e.deptno = d.deptno;
-- 视图的第二个用途: 对于一些敏感的数据可以用来隐藏。
-- 一般创建视图的时候都不希望用视图去修改其真实的表。(添加一个 with read only;)
SQL> create view myview as select empno,ename,job from emp with read only; 视图已创建。 SQL> insert into myview values(1001,'ddd','SAL'); insert into myview values(1001,'ddd','SAL') * 第 1 行出现错误: 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中表的别名。
-- 主要用途: 用来给其他用户下的表添加别名。
相关文章推荐
- hdu-1556 Color the ball(树状数组)
- 沈航软工--前三周(成绩)排行榜新鲜出炉
- Caused by: java.util.ConcurrentModificationException
- 《数学之美》--吴军 读后感
- Java_chapter06_一维数组
- PHP底层的运行机制与原理
- linux安装tomcat服务器和进程监控的命令
- 格雷码
- Android 5.0在framework里添加自定义新类
- 【慕课笔记】2-1 应用DOM方式解析XML—如何进行 XML 文件解析前的准备工作
- PAT(乙级) 1003.我要通过
- java毕向东听课笔记1(交换两变量的值)
- 寻找考场
- keepalived http的自定义健康检查
- Mongodb备份(mongodump)和恢复(mongorestore)
- 随机数函数应用于游戏
- 指针与对象
- 操作系统之“实验一”
- Oracle与MySQL的区别
- MD5加密算法