SQL
SQL基础
西域传说
这个作者很懒,什么都没留下…
展开
-
DOS连接mysql
连接mysqlmysql -h 主机地址 -u 用户名 -p原创 2020-06-04 16:29:38 · 154 阅读 · 0 评论 -
调试存储过程时,传入date类型的参数
原创 2020-02-26 11:26:47 · 2250 阅读 · 0 评论 -
Oracle中的ROWNUM
rownum <= 5 会返回5行。但rownum = 5 一行的不会返回。Oracle会在取得某一行数据之后为其编号,和条件相比,满足条件则返回当前行,不满足条件舍弃当前行。rownum <= 5Oracle执行查询。 Oracle取得第一行数据,并把它的行号定为1。 判断是否超过5行,如果没有,Oracle会返回当前行,如果超过,那么Oracle就不返回当前行。...原创 2020-01-20 20:11:14 · 118 阅读 · 0 评论 -
oracle关于时间的使用
一、加减date类型可以直接加减天数,加减月份要勇add_months();select e.hiredate + 30/24/60/60 + 20/24/60 + 5/24 as hiredate from emp e where rownum <= 1; 1980/12/17 5:20:30select e.hiredate + 30/24/60/60 + 20...原创 2019-11-10 02:48:13 · 298 阅读 · 0 评论 -
oracle窗口函数的应用
drop table detail purge;create table detail as select 1000 as 编号, '预交费用' as 项目, 30000 as 金额 from dual;insert into detail select empno as 编号, '支出' || rownum as 项目, sal + 1000 as 金额 from emp where de...原创 2019-11-07 15:49:05 · 183 阅读 · 0 评论 -
PLSQL中NULL值的影响
什么是NULL?在Oracle中,一个缺失值由NULL来表示。 空字符串:‘’;‘’ is null 该表达式为true;declare -- Local variables here begin -- Test statements here if '' is null then dbms_output.put_line(1); end ...原创 2019-05-13 20:58:27 · 2489 阅读 · 0 评论 -
where子句中的and和or的影响
and 和 or 的执行条件select * from emp where deptno = 10 or comm is not null or sal <= 2000 and deptno = 20;在这个实例中where子句找到了如下的数据:deptno 等于 10,或 comm 不为NULL,或 deptno 等于20 且工资不高于2000的员工...原创 2019-05-14 23:38:10 · 1289 阅读 · 0 评论 -
oracle字符串常用的函数
一、instr() 函数的用法instr函数返回要截取的字符串在源字符串中的位置格式一:instr( string1, string2 ) / instr(源字符串, 目标字符串)格式二:instr( string1, string2 [, start_position [, nth_appearance ] ] ) / instr(源字符串, 目标字符串, 起始位置...原创 2019-05-16 00:09:27 · 472 阅读 · 0 评论 -
where子句中引用别名列
在where子句中引用别名列,查询报错:select sal as salary, comm as commission from emp where salary <= 2000;正确写法:select * from (select sal as salary, comm as commission from emp) x where salary <= ...原创 2019-05-14 23:58:26 · 485 阅读 · 0 评论 -
with内联视图 创建分割列表
with语句理解为:临时创建一个在查询期间存在的view,这个视图仅在查询期间存在,查询之后就消失。with e as (select rownum, deptno, mgr, job from v)select deptno from ( select rownum, deptno from e where mgr = 7698 union select rownum...原创 2019-05-27 19:49:07 · 407 阅读 · 0 评论 -
PLSQL集合总结
集合是一种类似列表或一维数组的数据结构1,关联数组. 2,嵌套表. 3,VARRAY集合变量都要基于一个预先定义好的集合进行声明同质元素:集合中的每一个元素的数据类型都是相同的。一个集合对集合中的行数进行了预先的设置,这个集合就是有界的, VARRAY或长度可变的数组是有界的嵌套表和关联数组是无界的紧凑和稀疏:一个集合从第一行到最后一行的所有行都被定义并且赋值,就是紧凑的 ...原创 2019-05-09 16:52:10 · 328 阅读 · 0 评论 -
SQL的执行顺序
执行顺序:FROM>ON>JOIN>WHERE>GROUP BY>WITH CUBE or WITH ROLLUP>HAVING>SELECT>DISTINCT>ORDER BY>TOPselect m.* from (select t.*, rownum r from (select id, name, e...原创 2019-05-08 13:55:22 · 134 阅读 · 0 评论 -
Oracle 字符串的检索和提取
我们经常遇到字符串的提取,。INSTRINSTR函数 :返回一个字符串在另一个更大的字符串中出现的字符位置。declare names varchar2(60) := 'Anna,Matt,Joe,Nathan,Andrew,Aaron,Jeff'; comma_location number := 0; begin -- Test statements here...原创 2019-05-09 16:52:24 · 1135 阅读 · 0 评论 -
使用PLSQL写冒泡排序
用java、C 做冒泡排序很常见,所以我这里想使用plsql写一个冒泡排序:i 组数据:1、2、3、4、5、6j 组数据:1、2、3、4、5、6第一轮:i 组的 1 分别和 j 组的1、2、3、4、5、6 比较。第二轮:i 组的 2 分别和 j 组的2、3、4、5、6 比较。第三轮:i 组的 3分别和 j 组的3、4、5、6 比较。第四轮:i 组的 4分别和 j 组的4...原创 2019-05-09 16:52:49 · 746 阅读 · 0 评论 -
Oracle中随机数
dbms_random.value()select * from (select sal, comm from emp order by dbms_random.value()) where rownum <= 5;原创 2019-05-15 00:21:02 · 258 阅读 · 0 评论 -
inner join、left join、right join、full join
inner join:该方式返回俩表相匹配的数据select e.empno, e.name, d.dname, d.loc from emp e inner join dept d on (e.deptno = d.deptno) where e.dempno = 10;另一种写法:select e.empno, e.ename, d.dname, d.loc...原创 2019-05-27 20:39:27 · 167 阅读 · 0 评论 -
经典案例:工资和奖金
建立案例用户数据:create table emp_bonus(empno int, received date, type int);insert into emp_bonus values(7934,DATE '2005-5-17',1);insert into emp_bonus values(7934,DATE '2005-2-15',2);insert into emp_bo...原创 2019-05-28 11:11:46 · 437 阅读 · 0 评论 -
connect by
connect by 是树形查询的一个子句,后面的level是一个伪列,表示树形查询中的级别层次,通过level <= 4循环4次,就生成4行。select level from dual connect by level <= 4;...原创 2019-05-28 14:13:47 · 221 阅读 · 0 评论 -
union 、union all和 or的区别
union all 是合集,用于合并多个数据集。当一个数据集的列不够时,使用null来填充该列的值,而空字符串在Oracle中相当于null。or 是取俩个结果的合集。当条件里有or时,经常会改写成union 。select empno, enmae from emp where empno = 228 or ename = 'SCOTT';可改写为:select empno,...原创 2019-05-27 19:39:55 · 8467 阅读 · 4 评论 -
oracle分析函数技术详解(配上开窗函数over())
一、Oracle分析函数入门分析函数是什么?分析函数是oracle用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组,然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计值。分析函数和聚合函数的不同之处是什么?普通的聚合函数用group by分组,每个分组返回一个统计值,而分析函数采用partition by分组,并且每组每行都可以返回一个统计值。gro...原创 2019-11-06 15:20:24 · 163 阅读 · 0 评论 -
按照某字段进行分组,并把其中一列的值合并显示在一个字段中
工作时遇到需求 : 按照某字段进行分组,并把其中一列的值合并显示在一个字段中如: 1 苹果1 鸭梨2 香蕉2 葡萄显示为 : 1 苹果\鸭梨2 香蕉\葡萄经过学习可以使用listagg \ within groupcreate table DEMO( id NUMBER, name VARCHAR2(20), nums NUMBER);ins...原创 2019-11-01 09:42:38 · 164 阅读 · 0 评论