摘要:
一 事务隔离机制介绍 事务具有原子性、一致性、隔离性、持久性四大特性,而隔离性顾名思义指的就是事务彼此之间隔离开,多个事务在同时处理一个数据时彼此之间互相不影响,如如果隔离的不够好就有可能会产生脏读、不可重复度、幻读等读现象,为此,隔离性总共分为四种级别 由低到高依次为Read uncommitte 阅读全文
摘要:
多版本并发控制MVCC:Snapshot Read vs Current Read MySQL InnoDB存储引擎,实现的是基于多版本的并发控制协议——MVCC (Multi-Version Concurrency Control) (注:与MVCC相对的,是基于锁的并发控制,Lock-Based 阅读全文
摘要:
mysql锁机制 一 数据库的锁机制 -1. 什么是锁??? 为何要加入锁机制?? 锁是计算机协调多个进程或线程并发访问某一资源的机制,那为何要加入锁机制呢? 因为在数据库中,除了传统的计算机资源(如CPU,RAM,I/O等) 的争用以外,数据也是提供了一种供需要用户共享的资源. 当并发事务同时访问 阅读全文
摘要:
数据库读现象 一. 数据库读现象 数据库管理软件的 "读现象" 指的是当多个事务并发执行时,在读取数据方面可能碰到的问题,包括又脏读,不可重复读和幻读. ps: 对于一些数据库软件会自带相应的机制去解决脏读,不可重复读,幻读等问题, 因为这些自带的机制,下述的一些实验可能在某一数据库管理软件 的默认 阅读全文
摘要:
数据库事务 一. 事务的介绍 -1. 什么是事务? 数据库事务( transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。 -2. 为什么需要事务 把一些列sql语句 阅读全文
摘要:
索引 一 索引的介绍 随堂总结(上课笔记) 什么是索引? 索引是存储引擎中一种数据结构,或者说数据的组织方式,又称之为键key 为数据建立索引就好比是为书建目录 为何要用索引? 为了优化查询效率 ps:创建完索引后会降低增、删、改的效率 好就好在读写比例10:1 如何正确看待索引? 开发人员最懂业务 阅读全文
摘要:
流程控制 1. 条件语句 Copydelimiter // CREATE PROCEDURE proc_if () BEGIN declare i int default 0; if i = 1 THEN SELECT 1; ELSEIF i = 2 THEN SELECT 2; ELSE SELE 阅读全文
摘要:
函数 函数中文文档(草鸡详细): 猛击这里 1. 什么是函数? Copy""" 跟存储过程是有区别的,存储过程是自定义函数,函数就类似于是内置函数 """ 2. 内置函数大全 Copy一、数学函数 ROUND(x,y) 返回参数x的四舍五入的有y位小数的值 RAND() 返回0到1内的随机值,可以通 阅读全文
摘要:
存储过程 1.什么是存储过程? 存储过程就类似于python中的自定义的函数,它的内部包含了一系列可以执行的sql语句,存储过程存放于mysql服务端中,你可以直接通过调用存储过程触发内部sql语句的执行 2.存储过程的基本使用 procedure /prəˈsiːdʒə(r) 程序, 过程 -- 阅读全文
摘要:
触发器 1.什么是触发器? -- 在满足对表数据进行增,删,改的情况下,自动触发的功能就叫触发器 -- 注意没有查 2.为什么要有触发器? -- 使用触发器可以帮助我们实现监控,添加日志... 3.触发器的使用 知识储备: 3.1 mysql默认的语句结束符是;,我们可以修改这种语句的结束符,但是这 阅读全文
摘要:
视图 1.什么是视图? -- 视图就是通过查询得到的一张虚拟表,然后将其保存下来,方便下次可以直接使用.视图的本质也是一张表. 2.为什么要有视图? -- 如果频繁的操作一张虚拟表(拼表组成的),那么就可以将这个虚拟表建成一个视图,方便后续查询. 3.视图的使用 -- 固定语法 create vie 阅读全文
摘要:
pymysql模块 1.pymysql安装 这是一个第三方的模块,需要提前安装 使用清华源安装:(可以解决下载慢,超时导致下载失败等问题) pip3 install -i http://pypi.douban.com/simple/ pymysql 2.基本使用流程 先创建一个表用来当作实验表 cr 阅读全文
摘要:
MySQL数据备份 #1. 物理备份: 直接复制数据库文件,适用于大型数据库环境。但不能恢复到异构系统中如Windows。 #2. 逻辑备份: 备份的是建表、建库、插入等操作所执行SQL语句,适用于中小型数据库,效率相对较低。 #3. 导出表: 将表导入到文本文件中。 一、使用mysqldump实现 阅读全文
摘要:
一. IDE工具介绍 生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用IDE工具. 下载连接 提取码: 2333 Navicat官方使用手册(超详细): https://www.navicat.com.cn/manual/online_manual/cn/navicat/win_m 阅读全文
摘要:
综合练习 练习准备工作 init.sql文件内容 /* 数据导入: Navicat Premium Data Transfer Source Server : localhost Source Server Type : MySQL Source Server Version : 50624 Sou 阅读全文
摘要:
记录相关操作之多表查询 一.多表查询介绍 多表之间查询可以使用 链表 和 子查询 或者搭配查询 二. 准备表 # 建表 create table department( id int, name varchar(20) ); create table employee( id int primary 阅读全文
摘要:
单表查询 一. 完整语法 语法级别关键字的排列顺序: select distinct(去重) 字段1,字段2,字段3,... from 库名.表名(相当于完整的文件路径,有打开这个文件) where 约束条件(在整个文件过滤筛选) group by 分组依据(分成不同的组) having 过滤条件( 阅读全文
摘要:
记录的相关操作 一. 介绍 mysq数据操作: DML 在mysql管理软件中,可以通过sql语句中的DML语言来实现数据的操作,包括 -- 使用insert 实现数据的插入 -- update 实现数据的更新 -- delete 实现数据的删除 -- select 实现数据的查询以及链表,子查询. 阅读全文
摘要:
表的其他操作补充 一. 修改表的操作 alter table 语法: 1.修改语法: alter table 表名 rename 新表名; 2.增加字段 alter table 表名 add 字段名 数据类型[完整性的约束条件], add 字段名 数据类型[完整性的约束条件]; alter tabl 阅读全文
摘要:
六. foreign key 强调: 表类型必须是innodb存储引擎,且被关联的字段,即references指定的另外一个表的字段,必须保证唯一 1. 定义一张员工表的三个缺点 employee /ɪmˈplɔɪiː/ 雇员 员工 雇员 id emp_name emp_gender dep_nam 阅读全文