一套.net筆試題

才智咖 人氣:1.64W

1 如何設計資料庫

一套筆試題

答:儲存資訊的大小,每次擴容的大小,冗餘

2 幾十上百萬行,如何快速查詢出表資料

答:用分頁儲存過程

/*

函式名稱: GetRecordFromPage

函式功能: 獲取指定頁的資料

引數說明: @tblName 包含資料的表名

@fldName 關鍵欄位名

@PageSize 每頁記錄數

@PageIndex 要獲取的頁碼

@OrderType 排序型別, 0 – 升序, 1 – 降序

@strWhere 查詢條件 (注意: 不要加 where)

*/

CREATE PROCEDURE GetRecordFromPage

@tblName varchar(255), — 表名

@fldName varchar(255), — 欄位名

@PageSize int = 10, — 頁尺寸

@PageIndex int = 1, — 頁碼

@OrderType bit = 0, — 設定排序型別, 非 0 值則降序

@strWhere varchar(2000) = ” — 查詢條件 (注意: 不要加 where)

AS

declare @strSQL varchar(6000) — 主語句

declare @strTmp varchar(1000) — 臨時變數

declare @strOrder varchar(500) — 排序型別

if @OrderType != 0

begin

set @strTmp = ‘<(select min’

set @strOrder = ‘ order by [' + @fldName + '] desc’

end

else

begin

set @strTmp = ‘>(select max’

set @strOrder = ‘ order by [' + @fldName +'] asc’

end

set @strSQL = ‘select top ‘ + str(@PageSize) + ‘ * from ['

+ @tblName + '] where [' + @fldName + ']‘ + @strTmp + ‘(['

+ @fldName + ']) from (select top ‘ + str((@PageIndex-1)*@PageSize) + ‘ ['

+ @fldName + '] from [' + @tblName + ']‘ + @strOrder + ‘) as tblTmp)’

+ @strOrder

if @strWhere != ”

set @strSQL = ‘select top ‘ + str(@PageSize) + ‘ * from ['

+ @tblName + '] where [' + @fldName + ']‘ + @strTmp + ‘(['

+ @fldName + ']) from (select top ‘ + str((@PageIndex-1)*@PageSize) + ‘ ['

+ @fldName + '] from [' + @tblName + '] where ‘ + @strWhere + ‘ ‘

+ @strOrder + ‘) as tblTmp) and ‘ + @strWhere + ‘ ‘ + @strOrder

if @PageIndex = 1

begin

set @strTmp = ”

if @strWhere != ”

set @strTmp = ‘ where (‘ + @strWhere + ‘)’

set @strSQL = ‘select top ‘ + str(@PageSize) + ‘ * from ['

+ @tblName + ']‘ + @strTmp + ‘ ‘ + @strOrder

end

exec (@strSQL)

GO

3 SQL語句左聯接與內連線的區別

答:Inner Join 邏輯運算子返回滿足第一個(頂端)輸入與第二個(底端)輸入聯接的每一行。

Left Outer Join 邏輯運算子返回每個滿足第一個(頂端)輸入與第二個(底端)輸入的聯接的'行。它還返回任何在第二個輸入中沒有匹配行的第一個輸入中的行。第二個輸入中的非匹配行作為空值返回。

4 如何連線資料庫

答:connection 連線資料庫

Command 執行資料庫SQL或儲存過錯命令

  •   DataAdapter 連線資料庫,執行資料庫SQL或儲存過錯命令,填充DataSet
TAGS:NET 筆試