久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

查詢(select)相關的語句

 Sophia_Study 2019-11-04

一、簡單查詢語句

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

1,、查詢所有列

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

2、查詢指定列

desc emp;

select empno, ename, sal, job from emp;

3,、查詢日期列

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

4,、取消重復行

select distinct deptno, job from emp;

5、使用算術表達式

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,、去掉結果中的重復行

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個或多個字符

_:表示單個字符

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、顯示表中前幾行內容

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,、使用非選擇列表進行排序

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;

四,、復雜查詢

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

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

1)分組函數(shù)

max和min

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

avg和sum

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

count

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

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

2)group by和having子句

使用group by進行單列分組

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

使用group by進行多列分組

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

使用having子句限制分組顯示結果

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

使用order by子句改變分組排序結果

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

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

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

如果同時包含有group by、having以及order by子句,,則必須將子句放在最后

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

當限制分組顯示結果時,必須使用having子句,,而不能在where子句中使用分組函數(shù),,否則會顯示錯誤信息。

2,、連接查詢

連接查詢是指基于兩個或兩個以上表或視圖的查詢,。

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

當使用連接查詢時,,必須在where子句中指定有效的連接條件,,否則會導致生成笛卡爾集。

當進行連接查詢時,,使用表別名可以簡化連接查詢語句,。

相等連接

是指使用相等比較符指定連接條件的連接查詢,主要用于檢索主從表之間的相關數(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;

自連接

是指在同一張表之間的連接查詢,,主要用于在自參照表上顯示上下級關系或層次關系

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

where manager.empno = worker.mgr;

內連接與外連接

內連接用于返回滿足連接條件的所有記錄。

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

左外連接

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

的其他行。

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

右外連接

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

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

完全外連接

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

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

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

使用(+)操作符進行外連接時,,應該將該操作符放在顯示較少行的一端。

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

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

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

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

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

    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多