Oracle总结【视图、索引、事务、用户权限、批量操作】 一

简介: 在Oracle总结的第一篇中,我们已经总结了一些常用的SQL相关的知识点了…那么本篇主要总结关于Oralce视图、序列、事务的一些内容…在数据库中,我们可以把各种的SQL语句分为四大类…(1)DML(数据操纵语言):select,insert,update,delete(2)DDL(数据定义语言):create table,alter table,drop table,truncate table(3)DCL(数据控制语言):grant select any table to scott/revoke select any table from scott(4)TCL(事务

批量操作

何为批量操作,就是一次性插入多条数据….在SQL中,我们查询出来的数据可看成是一张表,那么我们在插入数据的时候,可以根据查询出来的数据进行插入…这就可以看成是批量操作…

值得注意的是,如果没有指定插入哪些字段的话,那么查询出来的全部字段均会插入表中..

将xxx_emp表中所有20号部门的员工,复制到emp表中,批量插入,insert into 表名 select ...语法
insert into emp
select * 
from xxx_emp
where deptno=20;



删除操作对比

我们的删除语法有三种:

  • delete from
  • truncate from
  • drop from

我们来对比一下他们的区别:

drop table

  • 1)属于DDL
  • 2)不可回滚
  • 3)不可带where
  • 4)表内容和结构删除
  • 5)删除速度快

truncate table

  • 1)属于DDL
  • 2)不可回滚
  • 3)不可带where
  • 4)表内容删除
  • 5)删除速度快

delete from

  • 1)属于DML
  • 2)可回滚
  • 3)可带where
  • 4)表结构在,表内容要看where执行的情况
  • 5)删除速度慢,需要逐行删除



事务

事务其实我们在JDBC章节中已经讲解过了,详情可查看我JDBC的博文。

再次明确一下:事务就是让一个不可分割的子操作形成一个整体,该整体要么全部执行成功,要么全部执行失败

我们值得注意的是Oracle中的事务与Mysql中的事务操作是有些不同的:

Oracle的事务开始:

  • 第一条DML操作做为事务开始【并不需要手动开启事务】

Oracle的提交事务

  • (1)显示提交:commit    
  • (2)隐藏提交:DDL/DCL/exit(sqlplus工具)【注意】

Oracle的回滚事务

  • (1)显示回滚:rollback
  • (2)隐藏回滚:关闭窗口(sqlplus工具),死机,掉电

因为Oracle有实例池这个概念,所以Oracle支持回滚

1.jpg


Oracle默认支持的隔离级别是:read commited

Mysql默认支持的隔离级别是:reapatable read

Oracle中设置事务隔离级别为serializable
set transaction isolation level serializable;




访问其他用户的对象

在上一篇博文已经说了,Oracle将表/用户都看成是对象…那么我们怎么在scott用户下访问hr用户下的表呢???

其实,我们只要在访问表的时候,指定具体的用户.数据库表就行了,但是呢,还要看看该用户有没有权限查询别的用户的数据表,于是就需要赋予权限了

声明:scott或hr叫用户名/方案名/空间名
      scott--tiger
      hr-----lion
查询当前用户是谁
show user;
查询scott自己表空间下的所有对象时,可加,或不加用户名select * from emp;
select * from emp;
select * from scott.emp;
以sysdba身份解锁hr普通帐户
alter user hr account unlock;
以sysdba身份设置hr普通帐户的密码
alter user hr identified by lion;
当scott查询hr表空间下的所有表时,必须得加用户名
select * from hr.jobs;
在默认情况下,每个用户只能查询自已空间下的对象的权限,不能查询其它用户空间下的对象
以sysdba身份角色,授予scott用户查询所有用户空间下的对象权限
grant select any table to scott;
以sysdba身份,撤销scott用户查询所有用户空间下的对象权限
revoke select any table from scott;
scott自已查看自己所拥有的权限
select * from user_sys_privs;
从scott用户空间导航到sysdba用户空间
conn / as sysdba;
从sysdba用户空间导航到scott用户空间
conn scott/tiger;
从scott用户空间导航到hr用户空间
conn hr/lion;
查询hr用户空间中的所有对象
select * from tab;
从hr用户空间导航到scott用户空间
conn scott/tiger;
在scott用户空间下,查询hr用户空间下的jobs表,必须加上hr用户空间名
select * from hr.jobs;



