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. c++ 类覆盖方法中的协变返回类型

    c++ 类覆盖方法中的协变返回类型 在C++中,只要原来的返回类型是指向类的指针或引用,新的返回类型是指向派生类的指针或引用,覆盖的方法就可以改变返回类型.这样的类型称为协变返回类型(Covarian ...

  2. HDU1150 Machine Schedule(二分图最大匹配、最小点覆盖)

    As we all know, machine scheduling is a very classical problem in computer science and has been stud ...

  3. Mybatis动态查询语句

    MyBatis中动态SQL语句完成多条件查询 标签: mybatis动态SQL多条件查询java.sql.SQLSyntaxEr 2015-06-29 19:00 22380人阅读 评论(0) 收藏  ...

  4. 详解tomcat的连接数与线程池

    前言 在使用tomcat时,经常会遇到连接数.线程数之类的配置问题,要真正理解这些概念,必须先了解Tomcat的连接器(Connector). 在前面的文章 详解Tomcat配置文件server.xm ...

  5. 4. ZooKeeper 基本操作

    ZooKeeper的数据模型及其API支持以下九个基本操作: 操作 描述 create 在ZooKeeper命名空间的指定路径中创建一个znode delete 从ZooKeeper命名空间的指定路径 ...

  6. localstorage本地定时缓存

    在做一个网站时,起初直接就是从服务器获取数据进行交互,没有用一些本地缓存做优化,项目做下来就特别卡,并且对服务器造成了很大的压力,经过请教,查询,找到这样一个定时缓存的例子.html5定时缓存,从数据 ...

  7. C#中的静态成员和非静态成员

    C#的类中可以包含两种方法:C#静态方法与非静态方法.那么他们的定义有什么不同呢?他们在使用上会有什么不同呢? 让我们来看看最直观的差别:使用了static 修饰符的方法为静态方法,反之则是非静态方法 ...

  8. js如何判断对象和数组

    var a = {}; var b = []; console.log(Object.prototype.toString.call(a) === '[object Object]');//判断对象 ...

  9. vim7.3中文乱码问题

    在测试机安装vim7.3之后编辑中文文本出现乱码问题. vim在编译安装的时候: ./configure --enable-gdb --enable-multibyte --enable-cscope ...

  10. AES加密实现

    起因 这段时间因为要对接一个外部接口,其参数的加密方式为AES,就需要学下AES的加密写法,但网上的资料不是很全,自己记录下遇到的坑: 基本写法 String str = "hello&qu ...