幾道特別難搞的資料庫面試題 測試羊~ 發表於2020-11-08
一、多選題(不定項選擇)
在下面所列出的條目中,哪些是資料庫管理系統的基本功能? A 資料庫定義 B 資料庫的建立和維護 C 資料庫存取 D 資料庫和其他軟體系統的通訊 在Mongodb支援的資料型別中,ObjectId:類似唯一主鍵,可以很快的去生成和排序,比如:"_id" : ObjectId(“5b151f8536409809ab2e6b26”),那麼在小括號中的一串字元可以劃分位哪幾部分? A 時間戳 B 機器碼 C 程式ID D 計數器 E 轉義碼 下列哪些屬於NoSQL資料庫的特徵? A 高可擴充套件性 B 分散式計算 C 低成本 D 沒有標準化
二、程式設計題
表名:subway,包含3個欄位:id(線路編號)、stop(站點)、sequence(站點序列)。如下,請寫出以下SQL語句: 找出站點名稱包含“人民”的所有記錄。 stop like ”人民%” 表名:subway,包含3個欄位:id(線路編號)、stop(站點)、sequence(站點序列)。如下,請寫出以下SQL語句: 找出途徑線路數最多的站點。 考慮一下每個地鐵站點有多少趟地鐵通過 表名:subway,包含3個欄位:id(線路編號)、stop(站點)、sequence(站點序列)。如下,請寫出以下SQL語句: 已知站點A和B,判斷是否可以直達。(就是檢視包含A和B站點的地鐵)不換乘 農作物表 查詢出來哪些省份棉花或者小麥產量高於水稻產量(本省)。同省份 內表的查詢離不開外表的支援 寫法:子查詢加別名 為管理業務培訓資訊,建立3個表: S(S#,SN.SD,SA),S#,SN,SD,SA 分別代表學號,學員姓名,所屬單位,學員年齡 C(C#.CN),C#,CN分別代表課程編號,課程名稱 SC(S#,C#,G) ,S#.C#,G 分別代表學號,所選的課程編號,學習成績 使用標準SQL巢狀語句查詢選修課程名稱為"稅收基礎”的學員學號和姓名? 巢狀查詢的思想:由條件來推結果 為管理業務培訓資訊,建立3個表: S(S#,SN.SD,SA),S#,SN,SD,SA 分別代表學號,學員姓名,所屬單位,學員年齡 C(C#.CN),C#,CN分別代表課程編號,課程名稱 SC(S#,C#,G) ,S#.C#,G 分別代表學號,所選的課程編號,學習成績 使用標準SQL巢狀語句查詢不選修課程編號為" C5’的學員姓名和所屬單位? 為管理業務培訓資訊,建立3個表: S(S#,SN.SD,SA),S#,SN,SD,SA 分別代表學號,學員姓名,所屬單位,學員年齡 C(C#.CN),C#,CN分別代表課程編號,課程名稱 SC(S#,C#,G) ,S#.C#,G 分別代表學號,所選的課程編號,學習成績 查詢選修課程超過5門的學員學號和所屬單位? 在資料庫有四個表:分別為 student(sid,sname,sage,ssex) teacher(tid,tname) course(cid,cname,tid) sc(sid,cid,score) 查詢出只選修了一門課程的全部同學的學號、姓名 SQL操作,有兩張表,如下圖所示 表連線的條件查詢操作 訂單表:A 訂單明細表:B 用SQL查詢2017年7月1號後(含7月1號)購買過1001這個商品的user_id和order_id、goods_id和price 下面是學生成績表(score)結構說明 下面是課程表(course)說明 要查詢所有需要補考的學生姓名和這門課程的名稱和成績,請寫出相應的SQL語句 表1:nm_capes2_template_def表(name與表2的schema關聯) 表2:nm_capes2_run_info表(prov_code為省程式碼,schema與1表的name關聯,status為1有效,為0無效) 更新省程式碼為100、kpi_id為CB_001的text內容為aaaaa 資料庫由以下四個關係模式構成: 供應商表S(S#,SNAME,STATAUS,CITY) 零件表:P(P#,PNAME,COLOR,WEIGHT,CITY) 工程專案表:J(J#,JNAME,CITY) 供應商-零件-工程專案表:SPJ(S#,P#,J#,QTY數量) 為空 為0 曾經有數量 用完了 供應商S,零件P和工程專案J分別由供應商(S#),零件號(P#)和工程專案號(J#)唯一標識,供貨SPJ是反映某個工程專案供應某些數量的某種零件。 問題:將沒有供貨的所有工程專案從J中刪去。 資料庫由以下四個關係模式構成: 供應商表S(S#,SNAME,STATAUS,CITY) 零件表:P(P#,PNAME,COLOR,WEIGHT,CITY) 工程專案表:J(J#,JNAME,CITY) 供應商-零件-工程專案表:SPJ(S#,P#,J#,QTY) 供應商S,零件P和工程專案J分別由供應商(S#),零件號(P#)和工程專案號(J#)唯一標識,供貨SPJ是反映某個工程專案供應某些數量的某種零件。 查詢這樣的工程專案號:供給該工程專案的零件P1的平均供應量大於10
三、選擇題參考答案
ABC ABCD ABCD
四、語句題參考答案
select * from subway where stop like ‘%人民%’; select * from subway where stop like ‘人民%’; select stop,count(id) from subway group by stop order by count(id) desc limit 1; select id from subway where id in (select id from subway where stop=’A’) and id in(select id from subway where stop=’B’); select 省份 from 農作物表n where 農作物 in(‘棉花’,‘小麥’) and 產量(萬噸)>(select 產量(萬噸) from 農作物表 a where 農作物=‘水稻’ and a.省份=n.省份); select s#,sn from s where s# in( select s# from sc where c# in( select c# from c where cn=’稅收基礎’)) select sn,sd from s where s# not in(select s# from sc where c#=’c5’); select sn,sd from s where s# in(select s# from sc where c# !=’c5’); select s# ,sd from s where s# in (select s# from sc group by s# having count(*)>5) select sid,sname from student where sid in(select sid from sc group by sid having count(*)=1) select user_id,A.order_id,goods_id,price from A,B where A.order_id = B.orderid and add_time=’2017-07-01’ and goods_id=’1001’; select sc_name,sc_score,co_name from score,course where score.sc_courseid=course.co_id and sc_ismakeup=’1’; update nm_capes2_template_def set text=”aaaaa” where name in (select schema from nm_capes2_run_info where prov_code=’100’ and kpi_id=’CB_001’); delete from J where j# in (select j# from spj where qty is null or qty=0); select j# from spj where p# in (select p# from p where pname=’p1’) group by p# having avg(qty) >10