数据库小记
查询的执行顺序:
1)from : 表名
2)where:条件过滤
3)group by : 分组
4)having : 分组之后进行过滤。
5)select :执行完毕之后,显示内容。
6)order by : 根据查询的内容进行排序输出.
数据库范式
1NF 原子性:表中每列不可再拆分。
2NF 不产生局部依赖,一张表只描述一件事情。表中的每一列是完全依赖于主键的。
3NF 不产生传递依赖,表中每一列都直接依赖于主键。而不是通过其它列间接依赖于主键。
事务的特性(ACID)
隔离性:每个事务都是独立的互相隔离互不影响的
持久性:指一个事务一旦被提交,它对数据库的改变将是永久性的,哪怕数据库发生异常,重启之后数据亦然存在。
原子性:表中每列不可再拆分。原子性是指事务包装的一组sql(一组业务逻辑)是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
一致性:一个事务在执行之前和执行之后 数据库都必须处于一致性状态。
如果事务成功的完成,那么数据库的所有变化将生效。
如果事务执行出现错误,那么数据库的所有变化将会被回滚(撤销),返回到原始状态。
事务的成功与失败,最终数据库的数据都是符合实际生活的业务逻辑。一致性绝大多数依赖业务逻辑和原子性。
事务问题:
事务的隔离级别
脏读:指一个事务读取了另外一个事务未提交的数据。(非常危险) 注意脏读的前提是没有事务的隔离性
不可重复读:在一个事务内多次读取表中的数据,多次读取的结果不同。(update)
虚读:在一个事务内多次读取表中的数据,多次读取的结果不同。(insert/delete)
隔离级别安全和性能对比
安全性:serializable > repeatable read > read committed > read uncommitted
性能 : serializable < repeatable read < read committed < read uncommitted
常见数据库的默认隔离级别:
MySql:repeatable read。
Oracle:read committed。
- Android面试之高级篇
- 解密所有APP运行过程中的内部逻辑
- RecyclerView数据动态更新
- android PakageManagerService启动流程分析
- RFID入门:Mifare1智能水卡破解分析
- RecyclerView点击事件处理
- Python 实现一个火车票查询的工具
- HTTPS迎来春天:Chrome计划将所有HTTP标记为不安全
- View绘制流程
- Linux Rootkit系列一:LKM的基础编写及隐藏
- Swift基础语法(常量变量、数据类型、元组、可选、断言)
- 【实战】Python 读写 Excel 实例应用
- 10万WordPress网站沦陷:恶意软件SoakSoak来了
- 自己动手实现一个Android Studio插件
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 数据结构与算法——队列
- 前后端数据交互-json 你还不会传集合吗?
- 动态规划-背包问题(01背包、完全背包、多重背包)
- 疫情数据分析与展示--小程序版
- 动态规划-LCS、LIS
- 图书管理系统设计与实现—看这篇就够了
- 动态规划-区间DP
- 动态规划-树形DP
- 面试官:你精通多少种语言的 Hello World?
- Redis安装(Windows和Linux)详细图解
- 史上最详细版 头文件biso.h,graphics.h,libbgi.a
- ZooKeeper入门,这一篇给你讲的明明白白
- 数论-GCD、LCM、扩展欧几里得
- “豪 横”版 channel_v3.json,你确定不需要?
- Redis-性能测试(redis-benchmark)