数据库
文章平均质量分 60
xyw10000
这个作者很懒,什么都没留下…
展开
-
mysql 表结构差异对比小工具
项目场景:在进行慢sql评审时,发现测试环境增加了索引生产并没有。然后有些表字段长度也不一样,坑大发了。决定写一个小工具对比一下测试跟生产表结构差异,大致思路连接数据库获取建表语句进行对比,忽略主键自增id。因为测试跟生产主键id自增会有不同,如果建表语句不一致,则需要比对文本高亮显示。在网上copy了一个别人写的高亮算法,生成了一个html预览。直接上代码package com.xuyw.test.export;import com.alibaba.druid.pool.DruidDat原创 2022-01-20 10:07:06 · 2502 阅读 · 0 评论 -
mysql 四大事务隔离级别及实现方式
今天聊聊老生长谈的mysql事务隔离级别,相信大家应该听到这个名词不会陌生。我们都知道事务具有ACID特性(原子性,一致性,持久性,隔离性),今天聊的主题肯定是跟隔离性有关的,以下都基于mysql innodb引擎名词概念说明脏读 读取到其他事务还没有提交的数据 例:事务A在执行过程中,事务B插入or修改一条数据此刻尚未提交。A此刻查询出了B插入的记录,若B事务回滚。则A查询出了不正确的记录,这就是脏读现象 不可重复读 同一事务内查询,由于别的事务将数据修改or删除...原创 2021-12-12 17:59:26 · 1103 阅读 · 0 评论 -
mysql 排名
接到一个数据排名需求,查阅资料mysql 8.0 自带排名函数 RANK ,DENSE_RANK ,ROW_NUMBER。令人遗憾的是我们数据库使用的是5.7,只能自己实现排序功能了。废话不多说,直接撸起来。简易数据如下表id order_no user_id create_time 2 18042810310873554715933 1001 2018-04-28 10:31:20 4 18042811031407055348562 1002原创 2020-11-13 14:15:23 · 188 阅读 · 0 评论 -
mysql GROUP_CONCAT 排序问题
使用GROUP_CONCAT发现本地执行的结果跟测试环境不同,查询资料原来GROUP_CONCAT也可以进行排序。语法 GROUP_CONCAT( id ORDER BY id asc)原创 2020-09-22 10:50:55 · 935 阅读 · 0 评论 -
mybatis批量插入clob,ORA-01461-仅能绑定要插入LONG列的LONG值
今天用MyBatis批量插入数据到Oracle中,其中有字段的类型为Clob,出现错误:ORA-01461:仅能绑定要插入LONG列的LONG值 Xml中SQL语句如下: insert into tableName (ID, LAST_MODIFIED, content) select #{item.id},to_date(#{item.lastMo转载 2017-09-08 16:51:46 · 2846 阅读 · 2 评论 -
oracle 字符串转多行
SELECT SUBSTR(FIELD1, INSTR(FIELD1, '|', 1, ROWNUM) + 1, INSTR(FIELD1, '|', 1, ROWNUM + 1) - INSTR(FIELD1, '|', 1, ROWNUM) - 1) AS FIELD2 FROM (SELECT '|' || 'a转载 2017-05-15 18:06:26 · 1623 阅读 · 0 评论 -
mysql 存储过程遇到的小问题
今天写了个简单的存储过程,硬是编译通过不了。找了下原因,原来变量重新赋值要在所有变量声明后才可,现记下这个问题原创 2017-05-14 22:45:50 · 496 阅读 · 0 评论 -
oracle execute immediate 权限不足ora-01031
利用存储过程执行execute immediate 创建表,居然提示没有权限。我敢肯定是有建表权限的。 解决可以在存储过程上使用调用者权限 AUTHID CURRENT_USER ISCREATE OR REPLACE PROCEDURE PRO_TEST() AUTHID CURRENT_USER IS原创 2017-05-04 18:56:06 · 4349 阅读 · 0 评论 -
oracle 精度问题
取平均值,数据库显示724 而用to_char 则出现很多小数。用length函数发现也不止3位,原来pl/sql查询出来的值不一定是真实值原创 2017-05-05 17:32:00 · 1934 阅读 · 0 评论 -
MySQL中时间函数NOW()和SYSDATE()的区别
mysql中日期函数还是比较常用的。主要有NOW()和SYSDATE()两种,虽然都表示当前时间,但使用上有一点点区别。 NOW()取的是语句开始执行的时间,SYSDATE()取的是动态的实时时间。因为NOW()取自mysql的一个变量”TIMESTAMP”,而这个变量在语句开始执行的时候就设定好了,因此在整个语句执行过程中都不会变化。执行下面这个例子就明白了:S转载 2017-09-10 14:27:45 · 941 阅读 · 0 评论 -
mysql 通过经纬度计算距离
“` DELIMITER $$CREATE FUNCTION getDistance(curLat DOUBLE, curLon DOUBLE, shopLat DOUBLE, shopLon DOUBLE) RETURNS DOUBLE BEGIN DECLARE dis DOUBLE; SET dis = ACOS(SIN((curLat * 3.1415) / 180 ) * S转载 2017-11-22 11:22:40 · 741 阅读 · 0 评论 -
xshell 隧道 连接mysql
项目原因,不能直接连接mysql。只能通过跳板机,从跳板机用ssh过去很慢,数据库卡的要死。 多亏了一同事知道利用xshell 隧道 连接mysql,瞬间逼格上来了。废话不多说,直接上图。 1 配置好跳板机 2设置隧道 3 本地mysql工具连接127.0.0.1 39306 就可以访问指定mysql主机了,前提xshell 界面要打开哦原创 2017-12-02 20:08:19 · 6075 阅读 · 3 评论 -
mybatis Parameter index out of range (2> number of parameters, which is 1
MySQL 报错:Parameter index out of range (2> number of parameters, which is 1)查询相关资料是由于单引号导致的之前写法insert '#{req.xx}' ...拿掉单引号即可,记录下笔记...原创 2018-04-08 14:35:15 · 1497 阅读 · 0 评论 -
MySQL索引背后的数据结构及算法原理
http://blog.codinglabs.org/articles/theory-of-mysql-index.html转载 2018-04-15 22:34:56 · 174 阅读 · 0 评论 -
如何获取mysql数据表字段信息
开发通常会遇到要求提供相应表字段信息,每个公司要求的模板又不一致。一个个手写,核对字段长度真心很累。很有可能会出错,mysql 可以直接查询是不是很爽。INFORMATION_SCHEMA.COLUMNS 保函了表的字段信息 按照你的需求编写相应sql吧,复制出去就可以啦。SELECT COLUMN_NAME 字段名称, DATA_TYPE 类型, CASE DATA...原创 2018-08-24 11:14:28 · 2913 阅读 · 1 评论 -
mysql 回表
今天,逛论坛发现一个专业名词回表。一开始,听着也是一头雾水。特地查了下资料,记录下mark。什么是回表?简单来说就是数据库根据索引(非主键)找到了指定的记录所在行后,还需要根据主键再次到数据块里获取数据。“回表”一般就是指执行计划里显示的“TABLE ACCESS BY INDEX ROWID”。再例如,虽然只查询索引里的列,但是需要回表过滤掉其他行。在InnoDB 里,索引...原创 2019-07-15 15:22:43 · 11914 阅读 · 2 评论 -
Transaction 那点事儿
<!-- 摘要 --> <!-- 正文 --> <div class="blog-body" id="blogBody"> <val data-name="blog_content_type" data-value="richtext"></val>转载 2017-04-06 10:59:25 · 364 阅读 · 0 评论 -
mysql explain详解
原文 http://blog.csdn.net/zhuxineli/article/details/14455029explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。先解析一条sql语句,看出现什么内容EXPLAINSELECTs.uid,s.username,s.name,f.email,f.mobile,f.phone,f转载 2016-01-27 20:29:01 · 505 阅读 · 0 评论 -
PL/SQL 调用JAVA 代码
有的时候,我们需要在Oracle的Prodedure、Function中调用JAVA代码来实现功能,有时候程序用数据库实现难度可能比较大,那如果我们先写成JAVA代码,然后通过调用,来实现,这就简单了。本人写了简单demo 一 在pl/sql 创建java代码create or replace and compile java source named hello aspubl原创 2013-12-11 17:09:40 · 1493 阅读 · 0 评论 -
数据泵IMPDP 导入工具的使用
--=================================--数据泵IMPDP导入工具的使用--================================= 数据的导入导出时数据库经常处理的作业之一,Oracle 提供了IMP和IMPDP以及SQL*Loader等工具来完成数据的导入工作,其中IMP服务于早期的9i之前的版本,在10g及后续版本,转载 2014-01-03 15:18:58 · 811 阅读 · 0 评论 -
数据泵 EXPDP 导出工具的使用 .
--=================================--数据泵 EXPDP导出工具的使用--================================= 对于Oracle 数据库之间的导入导出,可以使用Oracle提供的导入导出工具EXP/IMP来实现。EXP/IMP是Oracle早期提供的数据导入导出工具。在Oracle 10g 中,提供了高速转载 2014-01-03 15:16:18 · 847 阅读 · 0 评论 -
Oracle 分区表
--==================-- Oracle 分区表--================== 一、分区表: 随着表的不断增大,对于新纪录的增加、查找、删除等(DML)的维护也更加困难。对于数据库中的超大型表,可通过把它的数据分成若干个小表,从而简化数据库的管理活动。对于每一个简化后的小表,我们称为一个单个的分区。 对于分区的访问,我们不转载 2014-01-03 15:22:11 · 687 阅读 · 0 评论 -
在Oracle中查询表的大小和表空间的大小 .
有两种含义的表大小。一种是分配给一个表的物理空间数量,而不管空间是否被使用。可以这样查询获得字节数:select segment_name, bytes from user_segments where segment_type = 'TABLE'; 或者 Select Segment_Name,Sum(bytes)/1024/1024 From User_Extent转载 2014-01-14 12:35:26 · 987 阅读 · 0 评论 -
ORA-25153: 临时表空间为空
今天做插入时,数据库出现异常 ORA-25153: 临时表空间为空。想起是不是上次数据库宕机导致文件丢失,于是查找了点资料。 创建临时表空间alter tablespace temp add tempfile 'd:oracletemptablespace/temp01.dbf' size 10M analyze table 表名 compute statistics;原创 2014-02-19 10:42:11 · 928 阅读 · 0 评论 -
MYSQL 获取当前日期及日期格式,和常用时间转换函数
经过多次尝试本人的目标完成:select newworkorder.WorkOrderNum,newworkorder.ProjectCode, newworkorder.WorkEstComDate,newworkorder.WorkStatus,newworkorder.workgroup,paymentforecast.ForecastDesc,paymentforecast.for转载 2014-03-18 10:15:45 · 1061 阅读 · 0 评论 -
mysql返回集合
今天想利用mysql存储过程返回多条记录,以前用oracle的游标可以直接返回.mysql不支持游标返回通过找了资料原来可以这么做CREATE DEFINER=`xxxx`@`%` PROCEDURE `getprizesuminfo`(opid VARCHAR(32),aid INT)BEGIN /** * 获取微信活动奖品数量,及参加次数 *原创 2014-04-02 14:25:47 · 3005 阅读 · 0 评论 -
mysql比较时间差
今天写sql有个需求,求出活动的状态.例如活动开始时间小于当前时间为未开始开始时间小于当前时间且结束时间大于当前时间为进行中结束时间小于当前时间则为结束 查了下资料发现 TIMESTAMPDIFF 函数可以实现TIMESTAMPDIFF(时间差类型,时间1,时间2) 说明时间差类型: SECOND 秒 SECONDS MINUTE 分钟 MINUTE原创 2014-03-21 11:33:57 · 2394 阅读 · 0 评论 -
mysql 任务调度
今天有个业务需求,每天要重置流水号.想起oracle原创 2014-05-06 19:36:36 · 914 阅读 · 0 评论 -
mysql 游标使用模版
BEGIN /** * * 游标模版 * @author xuyw * @email xyw10000@163.com * @date 2014-05-19 */ /*游标数据变量 uid*/ DECLARE uid VARCHAR(128); DECLARE done INT DEFAULT 0;原创 2014-07-28 16:37:10 · 798 阅读 · 0 评论 -
Oracle创建用户并给用户授权查询指定表或视图的权限
转载 用DNINMSV31账户登录数据库进行如下操作:CREATE USER NORTHBOUND IDENTIFIED BY NORTHBOUND DEFAULT TABLESPACE "TBS_DNINMSV31" TEMPORARY TABLESPACE "TEMP2" QUOTA UNLIMITED ON "TBS_DNINMSV31";GRANT "C转载 2014-07-10 21:03:42 · 2452 阅读 · 0 评论 -
mysql 插入Emoji表情报错
今天做的了个获取微信粉丝的功能,发现将昵称插入数据库报错.长度ken'd原创 2014-07-31 16:40:50 · 2323 阅读 · 0 评论 -
mysql FIND_IN_SET 用法
mysql 中 FIND_IN_SET 是判断某个字符串是否在带逗号的字符串中例如 SELECT t.group_id, COUNT(group_id) tsumFROM (SELECT group_id FROM xx WHERE FIND_IN_SET(openid,'qqqwqnfocFq5IL2sXB2Qu0I,oarwerrr原创 2014-08-07 16:36:41 · 1523 阅读 · 0 评论 -
Mongodb学习笔记
总结下这几天Mongodb学习笔记 /** * 获取MongoClient * @author xuyw * @email xyw10000@163.com * @param host * @param port * @return */ public static MongoClient getMongoClie原创 2015-05-11 23:05:09 · 1157 阅读 · 0 评论 -
基于spring框架oracle数据库ajax 分页
分页相信大家都不陌生,写也写过好多遍.只是每次都是反复的,故而想封装下,简化以后代码的编写.首先声明因为鄙人编写时间不长,测试时间不长.如有bug.尽请原谅.欢迎联系,鄙人定当修改.此仅供参考,大牛请勿嘲笑。首先封装使用了jquery 若使用请导入相应js 采用的是json传输格式,服务端用的是Gson 输出json格式直接上代码js代码/*********************原创 2014-01-09 13:20:50 · 1403 阅读 · 0 评论 -
Oracle数据库的备份方法
1、引言 Oracle数据库的备份方法很多,无论使用那种备份方法,备份的目的都是为了在出现故障后能够以尽可能小的时间和代价恢复系统。比如使用export实用程序导出数据库对象、使用Oracle备份数据库、使用Oracle对称复制、使用Oracle并行服务器、使用Oracle冷备份、使用Oracle热备份等各种备份方法都有其优缺点、适用的场合和相应的软硬件要求。本文主要就用export实转载 2013-11-05 15:24:48 · 775 阅读 · 0 评论