一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

查詢(select)相關(guān)的語(yǔ)句

 Sophia_Study 2019-11-04

一、簡(jiǎn)單查詢語(yǔ)句

================

1、查詢所有列

select * from dept;--做練習(xí)可以,真正做開發(fā)不要這樣。

2、查詢指定列

desc emp;

select empno, ename, sal, job from emp;

3、查詢?nèi)掌诹?/p>

select ename, to_char(hiredate, 'yyyy-mm-dd') from emp;

4、取消重復(fù)行

select distinct deptno, job from emp;

5、使用算術(shù)表達(dá)式

select ename, sal, sal * 12 from emp

6、使用列別名

select ename as NAME, sal * 12 as "ANNUALSALARY" from emp;

7、處理NULL

select ename, sal, comm, sal + comm from emp;

select ename, sal, comm, sal + nvl(comm, 0)  from emp;

8、連接字符串

select ename || '的崗位是' || job from emp;

9、去掉結(jié)果中的重復(fù)行

select distinct job from emp;

二、限制數(shù)據(jù)

============

1、在where子句中使用數(shù)字值

select ename, sal from emp where sal > 2000;

2、在where子句中使用字符值

select ename, sal from emp where job = 'MANAGER';

3、在where子句中使用日期值

select ename, sal, hiredate from emp where hiredate > '01-1月-82';

4、在where子句中使用between...and操作符

select ename, sal, deptno from emp where sal between 2000 and 3000;

5、在where子句中使用like操作符

%:表示0個(gè)或多個(gè)字符

_:表示單個(gè)字符

select ename, sal, deptno from emp where ename like 'S%';

select ename, sal, deptno from emp where ename like '__O';

select ename, sal, deptno from emp where ename like '%a_';

6、在where子句中使用in操作符

select ename, sal, deptno from emp where job in ('CLERK', 'MANAGER');

7、在where子句中使用is null操作符

select ename, sal, deptno from emp where mgr is null;

8、在where子句中使用and操作符

select ename, sal, deptno from emp where deptno = 20 and job = 'CLERK';

9、在where子句中使用not操作符

select ename, sal, deptno from emp where comm is not null;

10、顯示表中前幾行內(nèi)容

select * from emp where rownum <= 3; 

偽列   rownum

       rowid

三、排序數(shù)據(jù)

============

1、升序排序

select ename, sal, deptno from emp order by sal;

2、降序排序

select ename, sal, deptno from emp order by sal desc;

3、使用多列排序

select ename, sal, deptno from emp order by deptno asc, sal desc;

4、使用非選擇列表進(jìn)行排序

select ename, deptno from emp order by sal desc;

5、使用列別名排序

select ename, sal * 12 年收入, deptno from emp order by 年收入 desc;

6、使用列位置排序

select deptno, ename, sal from emp order by 1;

四、復(fù)雜查詢

============

1、數(shù)據(jù)分組

1)分組函數(shù)

max和min

select max(sal) 最高工資, min(sal) 最低工資 from emp;

avg和sum

select avg(sal) 平均工資, sum(sal) 總計(jì)工資 from emp;

count

select count(*) 雇員總數(shù) from emp;

count(表達(dá)式) 顯示非null的總計(jì)行數(shù)

2)group by和having子句

使用group by進(jìn)行單列分組

select deptno, avg(sal) from emp group by deptno;

使用group by進(jìn)行多列分組

select deptno, job, avg(sal), max(sal) from emp group by deptno, job;

使用having子句限制分組顯示結(jié)果

select deptno, avg(sal) from emp group by deptno having avg(sal) < 2500;

使用order by子句改變分組排序結(jié)果

select deptno, avg(sal) from emp group by deptno order by avg(sal);

使用數(shù)據(jù)分組的注意事項(xiàng)

分組函數(shù)只能出現(xiàn)在選擇列表、having子句和order by子句中。

如果同時(shí)包含有g(shù)roup by、having以及order by子句,則必須將子句放在最后

如果選擇列表包含有列、表達(dá)式和分組函數(shù),則這些列和表達(dá)式必須出現(xiàn)在group by子句中,否則會(huì)顯示錯(cuò)誤信息。

當(dāng)限制分組顯示結(jié)果時(shí),必須使用having子句,而不能在where子句中使用分組函數(shù),否則會(huì)顯示錯(cuò)誤信息。

2、連接查詢

連接查詢是指基于兩個(gè)或兩個(gè)以上表或視圖的查詢。

