![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL
MyXieZhiXin
互联网的一个打工人,欢迎关注我的个人微信公众号:程序员Hotel
展开
-
SELECT list is not in GROUP BY clause and contains nonaggregated column
首先打开数据库客户端错误信息如:nested exception is java.sql.SQLSyntaxErrorException: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'digitao.API1.name' which is not functionally dependent on columns in GROUP BY clause; this原创 2020-08-19 13:56:12 · 1169 阅读 · 0 评论 -
This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary log
1、本地解决办法:在mysql中执行以下命令SET GLOBAL log_bin_trust_function_creators=TRUE;2、也可以通过修改配置文件的方式解决:在my.ini(linux下为my.conf)文件中 [mysqld] 标记后加一行内容为(修改后需重启MySQL服务):log-bin-trust-function-creators=1原因解释来源于网络,出处作者不详:这是我们开启了bin-log,我们就必须指定我们的函数是否是1.D...原创 2020-08-10 17:33:01 · 740 阅读 · 0 评论 -
mySQL数据库Sql语句执行效率检查--Explain命令
EXPLAIN Output Columns列名 说明 id 执行编号,标识select所属的行。如果在语句中没子查询或关联查询,只有唯一的select,每行都将显示1。否则,内层的select语句一般会顺序编号,对应于其在原始语句中的位置 select_type 显示本行是简单或复杂select。如果查询有任何复杂的子查询,则最外层标记为PRIMARY(DERIVE...转载 2018-11-13 10:35:50 · 585 阅读 · 0 评论 -
MySql触发器对同表更新
触发器初始结构:DELIMITER $$CREATE TRIGGER `数据库名`.`触发器名` BEFORE/AFTER INSERT/UPDATE/DELETE ON `数据库名`.`表名` FOR EACH ROW BEGIN -- 逻辑、条件语句 END$$DELIMITER ;目的:当一张表中的某个字段值更新为特定值时,触发更新本...原创 2018-11-01 17:24:27 · 7846 阅读 · 4 评论 -
mysql数据库备份方式
一、备份1、使用SQLyog可视化工具备份,SQLyog工具可参考https://blog.csdn.net/lihua5419/article/details/73881837右键需要备份的数据库-备份/导出-备份数据库2、总有一些人不习惯使用可视化工具,可用命令行模式进行备份,打开cmd命令行窗口(1)输入命令:mysqldump -u root -p 数据库名称>...原创 2018-10-24 11:38:38 · 1289 阅读 · 0 评论 -
MySQL大表优化方案
原文链接:https://segmentfault.com/a/1190000006158186当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化。单表优化除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在 千万级以下,字符串为主的表在 五百万以下是没有太大问题的。而事实上很多时候MySQ...转载 2018-08-10 09:38:31 · 276 阅读 · 0 评论 -
mysql中float、double、decimal的区别
float类型表示单精度浮点数值,double类型表示双精度浮点数值,float和double都是浮点型,而decimal是定点型;MySQL 浮点型和定点型可以用类型名称后加(M,D)来表示,M表示该值的总共长度,D表示小数点后面的长度,M和D又称为精度和标度,如float(5,2)的 可显示为999.99,MySQL保存值时会进行四舍五入,如果插入999.009,则结果为999.01。...原创 2018-08-01 09:40:17 · 79706 阅读 · 2 评论 -
mysql 分组查询结果的总条数
首先先进行分组查询将上面查询结果作为表子查询会报错mysql子查询必须为其取别名原创 2018-07-12 10:51:07 · 6223 阅读 · 0 评论 -
mysql根据出生年月日计算年龄大小
SELECT age,DATE_FORMAT(NOW(),'%Y/%m/%d'),(YEAR(NOW())-YEAR(age)-1) + ( DATE_FORMAT(age, '%m%d') <= DATE_FORMAT(NOW(), '%m%d') ) AS 年龄 FROM users AS u另外大家可以研究下下面三种计算函数SELECT TIMESTAMPDIFF(Y...原创 2018-07-09 11:06:22 · 11074 阅读 · 2 评论 -
Mysql中时间戳格式和时间类型格式的装换
首先我有这样一个时间将此时间转换为时间戳格式:SELECT UNIX_TIMESTAMP(pst.ep_order_time) AS ep_order_time FROM prj_status_time pst WHERE pst.project_id='1541487873296';将时间戳转化为日期格式:SELECT FROM_UNIXTIME(1541520000...原创 2018-11-12 11:23:28 · 2652 阅读 · 0 评论 -
MySQL5.7.24解压版安装
今天拷贝正式环境数据库到本地的时候突然报错了,原因是前几日正式环境的数据库版本进行了升级,本地版本太低导致数据库不兼容,遂连夜整理出此篇文章供大家参考使用1. 链接下载mysql5.7.24压缩包 链接:https://pan.baidu.com/s/1bYGY5zp6XAFtOU1td219YQ 提取码:微信扫描关注我的个人微信公众号,回复:mysql5.7.24即可拿到密码关于个...原创 2018-12-13 21:05:46 · 739 阅读 · 2 评论 -
mysql函数之COALESCE函数
#COALESCE是一个函数, (expression_1, expression_2, ...,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。使用COALESCE在于大部分包含空值的表达式最终将返回空值。效果与IF函数和CASE WHEN 函数类似,不过要根据实际不同场景进行使用-- 返回1SEL...原创 2018-12-18 13:51:30 · 2469 阅读 · 0 评论 -
mysql函数之union all和union的区别
Union:对两个结果集进行合并操作,多表连接后会去除掉重复的记录没有重复行数据;Union相对于Union All因为做了去重操作,所以效率相对来讲稍微低一点Union All:对两个结果集进行合并操作,包括重复行数据,不会对两个结果集做任何处理;-- 结果集为1 2SELECT 1 -- 结果集1UNIONSELECT 2 -- 结果集2UNION SELECT 1 -...原创 2018-12-18 14:38:21 · 1345 阅读 · 0 评论 -
mysql保留两位小数
DECIMAL(P,S);P(有效位数)可储存的最大十进位数总数,小数点左右两侧都包括在内。有效位数必须是 1 至最大有效位数 38 之间的值。预设有效位数是 18。S (小数位数)小数点右侧所能储存的最大十进位数。小数位数必须是从 0 到 p 的值。只有在指定了有效位数时,才能指定小数位数。预设小数位数是 0;因此,0 <= s <= p。最大储存体大小会随著有效位数...原创 2019-01-10 16:01:26 · 5884 阅读 · 0 评论 -
MySQL数据库的事务
MySQL 事务主要用于处理操作量大,复杂度高的数据。简单说,用户A向用户B转账1000块钱,首先A的账户余额要减掉1000元,对应的用户B的账户需要增加1000元,类似的操作即可构成为一个事务。如果第一次操作用户A的余额成功减掉了1000元,但是银行的系统此时突然断电瘫痪导致用户B的账户金额增加失败,如果没有处理机制,那么将会是非常严重的事情在 MySQL 中只有使用了 Innodb 数据库...原创 2019-02-21 10:54:34 · 437 阅读 · 0 评论 -
如何查看mysql数据库操作记录日志?
原文鏈接:https://wenwen.sogou.com/z/q828320014.htm1、首先确认你日志是否启用了mysql>show variables like 'log_bin'。2、如果启用了,即ON,那日志文件就在mysql的安装目录的data目录下。3、怎样知道当前的日志mysql> show master status。4、看二进制日志文件用mysq...转载 2019-07-16 10:45:08 · 51332 阅读 · 2 评论 -
mysql替换函数REPLACE()用法
当我们所查出来的手机号需要隐藏中间的数字时可用到这个函数语句如下:SELECT REPLACE(phone, SUBSTR(phone,4,4), 'XXXX') AS phone FROM smart_platform_db.users新开通一个个人微信公众号,感兴趣的朋友可以扫描点击关注下哦,在接下的工作中的所感所想、优质资源也会在公众号内更新,希望我们可以一起交流共同...原创 2017-08-08 17:15:18 · 12555 阅读 · 0 评论 -
mysql数据库数据类型
int最大长度是11.如果在建表时不指定字段int类型的长度时,系统则默认生成长度为11的字段。11也是int类型的最大长度,其中第一位表示符号+或者-,后面十位表示数字。 如果指定了长度,该字段其实也是长度为11的字段,因为只要是int类型,系统都分配了长度11位。 所以,当我们在用mysql数据库建表时如果有字段为int类型则不用指定长度了。...原创 2018-07-02 13:55:09 · 281 阅读 · 0 评论 -
The content of element type "select" must match "(include|trim|where|set|foreach|choo
SELECT <if test="type==1"> SUM(csr.`score`) AS total_score, </if> <if test="type==2"> SUM(csr.`corrected_score`) AS total_score, </if> ...原创 2018-07-02 13:28:49 · 4468 阅读 · 0 评论 -
查询Mysql数据库的所有存储过程和函数
一、查询存储过程两种方法(1)查询SHOW PROCEDURE STATUS; -- 查询所有的存储过程SELECT * FROM MySQL.proc WHERE db = '数据库名字' AND `type` = 'PROCEDURE' -- 查询所有的存储过程(2)删除DROP PROCEDURE IF EXISTS 存储过程名; -- 删除存储过程二、原创 2017-07-28 16:08:49 · 5338 阅读 · 0 评论 -
Mysql触发器
DROP TRIGGER IF EXISTS triggerName;DELIMITER $create trigger triggerNameafter/before insert/update/delete on 表名for each row #这句话在mysql是固定的begin sql语句;end $DELIMITER;-- 创建表table1DR...原创 2017-08-09 10:51:50 · 313 阅读 · 0 评论 -
mysql将多行数据合并成一行显示
一、例如有一个student表,表结构如下二、表数据如下三、如果需要将每名学生的信息显示一行,则可用GROUP_CONCAT()函数将老师合并,执行结果如下所示GROUP_CONCAT()函数默认是以逗号符号分割,如果想自定义 可使用参数SEPARATOR语法如下所示:GROUP_CONCAT(teacher SEPARATOR ';')微信扫描下方二维码 更多...原创 2017-07-21 16:23:48 · 7903 阅读 · 2 评论 -
mysql对数据执行加密处理
一、新建一个test表结构如下,需要注意的是进行加密的字段类型需要设置成blob类型二、执行insert语句添加数据,需要加密的字段用AES_ENCRYPT(' ','key')处理 ,执行insert如下结果三、解密查询用AES_DECRYPT(' ','key')处理,查询结果如下原创 2017-07-21 15:36:20 · 1068 阅读 · 0 评论 -
用Excel批量写出sql语句
对于数据库中的一个表,需要执行的sql语句特别特别多,且语句都是相同的情况下,将数据库表导出Excel格式,写好一条语句,然后写一句公式获取对应的值,写好一条语句,将鼠标放在语句单元格的右下角下拉即可,然后可将所有的语句复制粘贴出去执行原创 2017-07-05 16:28:00 · 717 阅读 · 0 评论 -
汉字转拼音,用户表增加拼音字段,并将汉字姓名对应的拼音赋值给拼音字段
-- 1.users表里增加姓名拼音列ALTER TABLE users ADD name_pinyin VARCHAR(64)NULL COMMENT '姓名拼音';-- 2.创建汉字拼音对照临时表 CREATE TABLE IF NOT EXISTS `t_base_pinyin` ( `pin_yin_` VARCHAR(255) CHARACTER SET g原创 2017-07-05 16:51:31 · 1250 阅读 · 0 评论 -
MySQL Workbench 报错No database selected Select the default DB to be used by double-clicking its nam
对于初次使用Mysql Workbench的人来说,很可能都出现这种错误,它跟sqlserver和oracle数据库不同。因为没有选择默认的数据库,双击选择指定的数据库就ok了原创 2017-06-10 08:29:29 · 12744 阅读 · 2 评论 -
Mysql基本语句
1.查询当前服务器上有什么数据库show databases;2.创建数据库名称为MysqlDatacreate databaseMysqlData;3.删除数据库drop database MysqlData;原创 2017-06-10 09:06:42 · 325 阅读 · 0 评论 -
SQLyog导入sql数据文件报错 1045
There was error(s) while executing the queries .The query and the error message has been logged at:C:\Users\Administrator\AppData\Roaming\SQLyog\sqlyog.err.Please click on "Open Error File..." t原创 2017-06-15 16:09:29 · 22241 阅读 · 6 评论 -
Mysql分页
SELECT * FROM users LIMIT (page-1)*number,number; -- 其中page是页码,number是每页显示的条数原创 2017-08-24 14:24:45 · 308 阅读 · 0 评论 -
mysql日期函数
-- 当前年SELECT DATE_FORMAT(NOW(), '%Y');-- 当前年月SELECT DATE_FORMAT(NOW(), '%Y %m');-- 当前年月日SELECT DATE_FORMAT(NOW(), '%Y %m %d');//SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');SELECT NOW(),SYSDA...原创 2018-05-30 14:08:14 · 359 阅读 · 0 评论 -
mysql创建索引
-- 创建索引CREATE INDEX 索引名 ON 表名(索引字段);-- 创建唯一索引:唯一索引和主键索引与普通索引的区别是唯一,不重复。列值唯一,但是唯一索引可以有空值。CREATE UNIQUE INDEX 索引名 ON 表名(索引字段);-- 创建主键索引:主键索引不可以有空值。ALTER TABLE 表名 ADD PRIMARY KEY (id);-- 删除索引DROP INDEX ...原创 2018-06-05 13:41:06 · 277 阅读 · 0 评论 -
mysql增删改列
-- 添加列ALTER TABLE 表名 ADD 列名 VARCHAR(64) NULL COMMENT '该字段描述';-- 删除列ALTER TABLE 表名 DROP COLUMN 列名;-- 修改列ALTER TABLE 表名 MODIFY COLUMN 列名 字段类型 COMMENT '该字段描述';-- 删除表DROP TABLE IF EXISTS 表名;...原创 2018-06-12 09:24:45 · 280 阅读 · 0 评论 -
mysql增加数据库自带的数据更新和数据创建时间字段
ALTER TABLE 表名 ADD create_time TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据库自带创建时间';ALTER TABLE 表名 ADD update_date TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ...原创 2018-06-12 09:07:10 · 2642 阅读 · 0 评论 -
SQLyog连接数据库报错plugin caching_sha2_password could not be loaded
FLUSH PRIVILEGES; #刷新权限alter user 'root'@'localhost' identified by 'xzx123456';#重置密码,xzx123456就是变更后的密码,自己的密码自己更改下哦原创 2018-05-21 17:09:35 · 65535 阅读 · 83 评论 -
MYSQL最大连接数
打开mysql客户端,执行以下命令即可查看该数据库最大连接数SHOW VARIABLES LIKE 'max_connections';安装后的mysql默认的连接数是100,增加用户连接数解决办法:进入MySQL安装目录 打开MySQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_connections=1000 ,然后重起MySQ原创 2018-01-16 11:07:40 · 309 阅读 · 0 评论 -
mysql字符串转换成时间格式
SELECT DATE_FORMAT(hiredate, '%Y-%m-%d') FROM users ;原创 2017-11-01 16:30:04 · 3617 阅读 · 0 评论 -
java类型与mysql的映射对应表
感谢您的阅读。如果感觉文章对您有用,麻烦您动动手指点个赞,以资鼓励。谢谢!原创 2017-08-29 16:22:14 · 1192 阅读 · 1 评论 -
MySQL dos命令修改数据库密码
1.打开运行->cmd进入命令行模式2.输入mysql -uroot -p,回车3.安装mysql时有设置的密码,输入密码,回车4.如果要修改密码为123456,则输入以下命令update mysql.user set password=PASSWORD('123456’) where user='root'; 回车5.会显示Query OK,然后输入FLUSH PRIVI原创 2017-06-15 15:32:58 · 3825 阅读 · 0 评论