幾道特別難搞的資料庫面試題

測試羊~發表於2020-11-08

一、多選題(不定項選擇)

  1. 在下面所列出的條目中,哪些是資料庫管理系統的基本功能?
    A ‍‍ 資料庫定義‍‍
    B ‍‍ 資料庫的建立和維護‍‍
    C ‍‍ 資料庫存取‍‍
    D 資料庫和其他軟體系統的通訊
  2. 在Mongodb支援的資料型別中,ObjectId:類似唯一主鍵,可以很快的去生成和排序,比如:"_id" : ObjectId(“5b151f8536409809ab2e6b26”),那麼在小括號中的一串字元可以劃分位哪幾部分?‍‍
    A ‍‍ 時間戳‍‍
    B ‍‍ 機器碼‍‍
    C 程式ID‍‍
    D 計數器
    E 轉義碼
  3. 下列哪些屬於NoSQL資料庫的特徵?‍‍‍‍
    A 高可擴充套件性‍‍
    B 分散式計算‍‍
    C 低成本‍‍
    D 沒有標準化‍‍

二、程式設計題

  1. 表名:subway,包含3個欄位:id(線路編號)、stop(站點)、sequence(站點序列)。‍‍‍‍如下,請寫出以下SQL語句:‍‍‍‍‍‍
    在這裡插入圖片描述
    找出站點名稱包含“人民”的所有記錄。‍‍ stop like ”人民%”



  2. 表名:subway,包含3個欄位:id(線路編號)、stop(站點)、sequence(站點序列)。‍‍‍‍如下,請寫出以下SQL語句:‍‍
    在這裡插入圖片描述
    ‍‍找出途徑線路數最多的站點。‍‍ 考慮一下每個地鐵站點有多少趟地鐵通過



  3. 表名:subway,包含3個欄位:id(線路編號)、stop(站點)、sequence(站點序列)。如下,請寫出以下SQL語句:
    在這裡插入圖片描述
    已知站點A和B,判斷是否可以直達。(就是檢視包含A和B站點的地鐵)不換乘



  4. 農作物表
    在這裡插入圖片描述
    ‍‍查詢出來哪些省份棉花或者小麥產量高於水稻產量(本省)。同省份 內表的查詢離不開外表的支援 寫法:子查詢加別名



  5. 為管理業務培訓資訊,建立3個表:
    S(S#,SN.SD,SA),S#,SN,SD,SA 分別代表學號,學員姓名,所屬單位,學員年齡
    C(C#.CN),C#,CN分別代表課程編號,課程名稱
    SC(S#,C#,G) ,S#.C#,G 分別代表學號,所選的課程編號,學習成績
    使用標準SQL巢狀語句查詢選修課程名稱為"稅收基礎”的學員學號和姓名?
    巢狀查詢的思想:由條件來推結果



  6. 為管理業務培訓資訊,建立3個表:
    S(S#,SN.SD,SA),S#,SN,SD,SA 分別代表學號,學員姓名,所屬單位,學員年齡
    C(C#.CN),C#,CN分別代表課程編號,課程名稱
    SC(S#,C#,G) ,S#.C#,G 分別代表學號,所選的課程編號,學習成績
    使用標準SQL巢狀語句查詢不選修課程編號為" C5’的學員姓名和所屬單位?



  7. 為管理業務培訓資訊,建立3個表:
    S(S#,SN.SD,SA),S#,SN,SD,SA 分別代表學號,學員姓名,所屬單位,學員年齡
    C(C#.CN),C#,CN分別代表課程編號,課程名稱
    SC(S#,C#,G) ,S#.C#,G 分別代表學號,所選的課程編號,學習成績
    查詢選修課程超過5門的學員學號和所屬單位?



  8. 在資料庫有四個表:分別為
    student(sid,sname,sage,ssex)
    teacher(tid,tname)
    course(cid,cname,tid)
    sc(sid,cid,score)‍‍
    ‍‍查詢出只選修了一門課程的全部同學的學號、姓名‍‍



  9. SQL操作,有兩張表,如下圖所示‍‍ 表連線的條件查詢操作
    ‍‍訂單表:A‍‍
    在這裡插入圖片描述
    ‍‍訂單明細表:B‍‍
    在這裡插入圖片描述
    ‍‍用SQL查詢2017年7月1號後(含7月1號)購買過1001這個商品的user_id和order_id、goods_id和price‍‍



  10. 下面是學生成績表(score)結構說明‍‍
    在這裡插入圖片描述
    下面是課程表(course)說明‍‍
    在這裡插入圖片描述
    要查詢所有需要補考的學生姓名和這門課程的名稱和成績,請寫出相應的SQL語句



  11. 表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



  12. 資料庫由以下四個關係模式構成:
    供應商表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中刪去。‍‍‍‍



  13. 資料庫由以下四個關係模式構成:‍‍
    供應商表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



三、選擇題參考答案

  1. ABC
  2. ABCD
  3. ABCD

四、語句題參考答案

  1. select * from subway where stop like ‘%人民%’;
    select * from subway where stop like ‘人民%’;
  2. select stop,count(id)
    from subway
    group by stop
    order by count(id) desc
    limit 1;
  3. select id from subway where id in (select id from subway where stop=’A’) and id in(select id from subway where stop=’B’);
  4. select 省份 from 農作物表n where 農作物 in(‘棉花’,‘小麥’) and 產量(萬噸)>(select 產量(萬噸) from 農作物表 a where 農作物=‘水稻’ and a.省份=n.省份);
  5. select s#,sn from s where s# in(
    select s# from sc where c# in(
    select c# from c where cn=’稅收基礎’))
  6. 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’);
  7. select s# ,sd from s where s# in (select s# from sc group by s# having count(*)>5)
  8. select sid,sname from student where sid in(select sid from sc group by sid having count(*)=1)
  9. 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’;
  10. select sc_name,sc_score,co_name
    from score,course
    where score.sc_courseid=course.co_id and sc_ismakeup=’1’;
  11. 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’);
  12. delete from J where j# in (select j# from spj where qty is null or qty=0);
  13. select j#
    from spj
    where p# in (select p# from p where pname=’p1’)
    group by p#
    having avg(qty) >10

相關文章