首页 > 数据库 >MySQL必知必会

MySQL必知必会

时间:2024-03-22 09:56:12浏览次数:16  
标签:事务 必知 MySQL ASC 索引 必会 主键 ### DESC

# Mysql
## Mysql事务
### 原则
1. 只有使用了INNODB引擎的数据库或表才支持事务
2. 原子性:具备回滚机制,只有全部完成和全部不完成两种状态。
3. 一致性:事务开启前和结束后数据库完整性没有被破坏。
4. 隔离性:数据库允许多个并发事务同时对其数据进行读写和修改的能力。防止事务同时执行期间交叉导致数据不一致。
5. 事务隔离级别:读未提交、读提交、可重复读和串行化
6. 持久性:事务处理结束后对数据的修改是永久的,即便系统故障也不会丢失。
### 事务控制语句
BEGIN或START TRANSACTION显式地开启一个事务。

COMMIT或COMMIT WORK可以提交事务,并对数据库的修改成为永久性。

ROLLBACK或ROLLBACK WORK,回滚会结束用户的事务,并撤回正在进行的所有未提交的修改。

SAVEPOINT identifier,SAVEPOINT允许在事务中创建一个保存点,一个事务中可以有多个SAVEPOINT。

RELEASE SAVEPOINT identifier删除一个事务的保存点,当没有指定的保存点时,执行语句会抛出异常。

SET TRANSACTION 用来设置事务的隔离级别(READ UNCOMMITTED/READUNCOMMITTED/READ COMMITTED/REPEATABLE READ/SERIALIZABLE)。
### 事务处理方法:
用BEGIN.ROLLBACK,COMMIT来实现。

BEGIN或START TRANSACTION:用于开始一个事务。

ROLLBACK 事务回滚,取消之前的更改。

COMMIT 事务确认,提交事务,使更改永久生效。
## 主键
对于关系型数据库,有很重要得约束,就是两条数据不能完全重复,用于区别这两条数据的字段成为主键。

主键的选取原则就是:不使用和任何业务相关的字段作为主键。

主键分为自增整数类型和全局唯一GUID类型。

大多应用用自增整型即可满足,INT上限为21亿,BIGINT为922亿亿。

联合主键:可以多个字段设为主键,只要确保不是所有主键都重复即可。但是没有必要的情况尽量不使用联合主键,会使复杂度上升。
## 外键
ALTER TABLE *本表名*

ADD CONSTRAINI *外键名*

FOREIGN KEY *本表字段*

REFERENCES *外表(外表字段)*
## MYSQL索引
索引使一种数据结构,用于加快数据库查询的速度和性能。

索引分单列索引和组合索引,即一个索引只包含一个列或多个列。

创建索引时,需要确保索引应用在SQL查询语句的条件。

实际上索引也是一张表。

### 索引的使用:
CREATE INDEX *索引名称* ON *表名称*(*列名1* ASC/DESC,*列名2* ASC/DESC,...);
### 修改表结构
ALTER TABLE *已有的表名*

ADD INDEX *索引名称*(*列名1* ASC/DESC,*列名2* ASC/DESC,...);
### 创建表的时候直接指定
CREATE TABLE *表名* (*column1* data_type,*column2* data_type,...,

INDEX *索引名称* (*column1* [ASC|DESC], *column2* [ASC|DESC], ...));
### 删除索引
DROP INDEX 索引名称 ON *表名*;
### 唯一索引
CREATE UNIQUE INDEX *索引名称*

ON *表名*(*column1* [ASC|DESC], *column2* [ASC|DESC], ...);
### 修改表结构添加索引
ALTER table *表名*

ADD CONSTRAINT *索引名称* UNIQUE (*column1*, *column2*, ...);
### 创建表的时候直接指定
CREATE TABLE *表名* (

*column1* data_type,

*column2* data_type,

...,

CONSTRAINT *索引名称* UNIQUE (*column1* [ASC|DESC], *column2* [ASC|DESC], ...)

);

标签:事务,必知,MySQL,ASC,索引,必会,主键,###,DESC
From: https://www.cnblogs.com/jiale5612/p/18088780

相关文章

  • 毕业设计课题:实验室课程管理系统,基于java+SSM+mysql
          一、前言介绍     如今互联网发展迅猛,大量的信息都是通过网络这一渠道来传播,所以利用网络渠道来传播知识是非常有前景的。线上管理系统的主要目的是对实验室课程信息进行更有效的管理,光靠现有的管理方式是远远不够的,因此开发实验室课程管理系统是有必要的......
  • 毕业设计课题:少儿编程管理系统,基于java+SSM+mysql
          一、前言介绍     21世纪,我国早在上世纪就已普及互联网信息,互联网对人们生活中带来了无限的便利。像大部分的企事业单位都有自己的系统,由从今传统的管理模式向互联网发展,如今开发自己的系统是理所当然的。那么开发少儿编程管理系统意义和用处有哪些呢? ......
  • MySQL 索引:索引为什么使用 B+树?
    Hash索引不支持顺序和范围查询;二叉查找树(BST):解决了排序的问题,极端情况下可能会退化成线性链表,查询效率急剧下降;平衡二叉树(AVL):通过旋转解决了平衡的问题,但是旋转操作效率太低; AVL树是严格的平衡二叉树,所有节点的左右子树高度差不能超过1红黑树:通过舍弃严格的平......
  • 8、MySql数据库连接
    fromflaskimportFlaskfromflask_sqlalchemyimportSQLAlchemyfromsqlalchemyimporttextapp=Flask(__name__)#主机IP地址HOSTNAME="127.0.0.1"#MySql的监听端口号,默认3306PORT=3306#用户名,密码,自己设置的USERNAME="root"PASSWORD="root&......
  • java毕业设计线上牙科诊所管理推荐系统的设计与实现(springboot+mysql+jdk1.8+meven)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着互联网技术的飞速发展,越来越多的传统行业开始向数字化转型。医疗行业作为人们生活中的重要组成部分,其信息化、智能化的需求日益增长。牙科诊所作为提......
  • java毕业设计逍遥大药房管理系统(springboot+mysql+jdk1.8+meven)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着人们生活水平的提高,对健康的关注也日益增加。药房作为提供药品和健康咨询服务的重要场所,其管理效率和服务质量直接影响到人们的用药安全和健康。然而,......
  • Mysql实操基础(数据库作业)
    附上官网地址MySQL1.登录mysql-uusername-ppassword其中,username为数据库的用户名,password为对应的密码。这条命令将会连接到本地默认的MySQL服务器并使用提供的用户名和密码进行身份验证。如果成功登录,则可以开始与MySQL交互了。然后先创建数据库CREATEDATABASE库......
  • java毕业设计小区宠物管理平台(springboot+mysql+jdk1.8+meven)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着社会的发展和人们生活水平的提高,越来越多的家庭开始饲养宠物。在城市中,小区是宠物活动的主要场所之一。然而,随着宠物数量的增加,小区宠物管理面临着许......
  • java毕业设计校园互助平台(springboot+mysql+jdk1.8+meven)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着互联网技术的飞速发展,人们的生活方式和学习方式都发生了翻天覆地的变化。特别是在校园环境中,学生们面临着各种各样的问题和需求,如学术问题、生活琐事......
  • MySQL下载安装与提供远程连接
    一、windowsmysql安装1、安装到 C:\mysql-8.0.31-winx642、根目录下添加配置文件my.ini[client]default-character-set=utf8mb4[mysql]default-character-set=utf8mb4[mysqld]port=3306default-time-zone='+08:00'basedir=C:\mysql-8.0.31-winx64datadir=C:\m......