1赵刑、創(chuàng)建數(shù)據(jù)表
(1)建表語(yǔ)法
(2)列的特征包含的內(nèi)容
是否為空(NULL):再輸入數(shù)據(jù)時(shí),數(shù)據(jù)庫(kù)的列允許為空時(shí)场刑,可以不輸入數(shù)據(jù)料睛,否則必須輸入;列是否為空要根據(jù)數(shù)據(jù)庫(kù)設(shè)計(jì)的具體要求決定摇邦,對(duì)于關(guān)鍵列必須禁止為空。
是否標(biāo)識(shí)列(自動(dòng)編號(hào))
是否有默認(rèn)值:如果數(shù)據(jù)表某列在用戶不輸入數(shù)據(jù)的時(shí)候屎勘,希望提供一個(gè)默認(rèn)的內(nèi)容施籍,則需要設(shè)置默認(rèn)值
是否為主鍵:主鍵是實(shí)體的唯一標(biāo)識(shí),保證實(shí)體不被重復(fù)概漱,一個(gè)表必須有主鍵才有意義丑慎。否則更新和刪除實(shí)體都可能出現(xiàn)異常。
例:
PS:
? ? ? ? GO是批處理的標(biāo)志瓤摧,表示SQL Server將這些SQL語(yǔ)句編譯為一個(gè)執(zhí)行單元竿裂,提高執(zhí)行效率。
? ? ? ? 一般是將一些邏輯相關(guān)的業(yè)務(wù)操作語(yǔ)句放在同一批中照弥,這完全由業(yè)務(wù)需求和代碼編寫者決定腻异。
? ? ? ? GO是SQL Server的批處理命令,只有代碼編輯器才能識(shí)別并處理这揣,編輯其他應(yīng)用程序就不能使用該命令悔常。由于每個(gè)批處理之間時(shí)獨(dú)立的影斑,因此,在一個(gè)批處理出現(xiàn)錯(cuò)誤時(shí)机打,并不會(huì)影響其他批處理中SQL代碼的運(yùn)行
執(zhí)行結(jié)果:
2矫户、標(biāo)識(shí)列的特殊說(shuō)明
(1)標(biāo)識(shí)列使用的意義
有時(shí)候,一個(gè)數(shù)據(jù)表存儲(chǔ)的實(shí)體残邀,很難找到不重復(fù)的列作為主鍵列皆辽,比如學(xué)員成績(jī)表中存儲(chǔ)著學(xué)生的多次考試成績(jī),則學(xué)號(hào)也很容易重復(fù)芥挣,其他列更無(wú)法做到不重復(fù)驱闷。
SQLServer提供了一個(gè)“標(biāo)識(shí)列”,也叫“自動(dòng)增長(zhǎng)列”或“自動(dòng)編號(hào)”九秀,它本身沒(méi)什么具體意義遗嗽,但也可以讓它表示特定的意義。比如學(xué)生成績(jī)表中的自動(dòng)標(biāo)識(shí)列Id鼓蜒,不表示實(shí)體屬性痹换;但學(xué)員信息表中的StudentId也是標(biāo)識(shí)列,但它表示學(xué)生的實(shí)體屬性(學(xué)號(hào))都弹。
(2)標(biāo)識(shí)列的使用要求
該列必須是整數(shù)類型或沒(méi)有小數(shù)的精確類型
標(biāo)識(shí)種子:標(biāo)識(shí)列的起始大小
標(biāo)識(shí)增量:標(biāo)識(shí)列每次遞增的(自動(dòng)增加)值
(3)注意問(wèn)題
有標(biāo)識(shí)列的數(shù)據(jù)表被刪除一行后娇豫,該行會(huì)空缺,不會(huì)填補(bǔ)
標(biāo)識(shí)列由系統(tǒng)維護(hù)畅厢,用戶既不能自己輸入數(shù)據(jù)冯痢,也不能修改數(shù)值
標(biāo)識(shí)列可以同時(shí)定義為主鍵,也不可不定義為主鍵框杜,根據(jù)需要決定