作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7289451.html --oracle分页(Pageing Query) select * from (select rownum r,e1.* from (select * from emp order by sal) e1 ) ; SQL SQL> --查询工资比SCOTT高的员工信息 SQL> --1. SCOTT的工资 SQL> select sal from emp…
多表查询 笛卡尔积 同时查询多张表时,每张表的每条数据都要和其它表的每条数据做组合.如下栗子,我们发现产生的总记录数是 56 条,还发现 emp 表是 14 条,dept 表是 4 条,56 条正是 emp 表和 dept 表的记录数的乘积,这就是笛卡尔积. ) from dept; ) from emp; ) from emp,dept; 例: 连接条件类型 等值连接 不等值连接 外链接 自连接 多表基本查询 使用一张以上的表做查询就是多表查询,而多表查询一般则需要通过多表连接来实现. 如果多…
记得自己要敲o~~~ select * from bonus; select * from salgrade; from dual; --笛卡尔积:两张表的乘积 select * from emp,dept; select * from emp e1,dept d1 where e1.deptno =d1.deptno; /* 内联接: 隐式内联接: 不等值内联接:where e1.deptno <> d1.deptno 自联接:自己连接自己 等值内联接: where e1.deptno =…
Oracle 学习笔记(二) 知识概要: 1.子查询 2.集合操作 3.DML语句操作 4.其他数据库对象 1.子查询 查询工资比SCOTT高的员工信息 1  select * 2  from emp 3  where sal > (select sal 4               from emp 5               where ename='SCOTT'); SQL> 注意的问题 SQL> 1. 括号 SQL> 2. 合理的书写风格 SQL> 3. 可以在…
--1 子查询 如果子查询和表连接都实现的时候,推荐用表连接实现( 一般:能用表连接实现的就用表连接,有些情况用表连接不能 或者不易实现的再选择子查询) 系统:缓存,执行计划技术手段 --1 where 条件后 + 子查询 注意: 1 先执行的是子查询语句 2 子查询嵌套的层数越大,性能会随之递减 A) 当子查询写在比较运算符之后(=,!=,>,...)时 要求:子查询的查询结果不能多于1个(1,0(不会报错, 没有结果)) --eg select * from EMP where SAL>(…
表名和列名的命名规则: 必须以字母开头 必须在1-30个字符之间 只能包含A-Z,a-z,0-9,_,$,# 不能与用户定义的其它对象重名 不能使用ORACLE的保留字 创建前具备的条件: CREATE TABLE权限 建表时必须指定: 表名 列名,列的数据类型,最大长度 数据类型: varchar2(size) 变长字符型(最大长为4000字符) char(size)  定长字符型(最大2000字符) number(p,s)  数值型 date   日期型 long   变长大字符型(最大2G…
1.知识点:能够对比以下的录屏进行阅读 SQL> -- 查询10和20号部门的员工的3种方法 SQL> --1. select * from emp where deptno in (10,20); SQL> --2. select * from emp where deptno=10 or deptno=20; SQL> --3. 集合运算:union/union all并集.intersect 交集:minus差集 SQL> -- select * from emp wh…
1.通过查询快速创建表 create table test1(id,job,mgr,sal) as () ) ---这是一个分页查询 ok,表创建成功 2.通过查询快速创建视图 create or replace view V_test1 as () ) ---这是一个分页查询 ok,视图创建成功 注意:resource角色可能无法创建视图,所以你在创建视图的时候,可能会遇到权限不足的情况,解决方案是:以dba身份登录数据库,然后执行如下语句: ok,可以创建视图了. 3.通过查询结果集结合In…
Oracle子查询:当一个查询依赖于另外一个查询的结果的时候,就需要使用子查询.单行子查询 :筛选条件不明确,需要执行一次查询且查询结果只有一个字段且字段值只有一个.注意:where子句中允许出现查询语句,该查询语句称为子查询.使用:select 内容 from 表名 where 字段名 比较运算符 子查询语句 --查询所有比雇员'CLARK'工资高于员工的信息 select * from emp where sal>(select sal from emp where ename='CLARK…
学习了SQL子查询,遇到个Top-N问题,即:加入有张工资表(这里使用Oracle SCOTT用户的emp表),需要查找工资最高的3个员工信息,以下列格式输出: 乍眼一看,这很简单啊,对sal进行排序就可以了啊. select rownum,empno,ename,sal from emp order by sal desc; 但是,前面的行号呢?题目只要求输出前三行啊... 那这样可不可以呢? select * from(select rownum,empno,ename,sal from e…