Oracle数据库学习(一)

    xiaoxiao2025-05-31  24

    --视图的学习 --视图是一种虚表,视图建立在已有表的基础上,视图依赖建立的这些表成为基表 --向视图提供数据内容的语句为SELECT语句,可以将视图理解为储存起来的SELECT语句, --视图向用户提供基表数据的另一种表现形式 --为什么使用视图? --1.控制数据访问 --2.简化查询 --3.避免重复访问相同的数据 --创建视图 create view empview1 as ( select t.accessorynum,t.billdate,t.billmaker from ap_paybill t ) --查询视图 select * from empview1; --修改视图数据 create or replace view empview1 as ( select t.accessorynum,t.billdate,t.billmaker,t.billno from ap_paybill t ) --创建只能读的视图DML create or replace view empview1 as ( select t.accessorynum,t.billdate,t.billmaker,t.billno from ap_paybill t ) with read only --只读视图 --简单视图和复杂视图区别 --1.在创建视图中select语句使用了函数或者分组则为复杂视图 --2,简单视图一定可以进行DML操作而复杂视图有时可以 --删除视图 drop view empview; --Top-N分析 --查询一个列中最大或最小的n个值 --最大和最小的是Top-N最关心的 --例如工资前10 rownum 只能使用<或者<=,而用=,>,>=都不能返回任何值 select rownum,employee_id,last_name,salary from (select employee_id,last_name,salary from emp order by salary desc ) where rownum<= 10 --查询区间 40~50 select * from( select rownum rn,employee_id,last_name,salary from (select employee_id,last_name,salary from emp order by salary desc ) ) where rn<= 50 and rn>40 --显示视图的结构 desc emp; --其他数据库对象 序列 索引 同义词 --序列:提供有规律的数值 --索引:提高查询 --同义词:别名 --序列:可供多个用户用来产生唯一数值的数据库对象 --1.自动提供唯一的数值 --2.共享对象 --3,主要用于提供主键值 --4.将序列值装入内存可以提高访问效率 --创建一个序列 create sequence empseq increment by 10 --每次增长10 start with 10 --从10开始 maxvalue 100 --最大值 minvalue 10 cycle --需要循环 nocache -- 不需要缓存登陆 --查询序列 select empseq.currval from dual; --当前序列 select empseq.nextval from dual; --下一个序列 --给插入的表添加序列 insert into emp01 values(emp.nextval,'CC',21651) --修改序列 alter sequence empseq increment by 1 --增长1 nocycle --不循环 --不可随意修改序列的初始值 --序列在下列会出现裂缝 --1.回滚 --2.系统异常 --3.多个表同时使用同一个序列(尽量一个表一个序列) --查询用户所拥有的序列 select * from user_sequences; --删除序列 drop sequence empseq; --索引 --1.一个独立于表的模式的对象,可以存储与表不同的磁盘或表空间中。 --2.索引被删除或损坏,不会对表产生影响,其影响的只是查询的速度。 --3.索引一旦建立,Oracle管理会对其进行自动维护,而且由Oracle管理系统决定何时使用索引,用户不用在 --查询语句中指定使用哪个索引 --4.在删除一个表时,所有基于该表的索引会自动被删除 --5.通过指针加速 Oracle服务器的查询速度 --6.通过快速定位数据的方法,减少磁盘的I/O操作 --创建索引 --1.自动创建:在定义Primary key或者UNIQUE约束系统自动在相应的列上创建唯一性索引 --2.手动创建:用户可以在其它列上创建非唯一的索性,以加速查询 create index emp01_id_ix on emp01(emp_id); --删除索引 drop index emp01_id_ix; --什么时候创建索引 --1.列中数据值分布范围很广 --2.列经常在WHERE子句或连接条件中出现 --3.表经常被访问而且数据量很大,访问的数据大概占 --数据总量的2%到4% --同义词 --1.方便访问其它用户的对象 --2.缩短对象名字的长度 --创建同义词 synonym create synonym e from emp; ---------控制用户权限--------------- --数据库安全性: --系统安全性 --数据安全性 --创建用户 create user nc --用户名 identified by nc --密码 --系统权限 ,以程序开发者为例,一般有 --1.create session(创建会话)权限 --2.create table (创建表)权限 --3.create sequence (创建序列)权限 --4.create view (创建视图)权限 --5.create procedure (创建过程)权限 --授予用户权限grant grant create session to nc; grant create view to nc; --创建用户的表空间 --用户没有表空间时,无法操作表 alter user nc quota --表空间大小 quota 5M unlimited --表空大小无限 on users --作用到的表空间 --用户改密码 alter user nc identified by nc1; --创建角色 --可以更好的控制用户的权限,赋予用户角色 --创建角色 create role nc_role; --给角色赋予相应的权限 grant create session, create table, create sequence to nc_role; --把角色赋予用户 grant nc_role to nc; --对象权限 --1.不同的对象具有不同的对象权限 --2.对象的拥有者拥有所有的权限 --3.对象的拥有者可以向外分配权限 --分配给其他用户对象的操作权限 grant select,update --把scott用户的查询,修改权限授予nc用户 on scott.emp to nc; --分配对象权限的能力 grant select on scott.emp to nc --to public 是给所有的用户 with grant option; --nc用户还可以把得到的查询对象的权限赋予他人 --收回对象的权限 revoke select on scott.emp from nc; --用户还拥有系统的权限 --SET运算符 --UNION(去重复)/UNION ALL 并集 --Intersect 交集 --Minus 差集 -- 默认会按照到第一列的顺序排序 select id,department_id from employees01 union --UNION ALL; Intersect ; Minus; select id,department_id from employees02 order by 1 desc; --相对位置 --处理不匹配的查询 select id,department_id,to_char(null) from employees01 intersect select to_number(null),department_id,department_name from employees02 --查询排序 select 'study at',2 a_dummy from dual union select 'I want to',1 from dual union select 'beijing',3 from dual order by 2; -- column a_dummy noprint; 不让a_dummy打印PLSQL语句 来自用户 nothing 地址http://blog.csdn.net/u011687186
    转载请注明原文地址: https://ju.6miu.com/read-1299461.html
    最新回复(0)