数据库
文章平均质量分 50
学习各种数据库
你是理想
这个作者很懒,什么都没留下…
展开
-
MySQL中的describe关键字
检查代码后,认为代码正常,并且字段编写正确,类型也正确,怀疑是数据库这边的问题,发现describe是mysql的一个关键字,不能够作为普通字段使用,改为description后,可正常插入。新建mysql表中需要一个描述的字段,本人就是用的describe,结果mybatis插入报错,去掉这个字段后结果正常。原创 2024-02-27 11:03:24 · 507 阅读 · 0 评论 -
java处理Oracle Clob Blob类型数据
特殊情况下oracle Raw类型数据的存储原创 2023-02-17 16:31:19 · 1273 阅读 · 1 评论 -
Oracle RAW类型数据存储
java如何存储oracle RAW类型字段原创 2023-02-17 16:12:48 · 469 阅读 · 0 评论 -
pageHelper手动分页
public class PageHelperUtils { /** * pagehelper手动分页 * @param currentPage 当前页 * @param pageSize * @param list * @param <T> * @return */ public static <T> PageInfo<T> getPageInfo(int currentPage, .转载 2022-05-10 11:27:38 · 792 阅读 · 0 评论 -
查看mysql数据库的各种编码
SHOW VARIABLES LIKE 'character_set_%';原创 2022-05-05 09:36:12 · 2588 阅读 · 0 评论 -
图片存储的解决方案
简述由于博主手头最近的项目中,有很多上传文件的功能需要实现,其中就包括图片的上传和存储,其中也遇到一些问题。常见的存储方案常见的存储到磁盘或者第三方的存储服务,如七牛云之类的,比较高端如使用分布式文件系统进行存储或者使用nfs做存储,但是后面两个实际上我也只是看到过类似的说法,自己本身是没有应用过的,所在在这里也不再概述,毕竟哪有那么多牛逼的项目,遇到了再说,纸上谈兵是没有用。项目背景你选择什么样的存储方案,实际上是取决于项目需要和项目成本的,假如说你做的社交类软件,如微博类,那么图片的存储量就原创 2022-04-28 21:12:29 · 3103 阅读 · 0 评论 -
mysql之连续出现的数字
背景leetcode刷题,一些问题记录,mysql之连续出现的数字描述编写一个 SQL 查询,查找所有至少连续出现三次的数字。预期结果方案自己的写法缺陷:Id必须是连续的,如果连续出现的次数太多就没有办法写了SELECT DISTINCT l1.Num AS ConsecutiveNumsFROM Logs l1, Logs l2, Logs l3WHERE l1.Id = l2.Id - 1 AND l2.Id = l3.Id - 1原创 2022-03-18 13:02:19 · 2021 阅读 · 0 评论 -
mysql之分数排名,排序函数rank() over()、dense_rank() over()、row_num() over()
背景leetcode刷题,一些问题记录,其中看到有人用到了dense_rank() over()函数,所以特意建表分析,记录学习,其中关于三个函数的参考了这篇文章章并没有具体的指出来这是mysql8.0以后才出的函数。mysql之分数排名编写 SQL 查询对分数进行排序。排名按以下规则计算:分数应按从高到低排列。如果两个分数相等,那么两个分数的排名应该相同。在排名相同的分数后,排名数应该是下一个连续的整数。换句话说,排名之间不应该有空缺的数字。数据mysql8.0版本以前写法只根据分原创 2022-03-18 12:19:16 · 3905 阅读 · 0 评论 -
mysql之第n高的薪水
背景leetcode刷了一些sql题,觉得一些有意思的来总结下mysql之第n高的薪水编写一个 SQL 查询,获取并返回 Employee 表中第n高的薪水 。如果不存在第n高的薪水,查询应该返回 null 。分析这里的第n高有两个解释,第一种会固定,比如说,第一高,第二高。第二种说法不固定的,需要根据前端传的值来动态的表达。方法一SELECT IFNULL((SELECT DISTINCT Salary FROM Employee ORDER BY Salary DESC LIMIT n原创 2022-03-18 10:47:16 · 735 阅读 · 0 评论 -
JDBC(五)—事务(动力节点杜老师)
背景jdbc单个库的事务实际上是很简单的,原本觉得没必要写,但是想了想还是写了。简介jdbc的事务默认是自动开启的,也就是,每执行一次sql就直接会提交事务,这样的话就会有个问题,当我们要执行多条SQL语句时,如果只有前面几条语句执行成功,但是后面的SQL语却执行失败的话,那么数据库中就会残留执行成功的数据,而执行失败的语句则自然不会有数据残留,但是这却会导致数据不匹配、不完整,这样也就会出错解决方案最后统一提交事务,如果有失败的就不提交,直接回滚。connection.setAutoComm原创 2022-03-10 17:28:04 · 410 阅读 · 0 评论 -
JDBC(四)—CallableStatement执行匿名块
背景记录JDBC一系列的内容,实际上这章才是我在项目中遇到的问题,也是因为这个问题,我才想看看JDBC的内容,虽然这部分杜老师并没有提到过,但是如果想解决这部分的东西,也需要前面的铺垫,毕竟所有东西都是由简到难。项目中使用jdbc动态的连接数据库,主要是为了做一些操作,然后分析返回的结果,而遇到的问题就是如何返回结果参数。问题项目是由好几个人开发的,原本这部分是别人开发的,用python写的,但是由于种种原因需要我根据他的逻辑重新用java写一遍,问题来了 result = cursor.exec原创 2022-03-10 16:49:28 · 883 阅读 · 0 评论 -
JDBC(三)—PreparedStatement和Statement的区别和使用(动力节点杜老师)
背景学习与反思异同PreparedStatement和Statement都是JDBC中执行sql的对象,他们都可以执行sql语句,但是后者会给一些人创建出sql注入的条件,而前者不会。prepareStatement :不存在sql注入;效率略高,编译一次,执行多次;在传值后编译时存在类型安全检查。(原理:当历史(预)编译sql语句完全一样时,sql跳过编译,直接执行)statement :存在sql注入问题;编译一次,执行一次本质第一步:假如这里使用Statement原创 2022-03-10 16:10:13 · 734 阅读 · 0 评论 -
JDBC(二)—JDBC的基本使用(参考动力节点杜老师jdbc视频)
背景前一阵子,项目里的一些对目标数据库的操作都是用JDBC写的,这阵子想总结下,跟着B站上杜老师的视频看了一遍,觉得很多不曾想清楚的东西都都豁然开朗,写此博客的目的一方面是为了记录下来,毕竟很多东西过一阵就忘了,另一方面也算是给杜老师打个广告,毕竟也算是收到了他的教导,但是我还是建议新手先大概看一遍就可以了,笔记做好就可以了,后面遇到了可以回头再看,不要看的太细,因为东西太多,刚开始会用就可以了,毕竟很多东西都必须是你能在项目里的某个场景用到,你才会有深刻的印象,而我也是现在项目是踩了一些坑,知道很多痛点原创 2022-03-10 15:25:02 · 722 阅读 · 0 评论 -
偷懒让你的insert报错
问题描述这天写代码遇到了一个很奇怪的,一个简单地insert的sql,本地没有问题,但是客户那边怎么也插不进去数据,因为是一个异步的插入,并且也没有存储返回信息,客户那边的部署人员也不太会看日志,百思不得诶。答案问题出现在,我写sql的时候偷懒了通常而言,我们写sql正规的插入,字段与插入的值对应,像下面这样写方式1:insert into DB(ID,NAME,IP,PORT,SERVICE_NAME,USERNAME,PASSWORD,IS_ACTIVE,DBID,INST_ID,IS_I原创 2022-03-04 14:59:28 · 768 阅读 · 0 评论 -
mysql中表和表之间的批量插入
背景手头上临时的一个项目,需要一些地图数据,因为是临时的,还没有正式开始,需要做个模板让客户看,所以也没有买数据,而是直接找了一些数据插入到数据库中,但是因为要做个中间表的对应关系,需要地图数据中的某些字段,如果手动插入就太费时间了,所以就需要批量插入。方案1.插入指定字段INSERT INTO 目标表 (字段A, 字段B, ...) SELECT 字段A, 字段B, ... FROM 来源表;(字段名字必须保持一致) 2.只插入入目标表中不存在的记录INSERT INTO 目标表 (原创 2022-03-08 09:49:12 · 2286 阅读 · 0 评论 -
使用JDBC(一)—JDBC的本质(动力节点杜老师)
什么是JDBCJDBC是sun公司为了简化和统一java连接数据库,定义的一套规范(API,接口).这也对应着java面向接口编程的特点,以便于降低程序的耦合性,提高程序的扩展性。实际上里面就是一堆接口编译过后的class文件。JDBC的作用JDBC的作用是方便连接数据库,因为有JDBC所以我们可以简单便捷的连接不同种类的数据库。我们现在使用JDBC:目前的使用,就是通过调用JDBC提供的api,来完成的数据库的连接,而底层的实现并不用我们考虑,我们只需要提供需要的参数就可以了,可以专心于解决业务原创 2022-03-06 15:37:59 · 424 阅读 · 0 评论 -
关于mysql中的or和like导致的索引失效问题
一 前提知识1.1 mysql添加索引这是我之前看别人的贴子上总结好的命令,保存后,就直接拿来用了,这个地址也不记得了注:`table_name` 和 `column` 中的``是Esc下方的一个键 ~`,可省略不写``,直接写表名和字段名1.添加PRIMARY KEY(主键索引):ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 2.添加UNIQUE(唯一索引) :ALTER TABLE `table_name` ADD U原创 2021-09-25 14:40:41 · 1782 阅读 · 0 评论 -
mysql中语句的执行顺序
在SQL中使用GROUP BY来对SELECT的结果进行数据分组,在具体使用GROUP BY之前需要知道一些重要的规定。原文地址一些重要的规定1、GROUP BY子句可以包含任意数目的列。也就是说可以在组里再分组,为数据分组提供更细致的控制。2、如果在GROUP BY子句中指定多个分组,数据将在最后指定的分组上汇总。3、GROUP BY子句中列出的每个列都必须是检索列或有效的表达式(但不能是聚集函数)。如果在SELECT中使用了表达式,则必须在GROUP BY子句中指定相同的表达式。不能使用别名。转载 2021-12-15 17:05:54 · 149 阅读 · 0 评论 -
mysql的or和and的组合使用,以及空和非空值的判断
mysql的日常使用1.mysql在查询数据设置条件时,如果需要判断字段的属性值不能为null或者等于null,大家的惯性思维就是 A!=null 或者A==null,但是这样的写法实质上是查不出东西,写法是不对的,正确的写法应该是:where A is null或者是where A is not null2.mysql在where中同时使用and 和or时 要注意最近在写一个搜索框的时候,条件除了前端传来的keyword关键字进行模糊查询时,还有后端自己从token中获取的数据,以及其他原创 2021-11-04 17:27:22 · 1705 阅读 · 0 评论