码字定式之SQL(4)

一些子查询

  1. select empno, ename from emp where mgr in
  2. (select empno from emp where job=‘MANAGER‘);
  3. select * from dept where deptno not in (select distinct deptno from emp);
  4. select * from dept where deptno not in (select deptno from emp);
  5. select empno, ename, sal from emp where mgr=
  6. (select empno from emp where ename=‘SCOTT‘);
  7. select * from emp where sal > 1.4*
  8. (select avg(sal) from emp);
  1. insert into dept(deptno, dname, loc) select 50, ‘TRAINING‘, ‘PEKING‘ from dual;
  2. update emp set sal=sal*1.2 where exists (select 1 from dept where deptno=emp.deptno and loc=‘DALLAS‘);

在写一条孔乙己式样的sql:

update emp set sal=sal*1.2 where exists (select avg(sal) from dept);

简单的层次查询

–-查询7788号雇员的下属和下属的下属……

select level, t.* from emp t start with empno=7788 connect by prior empno=mgr;

–-查询7788号雇员的的上司和上司的上司……

select level, t.* from emp t start with empno=7788 connect by empno=prior mgr;

来自为知笔记(Wiz)

时间: 2024-10-12 12:48:02

码字定式之SQL(4)的相关文章

码字定式之SQL(1)

“定式”就是说这些知识是前人总结的经验,需要记忆的一些东西. 这些东西同样博大精深,但是拘泥于此就会陷进去.因为这些实战中有可能你3年都用不到. 怎么说呢,高手请绕道,初学者应该可以看看. 提供一个好使的兵器:pl sql develop 自带oracle客户端 ,解压就能用,支持12c. http://download.csdn.net/detail/gaoguosheng/6476241 学sql没别的窍门,就是每天练习. 本节列举一些最基础的sql : 单表 select * from e

码字定式之SQL(3)

oracle 中有个很重要的同义词 dual. 往dual中插入数据是作死的节奏,记住这点就可以. insert into dual values('20'); 你再执行 select count(*) from dual; 和 select count(dummy) from dual; 呵呵,看不懂了吧. 再试试 delete from dual: 发现执行两次才可以删除... 你会说好吧,b 给个大家装B的 语句 :set autot on explain;  -- 用于开启执行计划的,对

码字定式之SQL(7)

With 子句从 oracle 9i 开始支持 --不用connect by,只用dual表,构造出1到128 with a as (select 1 from dual union all select 1 from dual) select rownum from a, a, a, a, a, a, a; --做一个5*5的乘法表 with multiplier as (select rownum n from dual connect by rownum<6) select a.n||'*

码字定式之SQL(2)

select 基本构成之经典格式 select * from emp; select * from emp where empno>8000; select empno,ename,sal,comm from emp where sal<comm; select deptno,count(*) from emp group by deptno; select deptno,sum(sal) total_sal from emp where job='MANAGER' group by dept

码字定式之SQL(5)

--等值连接 select dname, loc, empno, ename from emp a, dept b where a.deptno=b.deptno and b.deptno=20; --自连接 select a.empno, a.sal, b.empno, b.ename, b.sal from emp a, emp b where a.mgr=b.empno and a.ename='SCOTT'; --笛卡尔积 select a||'+'||b||'='||(a+b) as

码字定式之SQL(6)

--外连接(用(+)书写) --查询出所有部门的雇员信息 select b.deptno, b.dname, a.* from emp a, dept b where a.deptno(+)=b.deptno ; --查询出所有部门的雇员数 select b.deptno, count(*) from emp a, dept b where a.deptno(+)=b.deptno group by b.deptno; select b.deptno, count(empno) from emp

sql注入总结

本实验测试是基于sqli-labs的实验环境 环境配置:php+mysql 环境搭建请参考 http://www.freebuf.com/articles/web/34619.html Sql注入定义: 就是通过把sql命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行的sql命令的目的 sql注入分类: 基于联合查询 基于错误回显 基于盲注,分时间盲注和布尔型的盲注 基于user-agent 基于feferer 基于cookie 二次注入 宽字节注入 注入一个网站

【渗透攻防Web篇】SQL注入攻击高级

前言 前面我们学习了如何寻找,确认,利用SQL注入漏洞的技术,本篇文章我将介绍一些更高级的技术,避开过滤,绕开防御.有攻必有防,当然还要来探讨一下SQL注入防御技巧. 目录 第五节 避开过滤方法总结 5.1.大小写变种 5.2.URL编码 5.3.SQL注释 5.4.空字节 5.5.二阶SQL注入 第六节 探讨SQL注入防御技巧 6.1.输入验证 6.2.编码输出 正文 第五节 避开过滤方法总结 Web应用为了防御包括SQL注入在内的攻击,常常使用输入过滤器,这些过滤器可以在应用的代码中,也可以

必杀技———SQL基础整理系列(一)

SQL(Structured Query Language)——结构化查询语言 SQL语言的组成部分 数据定义语言 (DDL:Data Definition Language) 负责数据结构定义与数据库对象定义的语言,由CREATE.ALTER.DROP三个语法所组成,操作的对象包括关系表.视图.索引等. 数据操纵语言(DML: Data Manipulation Language) 其语句包括动词SELECT(查询).INSERT(添加).UPDATE(修改).DELETE(删除)表中的行.