《sql语句练习1》
Oracle系列《一》:簡單SQL與單行函數(shù)??
?
使用scott/tiger用戶下的emp表和dept表完成下列練習(xí),表的結(jié)構(gòu)說明如下?
emp員工表(empno員工號(hào)/ename員工姓名/job工作/mgr上級(jí)編號(hào)/hiredate受雇日期/sal薪金/comm傭金/deptno部門編號(hào))?
dept部門表(deptno部門編號(hào)/dname部門名稱/loc地點(diǎn))?
工資?=?薪金?+?傭金
登錄Oracle數(shù)據(jù)庫
1、sqlplus?scott/tiger
2、sqlplus?/nolog
SQL>conn?scott/tiger
若是使用SYS的賬號(hào)進(jìn)行登錄的話,則使用以下語句
SQL>conn?/?as?sysdba
?
?
【1】EMP表內(nèi)容查詢
SQL>?SELECT?*?FROM?emp;?
出錯(cuò),原因是沒有找到該表,因?yàn)樵摫頃r(shí)SCOTT用戶的表,所以查詢時(shí)應(yīng)該加上scott.emp就可以了
?
【2】顯示當(dāng)前用戶
SQL>?show?user
?
【3】查看當(dāng)前用戶的所有表
SQL>?SELECT?*?FROM?tab;
?
【4】若想重復(fù)執(zhí)行上一條SQL語句,則在sqlplus命令行下輸入"/"即可
?
【5】查詢一張表的結(jié)構(gòu),例如dept表
SQL>?desc?dept
?
【6】在雇員表中查詢雇員的編號(hào)、姓名、工作
SQL>?SELECT?empno,ename,job?FROM?emp;
?
【7】可以為列名取別名,在Linux下Oracle如果英文別名不加上雙引號(hào)則會(huì)變成大寫
SQL>?SELECT?empno?編號(hào),ename?姓名,job?工作?FROM?emp;
?
【8】查詢所有的工作
SQL>?SELECT?DISTINCT?job?FROM?emp;?
工作可能會(huì)重復(fù),加上DISTINCT關(guān)鍵字???去重復(fù)值
?
【9】若要求按照以下的格式進(jìn)行結(jié)果輸出,如?NO:7469,Name:SMITH,Job:CLERK
SQL>?SELECT?'NO:'||empno||',Name:'||ename||',Job:'||job?FROM?emp;
?
【10】要求列出每個(gè)雇員的姓名及年薪
SQL>?SELECT?ename,sal*12?income?FROM?emp;
這里年薪最好用別名進(jìn)行標(biāo)識(shí),可以一眼就能明白
?
【11】查看每月可以得到獎(jiǎng)金的雇員信息
SQL>?SELECT?*?FROM?emp?WHERE?comm?is?NOT?NULL;
?
?
【12】要求基本工資大于1500,同時(shí)可以領(lǐng)取獎(jiǎng)金的雇員信息
SQL>?SELECT?*?FROM?emp?WHERE?sal>1500?AND?comm?is?NOT?NULL;
如果是或的是關(guān)系,則使用?OR
?
【13】查詢基本工資不大于1500,同時(shí)不可以領(lǐng)取獎(jiǎng)金的雇員信息
SQL>?SELECT?*?FROM?emp?WHERE?NOT(sal>1500?AND?comm?is?NOT?NULL);
?
【14】查詢在1981年雇傭的全部雇員信息,BETWEEN?..?AND?包含等于的情況
SQL>?SELECT?*?FROM?emp
WHERE?hiredate?BETWEEN?'01-JAN-81'?AND?'31-DEC-81';
?
【15】Oracle對(duì)大小敏感,所以查詢時(shí)名字要區(qū)分大小寫
?
【16】要求查詢出雇員編號(hào)不是?7369、7499的雇員信息
SQL>?SELECT?*?FROM?emp
WHERE?empno?NOT?IN(7369,7499);
?
【17】SQL中LIKE語句要注意通配符?%?和?_
SQL>?SELECT?*?FROM?emp
WHERE?hiredate?LIKE?'%81%';
?
【18】查看雇員編號(hào)不是7369的雇員信息,使用<>或!=
SQL>?SELECT?*?FROM?emp
WHERE?empno<>7369;
?
【19】要求對(duì)雇員的工資由低到高進(jìn)行排序,升序?yàn)槟J(rèn)(ASC),降序(DESC)
SQL>?SELECT?*?FROM?emp
GROUP?BY?sal?desc;
?
【20】查看出部門號(hào)為10的雇員信息,查詢的信息按照工資從高到低,若工資相等則按雇用日期從早到晚排列
SQL>?SELECT?*?FROM?emp
WHERE?deptno=10
ORDER?BY?sal?DESC,hiredate?ASC;
?
數(shù)據(jù)庫系統(tǒng)中,每個(gè)數(shù)據(jù)庫之間區(qū)別最大的就是在函數(shù)的支持上,單行函數(shù)是最簡單的函數(shù),單行函數(shù)分為
1、字符函數(shù):接受字符輸入并且返回字符或數(shù)值
2、數(shù)值函數(shù):接受數(shù)值輸入并返回?cái)?shù)值
3、日期函數(shù):對(duì)日期型數(shù)據(jù)進(jìn)行操作
4、轉(zhuǎn)換函數(shù):將一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型
5、通用函數(shù):NVL、DECODE?函數(shù)
?
字符函數(shù):
【1】大小寫轉(zhuǎn)換?UPPER?和?LOWER
SQL>?SELECT?UPPER('smith')?FROM?dual;
【2】將雇員姓名變?yōu)殚_頭字母大寫,INITCAP
SQL>?SELECT?INITCAP(ename)?FROM?emp;
?
字符函數(shù)中有連接函數(shù)CONCAT,但不如?||?好用,還有字符串處理的一些函數(shù)
字符串截取:substr()
字符串長度:length()
內(nèi)容替換:replace()
SQL>?SELECT?substr('hello',1,3),length('hello'),replace('hello','l','x')?FROM?dual;
這里注意的是Oracle中字符串截取從0和從1開始都是一樣的,謹(jǐn)防面試提問
?
【3】要求顯示所有雇員的姓名及姓名的后3個(gè)字符
SQL>?SELECT?ename,SUBSTR(ename,LENGTH(ename)-2)?FROM?emp;
以上操作顯得較為麻煩,substr()函數(shù)是可以倒著截取
SQL>?SELECT?ename,SUBSTR(ename,-3,3)?FROM?emp;
?
數(shù)值函數(shù):
1、四舍五入:ROUND()
2、截?cái)嘈?shù)位:TRUNC()
3、取余(取模):MOD
SQL>?SELECT?ROUND(789.536)?FROM?dual;
【1】保留2位小數(shù),(如果是-2則對(duì)整數(shù)進(jìn)行四舍五入,變?yōu)?/span>800了)
SQL>?SELECT?ROUND(783.56,2)?FROM?dual;
【2】使用MOD()函數(shù)進(jìn)行取余操作
SQL>?SELECT?MOD(10,3)?FROM?dual;
?
日期函數(shù):
1、日期?-?數(shù)字?=?日期
2、日期?+?數(shù)字?=?日期
3、日期?-?日期?=?數(shù)字(天數(shù))
【1】求出當(dāng)前日期
SQL>?SELECT?SYSDATE?FROM?dual;
?
Oracle提供【2】求出從雇用日期到今天所有雇員的雇員編號(hào)、姓名和月數(shù)
SQL>?SELECT?了以下的日期函數(shù)支持:
MONTHS_BETWEEN():求出給定日期范圍的月數(shù)
ADD_MONTHS():在指定日期上加上指定的月數(shù),求出之后的日期
NEXT_DAY():下一個(gè)的今天的日期
LAST_DAY():求出給定日期的最后一天日期
?
empno,ename,ROUND(MONTHS_BETWEEN(SYSDATE,hiredate))?FROM?emp;
?
【3】驗(yàn)證?ADD_MONTHS()、NEXT_DAY()、LAST_DAY()
SQL>?SELECT?ADD_MONTHS(SYSDATE,4)?FROM?DUAL;
SQL>?SELECT?NEXT_DAY(SYSDATE,'MON')?FROM?DUAL;
SQL>?SELECT?LAST_DAY(SYSDATE)?FROM?DUAL;
?
轉(zhuǎn)換函數(shù):
1、TO_CHAR():??將日期或數(shù)值轉(zhuǎn)換成字符串
2、TO_NUMBER():將字符串轉(zhuǎn)換成數(shù)字
3、TO_DATE():??將字符串轉(zhuǎn)換成日期
?
【1】將年月日進(jìn)行分開,要指定拆分的通配符,yyyy-mm-dd
SQL>?SELECT?empno,ename,TO_CHAR(hiredate,'yyyy')?datetime?FROM?emp;
?
【2】將薪水的數(shù)字進(jìn)行格式化,'$99,999'表示美元,'L99,999'表示當(dāng)?shù)刎泿?/span>
SQL>?SELECT?empno,ename,TO_CHAR(sal,'99,999)?salary?FROM?emp;
?
【3】TO_NUMBER()驗(yàn)證
SQL>?SELECT?TO_NUMBER('123')+TO_NUMBER('123')?FROM?DUAL;
?
【4】TO_DATE()驗(yàn)證,如下例子執(zhí)行后顯示為?11-JUL-11
SQL>?SELECT?TO_DATE('2011-7-11','yyyy-mm-dd')?FROM?DUAL;
?
通用函數(shù):
【1】求出每個(gè)雇員的年薪(應(yīng)算上獎(jiǎng)金)
SQL>?SELECT?empno,ename,(sal+comm)*12?FROM?emp;
由于comm中有NULL,NULL值計(jì)算后還是NULL,正確如下:
SQL>?SELECT?empno,ename,NVL(comm,0),(sal+NVL(comm,0))*12?income?FROM?emp;
NVL可以理解為將NULL值轉(zhuǎn)換為具體的內(nèi)容,這里是0
?
【2】DECODE()函數(shù),該函數(shù)類似于?IF?...?ELSEIF...ELSE
語法如下:
DECODE(col/expression,選擇1,結(jié)果1[,選擇2,結(jié)果2,...,默認(rèn)])
驗(yàn)證DECODE()函數(shù)
SQL>?SELECT?empno,ename,hiredate,
DECODE(job,'CLERK','業(yè)務(wù)員','SALESMAN','銷售人員',’MANAGER','經(jīng)理','ANALYST','分析員','PRESIDENT','總裁')?職位
FROM?emp;
?
SQL簡單語句練習(xí):
?
【1】找出傭金高于薪金的60%的員工
SQL>?SELECT?*?FROM?emp?WHERE?comm>sal*0.6
?
【2】找出部門10中所有經(jīng)理(MANAGER)和部門20中所有辦事員(CLERK)的詳細(xì)資料
SQL>?SELECT?*?FROM?emp
WHERE?(deptno=20?AND?job='MANAGER')
OR?(deptno=10?AND?job='CLERK');
?
?
【3】找出既不是經(jīng)理又不是辦事員但其薪金大于或等于2000的所有員工的資料
SQL>?SELECT?*?FROM?emp
WHERE?job?NOT?IN('MANAGER','CLERK')?AND?sal?>=?2000;
?
【4】找出有獎(jiǎng)金的員工的不同國祚
SQL>?SELECT?DISTINCT?job?FROM?emp
WHERE?comm?IS?NOT?NULL;
?
【5】找出各月倒數(shù)第3天受雇的所有員工
SQL>?SELECT?*?FROM?emp
WHERE?LAST_DAY(hiredate)-2=hiredate;
?
【6】找出早于12年前受雇的員工
SQL>?SELECT?*?FROM?emp
WHERE?MONTHS_BETWEEN(sysdate,hiredate)/12?>?12;
?
【7】顯示剛好為5個(gè)字符的員工的姓名
SQL>?SELECT?ename?FROM?emp
WHERE?length(ename)=5;
?
【8】顯示不帶有"R"的員工的姓名
SQL>?SELECT?ename?FROM?emp
WHERE?ename?NOT?LIKE?'%R%';
?
【9】顯示員工的姓名和受雇日期,將最老的員工排在最前
SQL>?SELECT?*?FROM?emp
Order?BY?hiredate;
?
【10】顯示所有員工的姓名,加入公司的年份和月份,按受雇日期所在月排序,若月份相同則按年份排序
SQL>?SELECT?ename,TO_CHAR(hiredate,'yyyy')?year,TO_CHAR(hiredate,'mm')?month?FROM?emp
ORDER?BY?month,year;
?
【11】找出在2月受聘的員工
SQL>?SELECT?*?FROM?emp
WHERE?TO_CHAR(hiredate,'mm')=2;
?
【12】以年月日方式顯示所有員工服務(wù)年限
SQL>?SELECT?ename,TRUNC(MONTHS_BETWEEN(sysdate,hiredate)/12)?year,
TRUNC(MOD(MONTHS_BETWEEN(sysdate,hiredate),12))?month,
TRUNC(MOD(sysdate-hiredate,30))?day
FROM?emp;
Oracle系列《二》:多表復(fù)雜查詢和事務(wù)處理??
多表查詢應(yīng)該注意去除笛卡爾積,一般多個(gè)表時(shí)會(huì)為表起個(gè)別名
?
【1】要求查詢雇員的編號(hào)、姓名、部門編號(hào)、部門名稱及部門位置
SQL>?SELECT?e.empno,e.ename,d.deptno,d.dname,d.loc
FROM?emp?e,dept?d
WHERE?e.deptno?=?d.deptno;
?
【2】要求查詢每個(gè)雇員的姓名、工作、雇員的直接上級(jí)領(lǐng)導(dǎo)的姓名(表自關(guān)聯(lián))
SQL>?SELECT?e.ename,e.job,m.ename
FROM?emp?e,emp?m
WHERE?e.mgr?=?m.empno;
?
【3】對(duì)【2】進(jìn)行擴(kuò)充,將雇員所在部門名稱同時(shí)列出
SQL>?SELECT?e.ename,e.job,m.ename,d.dname
FROM?emp?e,emp?m,dept?d
WHERE?e.mgr?=?m.empno?AND?e.deptno=d.deptno;
?
【4】查詢每個(gè)雇員的姓名、工資、部門名稱,工資在公司的等級(jí)(salgrade),及其領(lǐng)導(dǎo)的姓名所在公司的等級(jí)
<1>先確定工資等級(jí)表的內(nèi)容
SQL>?SELECT?*?FROM?salgrade;
?
<2>查詢每個(gè)雇員的姓名、工資、部門名稱和工資在公司的等級(jí)
SQL>?SELECT?e.ename,e.sal,d.dname,s.grade
FROM?emp?e,dept?d,salgrade?s
WHERE?e.deptno=d.deptno?AND?e.sal?BETWEEN?s.losal?AND?s.hisal;
?
<3>查詢其領(lǐng)導(dǎo)姓名及工資所在公司的等級(jí)
SQL>?SELECT?e.ename,e.sal,d.dname,s.grade,m.ename,m.sal,ms.grade
FROM?emp?e,dept?d,salgrade?s,emp?m,salgrade?ms
WHERE?e.deptno?=?d.deptno?AND?e.sal?BETWEEN?s.losal?AND?s.hisal
AND?e.mgr?=?m.empno?AND?m.sal?BETWEEN?ms.losal?AND?ms.hisal;
?
【5】左連接與右連接的概念,"+"在等號(hào)左邊表示右連接,反之,左連接
查詢雇員的編號(hào)、姓名及其領(lǐng)導(dǎo)的編號(hào)、姓名
SQL>?SELECT?e.empno,e.ename,m.empno,m.ename
FROM?emp?e,emp?m
WHERE?e.mgr?=?m.empno(+);
就發(fā)現(xiàn)將KING的那條記錄也連過來了
?
SQL1999語法中有如下幾種連接(了解)
1、交叉連接CROSS?JOIN,產(chǎn)生笛卡爾積
SQL>?SELECT?*?FROM?emp?CROSS?JOIN?dept;
2、自然連接NATURAL?JOIN,自動(dòng)進(jìn)行關(guān)聯(lián)字段的匹配
SQL>?SELECT?*?FROM?emp?NATURAL?JOIN?dept;
3、使用USING子句,直接關(guān)聯(lián)操作列
SQL>?SELECT?*?FROM?emp?JOIN?dept?USING(deptno)
WHERE?deptno=30;
4、使用ON子句,用戶自己編寫的條件
SQL>?SELECT?*?FORM?emp?JOIN?dept?ON(emp.deptno?=?dept.deptno)
WHERE?deptno=30;
5、左連接(左外連接、LEFT?(OUTER)?JOIN)、右連接(右外連接、RIGHT?(OUTER)?JOIN)
?
組函數(shù)及分組統(tǒng)計(jì)
1、COUNT():求出全部記錄數(shù)
2、MAX():求出一組中最大值
3、MIN():求出最小值
4、AVG():求出平均值
5、SUM():求和
【1】求出每個(gè)部門的雇員數(shù)量
SQL>?SELECT?deptno,count(empno)
FROM?emp
GROUP?BY?deptno;
?
【2】按部門分組,并顯示部門的名稱,及每個(gè)部門的員工數(shù)
SQL>?SELECT?d.dname,COUNT(e.empno)
FROM?emp?e,dept?d
WHERE?e.deptno=d.deptno
GROUP?BY?d.dname;
?
【3】要求顯示平均工資大于2000的部門編號(hào)和平均工資
SQL>?SELECT?deptno,AVG(sal)
FROM?emp
WHERE?AVG(sal)>2000
GROUP?BY?deptno;
出錯(cuò),WHERE子句中不能出現(xiàn)分組函數(shù)的條件,要使用HAVING子句
上述語句應(yīng)該改為如下
SQL>?SELECT?deptno,AVG(sal)
FROM?emp
GROUP?BY?deptno
HAVING?AVG(sal)>2000
?
【4】顯示非銷售人員工作名稱以及從事同一工作雇員的月工資總和,并且要求從事同一工作的雇員月工資合計(jì)大于$5000,
輸出結(jié)果按月工資的合計(jì)升序排序
<1>按工作分組,求出非銷售人員的月工資總和
SQL>?SELECT?job,SUM(sal)
FROM?emp
WHERE?job<>'SALESMAN'
GROUP?BY?job;
<2>對(duì)分組條件進(jìn)行限制,然后進(jìn)行排序,HAVING子句不能使用別名
SQL>?SELECT?job,SUM(sal)?totalSal
FROM?emp
WHERE?job<>'SALESMAN'
GROUP?BY?job
HAVING?SUM(sal)?>?5000
ORDER?BY?totalSal;
?
【3】分組函數(shù)可以嵌套使用,但是在SELECT列中就不能再出現(xiàn)該分組條件的列名了
SQL>?SELECT?deptno,MAX(AVG(sal))
FROM?emp
GROUP?BY?deptno;
出錯(cuò)!修改如下
SQL>?SELECT?MAX(AVG(sal))
FROM?emp
GROUP?BY?deptno;
?
【4】查詢出比7654工資要高的全部雇員的信息
<1>首先要查詢雇員編號(hào)7654的工資
SQL>?SELECT?sal?FROM?emp?WHERE?empno=7654;
<2>以上述條件的結(jié)果最后后續(xù)查詢的依據(jù)
SQL>?SELECT?*?FROM?emp
WHERE?sal>(SELECT?sal?FROM?emp?WHERE?empno=7654);
?
子查詢在操作中分為以下三類:
1、單列子查詢:返回的結(jié)果是一列的內(nèi)容
2、單行子查詢:返回多個(gè)列,也可能是一條記錄
3、多行子查詢:返回多個(gè)記錄
?
【1】要求查詢工資比7654高,同時(shí)與7788從事相同工作的全部雇員
SQL>?SELECT?*?FROM?emp
WHERE?sal>(SELECT?sal?FROM?emp?WHERE?empno=7654)
AND?job=(SELECT?job?FROM?emp?WHERE?empno=7788);
?
【2】要求查詢?部門名稱、部門員工數(shù)、部門平均工資,部門的最低收入雇員的姓名
<1>查詢部門員工數(shù)、部門平均工資
SQL>?SELECT?deptno,COUNT(empno),AVG(sal)
FROM?emp
GROUP?BY?deptno;
<2>查詢部門的名稱,及最低收入雇員姓名,要進(jìn)行表關(guān)聯(lián)(子查詢)
SQL>?SELECT?d.dname,ed.c,ed.a,e.ename
FROM?dept?d,(
?SELECT?deptno,COUNT(empno)?c,AVG(sal)?a,MIN(sal)?min
?FROM?emp
?GROUP?BY?deptno)?ed,?emp?e
WHERE?d.deptno=ed.deptno?AND?e.sal?=?ed.min;
?
若上述存在兩個(gè)最低工資的情況,則會(huì)出錯(cuò),在子查詢中存在以下3種查詢的操作符號(hào)
IN:指定一個(gè)查詢范圍,例如查詢每個(gè)部門的最低工資(返回值有多個(gè))
SQL>?SELECT?*?FROM?emp
WHERE?sal?IN(SELECT?MIN(sal)?FROM?emp?GROUP?BY?deptno);
?
ANY:=ANY(與IN操作一樣)、>ANY(比最小大)、<ANY(比最大小)
SQL>?SELECT?*?FROM?emp
WHERE?sal?<ANY(SELECT?MIN(sal)?FROM?emp?GROUP?BY?deptno);
?
ALL:?>ALL(比最大要大)、<ALL(比最小的小),SQL語句類似上面
?
SQL多列子查詢示例如下
SQL>?SELECT?*?FROM?emp
WHERE?(sal,NVL(comm,-1))?IN
?(SELECT?sal,NVL(comm,-1)?FROM?emp?WHERE?deptno=20);
?
?
數(shù)據(jù)庫更新操作INSERT、UPDATE、DELETE
?
【1】復(fù)制一張表,例如復(fù)制EMP表為MYEMP
SQL>?CREATE?TABLE?MYTEMP?AS?SELECT?*?FROM?emp;
?
【2】將編號(hào)為7899的雇員的領(lǐng)導(dǎo)取消
SQL>?UPDATE?myemp?SET?mgr=null?WHERE?empno=7899;
?
【3】更新時(shí),一定要注意不能批量更新(加上WHERE子句),多列更新例子如下
SQL>?UPDATE?myemp?SET?mgr=null,comm=null?WHERE?empno?IN(7369,8899);
?
【4】刪除掉全部領(lǐng)取獎(jiǎng)金的雇員
SQL>?DELECT?FROM?emp?WHERE?comm?is?NOT?NULL;
?
事務(wù)處理?ACID
A:Atomicity???原子性:事務(wù)中的操作或者都完成,或者都取消
C:Consistency?一致性:事務(wù)中的操作保證數(shù)據(jù)庫中的數(shù)據(jù)不會(huì)出現(xiàn)邏輯上不一致的情況
I:Isolation???隔離性:當(dāng)前的事務(wù)與其他未完成的事務(wù)是隔離的
D:Durability??持久性:在COMMIT之后,數(shù)據(jù)永久保存在數(shù)據(jù)庫中,在此之前,事務(wù)的操作都可以回滾
?
驗(yàn)證事務(wù)過程:
<1>創(chuàng)建一張臨時(shí)表,只包含部門10
SQL>?CREATE?TABLE?emp10?AS?SELECT?*?FROM?emp?WHERE?empno=10;
<2>刪除emp10中的7782雇員
SQL>?DELETE?FROM?emp10?WHERE?empno=7782;
再打開另一個(gè)窗口,發(fā)現(xiàn)數(shù)據(jù)還存在,此時(shí)如果可以使用以下的兩種命令進(jìn)行事務(wù)處理
COMMIT?和?ROLLBACK?提交事務(wù)和回滾事務(wù)
?
SQL查詢練習(xí)
【1】列出至少一個(gè)員工的所有部門
SQL>?SELECT?d.*,ed.cou?FROM?dept?d,(
?SELECT?deptno,COUNT(empno)?cou?FROM?emp
?GROUP?BY?deptno
?HAVING?COUNT(empno)?>?1)?ed
WHERE?d.deptno=ed.deptno;
?
【2】列出部門名稱和這些部門的員工信息,同時(shí)列出那些沒有員工的部門
SQL>?SELECT?d.deptno,d.dname,e.empno,e.ename
FROM?dept?d,emp?e
WHERE?d.deptno?=?e.deptno(+);
?
【3】列出所有"CLERK"(辦事員)的姓名及其部門名稱,部門的人數(shù)
<1>關(guān)聯(lián)dept表
SQL>?SELECT?e.ename,d.dname
FROM?emp?e,dept?d
WHERE?e.deptno=d.deptno?and?e.job='CLERK';
<2>使用GROUP?BY?完成部門分組人數(shù)
SQL>?SELECT?e.ename,d.dname,ed.cou?FROM?emp?e,dept?d,(
?SELECT?deptno,COUNT(empno)?cou?FROM?emp
?GROUP?BY?deptno)?ed
WHERE?job='CLERK'?AND?e.deptno=d.deptno?AND?ed.deptno=e.deptno;
?
轉(zhuǎn)載于:https://www.cnblogs.com/hxv-3670/p/7297498.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的《sql语句练习1》的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTTP管线化(HTTP pipelin
- 下一篇: StringUtil.isEmpty(s