當(dāng)使用連接查詢時(shí),必須在from子句后指定兩個(gè)或兩個(gè)以上的表當(dāng)使用連接查詢時(shí),如果不同表之間的列名相同,則必須在列名前加上表名作前綴,否則會(huì)造成二義性。

當(dāng)使用連接查詢時(shí),必須在where子句中指定有效的連接條件,否則會(huì)導(dǎo)致生成笛卡爾集。

當(dāng)進(jìn)行連接查詢時(shí),使用表別名可以簡(jiǎn)化連接查詢語(yǔ)句。

相等連接

是指使用相等比較符指定連接條件的連接查詢,主要用于檢索主從表之間的相關(guān)數(shù)據(jù)。

select e.ename, e.sal, d.dname from emp e, dept d where e.deptno = d.deptno;

select d.dname, e.ename, e.sal from emp e, dept d where d.deptno = e.deptno and d.deptno = 10;

不等連接

select a.ename, a.sal, b.grade from emp a, salgrade b where a.sal between b.losal and 

hisal;

自連接

是指在同一張表之間的連接查詢,主要用于在自參照表上顯示上下級(jí)關(guān)系或?qū)哟侮P(guān)系

select worker.ename, manager.ename from emp manager, emp worker

where manager.empno = worker.mgr;

內(nèi)連接與外連接

內(nèi)連接用于返回滿足連接條件的所有記錄。

select d.dname, e.ename from dept d, emp e where d.deptno = e.deptno and d.deptno = 10;

左外連接

使用左外連接時(shí),不僅會(huì)返回滿足條件的所有記錄,而且還會(huì)返回不滿足連接條件的連接操作符左邊表

的其他行。

select d.dname, e.ename from dept d left join emp e on d.deptno = e.deptno and d.deptno = 10;

右外連接

使用右外連接時(shí),不僅會(huì)返回滿足條件的所有記錄,而且還會(huì)返回不滿足連接條件的連接操作符右邊表的其他行。

select d.dname, e.ename from dept d right join emp e on d.deptno = e.deptno and d.deptno = 10;

完全外連接

使用右外連接時(shí),不僅會(huì)返回滿足條件的所有記錄,而且還會(huì)返回不滿足連接條件的所有其他行。

select d.dname, e.ename from dept d right join emp e on d.deptno = e.deptno and d.deptno = 10;

外連接也可使用(+)操作符。

使用(+)操作符進(jìn)行外連接時(shí),應(yīng)該將該操作符放在顯示較少行的一端。

(+)操作符只能出現(xiàn)在where子句中,且不能與outer join語(yǔ)法同時(shí)使用

使用(+)操作符進(jìn)行外連接時(shí),如果在where子句中包含多個(gè)條件,則必須在所有條件中都包含(+)操作符。

(+)操作符只適用于列,而不能用在表達(dá)式上。

(+)操作符不能與on和in一起使用。

(+)操作符只能用于左或右外連接,不能用于完全外連接。

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    国产精品一区二区日韩新区| 少妇熟女亚洲色图av天堂| 福利视频一区二区在线| 日本一本在线免费福利| 国产一级一片内射视频在线| 一区二区三区免费公开| 又色又爽又黄的三级视频| 97人摸人人澡人人人超碰| 日韩精品人妻少妇一区二区| 国产水滴盗摄一区二区| 久草精品视频精品视频精品| 91熟女大屁股偷偷对白| 高中女厕偷拍一区二区三区| 精品偷拍一区二区三区| 中文字幕一区二区三区中文| 国产成人精品综合久久久看| 熟女白浆精品一区二区| 国产成人午夜福利片片| 高清一区二区三区大伊香蕉| 欧洲偷拍视频中文字幕| 国产日产欧美精品视频| 在线观看免费视频你懂的 | 国产精品欧美日韩中文字幕| 伊人色综合久久伊人婷婷| 国产级别精品一区二区视频| 国产精品福利一级久久| 欧美日韩国产精品第五页| 欧美亚洲综合另类色妞| 不卡在线播放一区二区三区| 日韩成人动画在线观看| 日本欧美一区二区三区就| 精品香蕉一区二区在线| 亚洲人午夜精品射精日韩| 国产免费一区二区不卡| 久久精品国产99精品亚洲| 中文字幕在线区中文色| 久久免费精品拍拍一区二区| 欧美精品久久99九九| 亚洲三级视频在线观看免费| 欧美日韩精品综合在线| 日韩色婷婷综合在线观看|