2.1 MySQL数据库

这篇博客详细介绍了MySQL的基础知识,包括数据库的概念、SQL语言、事务的四大特性及隔离级别,以及多表查询和数据库设计。重点讨论了MySQL中的事务处理,包括手动和自动提交事务,并解释了事务的原子性、一致性和隔离性。此外,还涉及了数据库设计的范式理论和反范式化。最后,提到了MySQL的索引、存储过程和触发器的作用和使用场景。
摘要由CSDN通过智能技术生成

一: 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 语句要么都执行成功, 要么都失败。
一致性: 事务在执行前数据库的状态与执行后数据库的状态保持一致。如ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值