MySQL必知必会读后感
2021/7/10 2:05:43
本文主要是介绍MySQL必知必会读后感,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
「MySQL必知必会」,上大学时,每个计算机专业的学生必备的数据库神书。当时觉得枯燥乏味,毕业5年后,重新阅读了此书,发现此书真的是一本通俗易懂、涉及知识面广但浅尝辄止的数据库入门书。
以下为此次阅读后一些新的认识的总结。
1.DISTINCT-查询去重所有的字段的结果集,如下SQL会查询users表中name和age排重后的结果集
select discitct name,age from users;
2.LIKE和REGEXP的异同
LIKE和REGEXP的不同在于,LIKE匹配整个串而REGEXP匹配子串。利用定位符,通过用^开始每个表达式,用$结束每个表达式,可以使REGEXP的作用与LIKE一样。
3.BINARY区分大小写(MySQL3.23.4后)
MySQL默认查询结果不区分大小写,如一下SQL语句,会把表中name为「apple」、「APPLE」、「Apple」、「aPPle」等结果都查出来。
select * from fruit where name = 'apple'
如果只想查出「apple」,需要在字段前增加「BINARY」关键字,那么MySQL将进行区分大小写的查询,只会查出「apple」
4.GROUP BY的使用
(1) GROUP BY 子句中列出的每个列都必须是检索列或有效的表达式 (但不能是聚集函数)。
(2) 如果在 SELECT 中使用表达式, 则必须在GROUP BY子句中指定相同的表达式,不能使用别名。
(3) 除聚集计算语句外,SELECT语句中的每个列都必须在GROUP BY子句中给出。
5.分组后的筛选-HAVING
这里有另一种理解方法,WHERE在数据分组前进行过滤,HAVING在数据分组后进行过滤。
5.组合查询:UNION和UNION ALL
组合查询意味着必须要有两条及以上的select语句,且两个语句中的字段必须一样,顺序可不一样。
UNION:去处重复的行
UNION ALL:不去重重复的行
6.truncate table比delete from table效率更高
TRUNCATE实际是删除原来的表并重新创建一个表,而不是逐行删除表中的数据
7.视图
(1)创建
create view audit_users as select * from users where age >= 18
Notice 如果视图定义中有以下操作,则不能进行视图的更新:
- 分组(使用GROUP BY和HAVING);
- 联结;
- 子查询;
- 并;
- 聚集函数(Min()、Count()、Sum()等);
- DISTINCT;
- 导出(计算)列。
8.存储过程
(1)添加
如下假设添加一个计算会员id为5的用户,下订单订单实际支付价格的存储过程,传入一个订单金额的参数,传出实际支付金额的参数
-- 如果存在就删除calculate_amount存储过程 DROP PROCEDURE IF EXISTS calculate_amount; -- 创建存储过程calculate_amount CREATE PROCEDURE calculate_amount ( IN order_amount DECIMAL (10,2), OUT receivable_amount DECIMAL (10,2)) BEGIN -- 取出会员的折扣 SELECT discount FROM users WHERE id = 5 INTO @discount;-- 0.85 -- 计算折后价格 SELECT (order_amount*@discount) INTO receivable_amount; END; -- 调用calculate_amount存储过程 CALL calculate_amount (100,@receivable_amount); -- @receivable_amount调用变量不会输出,要select一下 SELECT @receivable_amount;
9.触发器
创建
create trigger 触发器名 before 操作名(insert,update,delete) on 表 for each row
- insert
(1)可引用NEW虚拟表
(2)before前也可被更新
(3)auto_increment插入前为0,后为自增数
- delete
(1)可引用OLD虚拟表
(2)OLD虚拟表数据为只读
- update
(1)可引用OLD和NEW的虚拟表
(2)NEW虚拟表在update之前也可改变
(3)OLD虚拟表不可改变
10.事务保留点
创建
SAVEPOINT sp1
回滚
rollback to sp1
这篇关于MySQL必知必会读后感的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-07MySQL读写分离入门:轻松掌握数据库读写分离技术
- 2024-12-07MySQL读写分离入门教程
- 2024-12-07MySQL分库分表入门详解
- 2024-12-07MySQL分库分表入门指南
- 2024-12-07MySQL慢查询入门:快速掌握性能优化技巧
- 2024-12-07MySQL入门:新手必读的简单教程
- 2024-12-07MySQL入门:从零开始学习MySQL数据库
- 2024-12-07MySQL索引入门:新手快速掌握MySQL索引技巧
- 2024-12-06BinLog学习:MySQL数据库BinLog入门教程
- 2024-12-06Binlog学习:MySQL数据库的日志管理入门教程