视图

视图是一种基于数据表的一种虚表

  • (1)视图是一种虚表
  • (2)视图建立在已有表的基础上, 视图赖以建立的这些表称为基表
  • (3)向视图提供数据内容的语句为 SELECT 语句,可以将视图理解为存储起来的 SELECT 语句
  • (4)视图向用户提供基表数据的另一种表现形式
  • (5)视图没有存储真正的数据,真正的数据还是存储在基表中
  • (6)程序员虽然操作的是视图,但最终视图还会转成操作基表
  • (7)一个基表可以有0个或多个视图


目录
相关文章
|
17天前
|
SQL Oracle 关系型数据库
[Oracle]索引
本文介绍了数据库索引的基本概念、优化查询的原理及分类。索引是一种数据结构(如B树或B+树),通过排序后的`rowid`来优化查询性能。文章详细解释了索引的构建过程、B+树的特点及其优势,并介绍了五种常见的索引类型:唯一索引、组合索引、反向键索引、位图索引和基于函数的索引。每种索引都有其适用场景和限制,帮助读者更好地理解和应用索引技术。
33 1
[Oracle]索引
|
2月前
|
存储 Oracle 关系型数据库
Oracle和MySQL有哪些区别?从基本特性、技术选型、字段类型、事务、语句等角度详细对比Oracle和MySQL
从基本特性、技术选型、字段类型、事务提交方式、SQL语句、分页方法等方面对比Oracle和MySQL的区别。
518 18
Oracle和MySQL有哪些区别?从基本特性、技术选型、字段类型、事务、语句等角度详细对比Oracle和MySQL
|
3月前
|
SQL Oracle 关系型数据库
[oracle]使用impdp导入数据时卡在视图
[oracle]使用impdp导入数据时卡在视图
235 2
|
5月前
|
运维 DataWorks Oracle
DataWorks产品使用合集之在标准模式下,当同步Oracle的表或视图时,是否需要在源端的测试和生产环境中都存在要同步的表或视图
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
47 3
|
6月前
|
Oracle 关系型数据库 Java
Oracle 19c 查看隐含参数视图
Oracle 19c 查看隐含参数视图
101 7
|
6月前
|
SQL Oracle 关系型数据库
【ORACLE】 事务 | 锁 | 约束 | 权限、角色与用户管理
【ORACLE】 事务 | 锁 | 约束 | 权限、角色与用户管理
73 1
|
6月前
|
存储 Oracle 关系型数据库
Oracle索引知识看这一篇就足够
Oracle索引知识看这一篇就足够
|
6月前
|
存储 Oracle 关系型数据库
Oracle 12c的多重索引:数据的“多维导航仪”
【4月更文挑战第19天】Oracle 12c的多重索引提升数据查询效率,如同多维导航仪。在同一表上创建针对不同列的多个索引,加速检索过程。虽然过多索引会增加存储和维护成本,但合理选择和使用索引策略,结合位图、函数索引等高级特性,能优化查询,应对复杂场景。数据管理员应善用这些工具,根据需求进行索引管理,支持企业数据分析。
|
6月前
|
SQL Oracle 安全
Oracle数据库中的事务和锁
【4月更文挑战第19天】Oracle数据库的事务和锁是确保数据完整性和并发控制的核心机制。事务遵循ACID原则,保证操作的原子性、一致性、隔离性和持久性。通过COMMIT或ROLLBACK来管理事务更改。锁包括共享锁(读)、排他锁(写)、行级锁和表级锁,用于控制并发访问。自动锁机制在DML操作时生效,防止数据冲突。事务和锁共同维护数据库的稳定和安全。
|
6月前
|
SQL Oracle 关系型数据库
Oracle只读事务和PolarDB只读事务的差异
在交付PolarDB的过程中我们也遇到了只读事务造成的困扰,本文主要介绍Oracle只读事务和PolarDB只读事务的不同。
198 0
Oracle只读事务和PolarDB只读事务的差异