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

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

数据库经典笔试题

發(fā)布時(shí)間:2023/12/20 数据库 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库经典笔试题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、分享背景:? ? ? ??

????????由于最近測(cè)試這個(gè)行業(yè),內(nèi)卷的非常嚴(yán)重,不得不再得好好的學(xué)習(xí)一下,測(cè)試周邊的一些知識(shí),今天為大家整理一些數(shù)據(jù)庫(kù)經(jīng)典的筆試題,可以好好的備戰(zhàn)一下測(cè)試在數(shù)據(jù)庫(kù)方面的知識(shí)。

二、分享內(nèi)容:

1.1 本題目的表結(jié)構(gòu)
Student(S#,Sname,Sage,Ssex)學(xué)生表
Course(C#,Cname,T#)課程表
SC(S#,C#,score)成績(jī)表
Teacher(T#,Tname)教師表
1.2本題目的建表及測(cè)試數(shù)據(jù)
1建表
create table Student(
? ?S# int,
? ?Sname varchar(32),
? ?Sage int,
? ?Ssex varchar(8)
)
create table Course(
? ?C# int ,
? ?Cname varchar(32),
? ?T# int?
)
create table Sc(
? ?S# int ,
? ?C# int ,
? ?score int ,
)
create table Teacher(
? ? T# int ,
? ? Tname varchar(32)
)?? ?
(1)查詢(xún)“001”課程比002課程成績(jī)高的所有學(xué)生的學(xué)號(hào);

select a.S# from 2 (select S#,Score from SC where C#='001') a, 3 (select S#,Score?
from SC where C#='002') b 4 where a.S#=b.S# and a.Score>b.Score?
??
(2)?查詢(xún)平均成績(jī)大于60分的同學(xué)的學(xué)號(hào)和平均成績(jī);?

?1 select S#,AVG(Score) as?
AvgScore ?2 from SC 3 group by S# 4 having AVG(Score)>60 ??

(3)查詢(xún)所有同學(xué)的學(xué)號(hào)、姓名、選課數(shù)、總成績(jī);?

?1 select s.S#,s.Sname,COUNT(sc.C#) as CourseCount,SUM(sc.Score) as ScoreSum 2 from?
Student s left outer join SC sc 3 on s.S# = sc.S# 4 group by s.S#,s.Sname 5?
order by s.S# ??

(4)查詢(xún)姓“李”的老師的個(gè)數(shù);?

?1 select COUNT(distinct Tname) as?
count 2 from Teacher 3 where Tname like '李%' ??

(5)查詢(xún)沒(méi)學(xué)過(guò)“葉平”老師課的同學(xué)的學(xué)號(hào)、姓名; ?

1 select s.S#,s.Sname 2 from?
Student s 3 where s.S# not in 4 ( 5 ? ? select distinct(sc.S#) from SC sc,Course?
c,Teacher t 6 ? ? where sc.C#=c.C# and c.T#=t.T# and t.Tname='葉平' 7 )
? ?
(6)查詢(xún)學(xué)過(guò)“001”并且也學(xué)過(guò)編號(hào)“002”課程的同學(xué)的學(xué)號(hào)、姓名;??

1 --解法一:求交集 ?2 select s.S#,s.Sname ?3 from Student s,SC sc ?4 where?
s.S#=sc.S# and sc.C#='001' ?5 intersect ?6 select s.S#,s.Sname ?7 from Student?
s,SC sc ?8 where s.S#=sc.S# and sc.C#='002' ?9?
--解法二:使用exists 10 select?
s.S#,s.Sname 11 from Student s,SC sc 12 where s.S#=sc.S# and sc.C#='001' and?
exists 13 ( 14 ? ? select * from SC sc2 where sc.S#=sc2.S# and sc2.C#='002' 15 )
? ?
PS:?
EXISTS用于檢查子查詢(xún)是否至少會(huì)返回一行數(shù)據(jù),該子查詢(xún)實(shí)際上并不返回任何數(shù)據(jù),而是
返回值True或False。那么, 這里我們來(lái)看一下 in和exists的區(qū)別 : ?①in?
是把外表和內(nèi)表作hash?
連接,而exists是對(duì)外表作loop循環(huán),每次loop循環(huán)再對(duì)內(nèi)表進(jìn)行查詢(xún)。 ?②一直以來(lái)認(rèn)為?
exists比in效率高的說(shuō)法是不準(zhǔn)確的 。
??
-->如果查詢(xún)的兩個(gè)表大小相當(dāng),那么用in和exists差別不大。 ?
-->如果兩個(gè)表中一個(gè)較小,一個(gè)是大表,則子查詢(xún)表大的用exists,子查詢(xún)表小的用in。 ?

?三、拓展內(nèi)容,下邊有更詳細(xì)的經(jīng)典數(shù)據(jù)庫(kù)筆試題和面試題

(1條消息) 經(jīng)典的數(shù)據(jù)庫(kù)筆試題你值得擁有-其它文檔類(lèi)資源-CSDN文庫(kù)https://download.csdn.net/download/m0_49428126/86540014

總結(jié)

以上是生活随笔為你收集整理的数据库经典笔试题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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