1. 01DDL 数据定义语言
  2. create alter drop truncate
  3.  
  4. 02DML 数据操作语言
  5. insert delete update select
  6.  
  7. 03TCL 事务控制语言
  8. commit rollback
  9.  
  10. 04DCL 数据控制语言
  11. rovoke grant

sql分类

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

ACID

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

事务隔离级别

  1. 数据库设计(Database Design):针对用户特定的需求,我们能够创建最合适的数据库模型,然后将数据有效的存储!
  2.  
  3. 数据库涉及的内容:01、需求分析
  4. 02、概念结构设计
  5. 03、逻辑结构设计
  6. 04、物理结构的设计
  7. 05、数据库的实施
  8. 06、数据库的运行和维护
  9.  
  10. 数据库的三大范式:
  11. 01、确保每列的原子性:每一列的值都是不可再分的最小数据单元!
  12. 02、在满足第一范式的前提下,确保列中的每列都和主键相关!
  13. 03、在满足第二范式的前提下,确保每列都和主键有直接关系,而不是间接依赖!
  14.  
  15. A>B B>C B依赖于AC依赖于B,我们就说C间接依赖于A,这种关系我们称之为:传递依赖。

数据库设计

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

sql优化

  1. 数据库对象:
  2. 数据库对象-模式对象
  3. 逻辑结构的集合,最基本的数据库对象是表
  4. 同义词
  5. 视图
  6. 序列
  7. 索引-通过索引,执行效率更高DBLink
  8. 约束
  9. 触发器
  10. 存储过程
  11. ...
  12.  
  13. 数据库对象-视图
  14. 视图View-虚拟的表
  15. 限制对表中的一组行为访问
  16. 隐藏数据的复杂性
  17. 简化了用户的SQL
  18. 基表定义修改隔离
  19. 通过重命名列,从另一个角度提供了数据
  20. DML操作的限制
  21. 只能对基表进行操作
  22. 注意权限问题
  23.  
  24. 数据字典
  25. 静态数据字典
  26. dba_***:包含了数据库拥有的所有对象和权限的信息
  27. all_***:包含了用户当前可以访问的全部对象和权限的信息
  28. user_***:包含了用户拥有的对象的信息
  29. 常用的:
  30. select * from user_tables --用户表
  31. select * from user_tab_cols -- 表的列
  32. select * from user_tab_comments; --查看表的注释
  33. select * from user_views; --所有的视图
  34. select * from user_sequences; --所有序列
  35. select * from dba_data_files; --需要dba权限,
  36. 才可以查看所有用户的tablespace以及其数据文件的存放位置
  37. 动态数据字典 v$**
  38. v$sqlarea --通过这个查看sql,优化sql
  39. v$session --通过这个查看当前都哪些用户登录连接着数据库还可以看到实例
  40. v$tablespace --查看表空间
  41. v$database --查看数据库
  42. v$instance --查看实例
  43. ...
  44.  
  45. 数据库对象-DBLink
  46. DBLink
  47. 访问远程数据库(只读权限)
  48. 创建步骤:
  49. 为远程数据库建立网络服务名(Net Manager
  50. 创建DBLink
  51. 注:一般的dblink都是公用的,所以使用system用户创建DBLink即可
  52.  
  53. 数据库对象-同义词
  54. 同义词(Synoyms
  55. 匿名,屏蔽对象的名字及其持有者
  56. 为用户简化SQL语句
  57. 不同数据库之间通过DBLink访问,建立同义词
  58. 同一数据库下不同用户之间,建立同义词
  59. 分类
  60. 公用
  61. 专用

数据库对象

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. javascript 之执行环境-08

    概念 执行环境(Execution context,简称EC)或执行上下文对象(后面统一用执行上下文表示),它定义了变量或者函数有权访问的其他数据,决定了他们各自的行为.是不是有点不好理解,那我先简单 ...

  2. Remove Untagged Images From Docker

    I've been playing around a lot with docker. It's awesome, and it creates a whole new world of possib ...

  3. transition过度

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. SQL2012导出的脚本没有if exists判断

    SQL2012导出的脚本没有if exists判断 以前用SQL2000的时候,导出存储过程,表各种object的时候,前面会自动加if exists的一段脚本,这样的脚本很方便的可以重复执行.现在使 ...

  5. word,excel,ppt转Pdf,Pdf转Swf,通过flexpaper+swftools实现在线预览

    其实这是我好几年前的项目,现在再用这种方式我也不建议了,毕竟未来flash慢慢会淘汰,此方式也是因为目测大部分人都装了flash,才这么做的,但是页面展示效果也不好.其实还是考虑收费的控件,毕竟收费的 ...

  6. javascript获取链接参数

    var url = "http://test.cn/index.php?class=9&id=2&key=88"; function parseQueryStrin ...

  7. linux操作系统基础篇(九)

    shell脚本的运算符与流程控制 1.运算符 1.1 算术运算符 + - * / % [root@MiWiFi-R3-srv ~]# echo $[3+1]4 1.2 关系操作 与(())连用 < ...

  8. SpringAware

    哈哈,终于把分布式的课程演讲给混过去了,下面开始随便自己学点东西. 正题:SpringAware--------在实际项目中,用到spring容器的本省功能资源,这是Bean必须意识到Spring容器 ...

  9. HTML5浏览器端图片预览&生成Base64

    本文主要介绍如何通过拖拽方式在浏览器端实现图片预览,并生成图片的Base64编码. 工具链接:图片转Base64. 首先介绍一下FileReader, FileReader对象允许浏览器使用File或 ...

  10. Fedora 23建立wifi热点(Android手机可用)

    在ubuntu14.04下使用ap-hotspot,速度还不错.但是在15.04下就用不了了,不知为啥.现在使用fedora23,在学校还是挺需要给手机连wifi的,于是google看看ap-hots ...