
数据库
haijiege
这个作者很懒,什么都没留下…
展开
-
Oracle高级查询之OVER (PARTITION BY ..)
为了方便大家学习和测试,所有的例子都是在Oracle自带用户Scott下建立的。注:标题中的红色order by是说明在使用该方法的时候必须要带上order by。一、rank()/dense_rank() over(partition by ...order by ...)现在客户有这样一个需求,查询每个部门工资最高的雇员的信息,相信有一定oracle应用知识的同学都能写出下面的SQL语句:[s...转载 2018-03-19 10:51:25 · 328 阅读 · 0 评论 -
数据库存取缓冲区的LRU与MRU算法
1.Cache Hit and Cache Miss当使用者第一次向数据库发出查询数据的请求的时候,数据库会先在缓冲区中查找该数据,如果要访问的数据恰好已经在缓冲区中(我们称之为Cache Hit)那么就直接用缓冲区中读取该数据.反之如果缓冲区中没有使用者要查询的数据那么这种情况称之为Cache Miss,在这种情况下数据库就会先从磁盘上读取使用者要的数据放入缓冲区,使用者再从缓冲区读取该数据.很...转载 2018-07-06 18:32:57 · 3771 阅读 · 0 评论 -
MySQL--启动和关闭MySQL服务
1.Windows下启动服务 mysqld --console 或 net start mysql 关闭服务 mysqladmin -uroot shudown 或 net stop mysql 2.Linux下启动服务 service mysql start 关闭服务 service mysql stop 重启服务...原创 2018-11-07 18:31:17 · 397 阅读 · 0 评论 -
navicat 快捷键
1.ctrl+q 打开查询窗口2.ctrl+/ 注释sql语句3.ctrl+shift +/ 解除注释4.ctrl+r 运行查询窗口的sql语句5.ctrl+shift+r 只运行选中的sql语句6.F6 打开一个mysql命令行窗口7.ctrl+l 删除一行8.ct...原创 2018-11-14 18:22:08 · 659 阅读 · 0 评论 -
count(1)、count(*)与count(列名)的执行区别
执行效果:1. count(1) and count(*)当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时多了! 从执行计划来看,count(1)和count(*)的效果是一样的。 但是在表做过分析之后,count(1)会比count(*)的用时少些(1w以内数据量),不过差不了多少。 如果count(1)是聚索引,id,那肯定是count...转载 2018-12-14 17:09:38 · 114449 阅读 · 8 评论 -
hive中显示当前使用的数据库
在 hive命令行不知道当前数据库有时会带来麻烦。1、可以在hive命令行执行以下语句显示当前数据库:select current_database();2、可以设置hive属性在命令行显示当前数据库:set hive.cli.print.current.db=true;...原创 2019-01-02 11:43:07 · 5014 阅读 · 0 评论 -
暴力扫描的案例
分区剪裁合理性评估:http://help.aliyun-inc.com/internaldoc/detail/35451.html?spm=a2c1f.8259796.2.351.27b096d5sumssg暴力扫描:http://gitlab.alibaba-inc.com/cdo/adrs/wikis/force_scan暴力扫描的案例 对比 分区剪裁合理性评估 有矛盾:分区裁剪合理...转载 2019-06-10 17:35:26 · 703 阅读 · 0 评论 -
MySQL比like语句更高效的写法
LIKE语句SELECT `column` FROM `table` where `condition` like `%keyword%'事实上,可以使用 locate(position) 和 instr 这两个函数来代替一、LOCATE语句SELECT `column` from `table` where locate(‘keyword’, `condition`)>0二、或是 loca...转载 2018-03-05 18:26:26 · 809 阅读 · 0 评论 -
浅谈sql中的in与not in,exists与not exists的区别
1、in和existsin是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询,一直以来认为exists比in效率高的说法是不准确的。如果查询的两个表大小相当,那么用in和exists差别不大;如果两个表中一个较小一个较大,则子查询表大的用exists,子查询表小的用in;例如:表A(小表),表B(大表)select * fr转载 2018-01-11 10:01:54 · 576 阅读 · 0 评论 -
ORACLE 中ROWNUM用法总结!
ORACLE 中ROWNUM用法总结! 对于 Oracle 的 rownum 问题,很多资料都说不支持>,>=,=,between...and,只能用以上符号(,& gt;=,=,between..and 时会提示SQL语法错误,而是经常是查不出一条记录来,还会出现似乎是莫名其妙的结果来,其实您只要理解好了这个 rownum 伪列的意义就不应该感到惊奇,同样是伪列,rownum 与 rowid转载 2017-12-20 18:39:12 · 14352 阅读 · 0 评论 -
RAISE_APPLICATION_ERROR用法
可能不是很多人知道 RAISE_APPLICATION_ERROR 的用途是什么,虽然从字面上已经猜到这个函数是干什么用的。平时用来测试的异常处理我们都是通过dbms_output.put_line来输出异常信息,但是在实际的应用中,需要把异常信息返回给调用的客户端。其实 RAISE_APPLICATION_ERROR 是将应用程序专有的错误从服务器端转达到客户端应用程序(其他机器上的SQ转载 2015-06-02 10:38:22 · 748 阅读 · 0 评论 -
ORACLE时间函数(SYSDATE)深入理解
有些朋友对ORACLE时间函数理解不是很透彻,接下来讲详细介绍,希望可以帮助到你们加法 select sysdate,add_months(sysdate,12) from dual; --加1年 select sysdate,add_months(sysdate,1) from dual; --加1月 select sysdate,to_char(sysdat转载 2015-06-08 15:02:45 · 618 阅读 · 0 评论 -
Merge into的使用详解-你Merge了没有
Merge是一个非常有用的功能,类似于Mysql里的insert into on duplicate key. Oracle在9i引入了merge命令, 通过这个merge你能够在一个SQL语句中对一个表同时执行inserts和updates操作. 当然是update还是insert是依据于你的指定的条件判断的,Merge into可以实现用B表来更新A表数据,如果A表中没有,则把B表转载 2015-06-08 15:03:44 · 412 阅读 · 0 评论 -
Oracle 11g sys,system 密码忘记设置解决办法
1.启动sqlplus2.请输入用户名: sqlplus/as sysdba3.输入口令: 直接回车4.连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production With the Partitioning, OLAP, Data Mining and Re翻译 2015-07-28 23:37:50 · 393 阅读 · 0 评论 -
用bat命令以当前日期为名字建立文件夹
set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"md %ymd%copy /y E:\Anan\*.log E:\Anan\%ymd%\第一句为建立一个变量,并通过%date:~5,2%来组合得出当前日期,组合的效果为yyyymmdd,date命令得到的日期格式默认为yyyy-mm-dd(如果不是此格式可以通过pause命原创 2015-08-12 09:13:21 · 1061 阅读 · 0 评论 -
大表关联小表
当一个大表和一个或多个小表做join时,可以使用mapjoin,性能比普通的join要快很多。mapjoin的基本原理是:在小数据量情况下,SQL会将用户指定的小表全部加载到执行join操作的程序的内存中,从而加快join的执行速度。需要注意,使用mapjoin时:left outer join的左表必须是大表;right outer join的右表必须是大表;inner join左表...转载 2019-06-10 17:35:59 · 9737 阅读 · 0 评论