
数据库
涛哥是个大帅比
一切都是最好的安排
️相遇是美好的|遭遇也是美好的
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
sql删除重复数据保留其中一条
oracle和mysql。原创 2025-01-14 10:00:36 · 905 阅读 · 0 评论 -
mysql regexp匹配多个字符串
数据结构其中nameArr存储的是名字集合,现在的需求是传入"aaa","fff",需要把包含这两个name的数据都查出来。原创 2024-08-23 15:26:45 · 1253 阅读 · 1 评论 -
MySQL某个字段按指定值排序,其他值按创建时间排序
MySQL某个字段按指定值排序,其他值按创建时间排序,我们需要用到FIELD()函数,它是一种对查询结果排序的方法,可以根据指定的字段值顺序进行排序。原创 2024-07-11 17:28:33 · 1756 阅读 · 0 评论 -
MySQL jdbc url连接常用参数说明
参数名称参数说明useUnicode是否使用Unicode字符集当useUnicode设置为true时,指定字符编码。比如可设置为UTF-8或gbkuseSSLMySQL在高版本需要指明是否进行SSL连接 在mysql连接字符串url中加入ssl=true或者false即可设置时区例如:serverTimezone=GMT%2B8(中国时区)或serverTimezone=Asia/Shanghai(中国时区)原创 2024-03-04 10:45:39 · 690 阅读 · 0 评论 -
Sql group by 分组取时间最新的一条数据
数据库:Oracle表名:Test字段名:Id、PId、Name、Time需求:根据PId分组,1、取时间最新的一条数据;2、取时间最早的一条数据。转载 2021-01-29 14:49:01 · 38063 阅读 · 4 评论 -
mysql查询统计最近12个月的数据
【代码】mysql查询统计最近12个月的数据。原创 2023-11-23 15:01:29 · 1343 阅读 · 0 评论 -
Excel表格批量生成sql插入语句
输入上面的公式,表名是test,字段值都加了单引号,int类型可以把单引号去除,A2表示第一列的第二行,第一行是标题所以从第二行开始。此时已经生成一条sql语句,然后将D2的公式复制到所有行的D列(就是用鼠标点住D2单元格的右下角一直拖拽下去)原创 2023-09-25 09:22:41 · 2275 阅读 · 0 评论 -
mysql查询昨天、前天、上周一、上周日、上一月第一天到最后一天的数据
【代码】mysql查询昨天、前天、上周一、上周日、上一月第一天到最后一天的数据。原创 2023-04-26 15:02:53 · 3094 阅读 · 0 评论 -
Mysql不同服务器跨库查询解决方案
在两台不同服务器,实现跨库查询,其实现原理类似一个虚拟映射,需要用到mysql的另一个存储引擎Federated,FEDERATED存储引擎访问在远程数据库的表中的数据,而不是本地的表。这个特性给某些开发应用带来了便利,你可以直接在本地构建一个federated表来连接远程数据表,配置好了之后本地表的数据可以直接跟远程数据表同步。实际上这个引擎里面是不真实存放数据的,所需要的数据都是连接到其他MySQL服务器上获取。原创 2023-04-19 14:07:21 · 2264 阅读 · 0 评论 -
mysql 历史数据表迁移方案
当业务运行一段时间后,会出现有些表数据量很大,可能对系统性能产生不良的影响,常见的如订单表、登录log表等,这些数据很有时效性,比如我们一般很少去查上个月的订单,最多也就是报表统计会涉及到。 解决方案:创建一张与A表字段一样的B表,每天定时把A表昨天的数据插入到B表,再把A表昨天之前的数据删除,也可以根据需求改成一个月一次。如果不想只保存到一张表里,也可以在存储过程中,以年月份为后缀每次新...原创 2019-02-19 09:55:50 · 5816 阅读 · 0 评论 -
oracle 中时间类型 date 与 long 互转
在保存时间到数据库时,有时候会保存long型的数据,固定长度是13位,是用当前时间减去1970-01-01,再换算成毫秒得到的结果。oracle中的实现方式:--日期转换毫秒SELECT TO_NUMBER(TO_DATE('2005-03-29 12:30:45', 'YYYY-MM-DD HH24:MI:SS') - TO_DATE('1970-01-01 ...转载 2019-02-25 14:30:33 · 5533 阅读 · 0 评论 -
Oracle 历史数据表迁移方案
当业务运行一段时间后,会出现有些表数据量很大,可能对系统性能产生不良的影响,常见的如订单表、登录log表等,这些数据很有时效性,比如我们一般很少去查上个月的订单,最多也就是报表统计会涉及到。解决方案:创建一个存储过程,每月定时调用,查出上个月数据保存到新建的表中,新表命名以月份为后缀,删除主表中上个月数据。存储过程CREATE OR REPLACE procedure ope...原创 2019-09-06 18:07:14 · 7522 阅读 · 1 评论 -
mysql创建视图中使用union报错1064
-- 创建视图, sql 语句加了括号, 报错。CREATE VIEW view_testAS(SELECT * FROM AUNION ALLSELECT * FROM B);-- 创建视图, sql 语句不加括号, 通过。CREATE VIEW view_testASSELECT * FROM AUNION ALLSELECT * FROM B原创 2015-11-03 16:30:49 · 4949 阅读 · 2 评论 -
sql count()加distinct和条件去重统计
表数据: userid userType------------------------------------------ A 1 B 1 B 1 C 2需求:查出userType=1和userType=2的用户数,并且直接用字段展示出来,可能还有很多其他类型,也需要同时展示。去重加上条件查询:select原创 2021-01-13 10:07:55 · 18062 阅读 · 1 评论 -
Oracle定时任务调用存储过程创建表失败
Oracle定时任务,dbms_job调用存储过程创建表,需要显示授权,存储过程定义为authid current_user也不行,而dbms_scheduler是不需要显示授权的,这点来说后者更方便使用。另外,dbms_scheduler提供了job运行日志记录视图,可以查看具体的运行日志,比较实用。而且,oracle10g以后也推荐使用dbms_scheduler。...原创 2019-09-10 14:38:58 · 733 阅读 · 0 评论 -
MySQL数据库update更新子查询[Err] 1093 - You can't specify target table 'text' for update in FROM clause
比如:UPDATE test.tb_vobile aset a.name = '111 'WHEREa.id = (select max(id) id from test.tb_vobile)报错:[SQL]UPDATE test.tb_vobile aset a.name = '111 'WHEREa.id = (select max(id) id from test转载 2015-12-10 11:02:32 · 652 阅读 · 0 评论 -
关于Oracle时间排序分页的问题
order by createTime desc增加rownumorder by createTime desc, rownum desc原创 2020-02-27 15:49:11 · 616 阅读 · 0 评论 -
Oracle存储过程中的IN子句传参字符串的问题
在实际使用中,经常会有带in的子查询,如where id in (1,2,3),或者where name in ('a','b','c')这样的情况,但是到存储过程中,如果使用变量当作查询条件会有问题。示例:CREATE OR REPLACE PROCEDURE test (vi_types in VARCHAR2)AS vs_str VARCHAR2(100);BEGIN -- vi_types当作条件查询 SELECT name into vs_str FROM log原创 2021-01-09 13:07:59 · 2488 阅读 · 0 评论 -
oracle select into 查询没有记录的解决办法
select into 语句可以将数据库的某些值赋值给程序的变量,但很多时候也会遇到查询出来没有记录的情况,这时程序会出错。1.可以使用异常捕获的方式a number(10);b number(10);c varchar(20);begin select age, sex, name into a, b, c from myemp t where t.empno = pno; -- return '返回值'EXCEPTION WHEN NO_DATA_FOUND THEN转载 2020-12-05 19:19:19 · 3323 阅读 · 0 评论 -
mysql 1449 : The user specified as a definer ('****'@'%') does not exist 解决方法
今天在项目中写junit测试更新mysql表数据的时候,运行测试的时报了The user specified as a definer ('test01'@'%') does not exist,数据不能成功插入,用root用户连接的数据库,后来到数据库去看的时候发现update触发器写的是 /*!50017 DEFINER = 'test01'@'%' */,把test01改为了root后jun...转载 2018-04-12 16:14:49 · 1519 阅读 · 0 评论 -
ORACLE表大量delete删除后查询变慢
sys_log日志表中有几千万条历史数据,用delete全部删除后,使用 select * from sys_log 查询需要10多秒,一条数据都没有查询也需要10多秒,速度跟之前还是差不多。原因是该表的空间大了,数据虽然被删除了,但是表空间还是很大,查询起来很慢。解决的方法是把该表所占用的表空间缩小,或者说释放表空间。解决方案:对sys_log表进行表空间压缩和索引重建压缩表空间语句:alter t...原创 2021-06-25 15:02:56 · 3848 阅读 · 0 评论 -
Oracle增加索引后,查看执行计划不生效问题
Oracle增加索引后,查看执行计划不生效解决方案:使用Analyze--① 分析表的所有字段,所有索引,所有索引字段。其中:① = ②analyze table student compute statistics; --② 分析表的所有字段,所有索引,所有索引字段。其中:① = ②analyze table student compute statistics for table for all indexes for all columns; --③ 只分析所有有索引的字段ana转载 2022-01-26 14:54:55 · 1556 阅读 · 0 评论 -
MySql、Oracle数据库批量删除多个表
我们可以通过SQL语句来批量删除多个表,其中test替换成你要查询的数据库名字,注意数据库名称和表名大小写。复制查出来的删除sql语句,并批量执行,注意数据库名称和表名大小写。2.生成删除某个数据库下指定的表名SQL。复制查出来的删除sql语句,并批量执行。2.生成删除某个数据库下指定的表名SQL。1.生成删除某个数据库下所有的表SQL。1.生成删除某个数据库下所有的表SQL。原创 2023-03-28 11:10:14 · 10275 阅读 · 0 评论