数据库
文章平均质量分 63
冬竹️
一个正在努力学习的小白
展开
-
数据库备份与恢复:物理备份与逻辑备份、mysqldump实现逻辑备份、mysql命令恢复数据、物理备份:直接备份整个数据库、数据库迁移物理恢复:直接复制到数据库目录、删库不能跑,能干点啥?
文章目录1. 物理备份与逻辑备份2. mysqldump实现逻辑备份2.1 备份一个数据库2.2 备份全部的数据库2.3 备份部分的数据库2.4 备份部分表2.5 备份单标中的部分数据2.6 排除某些表的数据2.7 只备份结构或只备份数据2.8 备份中包含存储过程、函数、事件3. mysql命令恢复数据3.1 单库备份中恢复单库3.2 全量备份恢复3.3 从全量备份中恢复单库3.4 从单库备份中恢复单表1. 物理备份与逻辑备份物理备份:备份数据文件,转储数据库物理文件到某一目录。物理备份恢复速度比较快,原创 2022-03-24 15:57:17 · 1731 阅读 · 0 评论 -
主从复制:主从复制的概述、一主一从架构搭建主从复制的原理、同步数据一致性问题
文章目录1. 主从复制的概述1.1 如何提升数据库的并发能力1.2 主从复制的作用2. 主从复制的原理2.1 原理剖析2.2 复制的最大问题2.3 复制的基本原则3. 一主一从架构搭建3.1 准备工作3.2 主机配置文件3.3 从机配置文件3.4 建立账户并授权3.5 配置需要复制的主机3.6 测试3.7 停止主从同步4. 同步数据一致性问题4.1 理解主从延迟问题4.2 解决一致性问题1. 主从复制的概述1.1 如何提升数据库的并发能力在实际工作中,我们常常将Redis作为缓存与MySQL配合来使用原创 2022-03-23 19:31:39 · 2309 阅读 · 0 评论 -
MySQL支持的日志:日志类型、二进制日志(bin log)、 中继日志
文章目录1. 日志类型1.1 日志的弊端2. 二进制日志(bin log)2.1 概念2.2 应用场景2.3 删除二进制文件3. 中继日志3.1 概念3.2 恢复的典型错误1. 日志类型慢查询日志:记录所有执行时间超过long_query_time的所有查询,方便我们对查询进行优化。通用查询日志:记录所有连接的起始时间和终止时间,以及连接发送给数据库服务器的所有指令,对我们复原操作的实际场景、发现问题,甚至是对数据库操作的审计都有很大的帮助。错误日志:记录MySQL服务的启动、运行或停止MySQL原创 2022-03-23 10:01:28 · 1666 阅读 · 0 评论 -
多版本并发控制:什么是MVCC、快照读与当前读、MVCC实现原理之ReadView
文章目录1. 什么是MVCC2. 快照读与当前读2.1 快照读2.2 当前读3. MVCC实现原理之ReadView3.1 什么是ReadView3.2 设计思路3.3 ReadView的规则3.4 MVCC整体操作流程4. 总结1. 什么是MVCCMVCC(Multiversion Concurrency Control),多版本并发控制。顾名思义,MVcc是通过数据行的多个版本管理来实现数据库的并发控制。这项技术使得在InnoDB的事务隔离级别下执行一致性读操作有了保证。换言之,就是为了查询一些正在原创 2022-03-21 21:14:27 · 1461 阅读 · 0 评论 -
锁:概述、MySQL并发事务访问相同记录的情况、锁的不同角度分类、锁的内部结构、锁监控
文章目录1. 概述2. MySQL并发事务访问相同记录2.1 读-读情况2.2 写-写情况2.3 读-写或写-读情况2.4 并发问题的解决方案2.4.1 方案一:MVCC2.4.2 方案二:读、写操作都采用`加锁`的方式2.4.3 小结1. 概述锁是计算机协调多个进程或线程并发访问某一资源的机制。在程序开发中会存在多线程同步的问题,当多个线程并发访问某个数据的时候,尤其是针对一些敏感的数据(比如订单、金额等),我们就需要保证这个数据在任何时刻最多只有一个线程在访问,保证数据的完整性和一致性。在开发过原创 2022-03-20 21:18:34 · 193 阅读 · 0 评论 -
MySQL事务日志:redo日志、Undo日志
文章目录1. redo日志1.1 为什么需要REDO日志1.2 redo日志的好处、特点1.2.1 好处1.2.2 特点1.3 redo日志的组成1.4 redo的整体流程1.5 redo log的刷盘策略2. Undo日志2.1 如何理解Undo日志2.2 Undo日志的作用2.2 undo的类型2.3 undo log的生命周期2.3.1 简要生成过程2.3.2 详细生成过程2.3.3 undo log是如何回滚的2.3.4 undo log的删除1. redo日志InnoDB存储引擎是以页为单位来原创 2022-03-19 19:32:19 · 2107 阅读 · 1 评论 -
事务的基础知识:事务的概述、如何使用事务、事物的隔离级别
文章目录1. 事务的概述1.1 存储引擎支持情况1.2 基本概念1.3 事务的ACID特性1.3.1 原子性(atomicity)1.3.2 一致性(consistency)1.3.3 隔离性(isolation)1.3.4 持久性(durability)1.3.5 总结1.4 事务的状态1.4.1 活动的(active)1.4.2 部分提交的(partially committed)1.4.3 失败的(failed)1.4.4 中止的(aborted)1.4.5 提交的(committed)2. 如何使用原创 2022-03-19 10:41:10 · 365 阅读 · 0 评论 -
数据库调优策略:优化MySQL服务器、优化数据库结构、大表优化、隐藏索引对调优的帮助
文章目录1. 数据库调优的措施1.1 调优的目标1.2 定位调优问题1.3 调优的维度和步骤2. 优化MySQL服务器2.1 优化服务器硬件2.2 优化MySQL的参数3. 优化数据库结构3.1 拆分表:冷热数据分离3.2 增加中间表3.3 增加冗余字段3.4 优化数据类型3.4.1 对整数类型进行优化3.4.2 既可以使用文本类型也可以使用整数类型的字段,要选择使用整数类型3.4.3 避免使用TEXT、BLOB数据类型3.4.4 避免使用ENUM类型3.4.5 使用TIMESTAMP存储时间3.4.6 用原创 2022-03-18 19:38:07 · 1545 阅读 · 0 评论 -
数据表的设计原则
数据表的设计原则(三少一多)数据表的个数越少越好RDBMS的核心在于对实体和联系的定义,也就是E-R图(Entity Relationship Diagram),数据表越少,证明实体和联系设计得越简洁,既方便理解又方便操作。数据表中的字段个数越少越好字段个数越多,数据冗余的可能性越大。设置字段个数少的前提是各个字段相互独立,而不是某个字段的取值可以由其他字段计算出来。当然字段个数少是相对的,我们通常会在数据冗余和检索效率中进行平衡。数据表中联合主键的字段个数越少越好设置主键是为了确定唯一性,当原创 2022-03-15 10:39:04 · 3327 阅读 · 0 评论 -
创建ER模型以及转化为数据表
文章目录1. 概念2. ER模型包含的要素3. 关系的类型4. 举例4.1 建模分析4.2 ER模型细化4.3 ER模型转为数据表1. 概念ER模型也叫作实体关系模型,是用来描述现实生活中客观存在的事物、事物的属性,以及事物之间关系的一种数据模型。在开发基于数据库的信息系统的设计阶段,通常使用ER模型来描述信息需求和信息特性,帮助我们理清业务逻辑,从而设计出优秀的数据库。2. ER模型包含的要素分别包含:实体、属性和关系。实体:可以看做是数据对象,往往对应于现实生活中的真实存在的个体。在ER模原创 2022-03-15 10:29:30 · 5499 阅读 · 0 评论 -
数据库的设计规范:第一范式、第二范式、第三范式、巴斯范式
文章目录1. 范式的概念1.1 范式分类1.2 键和相关属性的概念2. 第一范式(1st NF)2.1 概念2.2 举例2.1 总结3. 第二范式(2nd NF)3.1 概念3.2 举例3.3 总结4. 第三范式(3rd NF)4.1 概念4.2 举例4.3 总结5. 范式的优缺点5.1 优点5.2 缺点6. 反范式化6.1 概念6.2 规范与性能平衡6.3 举例6.4 代码演示6.5 反范式的问题6.6 反范式的适用场景6.6.1 增加冗余的建议6.6.2 历史快照、历史数据的需要1. 范式的概念1.原创 2022-03-15 09:32:50 · 15765 阅读 · 1 评论 -
数据库主键如何设计?
文章目录1. 自增ID的问题2. 淘宝的主键设计3. 推荐的主键设计3.1 分类3.2 UUID(最简单的一种主键设计)3.1.1 UUID的特点3.1.2 UUID的组成3.1.3 为什么UUID是全局唯一的?3.1.4 为什么UUID占用36个字节3.1.5 为什么UUID是随机无序的3.3 UUID改造1. 自增ID的问题可靠性不高存在自增ID回溯的问题,这个问题直到最新版本的MySQL8.0才修复。安全性不高对外暴露的接口可以非常容易猜测对应的信息。比如:/User/1/这样原创 2022-03-14 20:12:46 · 2217 阅读 · 0 评论 -
MySQL索引优化与查询优化:索引失效案例、关联查询优化、JOIN的底层原理、子查询优化、排序优化、GROUP BY优化、 优化分页查询、索引下推(limit)、覆盖索引的利弊
文章目录1. 简述数据库调优2. 索引失效案例2.1 数据的准备2.2 索引的作用2.3 全值匹配我最爱2.4 最佳左前缀法则2.5 主键插入顺序2.6 计算、函数、类型转换(自动或手动)导致索引失效2.7 范围条件右边的列索引失效2.8 不等于(!= 或者<>)索引失效2.9 is null可以使用索引,is not null无法使用索引2.10 like以通配符%开头索引失效2.11 OR 前后存在非索引的列,索引失效2.12 数据库和表的字符集统一使用utf8mb42.14 总结3. 关联原创 2022-03-10 22:05:18 · 522 阅读 · 0 评论 -
MySQL性能分析工具的使用:慢查询日志、EXPLAN的使用、分析优化器执行计划:trace、MySQL监控分析视图-sys schema
文章目录1.数据库服务器的优化步骤2.查看系统性能参数2.1 语法2.2 常用参数3.统计SQL的查询成本:last_query_cost4.定位执行慢的SQL:慢查询日志4.1 慢查询日志的概念4.2 开启慢查询日志4.3 查看慢查询数目4.4 慢查询日志分析工具:mysqldumpslow4.5 关闭慢查询4.5.1 永久性4.5.2 临时性4.6 删除慢查询日志5.查看SQL执行成本6.分析查询语句:EXPLAN1.数据库服务器的优化步骤整个流程划分成了观察(Show status)和行动(Act原创 2022-03-09 08:50:16 · 1735 阅读 · 0 评论 -
MySQL索引的设计原则:哪些情况适合创建索引、哪些情况不适合创建索引
文章目录1.索引的设计原则的重要性2.哪些情况适合创建索引2.1 字段有唯一性的限制2.2 频繁作为WHERE查询条件的字段2.3 经常GROUPIBY和ORDER BY的列2.4 UPDATE、DELETE的WHEFE条件列1.索引的设计原则的重要性为了使索引的使用效率更高,在创建索引时,必须考虑在哪些字段上创建索引和创建什么类型的索引。索引设计不合理或者缺少索引都会对数据库和应用程序的性能造成障碍。高效的索引对于获得良好的性能非常重要。设计索引时,应该考虑相应准则。2.哪些情况适合创建索引2.1原创 2022-03-07 19:34:19 · 5670 阅读 · 0 评论 -
MySQL索引的创建、删除以及MySQL8.0索引新特性:支持降序索引、隐藏索引
文章目录1.索引的分类1.1 普通索引1.2 唯一性索引1.3 主键索引1.4 单列索引1.5 多列索引1.6 全文索引1.7 空间索引2.索引的声明与使用2.1 创建索引2.1.1 创建表时创建索引2.1.2 创建表时创建索引2.1.3 参数含义2.2 删除索引3.MySQL8.0索引新特性3.1 支持降序索引3.2 隐藏索引3.2.1 隐藏索引的作用3.2.1 隐藏索引的创建3.2.1.1 创建表时创建隐藏索引3.2.1.1 创建表后创建隐藏索引3.2.2 修改索引的可见性3.2.3 注意1.索引的分原创 2022-03-06 20:22:12 · 1823 阅读 · 0 评论 -
InnoDB数据的存储结构
文章目录1.什么是页?1.1 页的概念1.2 页结构概述1.3 页的上层结构2.页的内部结构2.1 分类2.2 页结构2.2.1 图示2.2.2 File Header(文件头部)和File Trailer(文件尾部)2.2.2.1 作用2.2.2.2 构成2.2.3 free space(空闲空间)、user records(用户记录)、infimum+supremum(最小最大记录)2.2.3.1 作用2.2.3.2 free space(空闲空间)2.2.3.3 user records(用户记录)2原创 2022-03-05 18:58:37 · 146 阅读 · 0 评论 -
索引树会一次性加载吗?B+树的存储能力如何?为什么说B+树比B-树更适合实际应用中操作统的文件索引和数据库索引?Hash索引与B+树索引的区别
1. 为了减少IO,索引树会一次性加载吗?数据库索引是存储在磁盘上的,如果数据量很大,必然导致索引的大小也会很大,超过几个G。当我们利用索引查询时候,是不可能将全部几个G的索引都加载进内存的,我们能做的只能是:逐一加载每一个磁盘页,因为磁盘页对应着索引树的节点。2.B+树的存储能力如何?为何说一般查找行记录,最多只需1~3次磁盘IOInnoDB存储引擎中页的大小为16KB,一般表的主键类型为INT(占用4个字节)或BIGINT(占用8个字节),指针类型也一般为4或8个字节,也就是说一个页(B+原创 2022-03-05 14:48:22 · 1022 阅读 · 0 评论 -
mysql索引的数据结构:MyISAM与InnoDB的索引方案
文章目录1.为什么使用索引2.索引概述3.索引优缺点3.1 优点3.2 缺点4.InnoDB中索引的推演4.1 有索引之前的查找4.1.1 在一个页中查找4.1.2 在很多页中查找4.2 设计索引4.3 索引迭代设计4.3.1 ①4.3.2 ②4.3.3 ③(B+树)4.4 为什么B+树不超过4层5.常见索引的概念5.1 聚簇索引5.1.1 概念5.1.2 优点5.1.3 缺点5.1.4 限制5.2 非聚簇索引(二级索引、辅助索引)5.2.1 概念5.2.2 与聚簇索引的不同5.2.3 回表5.2.4 小原创 2022-03-05 11:03:14 · 1164 阅读 · 0 评论 -
mysql各存储引擎的作用:Archive、Blackhole、CSV、Memory、Federated、Merge、NDB
文章目录1 Archive:用于数据存档2 Blackhole:丢弃写操作,读操作会返回空内容3 CSV:存储数据时,以逗号分隔各个数据项4 Memory:置于内存的表4.1 概述4.2 主要特征5 Federated:访问远程表6 Merge:管理多个MyISAM表构成的表集合7 NDB:MySQL集群专用存储引擎1 Archive:用于数据存档archive是归档的意思,仅仅支持插入和查询两种功能(行被插入后不能再修改)。在MySQL5.5以后支持索引功能。拥有很好的压缩机制,使用zlib压缩原创 2022-03-03 18:48:17 · 1047 阅读 · 0 评论 -
mysql存储引擎:查看、修改存储引擎,指定表的存储引擎、MyISAM与InnoDB的区别
文章目录1 概念2 查看存储引擎3 修改存储引擎4 创建、修改表时指定存储引擎MyISAM与InnoDB的区别1 概念为了管理方便,人们把连接管理、查询缓存、语法解析、查询优化这些并不涉及真实数据存储的功能划分为MysQL server的功能,把真实存取数据的功能划分为存储引擎的功能。所以在MysQL server完成了查询优化后,只需按照生成的执行计划调用底层存储引擎提供的API,获取到数据后返回给客户端就好了。MySQL中提到了存储引擎的概念。简而言之,存储引擎就是指表的类型。其实存储引擎以前叫做原创 2022-03-03 15:25:35 · 313 阅读 · 0 评论 -
SQL执行流程
文章目录1 sql执行流程图示2 执行流程各部分的作用2.1 查询缓存2.2 解析器2.3 优化器2.4 执行器3 总结1 sql执行流程图示2 执行流程各部分的作用2.1 查询缓存将查询的数据缓存起来,下次查询同样的语句时直接返回缓存的结果,由于命中率太低,mysql8被删除。2.2 解析器词法分析:抓关键字、表名、字段名等语法分析:查看是否满足mysql语法生成语法树2.3 优化器一条查询可以有很多种执行方式,最后都返回相同的结果。优化器的作用就是找到这其中最好的执行计划。原创 2022-03-03 14:28:48 · 237 阅读 · 0 评论 -
mysql角色的管理:创建、修改、删除角色、给用户授予、撤销角色
文章目录1 角色的概念2 角色与权限的管理2.1 创建角色2.2 给角色赋予权限2.3 查看角色权限2.4 回收角色的权限2.5 删除角色3 角色与用户的管理3.1 给用户授予角色3.2 撤销用户的角色3.3 设置强制角色1 角色的概念角色是在MySQL8.0中引入的新功能。在MySQL中,角色是权限的集合,可以为角色添加或移除权限。用户可以被赋予角色,同时也被授予角色包含的权限。对角色进行操作需要较高的权限。并且像用户账户一样,角色可以拥有授予和撤消的权限。引入角色的目的是方便管理拥有相同权限的用户原创 2022-03-02 19:49:21 · 11018 阅读 · 0 评论 -
mysql权限表(控制用户对数据库的访底层实现)
文章目录1 权限表的作用2 访问控制2.1 连接核实阶段2.2 请求核实阶段1 权限表的作用MySQL服务器通过权限表来控制用户对数据库的访问,权限表存放在mysql数据库中。MySQL数据库系统会根据这些权限表的内容为每个用户赋予相应的权限。这些权限表中最重要的是user表、db表。除此之外,还有table_priv表、column_priv表和proc_priv表等。在MySQL启动时,服务器将这些数据库表中权限信息的内容读入内存。2 访问控制正常情况下,并不希望每个用户都可以执行所有的数据库操原创 2022-03-02 19:12:42 · 907 阅读 · 0 评论 -
mysql的权限访问控制:赋予、查看、删除权限
文章目录1 权限的概念2 权限列表3 授权的原则4 权限赋予4.1 分类4.2 授权给用户5 查看权限6 回收权限1 权限的概念MySQL允许你做你权力以内的事情,不可以越界。2 权限列表-- 显示权限列表show privileges;3 授权的原则满足需要的最小权限限制用户的登录主机为每个用户设置满足密码复杂度的密码定期清理不需要的用户,回收权限或者删除用户4 权限赋予4.1 分类角色赋予用户给用户授权直接给用用户授权4.2 授权给用户-- 查询、修改、dat原创 2022-03-02 18:56:07 · 420 阅读 · 0 评论 -
mysql用户的创建、修改、删除与密码修改
文章目录1 用户分类2 用户特点3 用户登录4 用户管理4.1 创建用户4.2 修改用户4.3 删除用户4.4 修改用户密码4.4.1 修改当前用户的密码4.4.2 修改其他用户的密码1 用户分类普通用户root用户2 用户特点MySQL提供了许多语句用来管理用户账号,这些语句可以用来管理包括登录和退出MySQL服务器、创建用户、删除用户、密码管理和权限管理等内容。MySQL数据库的安全性需要通过账户管理来保证。3 用户登录-- 完整语句mysql -h localhost -P原创 2022-03-02 18:20:21 · 762 阅读 · 0 评论 -
mysql8.0的新特性
文章目录1 新特性概述1.1 更简便的NoSQL支持1.2 更好的索引1.3 更完善的JSON支持1.4 安全和账户管理1.5 InnoDB的变化1.6 数据字典1.7 原子数据定义语句1.8 资源管理1.9 字符集支持1.10 优化器增强1.11 公用表表达式1 新特性概述1.1 更简便的NoSQL支持NoSQL泛指非关系型数据库和数据存储。随着互联网平台的规模飞速发展,传统的关系型数据库已经越来越不能满足需求。从5.6版本开始,MySQL就开始支持简单的NoSQL存储功能。MySQL8对这一功能做原创 2022-02-25 10:18:52 · 927 阅读 · 0 评论 -
mysql创建触发器的创建、查看、删除
文章目录1 触发器的概念2 触发器的创建2.1 语法2.2 举例3 查看、删除触发器3.1 查看3.2 删除触发器4 优缺点4.1 优点4.2 缺点5 注意点1 触发器的概念触发器是由事件来触发某个操作,这些事件包括INSERT、UPDATE、DELETE事件。所谓事件就是指用户的动作或者触发某项行为。如果定义了触发程序,当数据库执行这些语句时候,就相当于事件发生了,就会自动激发触发器执行相应的操作。当对数据表中的数据执行插入、更新和删除操作,需要自动执行一些数据库逻辑时,可以使用触发器来实现。原创 2022-02-18 10:26:42 · 1764 阅读 · 0 评论 -
mysql中游标的概念与使用
1 游标的概念虽然我们也可以通过筛选条WHERE和HAVING,或者是限定返回记录的关键字LIMIT返回一条记录,但是,却无法在结果集中像指针一样,向前定位一条记录、向后定位一条记录,或者是随意定位到某一条记录,并对记录的数据进行处理。这个时候,就可以用到游标游标,提供了一种灵活的操作方式,让我们能够对结果集中的每一条记录进行定位,并对指向的记录中的数据进行操作的数据结构。游标让SQL这种面向集合的语言有了面向过程开发的能力。在SQL中,游标是一种临时的数据库对象,可以指向存储在数据库表中的数据行原创 2022-02-17 21:57:33 · 1643 阅读 · 0 评论 -
mysql中leave和iterater的使用
文章目录1 leave1.1 概念1.2 语法1.3 举例2 iterate2.1 概念2.2 语法2.3 举例1 leave1.1 概念可以用在循环语句内,或者以BEGIN和END包裹起来的程序体内,表示跳出循环或者跳出程序体的操作。如果你有面向过程的编程语言的使用经验,你可以把LEAVE理解为break。1.2 语法leave 标记名1.3 举例/***举例1:**创建存储过程“leave_begin)",声明INT类型的IN参数num。给BEGIN...END加标记名,并在BEG原创 2022-02-17 21:18:40 · 1340 阅读 · 0 评论 -
mysql流程分支:分支结构、循环结构:if、else、case、while、loop、repeat的使用
文章目录1 分类2 语句3 分支结构3.1 IF3.1.1 语法3.1.2 举例3.2 CASE3.2.1 语法3.2.1 举例4 循环结构4.1 LOOP4.1.1 语法4.1.2 举例4.2 WHILE4.2.1 语法4.2.2 举例4.3 REPEAT4.3.1 语法4.3.2 举例4.4 循环结构的四个要素1 分类解决复杂问题不可能通过一个SQL语句完成,我们需要执行多个SQL操作。流程控制语句的作用就是控制存储过程中SQL语句的执行顺序,是我们完成复杂操作必不可少的一部分。只要是执行的程序,流原创 2022-02-17 16:37:32 · 1710 阅读 · 0 评论 -
mysql定义条件与处理程序(出现错误时使用)
文章目录1 概念2 定义条件2.1 语法2.2 举例3 定义处理程序3.1 语法3.2 处理方式3.3 错误类型3.3 处理语句3.4 举例1 概念定义条件是事先定义程序执行过程中可能遇到的问题,处理程序定义了在遇到问题时应当采取的处理方式,并且保证存储过程或函数在遇到警告或错误时能继续执行。这样可以增强存储程序处理问题的能力,避免程序异常停止运行。2 定义条件2.1 语法DECLARE 错误名称 CONDITION FOR 错误码(或错误条件)2.2 举例#举例:定义“Field_Not_原创 2022-02-16 15:55:18 · 732 阅读 · 0 评论 -
mysqlb系统变量的查看、修改,用户自定义变量的使用
文章目录1 变量的概念2 系统变量2.1 变量的查看2.2 变量的修改3 用户自定义变量3.1 概念3.2 会话用户变量3.3 局部变量3.3.1 注意点3.3.2 声明格式3.3.3 代码演示1 变量的概念在MySQL数据库的存储过程和函数中,可以使用变量来存储查询或计算的中间结果数据,或者输出最终的结果数据。在MySQL数据库中,变量分为系统变量(全局系统变量与会话系统变量)以及用户自定义变量。2 系统变量2.1 变量的查看#查看系统变量SHOW GLOBAL VARIABLES;#全局系原创 2022-02-16 15:09:47 · 764 阅读 · 0 评论 -
mysql存储过程与存储函数的概念、区别以及如何创建、delimiter的作用、存储过程和函数的查看、修改、删除、储存过程的优缺点
文章目录1 概述1.1 存储过程1.2 存储函数2 创建2.1 创建存储过程2.1.1 语法2.1.2 形参列表2.1.3 代码2.2 创建存储函数2.2.1 语法2.2.2 代码3 delimiter的作用4 存储过程与存储函数的区别5 创建函数时错误解决方法6 存储过程和函数的查看、修改、删除6.1 查看6.2 修改6.3 删除7 储存过程的优缺点7.1 优点7.2 缺点1 概述1.1 存储过程它的思想很简单,就是一组经过预先编译的SQL语句的封装。执行过程:存储过程预先存储在MySQL服务器原创 2022-02-15 18:58:59 · 904 阅读 · 0 评论 -
mysql视图的概念、创建视图、查看视图、修改视图、删除视图
文章目录1 视图的概念2 创建视图2.1 语法2.2 给字段取名字3 查看视图4 修改视图5 删除视图1 视图的概念视图是一种虚拟表,本身是不具有数据的,占用很少的内存空间,它是SQL中的一个重要概念。视图建立在已有表的基础上,视图赖以建立的这些表称为基表。视图的创建和删除只影响视图本身,不影响对应的基表。但是当对视图中的数据进行增加、删除和修改操作时,数据表中的数据会相应地发生变化,反之亦然。向视图提供数据内容的语句为SELECT语句,可以将视图理解为存储起来的SELECT语句。在数据库中原创 2022-02-15 14:39:50 · 1100 阅读 · 0 评论 -
mysql约束的概念、作用、特点以及创建删除操作
文章目录1 约束的作用1.1 概括1.2 分类1.2.1 非空约束1.2.1.1 作用1.2.1.2 关键字1.2.1.3 特点1.2.1.4 添加非空约束1.2.1.4.1 创建表时添加约束1.2.1.4.2 修改表时添加约束、删除约束1.2.2 唯一性约束1.2.2.1 作用1.2.2.2 关键字1.2.2.3 特点1.2.2.4 添加唯一约束1.2.2.4.1 创建表时添加约束1.2.2.4.2 修改表时添加约束1.2.2.4.3 修改表时删除约束1.2.2.4.3.1 注意事项1.2.2.4.3.2原创 2022-02-14 17:04:43 · 1603 阅读 · 0 评论 -
MySql数据库创建表字段类型的选择
原创 2022-02-13 14:45:37 · 318 阅读 · 0 评论 -
mysql新特性计算列
计算列有a列与b列,c列是由a、b两个列相加得出,c列就是计算列,是在创建表或者修改表的时候创建或指明的。 create table test01( a int, b int, c GENERATED ALWAYS as (a+b) VIRTUAL -- c即为计算列 );原创 2022-02-03 20:27:41 · 943 阅读 · 0 评论 -
MYSQL数据的增删改
文章目录1 增加数据2 修改数据3 删除数据1 增加数据-- 方式一 一条一条添加数据-- ① 不指明添加的字段,一定要按照声明的先后顺序添加insert into emp1 values(1,'张三','2000-01-01',12.52);-- ① 指明添加的字段(推荐)insert into emp1 (id,hire_date,`name`,salary) values(2,'2000-01-02','李四',10000);-- ③ 同时插入多条记录insert into emp1原创 2022-02-03 20:20:18 · 616 阅读 · 0 评论 -
DCL中COMMIT和ROLLBACK的使用以及TRUNCATE TABLE与DELETE FROM的异同
文章目录1 COMMIT1.1 定义2 ROLLBACK2.1 定义3 TRUNCATE TABLE与DELETE FROM的异同3.1 共同点3.2 不同点3.2.1 TRUNCATE TABLE3.2.2 DELETE FROM3.2.3 代码演示1 COMMIT1.1 定义提交数据,一旦执行COMMIT,则数据就被永久的保存在了数据库中,意味着数据不可以回滚。2 ROLLBACK2.1 定义回滚数据,一旦执行ROLLBAAK,则可以实现数据的回滚,回滚到最近的一次COMMIT之后。3原创 2022-01-29 12:46:15 · 1272 阅读 · 0 评论