数据库
什么是数据库:存储数据的仓库,按照一定的数据结构来组织,管理存储数据,还提供了增删改查的功能。
事务
什么是事务:
将一组有序的增删改操作,当做一个独立的执行单元,如果操作都成功,那么事务就执行成功,如果有一个操作执行失败,真个事务都失败,事务将会执行回滚,恢复到事务开始之前的状态。
事物的四大特性
- 原子性:将事务看做最小的执行单元,不可分割,要么都成功,要么都失败。
- 一致性:事务在执行前和执行后的状态都保持一致。
- 隔离性:当多用户并发访问数据库时,数据库会给每个用户开启一个事务,每个事务之间相互隔离,互补影响。
- 持久性:事务一旦执行成功,数据的变化将会永久性的作用于真个数据库,就算数据库出现故障也不会影响数据。
在不考虑隔离性的情况下会出现的问题
- 脏读:当一个未提交的事务,使用了另一个未提交事务的数据
- 不可重复度:A事务重复读取一条数据,在这期间B事务修改了这条数据,导致A事务两次读取的数据不一样
- 幻读:A事务读取一张表所有数据,并做了统计计算,B事务修改了这张表的某一条数据,导致A事务的结构和实际情况出现偏差,类似出现幻觉。
四种隔离级别
- read uncommit 读未提交:最低的隔离级别,会出现以上三个问题的任意一种情况
- read commit 读已提交:可以避免脏读
- repeatable read 可重复读:可以避免脏读和不可重复读
- serializable 串行化:最高的隔离级别,可以避免任何情况
ps:数据当中,隔离级别越高效率会越低
事务的回滚
一个事务中所有的操作都成功,事务才成功,有一个执行失败,会回滚,回退到事务执行之前的状态
手动开启一个事务:begin
手动提交:commit
手动回滚:rollback
数据库
-
数据库的分类
关系型数据库:建立关系模型基础之上,借助数学,和集合概念,去管理和存储数据
sql server,oracle,mysql,sqllit
非关系型数据库:一般是用来做缓存,数据存储方式一{key:values}
nosql,not only,sql,MongoDB,redis -
innodb和myisam区别
mysql5.5以上版本是默认引擎
支持事务,支持外键,表锁,查询速度相对快,相对数据安全
mysql5.5老版本是默认引擎
不支持事务,不支持外键,行锁,查询速度相对快,相对数据不安全 -
数据库操作
数据库C/S架构的软件 S服务端 通过客户端向服务端发送指令 服务端执行指令
- 连接数据库
mysql -u root -p -hlocalhost -P 端口号
-u:用户名 root是默认的管理员用户
-p(小写的):密码 root用户的密码
-h:服务端的ip地址 本地链接可以省略
-P(大写的):mysql服务的端口号,mysql默认端口号是3306
本地链接可以省略 -h -P
mysql -uroot -p
- 退出数据库
\q,exit
mysql 是一个关系型数据库管理软件
mysql>库>表>数据
多条数据组成一张表,多个表存储在库中,mysql来管理数据库
mysql语句:
每一句 sql 语句后都要加 ;
mysql 语句不区分大小写,但是文档中一般关键字都是大写
- 连接数据库
-
数据库的简单操作
查看所有的数据库:
格式:SHOW DATABASES;
创建数据库:
格式:CREATE DATABASE 库名 CHARSET=utf8;
打开并进入数据库,也叫切换库
格式:USE 库名
查看当前所在的库
格式:selelect database();
删除数据库
格式:drop database 库名