亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Oracle > 正文

Oracle的四道經典面試題分享

2020-07-26 13:58:34
字體:
來源:轉載
供稿:網友

前言

本文整理了4道Oracle 經典面試題,與大家分享學習。這也許是你一直期待的文章,下面話不多說了,來一起看看詳細的介紹吧

第一題

create table test( id number(10) primary key, type number(10) , t_id number(10), value varchar2(6));insert into test values(100,1,1,'張三');insert into test values(200,2,1,'男');insert into test values(300,3,1,'50');insert into test values(101,1,2,'劉二');insert into test values(201,2,2,'男');insert into test values(301,3,2,'30');insert into test values(102,1,3,'劉三');insert into test values(202,2,3,'女');insert into test values(302,3,3,'10');select * from test;

代碼生成表格如:

根據以上代碼生成的表寫出一條查詢語句,查詢結果如下:

姓名 性別 年齡
張三 50
劉二 30
劉三 10

/*根據表格可以分析出type列中1代表姓名、2代表性別、3代表年齡,而t_id中id一樣的為同一個人的屬性查詢結果中列依次為姓名、性別、年齡,而type列決定姓名、性別、年齡*//*使用分組,先對t_id進行分組,然后用decode函數過濾數據,例:decode(type, 1, value) type=1就顯示為value由于分組后select后面的列字段只能是分組的字段或者組函數,所有使用max()。同一個人的type沒有重復數值所以 decode(type, 1, value)返回的值只有一個,最大值也就是這個值*/select max(decode(type, 1, value)) "姓名",  max(decode(type, 2, value)) "性別",  max(decode(type, 3, value)) "年齡" from test group by t_id;/*使用連表,通過where過濾生成3張type分別等于1(姓名)、2(性別)、3(年齡)的3張虛擬表 如:再通過where 連接條件 三張表t_id相等的為同一個人或者說同一條記錄(行)*/select t1.value "姓名",t2.value "性別",t3.value "年齡" from (select value,t_id from test where type=1) t1,(select value,t_id from test where type=2) t2,(select value,t_id from test where type=3) t3where t1.t_id=t2.t_id and t1.t_id=t3.t_id;

第二題

/*2.一道SQL語句面試題,關于group by表內容:2005-05-09 勝2005-05-09 勝2005-05-09 負2005-05-09 負2005-05-10 勝2005-05-10 負2005-05-10 負如果要生成下列結果, 該如何寫sql語句?   勝 負2005-05-09 2 22005-05-10 1 2------------------------------------------create table tmp(rq varchar2(10),shengfu varchar2(5));insert into tmp values('2005-05-09','勝');insert into tmp values('2005-05-09','勝');insert into tmp values('2005-05-09','負');insert into tmp values('2005-05-09','負');insert into tmp values('2005-05-10','勝');insert into tmp values('2005-05-10','負');insert into tmp values('2005-05-10','負');select * from tmp;*/--使用分組--按日期分組,用conut函數計算次數select rq "日期",  count(decode(shengfu, '勝', 1)) "勝",  count(decode(shengfu, '負', 1)) "負" from tmp group by rq order by rq;--使用連表--這道題本身就需要分組,不建議使用連表做--以下使用的是SQL1999的連表方式,語法不一樣效果與第一題使用的SQL1992的一樣select t1.rq,t1.勝, t2.負 from(select count(decode(shengfu, '勝', 1)) "勝", rq from tmp group by rq) t1join(select count(decode(shengfu, '負', 1)) "負", rq from tmp group by rq) t2on t1.rq=t2.rq;

第三題

