/*
一、序列 数据库生成的一系列数值 用于实现 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.语法:
1)
create 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
*/
五、Oracle之常用对象
最新推荐文章于 2024-10-14 10:36:17 发布