MySQL
文章平均质量分 59
hacker_LeeFei
be what you wanna be
展开
-
MySQL left join精解
MySQL的left join,你真的用对了么2.初始化测试数据(数据量少,这里就直接insert了)示例1:left join里只有on关联,不放其他条件结果如下:由于where条件里的限制,查询结果只有一条数据结果如下:student的全量数据,teacher的第二条数据(t.mobile=s.mobile且t.is_del=0)结果如下:结果如下:...原创 2022-06-14 16:24:23 · 278 阅读 · 0 评论 -
误删库后,除了跑路,还能做什么?
一、防微杜渐:保护数据,不仅仅是DBA的事情,是每个开发人员都应该有的觉悟;先要做好预防,可以通过一下几个点:1.权限控制与分配(数据库和服务器权限)2.制作操作规范a. 脚本完善:备份脚本、执行脚本、验证脚本、回滚脚本3.定期给开发进行培训4.搭建延迟备库5.做好sql审计,只要是对线上数据有更改操作的语句(DML和DDL)都需要进行审核6.做好备份。备份的话又分为两个点.a. 如果数据量比较大,用物理备份xtrabackup。定期对数据库进行全量备份,也可以做增量备份。原创 2020-07-26 11:27:48 · 318 阅读 · 0 评论 -
Windows系统下的MySQL版本升级实操指南
Mysql的升级方式分为两种:原地升级和逻辑升级。这两种升级方式,本质没有什么区别的。只是在对数据文件的处理上有些区别而已。原地升级是直接将数据文件进行拷贝,而逻辑升级对数据文件的处理方式是通过逻辑导出导入,需要用到mysqldump。逻辑升级大家都理解,这种方式在数据量比较大的情况下花费时间比较长。原创 2020-06-30 17:34:25 · 21131 阅读 · 10 评论 -
MySQL常用DDL、DML、DCL、MDL、WAL语言整理
最近在刷MySQL课程,贴一下MySQL的常用名词缩写。整理来源于百度。一、DDLData Definition Language 数据库定义语言; 如create procedure之类创建数据库CREATE DATABASE [IF NOT EXISTS] DBNAME [CHARACTER SET 'CHAR_NAME'] [COLLATE 'COLL_NAME']修改:ALTER 删除:DROP(略)二、DMLData Manipulation Language 数据操纵语言原创 2020-06-11 09:40:24 · 4390 阅读 · 0 评论 -
MySQL的count()
前言:这里不讲count(*)和count(1)的区别,介绍的是count()的另一个隐藏的知识点。下面我们先来看一个例子:select 1 or null,0 or null;结果如下:补充知识点:在MySQL中,0或 NULL意味着假(0)而其它值意味着真(1)。布尔运算(age = 4 或者 age is null都是布尔运算)的默认真值是1。不能使用算数运算符与null做运算...原创 2020-04-03 14:07:13 · 320 阅读 · 0 评论 -
mysql的update
1 简单的update table set where2 多表赋值update示例如下 UPDATE tabel_a a,table_b b set a.column_a=b.column_b WHERE a.column_c = 0 and a.column_a is null and a.column_c = b.column_d;...原创 2020-04-02 15:30:22 · 595 阅读 · 0 评论 -
慢SQL的查看和终止
1、解决方法类似关掉linux的进程服务// 1.查看最近所有sql进程show full processlist; // 2.kill 会话号;kill 123456;原创 2020-01-15 09:08:41 · 543 阅读 · 0 评论 -
MySQL过周末
需求说明:查询***的本周增量mysql 周N时间点语法select subdate(curdate(),date_format(curdate(),'%w')-1) as "本周一";select subdate(curdate(),date_format(curdate(),'%w')-7) as "本周日";语法补充:DATE_FORMAT(date,format)...原创 2019-11-13 11:07:12 · 288 阅读 · 0 评论 -
POLAR DB for mysql
POLARDB for MySQL 版评测及同类横向对比一、前言“在数据库的选择上,MySQL成为中国开发者的最爱。相比SQLServer相对保守的数据库特点,中国开发者更喜欢开放性的数据库,同时又考虑到价格问题,那么Oracle不菲的价格也挡住了很大一批开发者。由于开源、价格等因素,在数据库选择上,要么是低价、开源的MySQL,要么就是高大上的Oracle。——云栖社区《2017中国开发者调...转载 2019-08-20 14:04:04 · 1337 阅读 · 0 评论 -
mysql触发器(小记)
一、查询已有触发器:show triggers;二、创建触发器遇到的坑:直接表设计–>触发器,是无法创建成功的三、成功实例:实例说明:当实例update时,计算实例相关的数值,并存入另一个表里;DROP TRIGGER IF EXISTS `tri_update_task`;DELIMITER $CREATE TRIGGER `tri_update_task` AFTER...原创 2019-08-06 14:11:19 · 296 阅读 · 0 评论 -
MySQL建索引的几大原则
建索引的几大原则1、最左前缀匹配原则,非常重要的原则,mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a 1="" and="" b=“2” c=""> 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整。2、=和in可以乱序,比...原创 2019-06-17 09:52:46 · 908 阅读 · 0 评论 -
mysql 中的true和false
MySQL保存boolean值时用1代表TRUE,0代表FALSE。boolean在MySQL里的类型为tinyint(1)。MySQL里有四个常量:true,false,TRUE,FALSE分别代表1,0,1,0原创 2019-05-23 13:37:01 · 16448 阅读 · 0 评论 -
[Navicat] 常用快捷键及注意事项
常用快捷键: 1. ctrl + q: 打开新查询窗口 2. ctrl + r: 运行当前窗口内的所有语句 3. ctrl + w: 关闭当前窗口 4. F6: 打开一个mysql命令行窗口 5. F7: 运行从光标当前位置开始的一条完整sql语句 —————————以下是然并卵的快捷键—————————————- 5. ctrl + n: 打开新查询窗口 6. ctrl + shi转载 2017-10-17 10:05:07 · 370 阅读 · 0 评论 -
SQL“多字段模糊匹配关键字查询”
情景1:同一个表里的多个字段SELECT * FROM orders o where concat(o.email,o.address) like "%关键字%"情景2:不同表里的多个字段SELECT * FROM line_items l,orders o where l.order_id=o.id and concat(l.quantity,o.email) like "%关...原创 2018-04-24 13:41:03 · 9696 阅读 · 0 评论 -
mysql去重那些事儿
需求数据库中存在一批数据,需要业务人员处理,然而,由于数据库中的数据存在大量的重复,因此,需要去重,仅保留一条数据即可,以减轻业务人员的工作量。首先,我去网上搜索了一些方法,如下:利用SQL,删除掉重复多余的数据,并且只保留一条数据。 1、查找表中多余的重复记录,重复记录是根据单个字段(teamId)来判断 select * from team where teamId in (...原创 2018-08-08 09:16:50 · 968 阅读 · 0 评论 -
[Err] 1071 - Specified key was too long; max key length is 767 bytes
问题描述:MySQL创建新表时报上述错误问题原因:1.MySQL版本过低时,支撑的key长度有限,比如我的版本,767bytes。2.表中index累加字段长度超过mysql支持长度:mysql建立索引时,数据库计算key的长度是累加所有Index用到的字段的char长度后,再按下面比例乘起来不能超过限定的key长度767bytes: latin1 = 1 byte ...原创 2018-08-23 12:12:51 · 3599 阅读 · 0 评论 -
MySQL的sql_mode模式
有个大坑,记录下,原始配置文件里的sql_mode有个模式ONLY_FULL_GROUP_BY,其意思是:对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么将认为这个SQL是不合法的,因为列不在GROUP BY从句中。如果自己sql中有group by,那你要小心了,下面提供两种解决方法,仅供参考:方法一:show VARIABLES LIKE ...原创 2018-11-08 10:20:07 · 324 阅读 · 0 评论 -
mysql 获取系统时间(毫秒数)
sql语句:SELECT TIME_TO_SEC(NOW()),NOW(),current_timestamp(),REPLACE(unix_timestamp(current_timestamp(3)),'.','');执行结果:最后一个,就是你想要的系统毫秒数了原创 2018-11-02 13:52:55 · 31224 阅读 · 4 评论 -
MySQL concat、instr、IFNULL实现多字段查询
MySQL语法说明一、mySql中IFNULL的使用说明IFNULL(expr1,expr2)如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值二、concat的使用说明mysql CONCAT(str1,str2,…)返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。或许有一个或多...原创 2019-01-15 10:04:39 · 1710 阅读 · 0 评论 -
MySQL学习之编码特性
前言:一直负责数据处理的核心环节,对于爬虫数据的特征变化也就非常敏感,商家为了凸显和个性化自己的信息,表情符号也经常出现在一些必要属性中。场景再现:### Cause: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x87\xB7\xF0\x9F...' for column 'goods_title' at row 1#...原创 2019-03-19 19:07:48 · 523 阅读 · 0 评论 -
mysql中insert into select from的使用
如何在mysql从多个表中组合字段然后插入到一个新表中,通过一条sql语句实现。下面写两个示例,读者可以根据自身实际套用。1.两张表a、b,把b表的一些字段查询插入到a表中 INSERT INTO db1_name(field1,field2) SELECT field1,field2 FROM db2_name #注意,field要对应2.三张表a、b、c,现在需要从表b和表c中分别...原创 2019-04-25 09:08:27 · 1306 阅读 · 0 评论 -
mysql中int、bigint、smallint 和 tinyint的区别与长度的含义
最近使用MySQL数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint。其中比较迷惑的是int和smallint的差别。今天就在网上仔细找了找,找到如下内容,留档做个总结:使用整数数据的精确数字数据类型。bigint从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字转载 2017-06-22 11:32:19 · 799 阅读 · 0 评论