SQL開發是一門語言,它很容易學,但是很難掌握

2021-06-29 00:54:46 字數 2930 閱讀 9613

你能向我簡要敘述一下

sql server 2000

中使用的一些資料庫物件嗎

? 你希望聽到的***括這樣一些物件:**

、檢視、使用者定義的函式,以及儲存過程

;如果他們還能夠提到像觸發器這樣的物件就更好了。如果應聘者不能回答這個基本的問題,那麼這不是乙個好兆頭。

null

是什麼意思

? null(空)

這個值是資料庫世界裡乙個非常難纏的東西,所以有不少應聘者會在這個問題上跌跟頭您也不要覺得意外。

null

這個值表示

unknown(未知

):它不表示

「」(空字串

)。假設您的

sql server

資料庫裡有

ansi_nulls

,當然在預設情況下會有,對

null

這個值的任何比較都會生產乙個

null

值。您不能把任何值與乙個

unknown

值進行比較,並在邏輯上希望獲得乙個答案。您必須使用

is null

操作符。

什麼是索引

?sql server 2000

裡有什麼型別的索引

? 任何有經驗的資料庫開發人員都應該能夠很輕易地回答這個問題。一些經驗不太多的開發人員能夠回答這個問題,但是有些地方會說不清楚。

簡單地說,索引是乙個資料結構,用來快速訪問資料庫**或者檢視裡的資料。在

sql server

裡,它們有兩種形式

:聚集索引

和非聚集索引。聚集索引在索引的葉級儲存資料。這意味著不論聚集索引裡有**的哪個

(或哪些

)字段,這些欄位都會按順序被儲存在**。由於存在這種排序,所以每個**只會有乙個聚集索引。非聚集索引在索引的葉級有乙個行識別符號。這個行識別符號是乙個指向磁碟上資料的指標。它允許每個**有多個非聚集索引。

什麼是主鍵

?什麼是外來鍵

? 主鍵是**裡的

(乙個或多個)字段

,只用來定義**裡的行

;主鍵裡的值總是唯一的。外來鍵是乙個用來建立兩個**之間關係的約束。這種關係一般都涉及乙個**裡的主鍵欄位與另外乙個**

(儘管可能是同乙個**

)裡的一系列相連的字段。那麼這些相連的字段就是外來鍵。

什麼是觸發器

?sql server 2000

有什麼不同型別的觸發器

? 讓未來的資料庫開發人員知道可用的觸發器型別以及如何實現它們是非常有益的。

觸發器是一種專用型別的儲存過程,它被**到

sql server 2000

的**或者檢視上

。在sql server 2000

裡,有instead-of

和after

兩種觸發器。

instead-of

觸發器是替代資料操控語言

(data manipulation language

,dml)

語句對**執行語句的儲存過程。例如,如果我有乙個用於

tablea

的instead-of-update

觸發器,同時對這個**執行乙個更新語句,那麼

instead-of-update

觸發器裡的**會執行,而不是我執行的更新語句則不會執行操作。

after

觸發器要在

dml語句在資料庫裡使用之後才執行。

這些型別的觸發器對於監視發生在資料庫**裡的資料變化十分好用。

您如何確乙個帶有名為

fld1

欄位的tableb

**裡只具有

fld1

欄位裡的那些值,而這些值同時在名為

tablea

的**的

fld1

欄位裡? 

這個與關係相關的問題有兩個可能的答案。第乙個答案

(而且是您希望聽到的答案

)是使用外來鍵限制。外來鍵限制用來維護引用的完整性。它被用來確保**裡的字段只儲存有已經在不同的

(或者相同的

)**裡的另乙個欄位裡定義了的值。這個字段就是候選鍵

(通常是另外乙個**的主鍵)。

另外一種答案是觸發器。觸發器可以被用來保證以另外一種方式實現與限制相同的作用,但是它非常難設定與維護,而且效能一般都很糟糕。由於這個原因,微軟建議開發人員使用外來鍵限制而不是觸發器來維護引用的完整性。

? 你正在尋找進行與資料操控有關的應聘人員。對乙個**的索引越多,資料庫引擎用來更新、插入或者刪除資料所需要的時間就越多,因為在資料操控發生的時候索引也必須要維護。

你可以用什麼來確保**裡的字段只接受特定範圍裡的值

? 這個問題可以用多種方式來回答,但是只有乙個答案是「好

」答案。您希望聽到的回答是

check

限制,它在資料庫**裡被定義,用來限制輸入該列的值。

觸發器也可以被用來限制資料庫**裡的字段能夠接受的值,但是這種辦法要求觸發器在**裡被定義,這可能會在某些情況下影響到效能。因此,微軟建議使用

check

限制而不是其他的方式來限制域的完整性。

如果應聘者能夠正確地回答這個問題,那麼他的機會就非常大了,因為這表明他們具有使用儲存過程的經驗。

返回引數總是由儲存過程返回,它用來表示儲存過程是成功還是失敗。返回引數總是

int資料型別。

output

引數明確要求由開發人員來指定,它可以返回其他型別的資料,例如字元型和數值型的值。

(可以用作輸出引數的資料型別是有一些限制的。

)您可以在乙個儲存過程裡使用多個

output

引數,而您只能夠使用乙個返回引數。

什麼是相關子查詢

?如何使用這些查詢

? 經驗更加豐富的開發人員將能夠準確地描述這種型別的查詢。

相關子查詢是一種包含子查詢的特殊型別的查詢。查詢裡包含的子查詢會真正請求外部查詢的值,從而形成乙個類似於迴圈的狀況。

This is it 語言是一門藝術

最近一直在搞合作,每天能算娛樂活動的也就是早上聽聽英語了,哎,這日子,像我這種划水型選手,怎麼跟的上節奏啊。每天從醒過來就燃燒小宇宙到晚上回宿舍,at field全開,再加上我大狼院的畢業設計要中期檢查,要在下個星期完成基本設計。簡直要報警了。好吧,還說回英語,這乙個月還是聽得 jessie 直到前...

如何開發一門程式語言

首先,你要考慮這是動態語言還是靜態語言,然後去想它面向什麼,如web開發,物件導向的程式設計等。還有它的語法,下面列出了物件導向的程式語言所需要的語句 語句用途 if 表示式1 執行語句1 else 執行語句2 判斷如果表示式1,則執行語句1,否則,執行語句2 cout 輸出cin 輸入int 變數...

C 是一門難學易用的語言!

譯序 c 是一門難學易用的語言!c 的難學,不僅在其廣博的語法 語法背後的語義 語義背後的深層思維 深層思維背後的物件模型 c 的難學,還在於它提供了4種不同 相輔相成 的程式設計思維模型 procedural based,object based,object oriented,generic p...