![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MYSQL
文章平均质量分 54
songchuan1993
这个作者很懒,什么都没留下…
展开
-
MYSQL排序null排最后
mysql排序,null值排最后倒序:mysql会自动把null放最后-- order by actual_forfeit desc; select * from zto_truck_not_start order by actual_forfeit desc; 正序:-- order by sortField is null,sortField asc; select * from zto_truck_not_start order by actual_forfeit is null,act原创 2021-12-15 20:10:43 · 1962 阅读 · 0 评论 -
MYSQL索引
索引定义使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。约束和索引有什么区别?约束是对表数据的一种规范,保证数据完整性。包括①主键约束 ②外键约束 ③唯一约束 ④默认约束 ⑤检查约束等。索引是为了提高查询效率的一种结构。约束和索引是两种不同概念的东西。唯一索引允许多个NULL值吗?唯一索引允许NULL,且允许多个NULL值。NULL 的定义 ,是指未知值。 所以多个 NULL,都是未知的,不能说它们是相等的,也不能说是不等,就是未知原创 2021-12-15 17:40:52 · 897 阅读 · 0 评论 -
DBeaver常用快捷键
1.ctrl+enter 执行sql2.ctrl+\ 执行sql,保留之前窗口结果3.ctrl+shift+↑ 向上复制一行4.ctrl+shift+↓ 向下复制一行5.ctrl+alt+F 对sql语句进行格式化,对于很长的sql语句很有用6.ctrl+d 删除当前行7.alt+↑ 向上选定一条sql语句8.alt+↓ 向下选定一条sql语句9.ctrl+/ 行注释10.ctrl+shift+/ 块注释11.ctrl+f 查找、替换12.ctrl+space sql提示(如果写了fr原创 2021-06-25 16:36:16 · 5952 阅读 · 1 评论 -
MYSQL查询不连续数据
某天夜里,公司IT老大突然让我帮忙写个SQL,查询社保断缴次数,我一想,这是在领导面前展示能力的好机会啊,于是兴致勃勃的开始准备。1.分析问题:社保断缴次数,这个sql的核心不就是查询不连续数据吗。怎么查询不连续的数据呢,不存在下一条符合条件的数据即可。2.建demo,模拟测试:CREATE TABLE `jiaofeibiao` ( `name` varchar(10) DEFAULT NULL, `nianyue` char(6) DEFAULT NULL, `jishu` int原创 2020-12-09 16:06:40 · 3224 阅读 · 0 评论 -
MYSQL查询表数据量
1.最常用的SELECT COUNT(*) FROM 表名;查的准确,但是数据量大的话(超过100万),比较慢。2.网上找了一种,据说比count(*)快,自测没验证。SELECT SQL_CALC_FOUND_ROWS 1 FROM 表名 limit 1;SELECT found_rows() AS rowcount;以上两种都有弊端,一次只能查询一张表。3.查询当前库所有表数据量SELECT TABLE_NAME,TABLE_ROWS FROM information_schema.原创 2020-11-25 10:21:57 · 11595 阅读 · 0 评论 -
MYSQL分区
同事离职,从他手里接了一个表分区的任务,以前只是听过分区,懂得一点,现在接了这个活,就深入研究了一下。MySQL数据库在5.1版本时添加了对分区的支持,分区的过程是将一个表或索引分解为多个更小、更可管理的部分。就访问数据库的应用而言,从逻辑上讲,只有一个表或一个索引,但是在物理上这个表或索引可能由数十个物理分区组成。每个分区都是独立的对象,可以独自处理,也可以作为一个更大对象的一部分进行处理。分区功能并不是在存储引擎层完成的,因此不只有InnoDB存储引擎支持分区,常见的存储引擎MyISAM、NDB等都原创 2020-08-31 15:44:08 · 126 阅读 · 0 评论 -
MYSQL常用高级sql
表定义查询:-- 表字段分析select column_name, column_comment from information_schema.columns where table_name = 'deb_userparam';/* 查询数据库表注释 */SELECT TABLE_NAME,TABLE_COMMENT FROM information_schema.TABLES WHERE table_name = 'deb_userparam';/* 查询数据库表字段注释 */SEL原创 2020-06-02 18:21:10 · 208 阅读 · 0 评论 -
JAVA分批插入数据库
以mysql为例:mysql的sql语句是有最大长度限制的,默认是1M,可配置,超过最大长度就会报错。在实际工作中遇到批量插入几千条上万条数据的时候,有长度超限隐患,这时可以使用分批插入,代码如下: /** * 分批插入-公共方法 * @param objects:数据集合 * @param subSize:单次插入的条数 */ public static <E> List<List<E>> splitTo(Li原创 2020-06-02 17:32:47 · 2891 阅读 · 2 评论 -
MYSQL联合主键
已知:我有一张表aa_mytest我的目的:id非空且唯一,name非空且唯一,那么给个这两个字段都加上主键能满足我的目的吗?看数据,id和name都有重复,并未达到我的目的这里要明确一点,mysql表是不允许多个主键的,图一所示id和name不是两个主键,而是一个联合主键明确了这一点,就很好解释了,给id和name都设为主键,只能保证 id和name联合起来非空且唯一,并不能保证单个字段的唯一性。解决方法:id为主键,name加一个唯一索引...原创 2020-05-09 16:15:31 · 325 阅读 · 0 评论 -
MYSQL批量插入更新
插入更新,就是无则插入,有则更新(一)目前以我的了解,mysql有两种方法实现。这两种方式都是通过唯一索引来判断有无的,所以插入的语句中一定要包含有唯一索引的字段1.replace into(不推荐)-- id为主键REPLACE INTO aa_mytest(id,i_name,i_value)VALUES(1,'ass','123')replace into 在遇到唯一索引时,会执行delete和insert,导致除了name,value之外的字段给改成null了,所以不推荐使用。2.原创 2020-05-09 16:03:21 · 398 阅读 · 0 评论 -
Navicat Premium常用快捷键
1.ctrl+r 运行当前查询窗口的所有sql语句2.ctrl+shift+r 只运行选中的sql语句3.ctrl+/ 注释sql语句4.ctrl+shift +/ 解除注释5.ctrl+q 打开查询窗口6.ctrl+n 打开一个新的查询窗口7.ctrl+w 关闭当前查询窗口8.ctrl+l 删除一行9.Shift+Home 鼠标在当前一行末尾,按快捷选中当前一行F7: 运行从光...原创 2020-04-27 16:46:41 · 271 阅读 · 0 评论 -
MySQL数据类型与Java数据类型
类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) VARCHAR L+N VARCHAR java.lang.String 12 CHAR N CHAR java.lang.String 1 BLOB L+N BLOB java.lang.byte[] -4 TE...原创 2020-04-27 16:11:58 · 306 阅读 · 0 评论 -
MySql中把一个表的数据插入到另一个表中
1.如果2张表的字段一致,并且希望插入全部数据,可以用这种方法:INSERT INTO 目标表 SELECT * FROM 来源表;insert into insertTest select * from insertTest2;2.如果只希望导入指定字段,可以用这种方法:INSERT INTO 目标表 (`字段1`, `字段2`, ...) SELECT `字段1`, `字段2`, ....原创 2020-04-22 11:27:49 · 7552 阅读 · 0 评论 -
FIND_IN_SET和REGEXP
MYSQL,某个字段的值的格式若为“a,b,c,d”这种格式,或者类似的使用固定符号进行分隔的,可以使用FIND_IN_SET进行查询,但是批量查询时需要多个OR拼接,如下不想用多个OR拼接,发现了REGEXP函数,使用正则匹配,非常简单,如下这种格式的字段筛选查询,不能使用like,功能都实现不了,如下...原创 2020-04-10 17:58:44 · 557 阅读 · 0 评论