/*3.生成題目所需的表create table STUDENT_SCORE( name VARCHAR2(20), subject VARCHAR2(20), score NUMBER(4,1));insert into student_score (NAME, SUBJECT, SCORE) values ('張三', '語文', 78.0);insert into student_score (NAME, SUBJECT, SCORE) values ('張三', '數學', 88.0);insert into student_score (NAME, SUBJECT, SCORE) values ('張三', '英語', 98.0);insert into student_score (NAME, SUBJECT, SCORE) values ('李四', '語文', 89.0);insert into student_score (NAME, SUBJECT, SCORE) values ('李四', '數學', 76.0);insert into student_score (NAME, SUBJECT, SCORE) values ('李四', '英語', 90.0);insert into student_score (NAME, SUBJECT, SCORE) values ('王五', '語文', 99.0);insert into student_score (NAME, SUBJECT, SCORE) values ('王五', '數學', 66.0);insert into student_score (NAME, SUBJECT, SCORE) values ('王五', '英語', 91.0);3.1得到類似下面的結果姓名 語文 數學 英語王五 89 56 89李四 xx xx xxselect * from STUDENT_SCORE;3.2有一張表,里面有3個字段:語文,數學,英語。其中有3條記錄分別表示語文70分,數學80分,英語58分,請用一條sql語句查詢出這三條記錄并按以下條件顯示出來(并寫出您的思路): 大于或等于80表示優秀,大于或等于60表示及格,小于60分表示不及格。   顯示格式:   語文    數學    英語   及格    優秀    不及格 ------------------------------------------*/--3.1--使用分組select name "姓名",  max(decode(subject, '語文' ,score)) "語文",  max(decode(subject, '數學' ,score)) "數學",  max(decode(subject, '英語' ,score)) 英語 from STUDENT_SCORE group by name;--使用連表select t1.name 姓名, t1.score 語文, t2.score 數學, t3.score 英語 from(select name,score from STUDENT_SCORE where subject='語文') t1join(select name,score from STUDENT_SCORE where subject='數學') t2on t1.name=t2.namejoin(select name,score from STUDENT_SCORE where subject='英語') t3on t1.name=t3.name;--3.2--在3.1的基礎上使用 case when then esle endselect t.姓名,(case when t.語文>=80 then '優秀'   when t.語文>=60 then '及格'   else '不及格' end) 語文,(case when t.數學>=80 then '優秀'   when t.數學>=60 then '及格'   else '不及格' end) 數學,(case when t.英語>=80 then '優秀'   when t.英語>=60 then '及格'   else '不及格' end) 英語 from (select t1.name 姓名, t1.score 語文, t2.score 數學, t3.score 英語 from(select name,score from STUDENT_SCORE where subject='語文') t1join(select name,score from STUDENT_SCORE where subject='數學') t2on t1.name=t2.namejoin(select name,score from STUDENT_SCORE where subject='英語') t3on t1.name=t3.name) t;

第四題(這道題難度相對較高)

