mysql
mysql基础查询以及问题总结
前方太黑暗
这个作者很懒,什么都没留下…
展开
-
mysql 使用存储过程 实现树节点的获取
如图:表数据这样的一棵树,如何获取“高寅瑞”下的所有节点(一条sql语句是肯定搞不定的)通过存储过程来写DELIMITER //CREATE FUNCTION `getChildLst`(rootId INT)RETURNS varchar(1000) READS SQL DATABEGIN DECLARE sTemp VARCHAR(1000); DECLARE sTempChd VARCHAR(1000); SET sTemp = '$';原创 2020-06-03 17:59:20 · 251 阅读 · 0 评论 -
mysql 笛卡尔积
1、mysql笛卡尔积如图:我定义3张表(A、B、C)执行如下sql,查看执行顺序是 a-->b-->c此时我改变A和C表的数据个数执行顺序变成了c-->b-->a相同的sql,由于表数量的改变造成表的执行顺序不一致的原因是:笛卡尔积2、子查询情况下,id值会不同结论:1、id值相同,从上往下 顺序执行,数据少的表优先执行,大的表后执行2、id值不相同,id值越大越先执行大家有疑问可以添加qq群:789318548.原创 2020-06-02 11:10:29 · 1473 阅读 · 0 评论 -
为什么说数据量越大建索引越好呢?B树解答下
大家都知道索引其实就是数据结构。我们经常使用的就是B树。这里我用一个简单的例子来说明,数据量越大,建立索引越好。如图:我画了个数据结构左侧是表里面的数据,右侧是根据年龄尽量的索引。现在我们想要查找年龄为20的数据,在左侧会进行全表扫描,共查找7次,才找到。右侧,在索引的情况下,查找2次就找到了。可能有人会说,7次和2次差不了多少,这只是在数据量小的情况下。数据量大的情况下,差的可是很多的。而且B数类似二叉树。相信大家都知道二叉树是怎么回事,这样比如我们在对索引字段进行排序时,是不..原创 2020-05-30 16:42:07 · 1038 阅读 · 0 评论 -
原来都是&惹得祸
不知道大家有没有碰见过mysql数据库乱码的问题,比如添加一个学生,发现学生的姓名 变成了???号网上有很多是更改my.ini配置文件,更改数据库的默认值。注意:我配置的链接 2个链接只是&和&的区别,就是因为写成了&造成xml解析有问题,所以才导致插入的数据乱码,改成&解决此问题...原创 2018-09-12 15:33:26 · 186 阅读 · 0 评论 -
如何理解SQL注入(攻击)
本文主要针对SQL注入的含义、以及如何进行SQL注入和如何预防SQL注入让小伙伴有个了解。适用的人群主要是测试人员,了解如何进行SQL注入,可以帮助我们测试登录、发布等模块的SQL攻击漏洞,至于如何预防SQL注入,按理说应该是开发该了解的事情~但是作为一个棒棒的测试,搞清楚原理是不是能让我们更加透彻地理解bug的产生原因呢~好啦,话不多说,进入正题~如何理解SQL注入(攻击)?SQL注入是...转载 2019-06-14 15:54:10 · 549 阅读 · 0 评论 -
mysql日期格式化大全
DATE_FORMA T(date, format) 根据格式串format 格式化日期或日期和时间值date,返回结果串。 可用DATE_FORMAT( ) 来格式化DATE 或DATETIME 值,以便得到所希望的格式。根据format字符串格式化date值: %S, %s 两位数字形式的秒( 00,01, . . ., 59) %i 两位数字形式的分( 00,01, . ....转载 2019-06-25 12:01:34 · 5068 阅读 · 0 评论 -
mysql 查看授权ip
usemysql;select * from user;当我们授予权限后,一定要记得flush下FLUSH PRIVILEGES原创 2019-07-15 09:58:26 · 1531 阅读 · 0 评论 -
偶然间的发现,索引不起作用以及强制使用索引
一次同事反映说他有一条sql的处理时间很长,快20s才能处理完如图:查询时间为19s,最外层dg_pushcert表的数据量为10w多,数据量不是很多。此时想到的就是索引问题。之后,同事加上索引以后,发现没什么变化,还是原来的处理时间。这就蒙了。单拿出来SELECT date,`to`,usrid,`status` FROM dg_pushcert FORCE...原创 2019-08-07 09:56:09 · 498 阅读 · 0 评论 -
Mysql 哪些操作会导致创建的索引失效
1、or的使用(并不是所有的or条件都是失效的)account_name 我创建了索引,查询也的确走了索引,那么来试试or查询一让走了索引,(所以不能轻易的说使用or索引就失效了)当我将or两边的查询条件换了,account_id并没有创建索引,此时查询没有走索引,走的全表扫描。总结:or条件2边都创建索引,他还是走索引的,就如我第二张图所示,只有2边有一个没有创建...原创 2019-08-07 17:23:25 · 1436 阅读 · 2 评论 -
记录centos7 安装mysql5.7完整教程
1、查看防火墙是否开启(命令:systemctl status firewalld)如图:表示防火墙是开启的。2、将防火墙关闭掉(命令:systemctl stop firewalld)3、检查系统中有没有已经存在的mysql(防止安装出错)(命令:yum list installed | grep mysql)没有mysql数据库(如果有:yum -y remov...原创 2019-08-10 18:26:18 · 229 阅读 · 0 评论 -
mysql 启动报Initialization of the server's UUID failed because it could not be read from the auto.cnf
mysql启动报错查看错误日志2019-08-10T13:28:50.522771Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with s...原创 2019-08-10 21:45:24 · 3657 阅读 · 1 评论 -
mysql5.7 搭建主从服务(以及注意事项)
原理就是:从服务器到主服务器上来共享主服务器的日志文件1、首先准备2个数据库2、128这个数据库作为主数据库修改my.cnf文件,加入(log-bin=mysql-bin binlog_format=mixed)3、重启mysql (service mysqld restart)4、创建从连接主的账号(在主端)GRANT replication slave ...原创 2019-08-10 22:17:12 · 650 阅读 · 0 评论 -
mysql处理大数量问题 Packet for query is too large (4486793 > 1048576)
使用mybatis批量出入数据时,报错查的原因是mysql默认的插入 就允许1M此时,我们可以去修改数据库,但是注意 修改后需要重启数据库,而我这里不行,数据库不能随便重启,所以只能换种插入方式,使用myql的load方法进行数据插入<select id="insertKeywordByFile" parameterType="com.timelyreport.mode...原创 2019-09-05 17:48:34 · 1544 阅读 · 0 评论 -
mysql LOAD DATA 碰见的坑
1、使用load data 发现决定路径不好使,总是出来mysql默认数据存储路径Can't get stat of '/home/mariadb/mysql/data/E:/360/report/chuchong/1111.csv' (Errcode: 2 - No such file or directory)解决办法是没有使用localLOAD DATA LOCAL INF...原创 2019-09-05 18:02:07 · 2786 阅读 · 0 评论 -
mysql sql语句中 日期函数的使用
select now(); 获取当前时间2018-08-30 09:44:31select CURDATE(); 获取当前日期2018-08-30select CURTIME(); 获取当前时间09:46:15格式化日期 使用data_format()函数SELECT DATE_FORMAT(NOW(),'%m/%d/%Y') 08/30/2018SEL...原创 2018-08-30 10:02:52 · 2500 阅读 · 0 评论 -
mysql中将查询出来的null转为0
SELECT COALESCE(sum(expose),0) ex,COALESCE(sum(clicks),0) cl,COALESCE(sum(cost),0) co FROM oppo_app_total_hour_1000015941 where owner_id = #{owner_id} AND date_time >=#{startTime} and date_tim...原创 2018-08-23 17:04:05 · 6724 阅读 · 0 评论 -
mysql的内连接、左外连接、右外连接、完全连接
1、内联接(典型的联接运算,使用像 = 或 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students和courses表中学生标识号相同的所有行。 2、外联接。外联接可以是左向外联接、右向外联接或完整外部联接。 在 FROM子句中指定外联接时,可以由下列几组关键字中的一组指定: 1)LEFT JOIN或LEFT OU原创 2016-12-28 08:51:12 · 532 阅读 · 0 评论 -
mysql中数据的存储范围
1、int 最多存储10位数字,即-2147683648 到2147683647 4字节 。当存储的11111111111位数字后,将默认存储int的最大值(2147683647);当存储的-11111111111位数字后将默认存储int的最小值(-2147683648);2、CHAR定长字符串0~255字节 同VARCHAR3、VARCHAR可变长字符串0~255字节 ...原创 2016-12-20 09:19:11 · 1554 阅读 · 0 评论 -
mysql中You can't specify target table for update in FROM clause错误
mysql中You can't specify target table for update in FROM clause错误的意思是说,不能先select出同一表中的某些值,再update这个表(在同一语句中)。 例如下面这个sql:delete from tbl where id in ( select max(id) from tbl a where EXI原创 2017-02-08 10:51:49 · 2165 阅读 · 0 评论 -
Oracle中json转CLOB
项目开发中将mysql开发的系统转成oracle开发时,出现CLOB转型的错误抛出的异常[org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver]-Resolvingexceptionfromhandler[publiccom.waysoft.com...原创 2017-03-10 13:39:40 · 7518 阅读 · 1 评论 -
oracle与mysql差别
项目开发中 mysql转型oracle遇到的兼容问题一、查询mysqlselect * from sys_role where id in (select a.id from(SELECT id FROM sys_role where create_organ_id IN ('1') or create_depart_id IN('原创 2017-03-10 17:16:21 · 343 阅读 · 3 评论 -
mysql数据库乱码
问题:由于mysql编码原因会导致数据库出现乱码。解决办法:修改MySQL数据库字符编码为UTF-8,UTF-8包含全世界所有国家需要用到的字符,是国际编码。具体操作:1、进入MySQL控制台mysql -uroot -p #输入密码进入status; #查看当前MySQL运行状态,如下图所示:系统运维 www.osyunwei.co转载 2017-03-07 17:35:02 · 188 阅读 · 0 评论 -
mysql 多行并在一行查询语句的写法
使用关联关系是合并不了的 此时使用函数来解决SELECTa.place_id_,a.name_, a.organ_name_,(select group_concat(b.organ_name_ Separator ',') from m604020_meeting_place_template b where b.place_id_=a.place_id_ group b原创 2017-09-07 16:38:07 · 1512 阅读 · 0 评论 -
mysql5.7.9安装及配置
1.下载简易版的mysql5.7.9 在bin里打开cmd之后 输入 mysqld 配置成功后 发现登录不上去需要修改密码 需关闭mysql服务 1、首先在my.ini目录中配置skip-grant-tables 2、在cmd中 直接输入 mysql -u root -p 出现输入password 直接敲回车即登录3、登录后需要修改root的密码4原创 2017-11-08 10:27:56 · 1097 阅读 · 0 评论 -
mysql 优化
1. 为查询缓存优化你的查询大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作表而直接访问缓存结果了。这里最主要的问题是,对于程序员来说,这个事情是很容易被忽略的。因为,我们某些查询语句会让MySQL不使用缓存。请看下面的转载 2017-10-24 17:13:29 · 163 阅读 · 0 评论 -
mysql 面试题
1、MySQL的复制原理以及流程基本原理流程,3个线程以及之间的关联;2、MySQL中myisam与innodb的区别,至少5点(1)、问5点不同;(2)、innodb引擎的4大特性(3)、2者selectcount(*)哪个更快,为什么3、MySQL中varchar与char的区别以及varchar(50)中的5转载 2017-10-24 17:37:17 · 293 阅读 · 0 评论 -
navicat 连接不上数据库(一台机器 访问 另外一台机器)
navicat装在机器A上,ip地址为ipa。mysql数据库装在机器B上,ip地址为ipb。1、进入机器B中mysql数据库的命令行,输入grant all on *.* to 'root'@'ipa' identified by 'password';1其中ipa为被授权机器A的ip地址,password为机器B中mysql数据库的密码。2、在机器A的navic转载 2017-12-11 15:20:41 · 2042 阅读 · 0 评论 -
mysql设置自增主键的起始值,值查询下一个自增的值
mysql设置自增主键的起始值alter table cace_teach_material AUTO_INCREMENT =105查询下一个自增的值SELECTauto_incrementFROMinformation_schema.`TABLES`WHEREtable_name = 'cace_teach_material'AND TABLE_SCHEMA = 'u...原创 2018-04-19 09:45:25 · 4467 阅读 · 0 评论 -
mysql数据迁移 一个表的数据插入到另外一个表,限定某些字段插入
项目开发后,开始移植之前老系统的数据,需要将旧数据迁移到新的数据库中,碰见了表设计不一样的问题旧数据给的一个xls文件,需要先将旧数据导入的一个临时表中如图:sqlresults 表数据subject_group_r表结构现在需要exam_id对应data_id,target_type类型为EXAM变为SUBJECT,subject_id为113920,group...原创 2018-07-09 17:44:26 · 11885 阅读 · 0 评论 -
mysql汉字按英文字母排序
按照汉字的拼音排序,用的比较多是在人名的排序中,按照姓氏的拼音字母,从A到Z排序;如果存储姓名的字段采用的是GBK字符集,那就好办了,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字3755个采用拼音排序,二级汉字就不是了,但考虑到人名等都是常用汉字,因此只是针对一级汉字能正确排序也够用了)。直接在查询语句后面 添加 order by name asc; 查询结果按照姓氏...原创 2016-12-23 08:44:23 · 2503 阅读 · 0 评论