MYSQL学习笔记(自用)
文章平均质量分 92
放下华子我只抽RuiKe5
代码如诗,逻辑如词,用指尖编制世界的模样。
展开
-
《黑马程序员MySQL数据库入门到精通,从mysql安装到mysql高级、mysql优化》学习笔记总目录
MySQL数据库入门到精通,从mysql安装到mysql高级、mysql优化》所有知识点的笔记进行总结分类。学习时总结的目录笔记以及。和实训,将在后续更新。第一章:MySQL概述。原创 2023-03-30 23:19:36 · 2418 阅读 · 0 评论 -
MySQL——锁:概述、全局锁、表级锁、表锁(读锁、写锁)、元数据锁、意向锁、行级锁、行锁、间隙锁&临键锁
全局锁就是对整个数据库实例加锁,加锁后整个实例就处于只读状态,后续的DML的写语句,DDL语句,已经更新操作的事务提交语句都将被阻塞。 其典型的使用场景是做全库的逻辑备份,对所有的表进行锁定,从而获取一致性视图,保证数据的完整性。A. 我们一起先来分析一下不加全局锁,可能存在的问题。假设在数据库中存在这样三张表: tb_stock 库存表,tb_order 订单表,tb_orderlog 订单日志表。在进行数据备份时,先备份了tb_stock库存表。原创 2023-05-26 18:48:29 · 1268 阅读 · 0 评论 -
MySQL数据库期末实验报告(含实验步骤和实验数据)
在本次实验课上,我完成了数据增删改查的实验。通过这个实验,我学会了如何创建数据库和数据表、录入、增加、修改和删除数据,以及如何使用MySQL数据库进行数据插入、修改、删除和查询操作。 在实验过程中,我遇到了一些问题,其中最常见的是SQL语法错误。当我在插入数据时,由于数据格式或者长度等问题,可能会出现数据无法成功插入的情况。针对这种情况,我仍然可以检查数据表的列属性是否正确,选择适当的数据类型和长度,在进行插入操作时确保数据的合法性和完整性。原创 2023-05-21 00:24:48 · 3378 阅读 · 0 评论 -
MySQL——视图/存储过程/触发器:(级联、本地)、视图用、存储过程(变量(系统、用户定义、局部变量)、if、case、while、repeat、loop、游标、条件处理程序、存储函数)触发器
视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。 通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程可以简化应用开发人员的很多工作减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。原创 2023-05-15 00:00:03 · 815 阅读 · 0 评论 -
MySQL—SQL优化:插入数据(insert、大批量插入)、主键优化(数据组织方式、页分裂、页合并、索引设计)、order by 、group by 、limit 、count 、update 优化
在之前的测试中,我们发现,如果数据量很大,在执行count操作时,是非常耗时的。MyISAM 引擎把一个表的总行数存在了磁盘上,因此执行 count(*) 的时候会直接返回这个数,效率很高;但是如果是带条件的count,MyISAM也慢。nnoDB 引擎就麻烦了,它执行 count(*) 的时候,需要把数据一行一行地从引擎里面读出来,然后累积计数。原创 2023-05-04 23:02:27 · 5422 阅读 · 3 评论 -
MySQL索引:特点、索引结构(二叉树、B、B+树)、Hash、索引分类(聚集&二级索引)、索引语法(创建、删除索引)、SQL性能分析、索引使用、覆盖、前缀索引、单列与联合索引、索引设计原则
索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。MySQL的索引是在存储引擎层实现的,不同的存储引擎有不同的索引结构,主要包含以下几种: 上述是MySQL中所支持的所有的索引结构,接下来,我们再来看看不同的存储引擎对于索引结构的支持情况。注意: 我们平常所说的索引,如果没有特别指明,都是指B+树结构组织的索引。原创 2023-04-16 22:19:12 · 1031 阅读 · 0 评论 -
MySQL—存储引擎:体系结构(连接层、服务层、引擎层、存储层)、存储引擎介绍、存储引擎特点:InnoDB(特点、逻辑存储结构)、MyISAM、Memory、区别及特点、存储引擎选择
存储引擎是mysql数据库的核心,我们也需要在合适的场景选择合适的存储引擎。接下来就来介绍一下存储引擎。存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。 **存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。**我们可以在创建表的时候,来指定选择的存储引擎,如果 没有指定将自动选择默认的存储引擎。InnoDB是一种兼顾高可靠性和高性能的通用存储引擎,在 MySQL 5.5 之后,InnoDB是默认的 MySQL 存储引擎。原创 2023-04-10 07:00:00 · 460 阅读 · 0 评论 -
MySQL概述:数据库相关概念,启动停止和数据模型
在这一部分,我们先来讲解三个概念:数据库、数据库管理系统、SQL。略。MySQL安装完成之后,在系统启动时,会自动启动MySQL服务,我们无需手动启动了。当然,也可以手动的通过指令启动停止,以管理员身份运行cmd,进入命令行执行如下指令:1.2.6 数据模型1). 关系型数据库(RDBMS)概念:建立在关系模型基础上,由多张相互连接的二维表组成的数据库。而所谓二维表,指的是由行和列组成的表,如下图(就类似于Excel表格数据,有表头、有列、有行, 还可以通过一列关联另外一个表格中的某一列数据)。我们之原创 2023-03-02 23:54:43 · 594 阅读 · 0 评论 -
SQL:SQL通用语法,SQL分类,DDL,图形化界面工具(DataGrip),DML,DQL和DCL
SQL语句,根据其功能,主要分为四类:DDL、DML、DQL、DCL。DDL :Data的英文全称是 Definition Language(数据定义语言),用来定义数据库对象(数据库,表,字段) 。DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增、删、改操作。DQL英文全称是Data Query Language(数据查询语言),数据查询语言,用来查询数据库中表的记录。 DCL英文全称是Data Control Language(数原创 2023-03-30 23:43:18 · 1757 阅读 · 0 评论 -
MySQL—函数:字符串(concat、lpad、substring)、数值(ceil、rand、round)、日期(curdate、date_add、datediff)和流程(if、case whe
字符串函数(concat、lower、upper、lpad、rpad、trim、substring)、数值函数(ceil、floor、mod、rand、round)、日期函数(curdate、curtime、now、YEAR,MONTH,DAY、date_add、.datediff)和流程函数(if、ifnull、case when then else end)原创 2023-04-01 21:47:15 · 1178 阅读 · 0 评论 -
MySQL—约束:外键约束、语法(添加外键、删除外键)和删除/更新行为(CASCADE、SET NULL和图形化界面删除/更新)
约束是作用于表中字段上的规则,用于限制存储在表中的数据。目的:保证数据库中数据的正确、有效性和完整性。分类:注意:约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束。外键:用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性。我们来看一个例子: 左侧的emp表是员工表,里面存储员工的基本信息,包含员工的ID、姓名、年龄、职位、薪资、入职日期、上级主管ID、部门ID,在员工的信息中存储的是部门的ID dept_id,而这个部门的ID是关联的部门表dept的主键id,那。原创 2023-04-06 00:01:31 · 7539 阅读 · 1 评论 -
MySQL—多表查询:多表关系(一对多、多对多、一对一)、概述、内连接(隐式、显式)、外连接(左外连接、右外连接)、自连接(自连接查询、联合查询)、子查询(标量、列、行、表子查询)及实战案例
1). 删除之前 emp, dept表的测试数据2). 执行如下脚本,创建emp表与dept表并插入测试数据#创建dept表,并插入数据name varchar(50) not null comment '部门名称')comment '部门表';INSERT INTO dept (id, name) VALUES (1, '研发部'), (2, '市场部'),(3, '财务部'), (4,'销售部'), (5, '总经办'), (6, '人事部');#创建emp表,并插入数据。原创 2023-04-06 13:03:46 · 1283 阅读 · 0 评论 -
MySQL—事务:未控制及控制事务(查看/设置事务提交方式、提交、开启、回滚事务)、事务四大特性(原子性、一致性、隔离性、持久性)、并发事务问题(脏读、不可重复读、幻读)、事务隔离级别(查看与设置事务
事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系 统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 就比如: 张三给李四转账1000块钱,张三银行账户的钱减少1000,而李四银行账户的钱要增加 1000。这一组操作就必须在一个事务的范围内,要么都成功,要么都失败。事先规定两人均有2000元。查询张三账户余额张三账户余额-1000李四账户余额+1000。原创 2023-04-09 00:48:56 · 592 阅读 · 0 评论 -
周末杂谈:在MYSQL中,添加数据行后,使用右外连接查询所有课程的选修情况,要求列出课程编号、课程名称、选修人数,表中没有的课程列值为空的解决方法
在其中:cno(课程号)cname(课程名称)ccredit(学分)cdept(开课院系)在其中:sno(学号)cno(课程号)grade(成绩) 为sc表添加数据行:学号为1002、课程编号为10006、分数为76。使用右外连接查询所有课程的选修情况,要求列出课程编号、课程名称、选修人数,表中没有的课程列值为空。我们可以分两步来解析这道题: 这一步还是比较简单的,使用DML(数据操作语言)来解决即可。我们使用INSERT INTO来给指定字段添加数据。值得注意的是: • 插入数据时,指定的字段原创 2023-03-31 20:27:49 · 2089 阅读 · 0 评论