目录

工欲善其事

实践出真知

活跃标签: linux java mysql 待分类 js springboot win10 电路 vue macOS nginx esp32 git docker windows idea maven esp8266 python Arduino

存档:

标签: mysql (27)

【mysql】图片

该文章已经加密。

如果你想批量修改【mysql】的字段类型 并且还保留注释等信息的话 有更新!

如果你想批量修改【mysql】的字段类型 并且还保留注释等信息的话,可以这么搞 ↓ select concat('alter table ', TABLE_NAME, ' modify ', COLUMN_NAME, ' varchar(64) ', ifnull(COLUMN_DEFAULT, 'null'), ' comment \'', COLUMN_COMMENT, '\';') `sql` from information_schema.COLUMNS where TABLE_SCHEMA = '数据库' and TABLE_NAME = '表明' and COLUMN_NAME in ('改的字段', '改的字段', '改的字段') ;

[ MySql ] 查找大表和清理

查看整个库的大小 select concat(round(sum(data_length / 1024 / 1024), 2), 'MB') as data from information_schema.tables where table_schema = 'schemaName'; 查看表的大小 select TABLE_NAME, concat(round(data_length / 1024 / 1024), 'MB') 'size' from information_schema.tables where table_schema = 'schemaName' order by DATA_LENGTH desc 这里的单位是MB可以自己改,我这边是按照从大到小的顺序排列的。找到表后 可使用 truncate 或delete 删除

[ MySql ] 宝塔安装后设置root账号可外部访问配置

8.X 版本的配置 mysql> create user 'root'@'%' identified by 'a123456'; Query OK, 0 rows affected (0.00 sec) mysql> grant all privileges on *.* to 'root'@'%'; Query OK, 0 rows affected (0.00 sec) 8.0之前的配置 mysql> grant all privileges on *.* to 'root'@'%' identified by 'PASSWD';

[ Mysql ] 保存的私活图片

该文章已经加密。

[ Mysql ] 有多坑!!! 持续更新...

1、concat concat 中有一个是空(null)所返回的值就是空 解决办法,用ifnull判断一下: select concat( (select parent_initials from busi_testing_type where id = '1627593512277184514'), ifnull((select point_code from busi_acquisition_point where id = '1'), '') ) encode;

[ MySQL ] 8.0 修改 only_full_group_by 默认分组问题 有更新!

如果查数据时 报错 sql_mode=only_full_group_by 这种情况是因为你的mysql不支持多select分组,进行如下配置即可: 查询版本: SELECT VERSION(); 8.0.12 方法一:直接修改数据库配置 首先,打开数据库,输入 select @@global.sql_mode; # 返回值如下 > ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION # 果里面包含 ONLY_FULL_GROUP_BY,那么就重新设置,在数据库中输入以下代码,去掉ONLY_FULL_GROUP_BY即可 SET GLOBAL sql_mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION'; 但是,当我们再一次重新启动数据库时,可能会恢复原样,还是会出现ONLY_FULL_GROUP_BY的报错,这就需要我们再一次修改数据库配置。 方法....

[ MySQL ] 删除表的时候忽略外键约束

清理带外键的表一般不好操作,因为你尝试删除的表中的字段被用作了其他表的外键,因此在删除这个表(父表)之前必须先删除具有外键的表(子表)。也就是说,删除表的过程需要和创建表的过程一致。 但是这往往不可接受,一方面如果表太多了,手动排序有点不可接受;另一方面,现在还没有自动的工具对进行排序(其实也不是不能实现)。因此,mysql中提供了一个变量FOREIGN_KEY_CHECKS来设置是否在必要的时候检查外键约束。一般比较推荐这样做: SET FOREIGN_KEY_CHECKS = 0 -- DROP语句 SET FOREIGN_KEY_CHECKS = 1; 不过,要是忘记了最后一句也没太大关系,这个变量是基于Session的,也就是说,当你关闭了客户端,重新建立连接的时候,这个变量会恢复默认值。如果需要在全局范围内****不检查外键约束(这种情况会比较少吧),可以这样做: SET GLOBAL FOREIGN_KEY_CHECKS = 0; # 或者 set @@global.FOREIGN_KEY_CHECKS = 0;

【Mysql】字符串操作 有更新!

