五、Oracle之常用对象


/*
  一、序列 数据库生成的一系列数值 用于实现 id 的自增长
  1.创建序列
      create  sequence 序列名
  2.序列的属性
      nextval   --下一个值  序列将要生成的值
                一条sql语句出现多少次nextval 都是一个值
                --必须nextval生成过值以后才可以调用
      currval   --当前值    序列已经生成的值
                --默认start with 1 按照1自增
  3.区别mysql & oracle
  mysql -java对象 不需要插入id 数据库表 设置 auto_increment
  oracle实现java插入数据id 自增长 
  <insert>
     <select key>
     insert into values
*/
create sequence order_sequence
--查看序列的两个属性
select order_sequence.currval from dual;--必须nextval生成过值以后才可以调用
select order_sequence.nextval from dual;--默认start with 1 按照1自增
insert into orders values(order_sequence.nextval,'订单1',1000);
commit;
/*
   二、索引 看作一本书的目录  提升检索速度
        对于数据库提升数据检索速度 
        使用场景:表中数据量很大影响速度
   创建索引语法
      单列索引  create  index  索引名 on 表名(列名)
      复合索引  create  index  索引名 on 表名(列名,列名2)
      原则根据条件 可以创建复合索引使用复合索引

*/
---索引测试---
--创建大数据量的表 5000000 条记录
declare

begin

   --循环500万次没循环一次 插入一条记录
   for i in 1..5000000 loop
     insert into ORDER_DETAIL values(order_sequence.nextval,'订单'||order_sequence.nextval,1000,null);
   end loop;
   commit;

end;
select * from order_detall
select * from ORDER_DETAIL t


--1.查询没有索引的状态 记录耗时
--2.创建索引
create index order_index on orders(oname)
--3.查询同样条件的数据 记录耗时
select * from orders where oname='订单3333333' ---0.047

select * from orders where oid=3333333--0.015




/*
  三、视图
    1.概念 
    类似数据库的虚拟表 支持数据查询
    2.特点
    不会存储数据 数据来源为原始表 --重点
    3.意义:1)为了数据的安全
            2)为了权限的细分
            3)视图可以封装复杂的查询语句,简化查询。但是并不能提高查询速度,因为视图不保存数据,实际还需要从表中查询。
    4.语法: 
    1create view 视图名 as select 语句
    2)只读视图
    create view 视图名 as select 语句  with read only
    5.说明
      修改视图中的数据,实际修改的是对应表中的数据
      不建议通过视图对表中的数据做修改,因为会有很多限制
*/
--查询员工信息 员工表 创建视图支持特定的数据查询
create view emp_view as select empno,ename,job,mgr,deptno from scott.emp;
--SELECT 五张表后的视图结果集
--从emp_view查询员工信息
select * from emp_view
--修改SMITH的姓名为SSSS
update emp_view set ename='SSSS' where ename='SMITH';
commit;
--创建只读视图 支持数据查询
create view e_view as select empno,ename,job,mgr,deptno from emp with read only
update e_view set ename='SMITH' where ename='SSSS';
commit;

/*
  四、同义词  给一个对象起个别名
        为了数据安全
        简化开发
  创建同义词  create synonym 同义词名  for  用户.对象

*/
create synonym  emp_syn for scott.emp;
select * from emp_syn;

create synonym sy_emp for  scott.emp

/*
  五、数据库的导入导出
       1使用场景: 1).导出实现数据库备份
                   2).导入数据数据还原  

                   3).服务器升级 必须整体的数据库迁移  --管理员实现
       2实现方式:
            1)命令行实现 安装服务器可以  文件格式为dmp 
                 exp   整个数据库导出  exp 用户名/密码  file=文件路径 full=y
                       按照用户导出    exp 用户名/密码  owner=用户名 file=文件路径 
                       按照表名导出    exp 用户名/密码  file=文件路径 tables=表名,表名2
                 imp
            2)图形化客户端导入导出
                 A.tools--export user object  --导出表结构 不能备份数据
                                            导出对象的建表语句

                 B.tools --export tables  
                               oracle
                               sql文件  导出文件勾选create table
                               pde格式  导入文件勾选create table

*/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值