数据库拓展知识【提升篇】

伪列


rowid:属于表中的列,rowid 是一个用来唯一标记表中行的伪列,它是物理表中行数据的内部地址.(查询语句可以根据rowid到数据文件中唯一定位目标行)
        因此,根据rowid查询的效率是最高的,数据在入库落地时(即成功插入数据),Oracle
数据库就给这条数据分配一个唯一的rowid。

--根据rowid查询
select rowid,emp.* from emp;
select rowid,emp.* from emp where emp.rowid = 'AAAMgzAAEAAAAAgAAA';

 
rownum:是给结果集增加的一个序号,不属于任何的表,先有结果集,才能有rownum,始终
是从1开始编号(不能跨过1而存在)。


--rownum不属于任何的表
select rownum r,e.* from emp e
select e.*, e.rownum from emp e;
--始终是从1开始编号(不能跨过1而存在)
--查询emp表中前5行数据
select * from emp where rownum < 5;
select * from emp st where rownum between 1 and 5;
select * from emp st where rownum > 5;--查询无数据
select * from emp st where rownum between 2 and 5;--查询无数据

分页查询


--分页查询,查询表中第2-5行的数据
--方法一:首先用子查询查出所有rownum形成一个临时表,然后在选择临时表的rownum列的2-5行数据

select *
from (select rownum rn, e.* from emp e) ee
where ee.rn between 2 and 5;
或者方法二:首先用子查询查出前5行数据形成临时表,然后在查rownum>2的数据
select *
from (select rownum rn,em.* from emp em where rownum <= 5) t
where t.rn >= 2;

总结分页查询2点: 1.对rownum取别名; 2.利用子查询。

视图


视图就是一条select语句,只在执行时候才有数据,不能往视图中插入、修改、删除数据,只能查询数据。(在查询时,视图返回的数据就是一张临时表)
--创建视图
create or replace view emp_vw as
select e.empno,e.ename from emp e;
--视图名等价于select语句
emp_vw=(select e.empno,e.ename from emp e);
--查询视图
select * from emp_vw;
select * from (select e.empno,e.ename from emp e);
--对视图重命名
rename emp_vw to vw_emp;
--删除视图
drop view vw_emp;
给scott用户授予创建视图的权限:(cmd命令行黑窗口登录,需要分号)
第一步:sqlplus  /  as sysdba;
第二步:grant create view to scott;

视图的作用:其他系统直接访问本系统的数据库时,有些基表比较隐私,这时可以针对这些基表
创建视图,只列出其他系统关心的列名,把视图供其他系统查询。

索引


索引相当于一本书的目录,能提升查询效率(因为数据量少),相当于表的一个附表(索引表)
create index i_student_name on t_student(name); -- 创建索引
create unique index i_student_id_name on t_student(id,name);
drop index i_student_name; -- 删除索引

唯一索引:不允许具有索引值相同的行,主键创建后一定包含一个唯一性索引。
PS:索引有两种:唯一索引,普通索引。一般情况下,表的索引是数据库自动创建的
(根据主键),查询时候,条件和索引列名有关,会自动使用索引表来查,
索引表通常含有一列(可能多列)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值