MySQL必知必会
文章平均质量分 97
以实战项目为背景,深入理解MySQL知识点以及面试常考点。
安然无虞
你好,我是安然无虞,2021年度博客新星Top2,新星计划·第三季C/C++赛道导师,C/C++优质创作者,阿里云特邀专家博主,比特社区创建者,小比特,大梦想。
展开
-
MySQL第九讲·索引怎么提高查询的速度?
索引可以非常显著的提高数据查询的速度,数据表里包含的数据越多,效果越显著。我们应该选择经常被用做筛选条件的字段来创建索引,这样才能通过索引缩小实际读取数据表中数据的范围,发挥出索引的优势。如果有多个筛选的字段,而且经常一起出现,也可以用多个字段来创建组合索引。drop index 索引名 on 表名;当然, 有的索引不能用这种方法删除,比如主键索引,我们就必须通过修改表来删除索引。alter table 表名 drop primary key;原创 2023-11-09 07:30:00 · 6543 阅读 · 25 评论 -
MySQL第八讲·如何进行数学计算、字符串处理和条件判断?
上面只是介绍了一些常用到的函数,但在MySQL还有很多函数。遇见安然遇见你,不负代码不负卿。原创 2023-11-08 13:30:00 · 960 阅读 · 0 评论 -
MySQL第七讲·怎么利用聚合函数实现高效地分组统计?
需要注意的是,求和函数获取的是分组中的合计数据,所以你要对分组的结果有准确的把握,否则就很容易搞错。在 MySQL 中,DATETIME 类型的默认格式是:YYYY-MM-DD,也就是说,年份 4 个字符,之后是“-”,然后是月份 2 个字符,之后又是“-”,然后是日 2 个字符,所以完整的年月日是 10 个字符。举个小例子,由于用户的销售数据很多,而且每天都在增长,因此,在做销售查询的时候,经常会遇到卡顿的问题。它的作用是,通过计算分组内指定字段值的和,以及分组内的记录数,算出分组内指定字段的平均值。原创 2023-11-07 21:25:41 · 1420 阅读 · 0 评论 -
MySQL第六讲·where和having的异同?
这样,我们就既利用了where条件的高效快速,又发挥了having可以使用包含分组统计函数的查询条件的优点,当数据量特别大的时候,运行效率会有很大的差别。首先我们需要把所有的信息都准备好,包括从关联表中获取的信息,对数据集进行分组,形成一个包含所有需要的信息的数据集合。可以看到,通过对销售数据按照交易日期和收银员进行分组,再对组内数据进行求和统计,就实现了对每天、每个收银员的销售数量和销售金额的查询。我们在进行查询的时候,经常需要按照条件对查询结果进行筛选,这就要用到条件语句where和having了。原创 2023-11-07 10:09:25 · 2740 阅读 · 0 评论 -
MySQL第五讲·关于外键和连接, 如何做到关联查询?
可以看到,我用到了 LEFT JOIN,意思是以表 demo.trans 中的数据记录为主,这个表中的数据记录要全部出现在结果集中,同时给出符合连接条件(a.cardno=b.cardno) 的表 demo.membermaster 中的字段 membername 的值。相应的,表B就是这个关系中的从表,表B中的id,就是表B用来引用表A中数据的,叫外键。不过,如果需要修改表的设计,比如添加新的字段,增加新的关联关系,但是没有预先定义外键约束,那么,就要用修改表的方式来补充定义。原创 2023-11-06 19:46:49 · 1110 阅读 · 0 评论 -
MySQL第四讲·如何正确设置主键?
设置数据表主键的三种方式:数据表的业务字段做主键、添加自增字段做主键,以及添加手动赋值字段做主键。用业务字段做主键,看起来很简单,但是我们应该尽量避免这样做。因为我们无法预测未来会不会因为业务需要,而出现业务字段重复或者重用的情况。自增字段做主键,对于单机系统来说是没问题的。但是,如果有多台服务器,各自都可以录入数据,那就不一定适用了。因为如果每台机器各自产生的数据需要合并,就可能会出现主键重复的问题。我们可以。原创 2023-11-05 07:45:00 · 2106 阅读 · 0 评论 -
MySQL第三讲·SQL boy的CRUD操作
假设我们要把门店 B 的商品数据,插入到门店 A 的商品表中去,如果有重复的商品编号,就用门店 B 的条码,替换门店 A 的条码,用门店 B 的商品名称,替换门店 A 的商品名称;现在我们清楚了,部分插入一条数据记录是可以的,但前提是,没有赋值的字段,一定要让MySQL知道如何处理,比如可以为空、有默认值,或者是自增约束字段,等等,否则,MySQL会提示错误。MySQL支持的数据插入操作十分灵活,你既可以通过给表里面所有的字段赋值,完整的插入一条数据记录,也可以在插入记录的时候,只给部分字段赋值。原创 2023-11-04 07:45:00 · 520 阅读 · 1 评论 -
MySQL第二讲·表的创建与修改
因此,我们希望这个字段的值能够默认是1,这样一来,除非有特别的指定,否则,门店进货单的进货方式,就自动设置成1了。从这个表中,我们可以看到,这三个字段都不能满足唯一性,所以没有任何一个字段可以做主键,因此我们需要自己添加一个字段itemnumber,并且每次添加一条数据的时候,要给值增加1。这样,通过在创建表的时候设置默认值,我们就实现了将该字段的默认值定义为1的目的。非空约束表示字段值不能为空,如果创建表的时候,指明某个字段非空,那么添加数据的时候,这个字段必须有值,否则系统就会提示错误。原创 2023-11-03 15:52:49 · 2315 阅读 · 3 评论 -
MySQL第一讲·存储与字段
MySQL 中有很多字段类型,比如整数、文本、浮点数,等等。如果类型定义合理,就能节省存储空间,提升数据查询和处理的速度,相反,如果数据类型定义不合理,就有可能会导致数据超出取值范围,引发系统报错,甚至可能会出现计算错误的情况,进而影响到整个系统。所以我们需要掌握不同字段的类型,包括它们的适用场景,定义方法。原创 2023-11-03 07:45:00 · 1280 阅读 · 7 评论