/*4.請用一個sql語句得出結果從table1,table2中取出如table3所列格式數據,注意提供的數據及結果不準確,只是作為一個格式向大家請教。table1月份mon 部門dep 業績yj-------------------------------一月份  01  10一月份  02  10一月份  03  5二月份  02  8二月份  04  9三月份  03  8table2部門dep  部門名稱dname--------------------------------  國內業務一部  國內業務二部  國內業務三部  國際業務部table3 (result)部門dep 一月份  二月份  三月份--------------------------------------  10  null  null  10   8  null  null  5  8  null  null  9------------------------------------------create table yj01(  month varchar2(10),  deptno number(10),  yj number(10))insert into yj01(month,deptno,yj) values('一月份',01,10);insert into yj01(month,deptno,yj) values('二月份',02,10);insert into yj01(month,deptno,yj) values('二月份',03,5);insert into yj01(month,deptno,yj) values('三月份',02,8);insert into yj01(month,deptno,yj) values('三月份',04,9);insert into yj01(month,deptno,yj) values('三月份',03,8);create table yjdept(  deptno number(10),  dname varchar2(20))insert into yjdept(deptno,dname) values(01,'國內業務一部');insert into yjdept(deptno,dname) values(02,'國內業務二部');insert into yjdept(deptno,dname) values(03,'國內業務三部');insert into yjdept(deptno,dname) values(04,'國際業務部');*/select * from yj01;select * from yjdept;--使用分組select deptno,max(decode(month,'一月份',yj)) 一月份, max(decode(month,'二月份',yj)) 二月份, max(decode(month,'三月份',yj)) 三月份 from yj01 group by deptnoorder by deptno;--這道題給出了兩張表,而用分組做,使用yj01表就能做出來了,所以這道題考察的應該是連表的知識/*這兩張表中有的月份有的部門業績是空的,而用前幾道題的做法,不匹配條件的值會被過濾掉,例如month=一月份的只有1部門,形成的表里deptno只有1和二月份、三月份形成的表中的deptno無法匹配而yjdept表中包含了所有部門編號deptno,這時就可以用到外連接的特性(在滿足一張表的內容都顯示的基礎上,連接另外一張表,如果連接匹配則正常顯示,連接不匹配,另外一張表補null)*/select t1.deptno, t1.yj 一月份, t2.yj 二月份, t3.yj 三月份from(select y2.deptno,y1.yj from(select yj, deptno from yj01 where month='一月份') y1 right join yjdept y2 on y1.deptno=y2.deptno)t1join(select y2.deptno,y1.yj from(select yj, deptno from yj01 where month='二月份') y1 right join yjdept y2 on y1.deptno=y2.deptno)t2on t1.deptno=t2.deptnojoin(select y2.deptno,y1.yj from(select yj, deptno from yj01 where month='三月份') y1 right join yjdept y2 on y1.deptno=y2.deptno)t3on t1.deptno=t3.deptnoorder by t1.deptno;

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久久久久粉嫩av| 亚洲精品在线视频| 亚洲欧美日韩爽爽影院| 欧美成人免费全部| 精品国产31久久久久久| 国产精品欧美激情在线播放| 91在线看www| 成人观看高清在线观看免费| 亚洲第一av在线| 久久久久久久久久久免费| 亚洲女成人图区| 精品国产91久久久久久| 成人国产精品久久久| 亚洲最大中文字幕| 日韩成人黄色av| 久久久久久久激情视频| 91免费看视频.| 久久中文字幕在线视频| 亚洲xxxxx电影| 久久久精品久久久久| 第一福利永久视频精品| 亚洲精品免费在线视频| 97久久精品人搡人人玩| 伊人久久久久久久久久| 在线a欧美视频| 性欧美在线看片a免费观看| 日产日韩在线亚洲欧美| 成人国产精品一区| 国内揄拍国内精品少妇国语| 国产精品视频不卡| 久久综合伊人77777| 68精品国产免费久久久久久婷婷| 亚洲一区二区精品| 97在线视频国产| 成人网址在线观看| 日韩人体视频一二区| 狠狠操狠狠色综合网| 久久精品亚洲热| 亚洲国产精品成人一区二区| 欧美性一区二区三区| 国产精品视频一区国模私拍| 日韩一区二区福利| 亚洲精品短视频| 欧美影院成年免费版| 日韩va亚洲va欧洲va国产| 91高清视频免费观看| 日韩欧美中文免费| 97在线观看视频| 青草青草久热精品视频在线观看| 亚洲精品www久久久久久广东| 精品美女久久久久久免费| 国产视频亚洲视频| 亚洲国产精久久久久久久| 成人福利免费观看| 亚洲国产一区二区三区在线观看| 国产一区二区美女视频| 自拍偷拍亚洲精品| 亚洲va久久久噜噜噜久久天堂| 国产精品色悠悠| 亚洲美女av在线播放| 亚洲国产黄色片| 国产精品91在线| 综合网日日天干夜夜久久| …久久精品99久久香蕉国产| 欧美极品少妇xxxxx| 亚洲大尺度美女在线| 国产自产女人91一区在线观看| 久久久爽爽爽美女图片| 欧美亚洲伦理www| 久久国产精品久久精品| 欧美高清性猛交| 欧美日韩亚洲一区二区| 日韩免费在线电影| 日韩免费在线播放| 国产精品三级久久久久久电影| 欧美激情在线视频二区| 久久久久久亚洲精品| 日韩欧美在线免费| 高清欧美一区二区三区| 韩国一区二区电影| 亚洲综合日韩中文字幕v在线| 国产成人在线视频| 欧美成人精品xxx| 美日韩精品免费观看视频| 欧美刺激性大交免费视频| 自拍视频国产精品| 国产视频精品免费播放| 日韩av影片在线观看| 亚洲免费成人av电影| 国产欧美精品一区二区三区-老狼| 欧美日韩成人在线视频| 亚洲最大的av网站| 久久精品精品电影网| 有码中文亚洲精品| 欧美激情精品久久久久久黑人| 亚洲免费电影在线观看| 欧美性猛交xxxx久久久| 成人精品久久久| 国产精品xxx视频| 国产精品欧美日韩一区二区| 81精品国产乱码久久久久久| 欧美日韩免费在线| 在线观看日韩www视频免费| 色综合亚洲精品激情狠狠| 韩剧1988在线观看免费完整版| 夜夜狂射影院欧美极品| 亚洲精品动漫100p| 欧美极品少妇全裸体| 欲色天天网综合久久| 韩国三级电影久久久久久| 狠狠色狠色综合曰曰| 日韩av免费观影| 欧美性猛xxx| 热99精品只有里视频精品| 欧美华人在线视频| 色婷婷亚洲mv天堂mv在影片| 欧美成人午夜免费视在线看片| 国产精品色婷婷视频| 4k岛国日韩精品**专区| 96sao精品视频在线观看| 国产午夜精品全部视频在线播放| 国产精品福利无圣光在线一区| 久久久久久久亚洲精品| 欧美激情一区二区三区高清视频| 91影视免费在线观看| 中文字幕在线观看日韩| 最近2019中文字幕第三页视频| 热re91久久精品国99热蜜臀| 日韩美女在线观看| 国产一区二区黑人欧美xxxx| 久久久久久久爱| 国产精品美女久久久免费| 国产日韩在线精品av| 亚洲免费高清视频| 久久精品国产综合| 欧洲精品在线视频| 国产精品久久久久久久午夜| 国产国语刺激对白av不卡| 亚洲乱码国产乱码精品精| 日av在线播放中文不卡| 日韩在线视频一区| 日韩美女免费观看| www.久久久久| 国产精品情侣自拍| 97国产精品视频人人做人人爱| 久久精品国产久精国产思思| 亚洲视频一区二区三区| 国产精品第2页| 国产91在线播放| 色妞欧美日韩在线| 红桃av永久久久| 日本精品免费观看| 欧美一区二区三区精品电影| 亚洲三级av在线| 日韩中文字幕在线看| 亚洲最大福利视频网| 欧美日产国产成人免费图片| 91香蕉国产在线观看| 国产精品日韩在线| 国产精品高清网站| 亚洲在线观看视频| 国产精品视频色| 国产一区二区三区日韩欧美| 国产激情综合五月久久|