一: MySQL基础&SQL入门
- 数据库(DataBase) 就是存储和管理数据的仓库,其本质是一个文件系统, 还是以文件的方式,将数据保存在电脑上。【数据可以永久保存,方便存储和管理数据,使用统一的方式操作数据库(SQL)】
- 数据库管理系统(DataBase Management System,DBMS):指一种操作和管理维护数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一的管理。MySQL就是一个 数据库管理系统软件, 安装了Mysql的电脑,我们叫它数据库服务器。
- 数据库管理系统、数据库和表之间的关系:MySQL中管理着很多数据库,在实际开发环境中 一个数据库一般对应了一个的应用,数据库当中保存着多张表,每一张表对应着不同的业务,表中保存着对应业务的数据。
数据库中以表为组织单位存储数据,表类似我们Java中的类,每个字段都有对应的数据类型
- 结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
- SQL的作用:是所有关系型数据库的统一查询规范,不同的关系型数据库都支持SQL,所有的关系型数据库都可以使用SQL,不同数据库之间的SQL有一些区别(方言),MySql中使用SQL不区分大小写,一般关键字大写,数据库名、表名列名小写。
- 数据定义语言DDL(Data Definition Language):用来定义数据库对象:数据库,表,列等。
- 数据操作语言DML(Data Manipulation Language),用来对数据库中表的记录进行更新。
- 数据查询语言DQL(Data Query Language),用来查询数据库中表的记录。
- 数据控制语言DCL(Date Control Language),用来定义数据库的访问权限和安全级别,及创建用户。
- 注: 我们重点学习 DML 与 DQL!
- MySql中常见的数据类型:
int 整型
double 浮点型
varchar 字符串
date 日期类型 年月日 没有时分秒 yyyy-MM-dd
datetime 日期时间类型 yyyy-MM-dd HH:mm:ss
二:MySql单表、约束和事务
- 事务 是一个整体,由一条或者多条SQL 语句组成,这些SQL语句要么都执行成功,要么都执行失败, 只要有一条SQL出现异常,整个操作就会回滚,整个业务执行失败
比如: 银行的转账业务,张三给李四转账500元 , 至少要操作两次数据库, 张三 -500, 李四 + 500,这中 间任何一步出现问题,整个操作就必须全部回滚, 这样才能保证用户和银行都没有损失
- 回滚 即在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的操作全部撤销,滚回到事务开始时的状态。(在提交之前执行)
MYSQL 中可以有两种方式进行事务的操作
1. 手动提交事务
开启事务: start transaction; 或者 begin;
提交事务:commit;
回滚事务:rollback;
START TRANSACTION : 这个语句显式地标记一个事务的起始点。
COMMIT:表示提交事务,即提交事务的所有操作,具体地说,就是将事务中所有对数据库的更新都写到磁盘上的物理数据库中,事务正常结束。
ROLLBACK:表示撤销事务,即在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的操作全部撤销,回滚到事务开始时的状态。
注:如果事务中 SQL 语句没有问题,commit 提交事务,会对数据库数据的数据进行改变。如果事务中 SQL 语句有问题,rollback 回滚事务,会回退到开启事务时的状态。
- 手动提交事务流程
- 执行成功的情况: 开启事务 -执行多条 SQL 语句 -成功提交事务
- 执行失败的情况: 开启事务 -执行多条 SQL 语句 -事务的回滚
2. 自动提交事务( MySql默认的提交方式 )
- MySQL 默认每一条 DML(增删改)语句都是一个单独的事务,每条语句都会自动开启一个事务,语句执行完毕 自动提交事务,MySQL 默认开始自动提交事务
- 查看autocommit状态,autocommit:on--自动提交,off--手动提交
- SHOW VARIABLES LIKE 'autocommit';
- 修改自动提交为手动提交:把 autocommit 改成 off;
- SET @@autocommit=off;
事务的四大特性
原子性: 每个事务都是一个整体,不可再拆分,事务中所有的 SQL 语句要么都执行成功, 要么都失败。
一致性: 事务在执行前数据库的状态与执行后数据库的状态保持一致。如ÿ