01、DDL 数据定义语言
create alter drop truncate 02、DML 数据操作语言
insert delete update select 03、TCL 事务控制语言
commit rollback 04、DCL 数据控制语言
rovoke grant

sql分类

A(Atomicity):原子性
一个事务是一个不个分割的工作单位,要么所有的语句都执行成功,
要么所有的语句都不执行。 C(Consistency):一致性
事务必须是是一个数据库从一个一致性状态变到另一个一致性状态。 I(Isolation):隔离性
一个事务的执行不能被其他事务干扰,在一个事务中添加修改的数据,
不能被另一个事务读取或修改。 D(Durability):持久性
指一个事务提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。

ACID

 Read Uncommitted(读取未提交内容)
在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirty Read)。 Read Committed(读取提交内容)Oracle默认的级别
这是大多数数据库系统的默认隔离级别(但不是MySQL默认的)。它满足了隔离的简单定义:一个事务只能看见已经提交事务所做的改变。这种隔离级别也支持所谓的不可重复读(Nonrepeatable Read),因为同一事务的其他实例在该实例处理其间可能会有新的commit,所以同一select可能返回不同结果。 Repeatable Read(可重读)
这是MySQL的默认事务隔离级别,它确保同一事务的多个实例在并发读取数据时,会看到同样的数据行。不过理论上,这会导致另一个棘手的问题:幻读(Phantom Read)。简单的说,幻读指当用户读取某一范围的数据行时,另一个事务又在该范围内插入了新行,当用户再读取该范围的数据行时,会发现有新的“幻影” 行。InnoDB和Falcon存储引擎通过多版本并发控制(MVCC,Multiversion Concurrency Control)机制解决了该问题。 Serializable(可串行化)
这是最高的隔离级别,它通过强制事务排序,使之不可能相互冲突,从而解决幻读问题。简言之,它是在每个读的数据行上加上共享锁。在这个级别,可能导致大量的超时现象和锁竞争。

事务隔离级别

数据库设计(Database Design):针对用户特定的需求,我们能够创建最合适的数据库模型,然后将数据有效的存储!

数据库涉及的内容:01、需求分析
02、概念结构设计
03、逻辑结构设计
04、物理结构的设计
05、数据库的实施
06、数据库的运行和维护 数据库的三大范式:
01、确保每列的原子性:每一列的值都是不可再分的最小数据单元!
02、在满足第一范式的前提下,确保列中的每列都和主键相关!
03、在满足第二范式的前提下,确保每列都和主键有直接关系,而不是间接依赖! A>B B>C B依赖于A,C依赖于B,我们就说C间接依赖于A,这种关系我们称之为:传递依赖。

数据库设计

1、建议不用“*”代替所有的列名
2、删除所有的数据用TRUNCATE代替DELETE
3、用NOT EXISTS 代替 NOT IN
4、用EXISTS 代替 IN
5、用EXISTS 代替 DISTINCT
6、驱动表的选择
6.1、from 后面靠右的那个表是驱动表(表都没索引的情况)
6.2、再有索引的情况下,应该是没索引的那张表是驱动表
6.3、驱动表要选择小表(过滤后的数据量小)
7、where 子句的连接顺序
7.1、过滤记录越多的条件子句应放置到后面
7.2、表连接关系放在前面 8、索引-通过索引,执行效率更高
8.1、单列索引:就是一个列的索引
8.2、组合索引:就是多列索引
8.3、分区索引:基于分区表
8.4、B树索引:普通索引
8.5、唯一索引:在索引里面增加了唯一约束
8.6、反向键索引
8.7、位图索引
8.8、函数索引 9、表分区
把表中数据划分成若干部分,并存储在不同的位置
优点:
改善查询性能
表更容易管理
便于备份和恢复
提高数据安全性
表分区种类
散列分区:根据hash值自动分配
列表分区:明确的指定列表
复合分区:上面几种的复用
其他分区:例如外键分区

sql优化

数据库对象:
数据库对象-模式对象
逻辑结构的集合,最基本的数据库对象是表
同义词
视图
序列
索引-通过索引,执行效率更高DBLink
约束
触发器
存储过程
... 数据库对象-视图
视图View-虚拟的表
限制对表中的一组行为访问
隐藏数据的复杂性
简化了用户的SQL
基表定义修改隔离
通过重命名列,从另一个角度提供了数据
DML操作的限制
只能对基表进行操作
注意权限问题 数据字典
静态数据字典
dba_***:包含了数据库拥有的所有对象和权限的信息
all_***:包含了用户当前可以访问的全部对象和权限的信息
user_***:包含了用户拥有的对象的信息
常用的:
select * from user_tables --用户表
select * from user_tab_cols -- 表的列
select * from user_tab_comments; --查看表的注释
select * from user_views; --所有的视图
select * from user_sequences; --所有序列
select * from dba_data_files; --需要dba权限,
才可以查看所有用户的tablespace以及其数据文件的存放位置
动态数据字典 v$**
v$sqlarea --通过这个查看sql,优化sql
v$session --通过这个查看当前都哪些用户登录连接着数据库还可以看到实例
v$tablespace --查看表空间
v$database --查看数据库
v$instance --查看实例
... 数据库对象-DBLink
DBLink
访问远程数据库(只读权限)
创建步骤:
为远程数据库建立网络服务名(Net Manager)
创建DBLink
注:一般的dblink都是公用的,所以使用system用户创建DBLink即可 数据库对象-同义词
同义词(Synoyms)
匿名,屏蔽对象的名字及其持有者
为用户简化SQL语句
不同数据库之间通过DBLink访问,建立同义词
同一数据库下不同用户之间,建立同义词
分类
公用
专用

