mysql one database_MYSQL学习笔记one
MYSQL 笔记
好久没写博客了,感觉时间过的好快,虽然没更文,但是自己没有放弃记录输出,这次记录下学习 MySQL 的一些知识。
1.MYSQL 中 NULL 和空值区别
空值长度为 0,null 没有长度,显示 null
函数 count 默认把列中 null 行去掉,空值会计算,函数 ifnull(parm1,parm2) 意为当 parm1 为 null 值时,结果为 parm2,不为null 时,结果为 parm1
MYSQL 中,普通索引和复合索引有值为 null 时是走索引的,资料上说空间索引不走
explain 可以查看语句执行详情
show keys(indexes) from table 查看表索引
全部插入 null 会报错
-- 1048 - Column 'one' cannot be null
添加索引
-- ALTER TABLE table_name ADD INDEX index_name(col_name);
--ALTER TABLE tb_test ADD INDEX index_oat (one, two);
--ALTER TABLE tb_test add INDEX index_two(two);
2.MYSQL触发器
显示库触发器 show triggers;
SHOW TRIGGERS [FROM schema_name];
其中可选参数 schema_name 即 Schema 的名称,在 MySQL 中 Schema 和 Database 相关,查看时可以指定数据库名。指定后会从指定的数据库查询,不定则从 USE database_name;切换的,当前工作数据库查询。
创建触发器
**CREATE TRIGGER
{ BEFORE | AFTER }
{ INSERT | UPDATE | DELETE }
ON
FOR EACH ROW
**
触发器名称 -- 触发器名字,最多 64 个字符,其命令规则和 MySQL 中其他对象的命名方式类似
{ BEFORE | AFTER } -- 触发器执行时间:可以设置为事件发生前或后
{ INSERT | UPDATE | DELETE } -- 触发事件:可以设置为在执行 INSERT、UPDATE、DELETE 操作时触发
表名称 -- 触发器所属表:触发器属于某一个表,当在这个表上执行 INSERT、UPDATE、DELETE 操作的时就会使触发器触发,一张表的同一个事件只能有一个触发器
FOR EACH ROW -- 触发器的执行间隔:FOR EACH ROW 子句通知触发器,每行执行一次动作
触发的 SQL 语句 -- 事件触发时所要执行的SQL语句。
例:
mysql> DELIMITER $ //将SQL语句的结束符设置为#
mysql> CREATE TRIGGER t_after_insert_userRoles
AFTER INSERT ON
userRoles
FOR EACH ROW
BEGIN
update users set isManager = 1 where userId = new.userId and new.roleId = 1;
END$
mysql> DELIMITER ; //将 SQL 语句的结束符设重置为;以不影响后续使用
删除触发器
DROP TRIGGER [IF EXISTS] [schema_name.]trigger_name;
3.MYSQL 数据库的事务
特性:
原子性(Atomicity)事务中的程序对数据库的修改操作要么全部成功,要么全部失败
一致性(Consistency)事务执行前和执行后数据的来源和去向保持平衡
隔离性(Isolation)并发时每个事务相互不影响,互相隔离
持久性(Durubility)事务一旦提交成功,应保证数据的完整存在
隔离级别:
A.读取未提交
B.读取已提交
C.可重复读(mysql默认级别)
D.可串行化(会导致大量超时现象和锁竞争)
oracle数据库支持两种B和D,默认为B
4.MYSQL 数据库 SQL 优化
explain+sql查看语句执行计划,type是sql语句查询的类型all是没有走索引,ref、eq_ref是走索引,type为index_merge,extra有intersect是并集索引
create index 名字_index on table(加索引字段,…),建单个或者联合索引
show warnings;是查询优化后的语句
查询的结果集为个别时,where后的条件都加索引
多表连接的字段上需要建立索引
where条件字段上需要建立索引
排序字段上需要建立索引
分组字段上需要建立索引
Where条件上不要使用运算函数,以免索引失效
多列索引还有最左前缀的特性,即索引的第一个字段sex要出现在where条件中
当where后的条件联合起来查询结果区分度高时推荐使用联合索引
MYSQ逻辑处理步骤如下图
mysql one database_MYSQL学习笔记one相关推荐
- B站《一天学会 MySQL 数据库》学习笔记
B站<一天学会 MySQL 数据库>学习笔记 老司机带我飞 职场十字诀:思考.计划.行动.总结.反思 关注他 4 人赞同了该文章 登录和退出MySQL服务器 # 登录MySQL $ my ...
- mysql性能优化-学习笔记
mysql性能优化-学习笔记
- 三、MySQL子查询学习笔记(标量子查询、列子查询、行子查询、表子查询 详解)
三.MySQL子查询学习笔记 7:子查询 含义: 一条查询语句中又嵌套了另一条完整的select语句,其中被嵌套的select语句,称为子查询或内查询:在外面的查询语句,称为主查询或外查询 分类: 一 ...
- mysql root密码忘记2018_MySQL数据库之2018-03-28设置及修改mysql用户密码学习笔记
本文主要向大家介绍了MySQL数据库之2018-03-28设置及修改mysql用户密码学习笔记 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 退出mysql方法 quit或者e ...
- mysql的sqlyog学习笔记(查询部分)(代码用命令行显示 )
索引 语言 查询 基础查询 select 查询列表 from 表名; 查询函数(调用函数,获取返回值) 起别名 +的作用 distinct的使用(去重) 查看表的结构 条件查询 按关系表达式筛选 按逻 ...
- mysql中depart_mysql 学习笔记
1)net stop mysql net start mysql 2)c:\mysql\bin\mysqladmin flush-privileges 3)登陆mysql后,用flush p ...
- 如何查看mysql my.ini_MySQL学习笔记(一)
MySQL 学习笔记 一.安装 Typical:经典安装 Custom:自定义安装 Complete: 完全安装 二.修改编码方式 [mysqld] myini:character-set-serv ...
- mysql over rank_SQL学习笔记 - 窗口函数OVER
Window Function 窗口函数 Perform calculations on an already generated result set ( a window).(在已生成的结果集上执 ...
- MySQL快速上手[学习笔记](三)
前言: 课程:<三大主流数据库快速上手>(点击跳转官方课程,b站有资源,可自搜) 笔记(点击跳转豆丁网) 此处是个人学习笔记,用作回顾用途 目录: 七.函数 八.视图 九.触发器 十.存储 ...
- MySQL快速上手[学习笔记](二)
前言: 课程:<三大主流数据库快速上手>(点击跳转官方课程,b站有资源,可自搜) 笔记(点击跳转豆丁网) 此处是个人学习笔记,用作回顾用途 目录: 四.索引 五.增删改 六.SQL语句 四 ...
最新文章
- 浅析网站结构如何开启优化工作
- 一些常用的图像数据库总结
- 转载:QTableView中嵌入可视化组件
- 苹果 M1 Mac 安装系统后创建用户失败的解决方法
- 深入探索Java工作原理:JVM,内存回收及其他
- Java分布式面试题( Session分布式解决方案)
- 深入理解JVM虚拟机(总结篇)
- 用R语言生成均匀设计
- BSN区块链服务网络介绍
- excel文件导出进度条的实现
- 配准带尺度点云的方法汇总
- 【302期】SpringBoot 项目鉴权的 4 种方式,你了解吗?
- 关于matlab中矩阵的运算
- 联想LJ2400激光打印机开机4灯闪烁维修分析
- siliconc8051f Silicon C8051F编程器使用出错解决办法
- 联发科AI解决方案芯片i700规格参数介绍
- 勾股数元组( 如果3个正整数(a,b,c)满足a2 + b2 = c2的关系)
- qa职业规划_从药品质检到软件“质检”,一名QA的自我进化之路
- 【JVM 由浅入深】JVM入门
- JAVA开发规范常用的技巧总结(共12个安全牛课堂)
热门文章
- 音频频谱特效 jaVa_基于Matlab dsp工具箱 的实时音频采集及频谱显示
- 以下程序运行后的输出结果是:int fun(int n){static int s=1;s*=n;return s;main(){int i,s=0;for(i=1;i<=4;i++){s+=f}}}
- Eclipse — 更改包名后导致服务器启动报异常
- spring aop源码分析总结
- Unity3D实习生面试题总结-图形学相关
- Winform 窗体关闭事件
- Struts2后台使用Request和Session方法
- 四则运算2之设计思路篇
- 大话设计模式--解释器模式
- Hibernate的导入和逆向工程生成JavaBean