oracle学习篇四:多表查询】的更多相关文章

一.概念: 1.多表连接有以下几种分法: (1)内连接           vs          外连接 (左.右.满) (2)等值连接        vs         不等值连接 (3)非自连接        vs         自连接 2.笛卡尔集:  所有表中的所有行互相连接 产生条件:(1)多表查询没有连接条件 (2)连接条件无效 3. 内连接   :  结果集中不包含一个表与另一个表不匹配的行 外连接   :  两个表在连接过程中除了返回满足连接条件的行以外(这里的数据是内连接…
-----------------产生笛卡儿积------------------------------------ select * from emp,dept; --不带条件时,记录数为14*4 =56条记录 select * from emp cross join dept;--交叉连接,同上 select count(*)from emp; ---左连接( 返回包括左表中的所有记录和右表中联结字段相等的记录 ) select d.dname,e.ename from emp e,dep…
1.知识点:能够对比以下的录屏进行阅读 SQL> --等值连接 SQL> --查询员工信息: 员工号 姓名 月薪 部门名称 SQL> select empno,ename,sal,dname 2 from emp,dept 3 where emp.deptno=dept.deptno; SQL> --不等值连接 SQL> --查询员工信息: 姓名 月薪 工资级别 SQL> select ename,sal,grade 2 from emp e,salgrade s 3…
-- 1.查询比7654工资要高的员工 select * from emp where sal>(select sal from emp where empno=7654); ---2.查询最低工资的员工信息 select * from emp where sal=(select min(sal) from emp); ------------查询出,部门名称,部门员工数,部门平均工资,部门最低收入的人员姓名,和最高收入的人员 select d.dname,t1.c,t1.avgSal,t1.m…
select * from emp; --1.找出部门30的员工select * from emp where deptno = 30; --2.列出所有办事员(CLERK)的姓名,变化和部门编号select * from emp where job = upper('clerk'); --3.找出佣金高于薪金的员工.select * from emp where comm > sal; --4.找出佣金高于薪金60%的员工.select * from emp where comm > sal…
1.1最简单的查询语句 例 1-1 SQL> select * from emp; 例 1-1 结果 这里的 * 号表示全部的列.它与在select 之后列出全部的列名是一样的.查询语句以分号( ; )结束. emp(employee)是一个员工表. 1.2 在查询语句中怎样选择特定的列 在平时的使用过程中我们须要的往往仅仅是一张表中的某一条或者某几条数据而已.但上面查询的结果可能看起来比較乱.假设我们指向知道若干个特定列的信息,使用select 语句非常easy就能够做到. 就好比我们去菜市场…
  1. 新增一个表,通过另一个表的结构和数据 create table XTHAME.tab1 as select * from DSKNOW.COMBDVERSION 2. 如果表存在: insert into tab1 select * from tab2; 3.同一个表中,将A字段的指赋给B字段: update table_name set B =  A; 4. 将一个表的字段数据插入到另一个表的字段数据中 insert into XTHAME.tab1(pk_bdversion,vbd…
select语句学习 . 创建表 create table user(user varchar2(20), id int); . 查看执行某条命令花费的时间 set timing on: . 查看表的结构 desc 表名: . 查询所有列 select * from 表名; . 查询指定列 select 某列名1,某列名2 from 表名; . 取消重复行 select distinct 某列名1,某列名2 from 表名: 其中distinct作用在后面多列,只有每行完全相同才会被滤去 .  …
count组函数:(过滤掉空的字段) select count(address),count(*) from b_user max() avg() min(),sum() select sum(age),max(age),min(age),avg(nvl(age,0)) from b_user 1       260     70      10      37.1428571428571 group by:如果前面定义了该字段名  则groupby必须也写上该字段 select name,pw…
多表查询     这篇文章主要讲四点: (1)oracle多表查询    (2)SQL99标准的连接查询   (3)子查询     (4)分级查询 oracle多表查询有两种方式,一种是oracle所特有的查询方式,一种是SQL99标准的连接查询,是通用的一种多表查询. 1. Oracle 连接 等值连接 在where中加入连接条件.在表中有相同的列在列名之前可以加上前缀. --查询 员工的id 员工的姓名 员工的部门名称 员工所在的部门的城市 select e.employee_id,e.fi…