数据库对象

oracle概念的更多相关文章

  1. 关于ORACLE的串行化隔离级别--来自ORACLE概念手册

    为了描述同时执行的多个事务如何实现数据一致性,数据库研究人员定义了被 称为串行化处理(serializability)的事务隔离模型(transaction  isolation model).当所有 ...

  2. oracle 方向及资料

    总结了一下大家的意见,也加了一些个人的看法,Oracle的学习路径,可供参考: 初级阶段: 可以从OCP教材开始,还有文档中的Administrator's Guide.Concepts.Perfor ...

  3. Oracle SQL篇(一)null值之初体验

           从我第一次正式的写sql语句到现在,已经超过10年的时间了.我写报表,做统计分析和财务对账,我一点点的接触oracle数据库,并尝试深入了解.这条路,一走就是10年,从充满热情,到开始厌 ...

  4. Oracle技术面试问题

    这也许是你一直期待的文章,在关注这部分技术问题的同时,请务必阅读有关面试中有关个人的问题和解答.这里的回答并不是十分全面,这些问题可以通过多个 角度来进行解释,也许你不必在面试过程中给出完全详尽的答案 ...

  5. oracle面试题目总结

    阿里巴巴公司DBA笔试题  http://searchdatabase.techtarget.com.cn/tips/2/2535002.shtml   注:以下题目,可根据自己情况挑选题目作答,不必 ...

  6. 【Oracle学习笔记-2】Oracle基础术语解析

    来自为知笔记(Wiz) 附件列表 Oracle概念解析.png 表空间.png 大小关系.png 段segment.png 块block.png 区entent.png 数据库基本概念.png

  7. Oracle DBA面试突击题

    一份ORACLE DBA面试题 一:SQL tuning 类 1:列举几种表连接方式 答: Oracle的多表连接算法有Nest Loop.Sort Merge和Hash Join三大类,每一类又可以 ...

  8. Oracle面试题目及解答

    这里的回答并不是十分全面,这些问题可以通过多个角度来进行解释,也许你不必在面试过程中给出完全详尽的答案,只需要通过你的解答使面试考官了解你对ORACLE概念的熟悉程度. 1. 解释冷备份和热备份的不同 ...

  9. oracle中的sys用户(修改密码)/////Oracle删除表空间的同时删除数据文件 ///// Oracle中如何保证用户只有一个session登录

    oracle中的sys用户(修改密码) (2011-07-01 09:18:11) 转载▼ 标签: it 分类: oracle 概念: SYS用户是Oracle中权限最高的用户,而SYSTEM是一个用 ...

随机推荐

  1. sqoop1.9.7安装和使用

    安装1.下载sqoop1.9.7.地址: http://www.apache.org/dyn/closer.lua/sqoop/1.99.72.解压sqoop ,并配置环境变量 ~/.bash_pro ...

  2. 执行计划查看,autotrace工具的使用

    ---工具的简单介绍   001啥是autotrace,翻译自动跟踪,跟踪什么额? SQL的执行过程   我们老是讲ORACLE体系结构里面,共享池有个组件库高速缓存,存放SQL语句执行计划   什么 ...

  3. 从Matlab文件中读取mxArray类型变量-部分代码分析

    这是我做的笔记,看到这个代码时觉得处理有点妙,做笔记记录之. 部分源代码: .... int main(int argc,char** argv) { char name[_FILE_NAME_LEN ...

  4. IdentityServer4实现Token认证登录以及权限控制

    相关知识点 不再对IdentityServer4做相关介绍,博客园上已经有人出了相关的系列文章,不了解的可以看一下: 蟋蟀大神的:小菜学习编程-IdentityServer4 晓晨Master:Ide ...

  5. asp.net core webapi文件上传

    最近开发一个新项目,使用了asp.net core 2.0,采用webapi开发后台,postgresql为数据库.最先来的问题就是上传文件的问题. POST文件的一些坑 使用默认模板创建webapi ...

  6. Node.js 常用工具

    Node.js 常用工具 util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足. util.inherits util.inherit ...

  7. 二、VueJs 填坑日记之基础项目构建

    在上一篇文章中,大致介绍了一下本系列博文以及学习vuejs我们需要了解的一些概念,希望大家认真阅读,所谓知己知彼,百战百胜,学习也一样,工欲善其事,必先利其器,要想学好vuejs,那前提的概念一定要熟 ...

  8. VS2015如何连接mySQL数据库图文

    1.新建一个工程名叫mysql,编程环境选择c#,然后选择windows窗体应用程序,新建一个窗体用于显示查询到sql数据库的数据集 2.从工具箱向form1窗体上拖一个按钮和datagridview ...

  9. (二)SVN的安装

    1,首先下载SVN的服务端和客户端地址如下http://subversion.apache.org/packages.html.进入网址后滚动到浏览器最底部. (因为我的系统是Windows所以我选择 ...

  10. javaBean实体包区分

    随着软件工程结构越来越复杂,单一的entity实体包无法满足业务需要,可以采取PO,BO,DTO结构来分类实体. PO (Persistent Object):与数据库表数据关联的实体. BO(Bus ...