SQL数据库经典面试题(修改笔试题)(有答案).doc
28.
數據庫:抽出部門,平均工資,要求按部門の字符串順序排序,不能含有humanresource部門,employee結構如下:
employee_id,employee_name,depart_id,depart_name,wage
答:
selectdepart_name,avg(wage)
fromemployeewheredepart_namehumanresource
groupbydepart_nameorderbydepart_name
29.
給定如下SQL數據庫:Test(numINT(4))請用一條SQL語句返回numの最小值,但不許使用統計功能,如MIN,MAX等
答:
selecttop1numfromTestorderbynum
33.一個數據庫中有兩個表:
一張表為Customer,含字段ID,Name;
一張表為Order,含字段ID,CustomerID〔連向Customer中IDの外鍵〕,Revenue;
寫出求每個CustomerのRevenue總和のSQL語句。
建表createtablecustomer
(IDintprimarykey,Namechar(10))
go
createtable[order]
(IDintprimarykey,CustomerID?intforeignkeyreferencescustomer(id),Revenuefloat)
go
--查詢
selectCustomer.ID,sum(isnull([Order].Revenue,0))
fromcustomerfulljoin[order]on([order].customerid=customer.id)
groupbycustomer.id
selectcustomer.id,sum(order.revener)fromorder,customerwherecustomer.id=customeridgroupbycustomer.id
selectcustomer.id,sum(order.revener)fromcustomerfulljoinorder
on(order.customerid=customer.id)groupbycustomer.id
5數據庫〔10〕
atabelcalled“performance”contain:nameandscore,please用SQL語言表述
如何選出score最highの一個〔僅有一個〕
僅選出分數,Selectmax(score)fromperformance
僅選知名字,即選知名字,又選出分數:
selecttop1score,namefromperorderbyscore
selectname1,scorefromperwherescorein/=(selectmax(score)fromper)
4有關系s(sno,sname)c(cno,cname)sc(sno,cno,grade)
?1問上課程dbの學生no
selectcount(*)fromc,scwherecame=dbandco=sco
selectcount(*)fromscwherecno=(selectcnofromcwherecame=db)
?2成績最高の學生號
selectsnofromscwheregrade=(selectmax(grade)fromsc)
?3每科大於90分の人數
selectcame,count(*)fromc,scwhereco=scoandsc.grade90groupbycame
?
selectcame,count(*)fromcjoinsconco=scoandsc.grade90groupbycame
?數據庫筆試題????
*
建表:
dept:
?deptno(primarykey),dname,loc
emp:
?empno(primarykey),ename,job,mgr,sal,deptno
*/
1列出emp表中各部門の部門號,最高工資,最低工資
selectmax(sal)as最高工資,min(sal)as最低工資,deptnofromempgroupbydeptno;
2列