日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

heima Oracle day2

發(fā)布時(shí)間:2024/9/3 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 heima Oracle day2 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
--單行函數(shù):作用于一行,返回一個(gè)值。 --多行函數(shù):作用于多行,返回一個(gè)值。select upper('yes') from dual; select lower('YES') from dual;-- 數(shù)值函數(shù) select round(26.16,1) from dual; select round(26.16,-1) from dual; -- 四舍五入,后面的參數(shù)表示保留的位數(shù) select round(56.16,-2) from dual;select trunc(56.16,-1) from dual; --直接遞取,不在看后而位數(shù)的數(shù)字是否大于5.select mod(10,3) from dual; --求余數(shù)--查詢empe中所有員工入職距離現(xiàn)在幾天。 select sysdate-e.hiredate from emp e;-- 算出明天此刻 select sysdate+1 from dual;-- 查可出emp表中所有員工入職距離現(xiàn)在幾月。 select months_between (sysdate,e.hiredate) from emp e;-- 查可出emp表中所有員工入職距離現(xiàn)在幾年。 select months_between (sysdate,e.hiredate)/12 from emp e;-- 查可出emp表中所有員工入職距離現(xiàn)在幾周。 select round((sysdate-e.hiredate)/7) from emp e;--- 轉(zhuǎn)換函數(shù) -- 日期轉(zhuǎn)字符串 select to_char(sysdate,'fm yyyy-mm-dd hh:mi:ss') from dual; -- fm 去掉前面的0 select to_char(sysdate,'fm yyyy-mm-dd hh24:mi:ss') from dual; -- 字符串轉(zhuǎn)日期 select to_date(' 2019-8-18 9:25:1','fm yyyy-mm-dd hh24:mi:ss') from dual;---通用函數(shù) ----算出emg表中所有員工的年薪 --—-獎(jiǎng)金里面有null值,如果null值和任意數(shù)字做算術(shù)運(yùn)算,結(jié)果都是null select e.sal*12+nvl(e.comm,0) from emp e;---條件表達(dá)式 ---條件表達(dá)式的通用寫法,mysql 和oracle通用 ---給emp表中員工起中文名select e.ename,case e.ename -- 等值判斷when 'SMITH' then '曹賊'when 'ALLEN' then '翼德'when 'WARD' then '諸葛'--else '無名' --條件以外的將為空end from emp e;---判斷emp表中員工工資,如果高于3000顯示高收入,如某高于1500低于3000顯示中收入 -- 其余顯示低收入select e.sal,case -- 范圍判斷when e.sal >3000 then '高收入'when e.sal>1500 then '中等收入'else '低收入'end from emp e;---oracle中除,起別名,都用單引號。 ----oracle專用條件表達(dá)式select e.ename,decode(e.ename, -- 等值判斷'SMITH', '曹賊','ALLEN','翼德','WARD','諸葛','無名') "中文名" --列名可以是 “字符” 或 字符 from emp e;--- 建議使用通用的,可移植性強(qiáng)---------------------------------------------------------多行函數(shù)【聚合函數(shù)】:作用于多行,返回一個(gè)值。select count(*) from emp; select count(1) from emp; -- 推薦select sum(sal) from emp; select max(sal) from emp; select min(sal) from emp; select avg(sal) from emp; --- 多條同時(shí)執(zhí)行加分號--分組查詢 --查詢出每個(gè)部門的平均工資 ---分組查詢中,出現(xiàn)在group by后面的原始列,才能出現(xiàn)在select后面 ---沒有出現(xiàn)在group by后面的列,想在select后面,必須加上聚合函數(shù)。 ---聚合函數(shù)有一個(gè)特性,可以把多行記錄變成一個(gè)值。select e.deptno,avg(e.sal) ---,e.ename 出錯(cuò) from emp e group by e.deptno ;---查詢出平均工資高于2000的部門信息select e.deptno,avg(e.sal) asal from emp e group by e.deptno having avg(e.sal)>2000; --asal >2000--- 所有條件部不能使用別名來判斷。 --比如下面的條件語句也不能使用別名當(dāng)條件 select ename,sal s from emp where sal>1500;-- 查詢出每個(gè)部門工資高于800的員工的平均工資select e.deptno,avg(e.sal) from emp e where e.sal >800 group by e.deptno ;-- where是過濾分組前的數(shù)據(jù),having是過濾分組后的數(shù)據(jù)。 -- 表現(xiàn)形式:where必須在group by之前,having是在group by之后。---查詢出每個(gè)部門工資高于800的員工的平均工資 ---然后再查詢出平均工資高于2000的部門select e.deptno,avg(e.sal) asal from emp e where e.sal >800 group by e.deptno having avg(e.sal)>2000;--------------------------------------------------- 多表查詢中的一些概念 -- 笛卡爾積select * from emp e,dept d;--- 等值連接 (推薦) select * from emp e,dept d where e.deptno=d.deptno;-- 內(nèi)連接 select * from emp e inner join dept d on e.deptno = d.deptno;-- 查詢出所有部門,以及部門下的員工信息。【外連接】--left join 顯示的是左側(cè)全部數(shù)據(jù) select * from emp e right join dept d on e.deptno = d.deptno;--- oracle中專用外連接select * from emp e,dept d where e.deptno(+) = d.deptno; --- 15 條,顯示右邊所有數(shù)據(jù)-- 查詢出員工姓名,員工領(lǐng)導(dǎo)姓名 員工和領(lǐng)導(dǎo)在同一張表里面 -- 自連接: 自連接其實(shí)就起站在不同的角度把一張表看成多張表。 select e1.ename , e2.ename from emp e1,emp e2 where e1.mgr=e2.empno;--- 查詢出員工姓名,員工部門名稱,員工領(lǐng)導(dǎo)姓名,員工領(lǐng)導(dǎo)部門名稱select e1.ename,d1.dname , e2.ename,d2.dname from emp e1,emp e2,dept d1,dept d2 --- where e1.mgr=e2.empno and e1.deptno=d1.deptno and e2.deptno=d2.deptno;-------------------------------------- 子查詢 --1.子查詢返間一個(gè)值 -- 查詢出工資和SCOTT一樣的員工信息select * from emp where sal in -- 保險(xiǎn)起見寫 in,不寫 = (select sal from emp where ename = 'SCOTT')--2.子查詢返回一個(gè)集合 -- 查詢出工資和10號部門任意員工一樣的員工信息select * from emp where sal in (select sal from emp where deptno = 10);--子查詢返回一張表 -- 查詢出每個(gè)部門最低工資,和最低工資員工姓名,和該員工所在部門名稱-- 1,先查詢出每個(gè)部門最低工資select deptno,min(sal) from emp group by deptno-- 2,三表聯(lián)查select t.deptno,t.msal,e.ename,d.dname from (select deptno,min(sal) msalfrom empgroup by deptno) t, emp e, dept d where t.deptno = e.deptno and t.msal = e.sal and e.deptno = d.deptno; ----oracle中的分頁 ---rownum行號:當(dāng)我們旅select操作的時(shí)候, --每查詢出一行記錄,就會在該行加上一個(gè)行號, -- 行號從1開始,依次遞增,不能跳著走.--- emp表工資倒敘排列后,每頁五條記錄,查詢第二頁 --排序操作會影響rownum的順序 select * from emp e order by e.sal desc; -- where rownum <4select rownum,e.* from emp e order by e.sal desc;----如果涉及到排序,但是還要使用rownum的話,我們可以再次嵌套查詢。select rownum,t.* from (select rownum,e.* from emp e order by e.sal desc) t;--- emp表工資倒敘排列后,每頁五條記錄,查詢第二頁 ----rownum行號不能寫上大于一個(gè)正數(shù)。 select * from (select rownum rn, e.* from(select * from emp order by sal desc) ewhere rownum <11 ) where rn >5--- oracle 中沒有l(wèi)imit寫法,limit 是mysql中的---視圖 ---視圖的概念:視圖就是提供一個(gè)查詢的窗口,所有數(shù)據(jù)來自于原表。---查詢語句創(chuàng)建表 create table emp as select * from scott.emp; select * from emp;---創(chuàng)建視圖【必須有dba權(quán)限】 在itheima下沒有emp表 create view v_emp as select ename,job from emp;-- 查詢視圖 select * from v_emp;update v_emp set job='CLERK' where ename='ALLEN'; commit;

總結(jié)

以上是生活随笔為你收集整理的heima Oracle day2的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。