我们都知道,MySQL中关于字符,有char和varchar两种常用的类型,可能在平时的使用过程中,大家不会去关心这两种类型的区别,只是会用就可以了,或者说看到过一些它们的区别,但是没有时间去测试,今天有时间了,我将这两种类型的具体情况实验一把,让大家直观感受下,纯属分享,大神请绕道。 ​ 先说说理论吧。 ​ char类型为固定长度的字符串,比如说char(10),它定义了指定的字符串长度最大为10个字符,如果你现在输入一个字符串为’12345678’,那么它在char类型中到底会占用多少个字符呢?答案是10个,后…

2022-09-24 0条评论 20点热度 0人点赞 admin 阅读全文

MySQL字符串截取,需要用到substr(等价于或者) SUBSTR(string, start, length) substring(string, start, length) mid(string, start, length) 或者: SUBSTR(string FROM start FOR length) substring(string FROM start FOR length) mid(string FROM start FOR length) 参数说明 参数 说明 string 必填。需要处理的…

2022-09-19 0条评论 19点热度 0人点赞 admin 阅读全文

MySQL中搜索我们一般是使用like关键词来搜索,不过我们还可能遇更加复杂的搜索条件,例如需要正则表达式(写过程序的一般都知道)去寻找的情况, 匹配字符串 匹配字符串是正则表达式最基础的应用。我们先给出一个例子:我们从一个用户表中查询出名字中包含有100数字的用户 SELECT * FROM my_user WHERE `name` REGEXP '100';   我们得到了用户ID为1的用户:小红100 该语句中不同于之前的语句,我们使用REGEXP关键字代表后面为正则表达式 这条语句看起来和LIKE…

2022-08-26 0条评论 52点热度 0人点赞 admin 阅读全文

MySQL在插入完一条数据库后,要知道插入的行的ID 使用来实现,代码如下: INSERT INTO t_table (col1, col2,...) VALUES ('val1', 'val2'...); SELECT LAST_INSERT_ID(); 以上会查询出最后一个insert出来的数据的ID,而且不用担心多用户访问问题,它是根据你的connection(session)来控制的,只会得到你这个连接状态下的最后一个insertId,如果其他人(或者客户端程序)也连着数据库操作,是相互不受影响的。

2022-08-18 0条评论 125点热度 0人点赞 admin 阅读全文

MySQL中使用函数,给时间日期增加时间间隔,相应的,就是减少时间间隔。 date_add示例如下: select now(); -- 当前时间 select date_add(now(), interval 1 day); -- 加1天 select date_add(now(), interval 1 hour); -- 加1小时 select date_add(now(), interval 1 minute); -- 加1分钟 select date_add(now(), interval 1 second…

2022-08-17 0条评论 41点热度 0人点赞 admin 阅读全文

有时候需要在MySQL服务器层面去查找sql的执行记录,例如有多个应用的时候,希望看到MySQL的SQL执行情况。 执行SQL命令: SHOW VARIABLES LIKE 'general%'; mysql> SHOW VARIABLES LIKE 'general%'; +------------------+---------------------------------+ | Variable_name | Value | +------------------+------------------…

2022-08-13 0条评论 82点热度 0人点赞 admin 阅读全文

MySQL中select查询出来结果希望按照某个字段的内容且指定的顺序,之前有类似的需求,按照指定内容排序,详见:https://blog.terrynow.com/2021/02/23/sql-order-by-specfic-value/ 另一种情况,比如要查一组数据in某一个数组中,但是按照指定数组的顺序排序,例如: select * from table where id in (1,5,4,3) 我们希望出来的结果,也是按照id给定的顺序:1,5,4,3来排序 MySQL可可以使用order by fie…

2022-08-10 0条评论 51点热度 0人点赞 admin 阅读全文

应用程序报错,但是没有记录相关的SQL日期,所以想要查MySQL服务器最近的错误SQL来进一步排查。 在performance_schema中语句时间记录表中针对每一条语句的执行状态都记录了较为详细的信息,其中就包含了执行错误信息。 一、查看语句记录功能是否开启 记录语句信息的表一般为performance_schema中的四张表,分别为 events_statements_current,默认记录每个线程最近的一条SQL信息 events_statements_history,默认记录每个线程最近的十条SQL信息…

2022-07-27 0条评论 59点热度 0人点赞 admin 阅读全文

开发中需要导出数据库结构说明文档交付给客户或者拿出来讨论等,如果手工去写的话,还是比较费劲的,不过可以使用screw来自动生成,如下图所示,是利用screw自动生成的数据库说明文档。 一、数据库支持 MySQL MariaDB TIDB Oracle SqlServer PostgreSQL Cache DB 二、配置 1、pom文件 引入screw核心包,HikariCP数据库连接池,HikariCP号称性能最出色的数据库连接池。 <!-- screw核心 --> <dependency>…

2022-07-22 0条评论 94点热度 0人点赞 admin 阅读全文

例如做一些剔重操作(利用自己表某些字段group出来的信息,再进行更新或者删除) update t_table set is_delete=1 where id not in ( select min(id) from t_table group by email ) 会报错提示如下信息: 1093 - You can't specify target table 't_test' for update in FROM clause 原因就是MySQL不允许同时更新和删除一张表,也就是你不能以一个查询的结果为条件 …

2022-07-12 0条评论 100点热度 0人点赞 admin 阅读全文
12