Mysql字符串截取关键字: left()、right()、substring()、substring_index() 一.从左开始截取字符串 用法: left(str, length),即:left(被截取字符串, 截取长度) SELECT LEFT(‘www.csdn.com’,5) 结果为:www.c 二.从右开始截取字符串 用法: right(str, length),即:right(被截取字符串, 截取长度) SELECT RIGHT(‘www.csdn.com’,6) 结果为:dn.com 三.截取特定长度的字符串 用法: substring(str, index),即:substring(被截取字符串, 从第几位开始截取) substring(str, index, length),即:substring(被截取字符串,从第几位开始截取,截取长度) 1.从字符串的第9个字符开始读取直至结束 SELECT SUBSTRING(‘www.csdn.com’, 9) 结果为:com 2.从字符串的第9个字符开始,只取3个字符 SELECT SUBSTRING(‘www.csdn....

修复MySql表出现Table 'XXX' is marked as crashed and should be repaired 的方法

首先用root进入数据库,列如出现问题的表名为XXX 检查 check table XXX 修复 repair table XXX

【MySql】日常总结

mysql的in关键字使查询出来的数据与in的条件一样排序 select * from table where id IN (3,6,9,1,2,5,8,7) order by field(id,3,6,9,1,2,5,8,7); field() 函数 : 是将查询的结果集按照指定顺序排序。 格式: FIELD(str,str1,str2,str3,...)

【MySql】mysqldump 导库常用参数

-t:导出数据不导出结构 -d:导出结构不导出数据 不加参数:导出数据和表结构

MySQL information_schema库解密

1、获取所有列信息(COLUMNS) SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='数据库名'; COLUMNS表:提供了关于表中的列的信息。详细表述了某个列属于哪个表。各字段说明如下: 字段含义 table_schema表所有者(对于schema的名称) table_name表名 column_name列名 ordinal_position列标识号 column_default列的默认值 is_nullable列的为空性。如果列允许 null,那么该列返回 yes。否则,返回 no data_type系统提供的数据类型 character_maximum_length以字符为单位的最大长度,适于二进制数据、字符数据,或者文本和图像数据。否则,返回 null。有关更多信息,请参见数据类型 character_octet_length以字节为单位的最大长度,适于二进制数据、字符数据,或者文本和图像数据。否则,返回 nu numeric_precision近似数字数据、精确数字数据、整型数据或货币数据的精度。否则,....

[ Mysql ] 中方法整理 有更新!

字符串替换操作REPLACE mysql中替换函数 REPLACE(s,s1,s2) 使用字符串 s2 替换字符串 s 中所有的字符串 s1。 【实例】使用 REPLACE 函数进行字符串替换操作,输入的 SQL 语句和执行过程如下所示。 mysql> SELECT REPLACE('aaa.mysql.com','a','w'); +----------------------------------+ | REPLACE('aaa.mysql.com','a','w') | +----------------------------------+ | www.mysql.com | +----------------------------------+ 1 row in set (0.00 sec) 由运行结果可以看出,使用 REPLACE('aaa.mysql.com','a','w') 将“aaa.mysql.com”字符串的“a”字符替换为“w”字符,结果为“www.mysql.com”。 版本是否支持 5.7否 8.0是

MYSQL排序后 分页 被你忽略的坑

差点把锅推给了框架 = =! 问题描述 数据分页时需要根据数据记录创建时间create_time字段倒序,即使用order by create_time desc limit ?,?,但是我发现,全选第一页后切到下一页竟然有零零散散几个被选中的数据。当时以为脏数据清掉后再次导入发现了同样的问题。 问题原因 期初还很好奇,总数没问题,总查询也没问题,为什么数据会重复了,然后会把部分数据给覆盖了。后来,通过查看SQL发现,是根据时间进行排序的,然而 这个时间 恰恰 好多数据都是 同一时间插入,或者 设置的 同一时间。 先后执行 总查询(也就是不分页),是没有重复。 再次执行分页查询,分两页查询就有了出路。(且,两次查询出来的数据和总查询数据不一样了) 后来 发现,当SQL中ORDER BY待排序字段值相同时,系统对数据的排序可能变得随机,即一会儿这条数据在前面,一会儿这条数据在后面了 ,所以当翻页的时候我们很容易便看到了重复的数据。 SQL中ORDER BY相同值结果乱序的具体原因 查阅了Goole和相关资料,大概总结了这种情况的原因。其实发生这种现象是“故意”设计的。 如果没有指定ORD....

Mysql 8.0 之后的Json 类型玩法

首先 json 类型有两种: // 数组 var array = [...]; // 对象 var object = {...} MySQL8.0开始支持JSON格式,可以对JSON格式的数据进行高效的访问。 和原来JSON格式的字符串相比,JSON格式有以下的优点: 1,自动验证。错误的JSON格式会报错。 2,存储格式优化。数据保存为二进制格式,文件存储很紧凑,读取速度快。 3,MySQL可以通过键或数组索引查询和修改对应的值,不用把整个字符串都读出来。 一些其他的介绍: 1,JSON格式需要的磁盘空间和longblob或longtext差不多。 2,JSON格式的默认值只能是null。 3,JSON格式的列不能直接建立索引,可以建立JSON索引。 4,JSON格式的key必须是字符串格式。value可以是字符串,数字,布尔型。 5,JSON格式默认使用utf8mb4字符集,utf8mb4-bin排序,其他字符集使用JSON格式需要做字符集转换。ascii或utf8不用转换,他们是utf8mb4的子集。 6,大小写敏感,而且true,false,null这些关键字在JSON格式里.....

mysql 创建表标准语句

create table IF NOT EXISTS test_user ( id int auto_increment, username varchar(255) null, password varchar(255) null, mobile varchar(255), primary key (id) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 comment '权限测试用的表';

mysql

拯救数据库方法 alter table tableName discard tablespace;# 卸载表空间 # 拷贝 idb文件后 alter table tableName import tablespace ;# 导入表空间

mysql 聚合函数 (个人收集的)

sum(列名) 求和 max(列名) 最大值 min(列名) 最小值 avg(列名) 平均值 first(列名) 第一条记录 仅Access支持 last(列名) 最后一条记录 仅Access支持 count(列名) 统计记录数 注意和count(*)的区别 group_concat() #统计group by之后的相同字段

Mysql 全局查找

查询数据库的表 SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA like 'child%';