--查詢最高工資的員工資訊
--1.查詢出最高工資 --5000
select max(sal) from emp;
--2. 工資等於最高工資
select * from emp where sal = (select max(sal) from emp);
--查詢出比雇員7654的工資高,同時和7788從事相同工作的員工資訊
--1.雇員7654的工資 1250
select sal from emp where empno = 7654;
--2.7788從事的工作 analyst
select job from emp where empno = 7788;
--3.兩個條件合併
select * from emp where sal > (select sal from emp where empno = 7654) and job = (select job from emp where empno = 7788);
--查詢每個部門最低工資的員工資訊和他所在的部門資訊
select e.deptno, min(e.sal) from emp e group by e.deptno;
select * from emp e1
inner join (select e.deptno, min(e.sal) minsal from emp e group by e.deptno) t1
on e1.deptno=t1.deptno and e1.sal=t1.minsal
exist(當做布林值來處理,當查詢語句有結果時,返回true,否則返回false)
--查詢不到資料
select * from emp where exists(select * from emp where deptno = 123456);
--查詢emp中所有記錄 相對於where後條件永遠為true
select * from emp where exists(select * from emp where deptno = 20);
--查詢有員工的部門的資訊
select * from dept d1 where exists(select * from emp e1 where e1.deptno = d1.deptno );
--查詢不是領導的資訊(含null值正確寫法)
select * from emp where empno not in (select mgr from emp where mgr is not null); --查詢出8條記錄
通常情況下, 資料庫中不要出現null,最好的做法加上非空約束not null,null值並不代表不佔空間, char(100) null佔100個字元
--查詢不是領導的資訊(含null值錯誤寫法)
select * from emp where empno not in (select mgr from emp); --查詢不到記錄
select * from emp where empno <>all(select mgr from emp);--上行等價寫法
--查詢不是領導的資訊(含null值正確寫法)
select * from emp where empno not in (select mgr from emp where mgr is not null); --查詢出8條記錄
Oracle巢狀查詢(入門)
第 一 什麼是巢狀查詢?是指將乙個查詢結果作為另乙個查詢中where條件的物件。巢狀查詢也可用連線查詢代替。如 select from table1 where 字段 in select from table2 where 字段 設定值 第二 巢狀查詢的分類 1 帶有in謂詞的子查詢 2 比較運算子...
mysql之子查詢
所謂子查詢,就是指在乙個查詢之中巢狀了其他的若干查詢,通過子查詢可以實現多表查詢,該查詢語句中可能包含in,any,all和exists等關鍵字,除此之外還可以包含比較運算子,子查詢經常出現在where和from字句中。where字句中的子查詢 該位置處的子查詢一般返回單行單列,多行單列,單行多列資...
MySQL 之子查詢
定義 子查詢指乙個查詢語句巢狀在另乙個查詢語句內部的查詢,這個特性從 mysql4.1 開始引入,在 select 子句中先計算子查詢,子查詢結果作為外層另乙個查詢的過濾條件,查詢可以基於乙個表或者多個表。子查詢中常用的操作符有 any some all in 和 exists。子查詢可以新增到 s...