麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > .NET > 正文

.Net開發(fā)工程師筆試試題

2024-07-21 02:47:49
字體:
來源:轉載
供稿:網(wǎng)友
.Net開發(fā)工程師筆試試題第一部分【數(shù)據(jù)庫技能】

附上自己做的答案,提出不足之處

現(xiàn)在有一個SQL Server 2000版本的數(shù)據(jù)庫,里面包含有三個表Info、InfoReplyUser,分別表示信息、信息評論和用戶表,包含的字段分別如下:

Info

infoID

INT

信息ID(自增列)

infoTitle

NVARCHAR(100)

信息標題

infoContent

NVARCHAR(2000)

信息正文

infoPubDate

DATETIME

信息發(fā)布日期

infoPubUser

VARCHAR(30)

信息發(fā)布用戶帳號

InfoReply

infoReplyID

INT

評論ID(自增列)

infoID

INT

信息ID

infoReplyContent

NVARCHAR(2000)

評論正文

infoReplyDate

DATETIME

評論日期

infoReplyUser

VARCHAR(30)

評論用戶帳號

User

userNo

VARCHAR(30)

用戶帳號

userName

NVARCHAR(30)

用戶姓名

三個表的關系可以通過下列模型圖來描述:

現(xiàn)有下列問題:

(1) 請說明在上述模型圖中,PK和FK1、FK2的含義?

答:pk是主鍵 fk1、fk2分別是外面

表infoReply有倆個外鍵fk1,fk2

表info有一個外鍵pk1

(2) 現(xiàn)在有一個查詢,需要返回一個最新發(fā)布的20條信息列表,要求包含:信息ID、信息標題、信息發(fā)布時間、信息發(fā)布人姓名、信息評論總數(shù)和最后評論時間,并且按最后評論時間排序,請給出該查詢的SQL語句?

Select top 20 i.InfoID,i.InfoTItle,i.InfoPubDate,u.userName,

count(ir.infoID)as ReplyCount --信息評論總數(shù)總數(shù)

ir.infoReplyDate

from Info i

inner join User u on i.infoPubuser =u.userNo

inner join InfoReply ir on ir.infoID=i.inforID

group by i.InfoID,i.InfoTItle,i.InfoPubDate,u.userName

order by ir.inforReplyUser desc

(3) 仍是第(2)中的查詢要求,現(xiàn)在假設Info表和User表之間不存在任何外鍵約束,即infoPubUser表示的用戶帳號可能在User表中已經(jīng)被刪除,這時如果要繼續(xù)返回最新的20條信息列表,包含(2)中相同的列,該SQL語句應該怎么寫?

Select top 20 i.InfoID,i.InfoTItle,i.InfoPubDate,u.userName,

count(ir.infoID)as ReplyCount --信息評論總數(shù)總數(shù)

ir.infoReplyDate

from Info i

left join User u on i.infoPubuser =u.userNo

left join InfoReply ir on ir.infoID=i.inforID

group by i.InfoID,i.InfoTItle,i.InfoPubDate,u.userName

order by ir.inforReplyUser desc

(4) 假設Info表有一個字段infoReplyCount(信息評論總數(shù)),那我們需要怎么做才能讓用戶每增加一條評論,該字段自動+1,說出大概思路即刻,能寫出SQL語句最好

在表Info創(chuàng)建一個觸發(fā)器,原理:當評論表數(shù)據(jù)插入之后(after關鍵字)就會觸發(fā)下面update語句

Create trigger tri_addReply

On InfoReply

After insert

As

Beigin

Declare @infoID int --定義一個變量

Select @infoID=infoID from inserted –從插入表選出infoID

Update infoReply set infoReplyCount=infoReplyCount+1 where infoID=@infoID

end

(5) 寫出返回每一條信息的評論總數(shù)的SQL語句

Select i.infoID,count(ir.infoID)

From Info inner join InfoReply ir on i.infoID=ir.infoID

Group by i.infoID, ir.infoID

(6) 假設發(fā)現(xiàn)Info表有多條記錄丟失了,如何最大程度地找出有多少條記錄丟失了,寫出SQL語句。(不使用InfoReply表)

Select count(*) from Info --選出表中的總數(shù)

Select max(infoID) from Info --選出表中最大infoID

之后將兩個結果相減得到多少丟失記錄

(7) 假設發(fā)現(xiàn)Info表只有1條記錄丟失了,如何知道丟失的記錄的ID,寫出SQL語句(不使用InfoReply表)

首先做個小判斷,這個丟失的一條記錄不可能是最后一條記錄

select rownum from

(select row_number()over (order by id desc) as rownum from Info)—采用sql的分頁函數(shù)

as a

where rownum not in(select id from Info)

(8) 仍然是(6)的問題,可以使用InfoReply表,寫出SQL語句。

Select count(infoID)from --此語句統(tǒng)計多少條記錄丟失

(Select infoID from InfoReply

where infoID not in

(select infoID from Info)) as a --查找出多少條丟失記錄放到a表中

(9) 假設Info表有一個字段infoReplyCount(信息評論總數(shù)),infoReplyCount>=20的為熱門帖子,小于20的為非熱門帖子,請根據(jù)Info表的內容輸出以下2行數(shù)據(jù),要求SQL語句最簡。

Select infoReplyCount as 數(shù)量,

(

Case

When infoReplyCount>=20 then N‘熱門’

Else N‘非熱門’

End

) as 類別

From Info

類別

數(shù)量

熱門

30

非熱門

18


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 午夜精品久久久久久久久久久久久蜜桃 | 午夜精品一区二区三区免费 | 精品一区二区三区网站 | 免费观看欧美一级片 | 久久99精品久久久久久国产越南 | 末成年女av片一区二区 | 成人午夜久久 | 日韩蜜桃视频 | 九九热这里只有精品8 | av在线免费观看网 | 久久久久一区二区三区 | 国产精品18久久久久久久久 | 鲁久久| 欧美黑人xx | 夜夜夜影院 | 久久久久久久久日本理论电影 | 欧美1—12sexvideos | 黄色毛片一级 | 一区二区三区日韩精品 | 欧美一区黄色 | www.成人免费 | 国内精品伊人久久久久网站 | 欧美精品一区二区三区在线 | 欧美成人精品一区二区三区 | 99热久草 | 在线播放一级片 | 秋霞a级毛片在线看 | 狠狠操精品视频 | 91精品国产手机 | 亚洲天堂中文字幕在线观看 | 精品一区二区三区免费毛片 | 综合图区亚洲 | 国产一区二区视频在线播放 | 免费中文视频 | 免费a网| 高清一区二区在线观看 | 99成人精品视频 | 91一级毛片| hd日本xxxx | 国产精品久久久在线观看 | 国产一区二区在线免费观看 |