![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
LC超人在良家
记录一下平时的工作
展开
-
linux上操作sql导出文件
提前创建文件,对于excel表格只支持xls的格式不支持xlsx的。关闭导出操作 - nopager;原创 2023-03-27 11:41:30 · 1379 阅读 · 0 评论 -
数据库中存储数组的两种格式(带不带[])的解析
就像devices字段这样从数据库中取出成数组是。原创 2023-03-15 11:15:24 · 588 阅读 · 0 评论 -
mybatis的的sql片段的使用
【代码】mybatis的的sql片段的使用。原创 2023-03-06 16:04:50 · 213 阅读 · 0 评论 -
数据库中表数据类型是Blob的处理
但我们用varchar 255 来存储数据的时候,可能不够用,甚至使用text也不够,那这个时候就可以使用Blob类型blob 对应的就是java的byte[] 但是这样数据太长了,所以可以使用ByteBuffer;前端还是传递一个字符串过来,然后我们把字符串转换成byte[] 存储进ByteBuffer;..............................原创 2022-06-14 19:10:32 · 4441 阅读 · 0 评论 -
动态sql
set+if<update id="updateProcessAssignee"> update pc_process_assignee <trim prefix="set" suffixOverrides=","> <if test="assignee!=null">assignee = #{assignee},</if> </trim> where原创 2022-06-11 16:42:12 · 108 阅读 · 0 评论 -
linux下让mysql不区分大小写
mysql数据库一般表名都是不区分大写小的,但这个不区分大小写只在windows系统中有效,在linux系统中是区分大小写的;所以可能会遇到上以下几种情况:①、linux生产环境的时候报错,告诉你表不存在 – 因为区分大小写②、在windows环境上把一张表的名字改换大小写,告诉你表已存在 — 因为不区分大小写我们是想要mysql不区分大小写的;要想让mysql不区分大小写,需要配置mysql配置文件:...原创 2022-06-10 09:32:55 · 1194 阅读 · 0 评论 -
服务器上的mysql如何读取sql文件
输入命令mysql -u root -p-A,再输入密码,-A是进入一种模式,防止表过大没法访问数据库创建数据库,命令为create database 数据库名(注意:在执行数据库语句后面记得加;结尾)show databases;导入数据库脚本将项目的sql文件复制到系统的目录下切换到需要的数据库 use 数据库名;执行sql (source后面别忘记空格)source zycx.sql;...原创 2022-05-07 16:18:21 · 1677 阅读 · 0 评论 -
删除一个数据库中的所有表
先使用sql查出所有表的删除sql命令SELECT concat('DROP TABLE IF EXISTS ', table_name, ';')FROM information_schema.tablesWHERE table_schema = 'activiti_test';// table_schema 是数据库的名字然后在执行得到有删除命令DROP TABLE IF EXISTS act_ge_bytearray;DROP TABLE IF EXISTS act_id_use原创 2022-04-27 10:00:09 · 6800 阅读 · 0 评论 -
springboot+mybatis+druid的配置(sql监控平台)
文章目录1.依赖2.配置yml3.druid配置类4.验证5. 配合springsecurity的情况1.依赖<!-- mybatis--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId>原创 2022-04-20 17:10:18 · 2258 阅读 · 2 评论 -
mybatis插入数据,返回新增数据的id值
1、自增主键情况下插入数据获取自增主键值mybatis为我们提供了一个方法,能够插入数据时获取自动生成的值,并且把取的值赋值给实体类的某一属性设置方法:要求:主键必须是自增的<insert id = "insert" useGeneratedKeys = "true" keyProperty = "id"> SQL语句</insert>useGeneratedKeys = true //是否返回自增主键值keyProperty = “xxx” //将值原创 2022-03-07 17:03:32 · 5017 阅读 · 2 评论 -
springboot使用Mybatis-Generator自动生成Dao、Model、Mapping
Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们可以利用Mybatis-Generator来帮我们自动生成文件。官网:http://mybatis.org/generator/1.导入依赖 <!--mybatis逆向工程核心包--> <dependency> <groupId>org.mybatis.generator</grou原创 2022-02-15 13:44:04 · 1065 阅读 · 0 评论 -
SpringBoot+Druid+Mybatis如何去配置多数据源
pom.xml配置的依赖如下:<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <grou原创 2022-02-14 14:22:49 · 630 阅读 · 0 评论 -
mapUnderscoreToCamelCase作用- 开启驼峰
在数据库中,由于大多数数据库设置不区分大小写 ,因此下画线方式的命名很常见,如user_name、user_email 。在 Java 中,一般都使用驼峰式命名,如 userName、userEmail因为数据库和 Java 中的这两种命名方式很常见,因此 MyBatis 还提供一个全局属性mapUnderscoreToCamelCase ,通过配置这个属性为 true 可以自动将以下画线方式命名的数据库列映射到 Java 对象的驼峰式命名属性中。这个属性默认为 false ,如果想要使用该功能,需要在 M原创 2022-02-14 13:41:15 · 1302 阅读 · 0 评论 -
在MySQL数据库中,这4种方式可以避免重复的插入数据
我新建了一个user测试表,主要有id,username,sex,address这4个字段,其中主键为id(自增),同时对username字段设置了唯一索引:01 insert ignore into即插入数据时,如果数据存在,则忽略此次插入,前提条件是插入的数据字段设置了主键或唯一索引,测试SQL语句如下,当插入本条数据时,MySQL数据库会首先检索已有数据(也就是idx_username索引),如果存在,则忽略本次插入,如果不存在,则正常插入数据:02 on duplicate key u原创 2022-01-18 09:09:52 · 4119 阅读 · 0 评论 -
Mysql对datatime类型的处理的函数
直接判断时间大小c.scandate >= date ‘2012-07-29’now(): 2013-01-17 13:07:53curdate(): 2013-01-17sysdate(): 2013-01-17 13:07:53curtime(): 13:07:53TO_DAYS()函数 返回一个天数! 什么天数? 从年份0开始的天数DATE_SUB(date,INTERVAL expr type) 函数从日期减去指定的时间间隔。date 参数是合法..原创 2022-01-13 09:02:50 · 545 阅读 · 1 评论 -
对 字 段去重
其实distinct和group by 作用是一样的,当重复率不高的适合distinct效率高点,重复率高那就是group by效率更高,推荐使用group by,因为distinct只能返回他的目标字段,而无法返回其他字段。distinct我们一般是用来返回不重复字段的条数(count(distinct id)),其原因是distinct只能返回他的目标字段,而无法返回其他字段,distinct后面跟多个字段,表示这几个字段的数据组合起来不重复。对于单个字段去重select DISTINCT cp原创 2022-01-12 13:54:08 · 158 阅读 · 0 评论 -
MySQL中可以使用SELECT …INTO语句对变量进行赋值
MySQL中可以使用SELECT …INTO语句对变量进行赋值,该语句在数据库中进行查询,并将得到的结果赋值给变量原创 2022-01-12 13:54:00 · 3001 阅读 · 0 评论 -
给查询出来的数据添加一个标记从1自增序号
select (@i:=@i+1) as i,user_manage.* from user_manage,(select @i:=0) as it ;@i:=@i+1 as i 会生成一个排序的i,在查询的时候,会在结果集中显示,@i:0 的意思是i从1开始排序。注意:别名不一定是i,可以是任意,关键字那就加上反引号。不能用*,要使用具体的字段名,表示你要查看的字段例子:按时间排序,分页取数据,然后给一个自增标记SELECT** (@i:=@i+1) a原创 2022-01-12 13:53:22 · 871 阅读 · 0 评论 -
类型转换函数cast
CAST函数语法规则是:Cast(字段名 as 转换的类型 ),其中类型可以为:CHAR[(N)] 字符型DATE 日期型DATETIME 日期和时间型DECIMAL float型SIGNED intTIME 时间型原创 2022-01-12 13:53:11 · 296 阅读 · 0 评论 -
Mysql如何创建函数
DELIMITER $$DROP FUNCTION IF EXISTS genPerson$$CREATE FUNCTION genPerson(name varchar(20)) RETURNS varchar(50)BEGIN DECLARE str VARCHAR(50) DEFAULT ''; SET @tableName=name; SET str=CONCAT('create table ', @tableName,'(id int, name varchar(20));');原创 2022-01-12 13:52:53 · 8495 阅读 · 0 评论 -
随机获取几条数据的写法sql
随机获得10条数据方法一:适用于mysql和SQL ServerSelect * From 表 order By Rand() Limit 10; order by rand() 表示随机排序limit 取最前面的10个方法二: 只适用于SQL Serverselect top N * from table_name order by newid() ----N是一个你指定的整数,表是取得记录的条数 。rand()详解第一步:单独 RAND()的认识SELECT RAND(); 会随机原创 2022-01-12 13:53:45 · 2851 阅读 · 0 评论 -
Mysql中符号@的作用
select @a;变量名,如果你不加的话,会认为这是一个列名,但是这列不存在,就报错了;@变量名 : 定义一个用户变量.= 对该用户变量进行赋值.用户变量赋值有两种方式: 一种是直接用"=“号,另一种是用”:=“号。其区别在于:使用set命令对用户变量进行赋值时,两种方式都可以使用;用select语句时,只能用”:=“方式,因为select语句中,”="号被看作是比较操作符。(@i:=@i+1)可以在生成查询结果表的时候生成一组递增的序列号select (@i:=@i+5)原创 2022-01-11 11:21:13 · 16862 阅读 · 3 评论 -
递归查询(向上或向下)
首先要知道一些函数的使用concat(),concat_ws() 字符串的拼接group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator ‘分隔符’])可以对将要拼接的字段值去重,也可以排序,指定分隔符。若没有指定,默认以逗号分隔。它是有长度限制的,默认为 1024 字节所以,我们有两种方法解决这个问题:可以通过修改 MySQL 配置文件 my.cnf ,增加 group_concat_max_len =原创 2022-01-11 11:19:30 · 861 阅读 · 0 评论 -
Springboot集成mybatis(mybatis-plus,通用mapper等)
集成mybatis 或者 mybatis-plus第一步:依赖的导入pom.xml①一定会有数据库驱动的依赖版本太低的话(如5.1.47),在yml里面的驱动会加载不出来的<!-- mysql驱动 --><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId&g原创 2022-01-11 11:17:15 · 1205 阅读 · 0 评论 -
Mybatis 使用mysql 返回空值字段不显
使用Mybatis时,如果查询语句中某些字段值是null的,则这个字段就无法返回。对于后台数据处理来说,这是一个致命的问题,于是通过修改Mybatis的配置来解决这个问题。mybatis.configuration.call-setters-on-nulls=true但在springboot中,则有时不起作用。经过研究,其实在SqlSessionFactory增加callSettersOnNulls的配置就可以了,这里记录一下:SqlSessionFactoryBean bean = new Sql原创 2022-01-10 11:28:47 · 861 阅读 · 0 评论 -
navicat连接ubuntu上的mysql出现的问题(10061,1130)
问题一:can’t connect to mysql server on ‘192.168.xxx.xxx’(10061)解决:sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf## Instead of skip-networking the default is now to listen only on# localhost which is more compatible and is not less secure.bind-address原创 2022-01-10 09:33:23 · 781 阅读 · 0 评论 -
select * 效率低
在阿里巴巴开发手册中:强制要求:【强制】在表查询中,一律不要使用 * 作为查询的字段列表,需要哪些字段必须明确写明。说明:增加查询分析器解析成本。增减字段容易与 resultMap 配置不一致。无用字段增加网络 消耗,尤其是 text 类型的字段。我们就根据上面的这几个说明来看:-1. 不需要的列会增加数据传输时间和网络开销用“SELECT * ”数据库需要解析更多的对象、字段、权限、属性等相关内容,在 SQL 语句复杂,硬解析较多的情况下,会对数据库造成沉重的负担。增大网原创 2022-01-07 09:02:29 · 148 阅读 · 0 评论 -
52条SQL语句性能优化策略
1、对查询进行优化,应尽量避免全表扫描,首先应考虑在 WHERE 及 ORDER BY 涉及的列上建立索引。2、应尽量避免在 WHERE 子句中对字段进行 NULL 值判断,创建表时 NULL 是默认值,但大多数时候应该使用 NOT NULL,或者使用一个特殊的值,如 0,-1 作为默认值。3、应尽量避免在 WHERE 子句中使用 != 或 <> 操作符。MySQL 只有对以下操作符才使用索引:<,<=,=,>,>=,BETWEEN,IN,以及某些时候的 LIKE。原创 2022-01-06 09:04:45 · 96 阅读 · 0 评论 -
Sql练习题(网上发现的,感觉挺好)
四张表–1.学生表Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别–2.课程表Course(c_id,c_name,t_id) – –课程编号, 课程名称, 教师编号–3.教师表Teacher(t_id,t_name) –教师编号,教师姓名–4.成绩表Score(s_id,c_id,s_score) –学生编号,课程编号,分数注意事项:表里面是有为null的数据,这个得注意了哈!插入数据–建表–学生表CREATE原创 2022-01-04 09:26:51 · 344 阅读 · 0 评论 -
先查找出慢sql -> sql优化
第一步:先找出慢SQLMySQL通过慢查询日志定位那些执行效率较低的SQL 语句。,用–log-slow-queries[=file_name]选项启动时,mysqld 会写一个包含所有执行时间超过long_query_time 秒的SQL语句的日志文件,通过查看这个日志文件定位效率较低的SQL 。下面介绍MySQL中如何查询慢的SQL语句MySQL数据库有几个配置选项可以帮助我们及时捕获低效SQL语句1,slow_query_log这个参数设置为ON,可以捕获执行时间超过一定数值的SQL语句。2原创 2021-11-29 13:21:36 · 155 阅读 · 0 评论 -
数据库分库分表-需要分布式全局Id
在项目开发中,随着业务的不断发展数据日增增大。这个时候就会出现数据表的分库分表的操作。一旦进行了分库和分表操作。传统的id就失去了意义。所以需要分布式全局ID。分布式全局ID的特点1:全局唯一性,不能出现重复的ID2:单调递增,保证下一个ID一定大于上一个ID3:范围趋势递增。在一个时间段内,生成的ID是递增趋势的比如:202012120001 202012120002….第二天的时候又要从1开始计数。202012130001 202012130002……4:安全性,在不同的领域中我们有些业务不原创 2021-12-24 09:05:47 · 529 阅读 · 0 评论 -
MYSQL性能优化的几条经验
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。1. 为查询缓存优化你的查询大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据原创 2021-12-22 09:09:57 · 64 阅读 · 0 评论 -
根据一张表的某个字段去更新另一张表
update zycxCity zcset provincecode = (select provincecode from zycxProvince zp WHERE zc.province = zp.provinceName)where exists(select 1 from zycxProvince zcp where zc.province = zcp.provinceName)原创 2021-12-06 19:02:58 · 594 阅读 · 0 评论 -
mybatis的 实体类和表字段对应的 ResultMap写法
https://www.cnblogs.com/kenhome/p/7764398.htmlresultMap是Mybatis最强大的元素,它可以将查询到的复杂数据(比如查询到几个表中数据)映射到一个结果集当中。resultMap包含的元素:<!--column不做限制,可以为任意表的字段,而property须为type 定义的pojo属性--><resultMap id="唯一的标识" type="映射的pojo对象"> <id column="表的主键字段,或原创 2021-11-30 13:50:40 · 803 阅读 · 0 评论 -
list集合的批量插入的操作
批量插入list<insert id ="insertCodeBatch" parameterType="java.util.List" > <selectKey resultType ="java.lang.Integer" keyProperty= "id" order= "AFTER"> SELECT LAST_INSERT_ID() </selectKe原创 2021-11-30 13:48:50 · 4800 阅读 · 0 评论 -
在springboot中使用PageHelper(mybatis的分页插件) 以及自定义分页
PageHelper是国内非常优秀的一款开源的mybatis分页插件,它支持基本主流与常用的数据库, 例如mysql、 oracle、mariaDB、 DB2、 SQLite、Hsqldb等。本项目在 github 的项目地址: https://github.com/pagehelper/Mybatis-PageHelper本项目在 gitosc 的项目地址: http://git.oschina.net/free/Mybatis_PageHelper#官网地址: https://pagehel原创 2021-11-30 13:47:51 · 1287 阅读 · 0 评论 -
阿里巴巴对mysql的一些规范
对于建表的字段取名:【强制】表示是否概念的字段,必须使用is_xxx 的方式命名,数据类型是 unsigned tinyint(1 表示是,0 表示否)。注意:POJO 类中的任何布尔类型的变量,都不要加 is 前缀,所以,需要在设置从 is_xxx 到Xxx 的映射关系。数据库表示是与否的值,使用 tinyint 类型,坚持 is_xxx 的命名方式是为了明确其取值含义与取值范围。正例:表达逻辑删除的字段名 is_deleted,1 表示删除,0 表示未删除。【强制】表名、字段名必须原创 2021-11-30 13:31:49 · 617 阅读 · 0 评论 -
Join on 后面加条件和在where后面有啥区别
on 后面加上非关联条件的条件1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。select * from cp_rank crleft join cp_and_fans caf on caf.user_id = 1 and caf.cp_group_id = cr.cp_group_id有时候可以用原创 2021-11-30 13:30:12 · 481 阅读 · 0 评论 -
Mysql对于null操作的函数
1.isnull(exper) 判断exper是否为空,是则返回1,否则返回02.ifnull(exper1,exper2)判断exper1是否为空,是则用exper2代替3.nullif(exper1,exper2)如果expr1= expr2 成立,那么返回值为NULL,否则返回值为 expr1。##ISNULL(expr)如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0。mysql> select isnull(1+1);-> 0mysq原创 2021-11-30 13:29:39 · 1218 阅读 · 0 评论 -
对多个字段排序
默认是asc升序使用逗号,来进行分隔,表示先按照一个字段排序,遇到相同的在按照另一个字段排序使用逗号,来进行分隔,表示先按照一个字段排序,遇到相同的在按照另一个字段排序SELECT * FROM students st ORDER BY st.sAge asc, st.sGrade DESC;SELECT * FROM students st ORDER BY st.sAge, st.sGrade DESC;...原创 2021-11-30 13:28:57 · 563 阅读 · 0 评论