![](https://img-blog.csdnimg.cn/direct/973ffd340136417e93335130627539c0.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
MySQL
文章平均质量分 91
MySQL学习笔记
张张一直在路上
自己学习和记录
展开
-
MySQL学习笔记12——效率和优化
你肯定遇到过这样的情况:SQL语句执行起来特别慢,要等好久才出结果,或者是干脆就"死”在那里,一点反应也没有。一旦遇到这种问题,就要考虑进行优化了。而要想提高应用的运行效率,我们就必须掌握优化查询的方法。下面就讲一下MySQL的查询分析语句和2种优化查询的方法。原创 2024-05-10 15:34:44 · 864 阅读 · 0 评论 -
MySQL学习笔记11——数据备份 & 范式 & ER模型
第二范式要求,在满足第一范式的基础上,还要满足数据表里的每一条数据记录,都是可唯一标识的。第三范式要求数据表在满足第二范式的基础上,不能包含那些可以由非主键字段派生出来的字段,或者说,不能存在依赖于非主键字段的字段。mysqldump的备份文件包含了创建数据库、数据表,以及插入数据表里原有数据的SQL语句,我们可以直接运行这些SQL语句,来进行数据恢复。息系统的设计阶段,通常使用ER模型来描述信息需求和信息特性,帮助我们理清业务逻辑,从而设计出优秀的数据库。原创 2024-05-09 15:01:42 · 984 阅读 · 0 评论 -
MySQL学习笔记10——日志
为了节省磁盘空间,我们可以移除旧的日志文件,创建新的日志文件,来对通用查询日志文件进行维护。从服务器为了与主服务器保持一致,要从主服务器读取二进制日志的内容,并且把读取到的信息写入本地的白志文件中,这个从服务器本地的日志文件就叫中继日志。日志在发现错误、数据复制、数据恢复、操作审计,以及确保数据的永久性和一致性等方面,都有着不可替代的作用,对提升你的数据库应用的开发能力至关重要。查看二进制日志主要有3种情况,分别是查看当前正在写入的二进制日志、查看所有的二进制日志和查看二进制日志中的所有数据更新事件。原创 2024-05-08 17:15:19 · 798 阅读 · 0 评论 -
MySQL学习笔记9——触发器和权限管理
当商品信息和库存信息分别存放在两个不同的数据表中时,可以创建一个触发器, 让商品信息数据的插入操作自动触发库存数据的插入操作。这里的意思是,创建一个角色, 角色名称是"manager" ,角色可以登录的主机是"localhost",意思是只能从数据库服务器运行的这台计算机登录这个账号。因为运维人员可能会经常变动,如果有一个完整的数据库设计文档,就可以帮助新人快速了解触发器的设计思路,从而减少错误,降低系统维护的成本。给用户授权的方式有2种,分别是通过把角色赋予用户给用户授权,和直接给用户授权。原创 2024-05-07 16:15:03 · 1021 阅读 · 1 评论 -
MySQL学习笔记8——游标
本节学习了游标的使用方法,包括在存储过程中使用游标的4个步骤,分别是定义游标、打开游标、读取游标数据和关闭游标。除此之外,还介绍了经常与游标结合使用的流程控制语句,包括循环语句LOOP、WHILE和REPEAT;条件判断语句IF和CASE;还有跳转语句LEAVE和ITERATE。原创 2024-04-24 16:25:27 · 947 阅读 · 0 评论 -
MySQL学习笔记7——视图和存储过程
视图是一种虚拟表,我们可以把一段查询语句作为视图存储在数据库中,在需要的时候,可以把视图看做一个表, 对里面的数据进行查询。创建视图语法结构:现在,假设我们要查询一下商品的每日销售明细,这就要从销售流水表(demo.mytrans) 和商品信息表(demo.goodmaster)中获取到销售数据和对应的商品信息数据:销售流水表(mytrans):商品信息表(goodmaster):在不使用视图的情况下,我们可以通过对销售流水表和商品信息表进行关联查询,得到每天商品销售统计的结果,包括销售日期、商品原创 2024-04-23 17:55:48 · 924 阅读 · 0 评论 -
MySQL学习笔记6——事务与临时表
事务可以确保事务中的一系列操作全部被执行,不会被打断,或者全部不被执行,等待再次执行。事务中的操作,具有原子性、一致性、 永久性和隔离性的特征。但是这并不意味着,被事务包裹起来的一系列DML数据操作就一定会全部成功, 或者全部失败。你需要对操作是否成功的结果进行判断,并通知MySQL针对不同情况,分别完成事务提交或者回滚操作,才能最终确保事务中的操作全部成功或全部失败。MySQL支持4种不同的事务隔离等级,等级越高,消耗的系统资源也越多,需要根据实际情况进行设定。原创 2024-04-22 15:31:55 · 871 阅读 · 0 评论 -
MySQL学习笔记5——函数和索引
- 删除索引DROP INDEX 索引名 ON 表名;--删除主键索引ALTER TABLE 表名 DROP PRIMARY KEY;索引的成本存储空间的开销,是指索引|需要单独占用存储空间。数据操作上的开销,是指一旦数据表有变动,无论是插入一条新数据,还是删除一条旧的数据,甚至是修改数据,如果涉及索引字段,都需要对索引本身进行修改,以确保索弓|能够指向正确的记录。因此,索引也不是越多越好,创建索引有存储开销和操作开销,需要综合考虑。原创 2024-04-22 11:29:54 · 1174 阅读 · 0 评论 -
MySQL学习笔记4——时间函数
那么,解决问题的关键,就是把交易时间的小时部分提取出来。EXTRACT (type FROM date)表示从日期时间数据"date" 中抽取"type"指定的部分。除了获取小时信息,我们往往还会遇到要统计年度信息、月度信息等情况,MySQL也提供了支持的函数。这个查询,也可以通过使用日期时间函数HOUR()来达到同样的效果。HOUR (time) 表示从日期时间"time"中,获取小时部分信息。时间函数就是用来处理时间的函数。首先,我们来分析一下“统计一天中每小时的销售数量和销售金额”的这个需求。原创 2024-04-16 15:54:02 · 962 阅读 · 0 评论 -
MySQL学习笔记3——条件查询和聚合函数
HAVING在GROUP BY之后,可以使用分组字段和分组中的计算函数,对分组的结果集进行筛选,这个功能是WHERE无法完成的。如果需要通过关联查询从其他的表获取需要的信息,那么执行的时候,也是先通过WHERE条件进行筛选,用筛选后的比较小的数据集进行连接。这种必须先分组才能筛选的查询,用WHERE语句实现就比较难,我们可能要分好几步,通过把中间结果存储起来,才能搞定。它的作用是,通过计算分组内指定字段值的和,以及分组内的记录数,算出分组内指定字段的平均值。这也就是说,我们要知道是按什么字段进行分组的。原创 2024-04-15 16:13:20 · 1083 阅读 · 0 评论 -
MySQL学习笔记2——基础操作
部分插入一条数据记录是可以的,前提是没有赋值的字段,一定要让MySQL知道如何处理,比如可以为空、有默认值,或者是自增约束字段等等,否则MySQL会提示错误的。相应的,表B就是这个关系中的从表,表B中的"id" ,就是表B用来引用表A中数据的,叫外键。外键约束就是约束的一种,它必须在从表中定义,包括指明哪个是外键字段,以及外键字段所引用的主表中的主键字段是什么。所以,如果你的系统比较复杂,尽量给表加一个字段做主键,采用手动赋值的办法,虽然系统开发的时候麻烦一点,却可以避免后面出大问题。原创 2024-04-09 11:33:45 · 660 阅读 · 0 评论 -
MySQL学习笔记1
在创建表的时候,字段名称要避开MySQL的系统关键字。原因是MySQL系统保留的关键字都有特定的含义,如果作为字段名称出现在SQL语句中,MySQL会把这个字段名称理解为系统关键字,从而导致SQL语句无法正常运行。来识别一条SQL语句结束,所以,写的每一条SQL语句的最后,都必须有一个分号,否则,MySQL会认为这条语句没有完成,提示语法错误。能减少数据的唯一性,减少数据错误。默认约束,主键约束、外键约束、非空约束、唯一性约束、自增约束等。在MySQL中,一个完整的数据存储过程总共有4步,分别是。原创 2024-04-07 17:39:01 · 518 阅读 · 0 评论