
数据库
文章平均质量分 54
数据库
xiaokanfuchen86
这个作者很懒,什么都没留下…
展开
-
where条件中使用case when是什么鬼?
case when转载 2023-08-27 19:49:41 · 5098 阅读 · 0 评论 -
MySql时间处理及interval函数运用
MySql时间操作1.interval的说明1.1、当函数使用时,即interval(),为比较函数,如:interval(10,1,3,5,7); 结果4;原理:10为被比较数,后面1,3,5,7为比较数,将后面四个依次与10比较,看后面数字组有多少个少于10,则返回其个数。前提是后面数字组为从小到大排列,否则返回结果0。1.2、当关键词使用时,表示为设置时间间隔,常用在date_add()与date_sub()函数里,如:interval 1 day ,解释为将时间间隔设置为1天日期增加转载 2022-02-27 22:41:10 · 5185 阅读 · 1 评论 -
postgresql interval 字段拼接
无拼接时:SELECT scan_time + '5 day' FROM tbl_temp_record SELECT scan_time + '-5 day' FROM tbl_temp_record 拼接字段时:SELECT scan_time + 5 || ' day' FROM tbl_temp_record 报错ERROR: operator does not exist: timestamp without time zone + integerSQL 状态: 4288...转载 2022-02-27 22:38:59 · 1327 阅读 · 1 评论 -
Oracle解决高水位线(high water mark 简称:HWM)问题
高水位?(high water mark 简称:HWM)1.什么是高水位?(high water mark 简称:HWM)所有的Oracle段(segments,在此,为了理解方便,建议把segment作为表的一个同义词)都有一个在段内存放数据的上线,那么我们把这个上线成为“high water mark”或HWM.HWM是一个标记,用来说明已经有多少没有使用的数据块分配给了这个segment。MWM通常增长的幅度为一次5个数据块。原则上MWM只会增大,不会缩小。即使表中的全部数据都删除了,那么HW转载 2022-01-02 18:19:32 · 5764 阅读 · 0 评论 -
drop、truncate和delete的区别
(1)DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。TRUNCATETABLE则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。(2)表和索引所占空间。当表被TRUNCATE后,这个表和索引所占用的空间会恢复到初始大小,DELETE操作不会减少表或索引所占用的空间。drop语句将表所占用...转载 2022-01-02 18:17:40 · 152 阅读 · 0 评论 -
PLSQL创建Oracle定时任务
本文通过一个简单的小例子向大家展示如何通过PLSQL创建Oracle定时任务~1、创建两个测试表(xzw、person),两个表有相同的字段,分别是id,name,pwd。2、创建存储过程,向person表中插入xzw表中的数据:create or replace procedure aaa is exe_sql_1 varchar2(4000); exe_sql_2 varchar2(4000);BEGIN exe_sql_1:='TRUNCATE TABLE person转载 2021-06-29 22:22:08 · 794 阅读 · 0 评论 -
使用plsql创建oracle定时器
工作中,我们使用的数据库大部分是oracle、mysql、db2、sql server等数据库,在使用oracle最匹配的工具plsql的时候,如果用plsql创建定时器呢?下面我简单介绍使用工具创建定时器的方法。打开PLSQL,展开左侧工具上的DBMS_JOBS定时器文件夹。通过plsql查看tables、views等文件夹,找到定时器对应的DBMS_Jobs文件夹。新建定时器job。在文件夹或者在已有的定时器上右键 new... 创建一个新的job(定时器)输入红色选中的必输参数。W转载 2021-06-29 22:17:15 · 403 阅读 · 0 评论 -
between and写法
通常的写法是求一列在两个值之间,比如有一列是生日,类型为日期,字段名为birthday,求出生年月在2020年1月1日到2021年1月1日的所有值,则sql为select * from user where to_char(birthday ,'YYYY-MM-DD') between 2020-01-01 and 2021-01-01另外一种就是求一个值在两列值中间...原创 2021-06-29 20:26:01 · 652 阅读 · 0 评论 -
SQL使用case when 动态的修改where条件
原SQL:SELECT loan.*, loan_phase.plannedTermAmountFROM loanLEFT JOIN loan_phase ON loan_phase.loanId = loan.loanIdWHEREloan_phase.phaseNumber = loan.repayedTermCount + 1AND loan.borrowerId = 100588AND ( loan. STATUS = 500 OR loan. STATUS = 55.转载 2021-06-29 20:09:26 · 819 阅读 · 0 评论 -
什么是绑定变量,有什么优缺点?
提到绑定变量,首先肯定想到硬解析和软解析。绑定变量时解决硬解析的利器。硬解析:就是一条没有执行过的sql。数据库首先对他进行语法分析和解析,过后,根据分析的信息生成最好的执行计划,然后执行。软解析:就是已经存在了一样的sql语句了绑定变量实质就是变量。类似于我们是用过的替代变量(占位符)。就是在sql语句中使用变量,通过改变变量的值来得到不同的结果。sql语句是分为动态部分和静态部分的。而动态部分在一般的情况下,对执行计划的影响是微乎其微的。所以同一个sql语句有不同动态部分生成的执行计转载 2021-06-29 20:04:50 · 1376 阅读 · 0 评论 -
绑定变量及其优点
什么是绑定变量(bind variable)bind var是指在sql语句的条件中使用变量而不是常量。比如shared pool里有两条sql语句,select * from tab1 where col1=1;select * from tab1 where col1=2;对oracle数据库来说,这是两条完全不同的SQL,对这两条语句都需要进行hard parse。因为oracle会根据sql语句的文本去计算每个字符在内存里的hash值,因此虽然上述两条SQL只有一个字符不一样,oracle根转载 2021-06-29 20:03:27 · 413 阅读 · 0 评论 -
绑定变量及其优缺点
对于每个程序开发人员来说,数据库的知识都是或多或少的了解些,都能编写一些SQL语句,即使不会也可以使用一些工具来生成SQL语句,因此数据库在很多时候被认为是没有必要研究的。随着系统使用人数增加,系统也遇到了瓶颈,于是开发人员高呼:“给我内存与CPU,系统将会faster!”可是作为盈利性企业,投入与回报是不能成等价比的,必须做到投入少回报多!所以,数据库的开发在系统的前期工作当中非常重要,良好的数据库设计将会提升系统的可扩展性。数据库在执行SQL语句时会首先解析SQL语句,解析又分为硬解析与软解析。说到转载 2021-06-29 20:01:53 · 247 阅读 · 0 评论 -
SQL-truncate 删除表和 delete的区别
QL truncate table命令用于删除现有表中完整的数据。您还可以使用DROP TABLE命令删除完整的表,但它会从数据库中删除完整的表结构并如果你愿意,你可再次存储一些数据重新写入到该表。语法truncate table的基本语法如下:TRUNCATE TABLE table_name;1.DELETE・DML语言・可以回退・可以有条件的删除DELETE FROM 表名WHERE 条件2.TRUNCATE TABLE・DDL语言・无法回退・默转载 2021-06-29 19:51:44 · 214 阅读 · 0 评论 -
JNDI学习总结(一)——JNDI数据源的配置
一、数据源的由来 在Java开发中,使用JDBC操作数据库的四个步骤如下: ①加载数据库驱动程序(Class.forName("数据库驱动类");) ②连接数据库(Connection con = DriverManager.getConnection();) ③操作数据库(PreparedStatement stat = con.prepareStatement(sql);stat.executeQuery();) ④关闭数据库,释放连接(con....转载 2021-05-16 19:55:47 · 1730 阅读 · 1 评论 -
Oracle常见死锁发生的原因以及解决方法
一.删除和更新之间引起的死锁造成死锁的原因就是多个线程或进程对同一个资源的争抢或相互依赖。这里列举一个对同一个资源的争抢造成死锁的实例。CREATETABLEtestLock(IDNUMBER,testVARCHAR(100))COMMITINSERTINTOtestLockVALUES(1,'test1');INSERTINTOtestLockVALUES(2,'test2');COMMIT;SELECT*FROMtes...转载 2021-03-07 21:50:37 · 2926 阅读 · 2 评论 -
Oracle DBLINK创建和使用
当用户需要跨越本地数据库,访问远程数据库的数据时,oracle提供了dblink的方式,让我们可以很方便访问远程数据库像本地一样方便,我们下面来看看创建dblink的方法工具/原料 oracle plsql developer 方法/步骤 步骤一:首先查询当前用户是否有创建dblink的权限,如果没有,需要赋权 select * from user_sys_privs t where t.privilege like upper('%link%');命令查询,从结果上看转载 2021-03-05 15:15:52 · 1233 阅读 · 0 评论 -
plsql登录时报错:Initialization error orcle not properly installed
1、plsql版本:10.0.5.1710;2、精简的绿色oracle客户端:instantclient-basic-nt-12.1.0.2.0下载链接:http://download.csdn.net/detail/pioayang/7236231下载后将其拷贝到plsql安装目录下;注:此链接本人未验证,若不可用,尝试从其它网站下载。下载的文件解压后应为一个文件夹,无需安装,将文件夹拷贝到指定目录即可。3、打开plsql客户端,依次进入Tools-Preferences-Oracle转载 2021-03-05 15:12:12 · 951 阅读 · 0 评论 -
PLSQL Developer安装、tnsnames.ora配置 解答
前提是您已经安装好了PLSQL-Developer工具,安装PLSQL程序相信大家都会正常的登录窗口:当你的图为:没有这个选项无法连接数据库.没有安装Oracle的话,这里就会少一个选项"连接为",如果您安装了Oracle客户端那就请忽略该经验,因为PLSQL工具会自动从系统注册表找有没有Oracle的配置信息,没有则显示如第一张图,有则显示第二张图(也可能个别机器即使安装了Oracle客户端还是没显示,这样需要手动去添加Oracle的参数配置文件), 那么怎样能不用安装Oracle客转载 2021-03-05 15:09:51 · 778 阅读 · 0 评论 -
oracle怎么查存在的dblink
select owner,object_name from dba_objects where object_type='DATABASE LINK';#查询出dba用户下的dblinkselect * from user_objects t where t.object_type='DATABASE LINK' #查询当前用户下的dblink转载 2021-03-05 15:06:20 · 3938 阅读 · 0 评论 -
解决IE下Ajax[get]方法请求无效【IE缓存机制】
在遇到这个问题后整理了一下各种解决办法1.在url后面加个随机数ie11下,如果GET请求请求相同的URL,默认会使用之前请求来的缓存数据,而不会去请求接口获取最新数据,把ajax路径加一个随机数var url1 = "/test" + "&" + Math.random(); var url2 = "/test" + "&" + new Date().getTime();//IE11 在使用haproxy情况下对ajax链接下使用new date().ToStrin转载 2021-01-27 20:14:03 · 381 阅读 · 0 评论 -
SQL Developer更改日期显示格式
工具->首选项->数据库->NLS->日期格式: DD-MON-RR 修改为: YYYY-MM-DD HH24:MI:SS工具->首选项->数据库->NLS->时间戳格式: DD-MON-RRHH.MI.SSXFF AM 修改为:YYYY-MM-DD HH.MI.SSXFF AM转载 2021-01-27 20:12:11 · 1737 阅读 · 0 评论 -
oracle运用(一) oracle数据库使用 TIMESTAMP()类型查询数据
1.刚开始,使用PLSQL Developer执行如下SQL语句:select billsell.CREATE_TIME from BILL_SELL billsell WHERE billsell.STATUS <> 9 AND billsell.ACTIVE_FLAG = 0 AND billsell.STATUS = 2 AND billsell.CREATE_TIME >= to_timestamp('2015-06-11 15:5.转载 2021-01-27 20:08:28 · 2163 阅读 · 0 评论 -
Oracle to_date、to_timestamp、to_char、to_number 用法
厚颜打广告,博主个人博客地址传送门,欢迎来访在说to_char,to_date,to_timestamp这些内置函数之前,首先要对数据库日期类型有所认识:date和timestampdateDATE数据类型的问题在于它表示两个事件发生时间间隔的度量粒度是秒。timpstampORACLE已经在DATE数据类型上扩展出来了TIMESTAMP数据类型,它包括了所有DATE数据类型的年月日时分秒的信息,而且包括了小数秒的信息。如果你想把 DATE类型转换成TIMESTAMP类型,就使用C.转载 2021-01-27 20:05:45 · 1780 阅读 · 0 评论 -
oracle schema
oracle schema上图来自oracle官方文档每个oracle账户,都有一个同名的schema容器. 一个用户有一个缺省的schema,其schema名就等于用户名,当然一个用户还可以使用其他的schema。如果我们访问一个表时,没有指明该表属于 哪一个schema中的,系统就会自动给我们在表上加上缺省的sheman名。比如我们在访问数据库时,访问scott用户下的emp表,通过 select * from emp;其实,这sql语句的完整写法为select * fro...转载 2021-01-23 15:32:31 · 651 阅读 · 0 评论 -
SQL中ON和WHERE的区别
数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。在使用leftjion时,on和where条件的区别如下:1、on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有leftjoin的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。假设有两张表:表1:tab2idsize110220330表2:tab2...转载 2020-09-10 09:02:26 · 388 阅读 · 0 评论 -
树状结构的数据表如何设计?
如果你的树深度是可预期的话,有个超简单的数据结构。你需要3个字段来表达这个树:id,本节点的primary key parent_id,其值为父节点的primary key key,忘了学名叫啥了,你可以称为线索 level,表示当前节点到根节点的距离其中,key字段的值为:从跟节点到父节点的primary key,中间用任意非数字符号分割。例如以下树状结构├── a│ ├── d│ │ ├── p│ │ ├── q│ │ └── r│ ├──...原创 2020-09-09 15:54:46 · 2334 阅读 · 0 评论 -
SQL中rownum和order by的执行顺序的问题
在一个SQL中,如果同时使用rownum和order by,会有一个先后顺序的问题。比如select id1,id2 from t_tablename where rownum<3 order by c_date desc ,这个语句会先从结果集中取前三条记录,再对这3天记录按日期排序。如果设计者向先对日期排序,再取前三天记录,那么就不会得到正确的结果。所以rownum和order by一起使用的时候一定要注意的执行顺序的问题。这句可以这样实现select id1,id2 from (se转载 2020-08-22 12:48:26 · 360 阅读 · 0 评论 -
DB2 FETCH FIRST {n} ROWS ONLY
DB2 不支持 Limit 语法,想查询前多少条,可以使用如下语句:SELECT * FROM TABLE_NAME FETCH FIRST {n} ROWS ONLY转载 2020-08-22 12:47:32 · 3891 阅读 · 0 评论 -
mysql与oracle 长度区别
mysql数据同步到oracle数据mysql中varchar(10)与oracle中varchar2(10)不一致mysql中varchar(10)代表10个汉字,10个字母,10个数字oracle中varchar2(10)代表的是字节,而不是字符mysql一个汉字三个字节,oracle一个汉字两个字节以下结论从网上所得1.mysql存储的是字符数(不分语言)2.oracle存储的需要看定义,如果定义为varchar2(n),则默认是n个字节,如果是varchar2(n char)则是n个字转载 2020-08-22 12:42:02 · 1214 阅读 · 0 评论 -
关于oracle sql语句查询时表名和字段名要加双引号的问题详解
作为oracle的初学者相信大家一定会遇到这个问题,如图:明明就是navicat可视化创建了表,可是就是不能查到!这个为什么呢?select * from user;但是,我们如果给user加上双引号就不一样了!select * from "user";却可以等到下面的结果,如图:到这里我想大家肯定会说:难道oracle跟mysql等不同,查询时候一定要加双引号?那这样不是很麻烦!于是经过查找资料得出如下结论:1、oracle表和字段是有大小写的区别。oracle默.转载 2020-05-15 20:46:44 · 3110 阅读 · 0 评论 -
hive 中 NOT IN 不包含空字符串
笔者在HIVE中,用 IN 与 NOT IN 分别计算总数。eg: table a中的ID 有值 1,2,3和空A.SELECT COUNT(CUST_NO) FROM TABLE A WHERE A.ID IN ('1',''2)B.SELECT COUNT(CUST_NO) FROM TABLE A WHERE A.IDNOT IN ('1',''2)C.SELECT ...转载 2020-04-08 20:39:25 · 752 阅读 · 0 评论 -
mysql left join之后的行数有可能与左表的行数不同
首先,谈一下left join时,放在 on 后面的条件与放在 where 后面的条件有什么不同:on是在生成连接表的起作用,where是生成连接表之后对连接表再进行过滤:当使用left join时,无论on的条件是否满足,都会返回左表的所有记录,对于满足的条件的记录,两个表对应的记录会连接起来,对于不满足条件的记录,那右表字段全部是null;当使用right join时,类似,只不...转载 2020-04-04 15:16:40 · 2359 阅读 · 0 评论 -
sql 整理
CREATE TABLE `CELLOL.TAPS_CT_SRC_GRP_MSTR` ( `SRC_GRP_ID` varchar(50), `SRC_GRP_NM` varchar(100), `SRC_GRP_LEVEL` varchar(30), `PARENT_SRC_GRP_ID` varchar(50), 'DEL_YN' varchar(1), 'INS_PE...原创 2020-01-23 15:28:27 · 263 阅读 · 0 评论