sql server2008筆記
來(lái)源:程序員人生 發(fā)布時(shí)間:2014-12-08 09:04:46 閱讀次數(shù):4110次
系統(tǒng)表和臨時(shí)表
在sqlserver2008中數(shù)據(jù)表分為普通表,分區(qū)表,系統(tǒng)表和臨時(shí)表
(1)系統(tǒng)表
在創(chuàng)建好的每一個(gè)數(shù)據(jù)庫(kù)中,系統(tǒng)都會(huì)自動(dòng)添加1張系統(tǒng)表,該表存儲(chǔ)了與系統(tǒng)有關(guān)的各種信息
例如sql server2008服務(wù)器配置,數(shù)據(jù)庫(kù)設(shè)置,用戶(hù)和表對(duì)象的描寫(xiě)信息
通常只有DBO權(quán)限的用戶(hù)才能對(duì)該表進(jìn)行操作
(2)臨時(shí)表
臨時(shí)表就是臨時(shí)創(chuàng)建,不能永久保存,臨時(shí)表分為兩種,本地臨時(shí)表和全局臨時(shí)表
本地臨時(shí)表的表名通常帶有#標(biāo)識(shí)符,它只對(duì)當(dāng)前用戶(hù)可見(jiàn),當(dāng)用戶(hù)斷開(kāi)sql server2008
實(shí)例連接時(shí),將自動(dòng)刪除該臨時(shí)表,全局臨時(shí)表的表名通常帶有##標(biāo)識(shí)符,全局臨時(shí)表對(duì)
當(dāng)前sql server2008實(shí)例的所有用戶(hù)都可見(jiàn),當(dāng)所有的援用該表的用戶(hù)都斷開(kāi)與sql server2008
實(shí)例連接時(shí),將自動(dòng)刪除該臨時(shí)表,并且所有用戶(hù)都可以創(chuàng)建臨時(shí)表
//創(chuàng)建主鍵列
use 學(xué)生成績(jī)管理系統(tǒng)
create table 學(xué)生信息
(
學(xué)號(hào) nvarchar(50) not null primary key,
姓名 nchar(10) not null,
性別 nchar(10) not null,
誕生日期 date null,
名族 nchar(10) null,
所屬班級(jí) nchar(10) null,
家庭住址 ntext null
)
//創(chuàng)建外鍵
use 學(xué)生成績(jī)管理系統(tǒng)
create table 班級(jí)信息(
班級(jí)編號(hào) nchar(10) not null primary key,
班級(jí)名 nchar(10) not null,
班級(jí)人數(shù) int null,
所屬班級(jí) nchar(10) null,
所屬系別 nchar(10) not null,
輔導(dǎo)員 nchar(10) not null
foreign key 所屬班級(jí) references 系別信息(系別編號(hào))
foreign key 所屬系別 references 輔導(dǎo)員信息(輔導(dǎo)員編號(hào))
)
//創(chuàng)建默許值
分?jǐn)?shù) int null default(0)
//創(chuàng)建check束縛
use 學(xué)生成績(jī)管理系統(tǒng)
create table 教師信息
(
教師編號(hào) nchar(10) not null primary key,
姓名 nchar(10) not null,
性別 nchar(10) not null check(性別 in ('男','女')),
年齡 nchar(10) not null,
名族 nchar(10) not null,
籍貫 ntext null,
聯(lián)系電話 nvarchar(30) null
)
//創(chuàng)建自動(dòng)編號(hào)列
在sql server2008系統(tǒng)中,使用indentity關(guān)鍵字定義的字段叫做標(biāo)識(shí)字段,標(biāo)識(shí)字段體現(xiàn)了
數(shù)據(jù)的唯1性,當(dāng)某個(gè)字段設(shè)置為標(biāo)識(shí)字段時(shí),則該字段中不允許存在重復(fù)的數(shù)據(jù)值,當(dāng)1個(gè)新
記錄添加到這個(gè)表中時(shí),這個(gè)字段就被自動(dòng)賦給1個(gè)新值,默許情況下是依照加遞增
每一個(gè)表只能有1個(gè)標(biāo)識(shí)字段,若使用tinyint則只能想表中添加255個(gè)記錄
inentity(seed,increment)
use 學(xué)生成績(jī)管理系統(tǒng)
go
create table 系別信息
(
系別編號(hào) nchar(10) indentity(0,1) primary key not null,
系別名稱(chēng) nvarchar(50) null
)
//創(chuàng)建唯1列
姓名 nchar(10) not null unique,
使用Transact-SQL語(yǔ)句
使用存儲(chǔ)進(jìn)程sp_rename語(yǔ)句可以對(duì)數(shù)據(jù)表進(jìn)行重命名
use 學(xué)生成績(jī)管理系統(tǒng)
go
exec sp_rename '學(xué)生信息','Students'
使用drop table語(yǔ)句可以刪除數(shù)據(jù)表
use 學(xué)生成績(jī)管理系統(tǒng)
go
drop table 學(xué)生信息
在刪除表時(shí),如果使用cascade,那末除刪除表及其數(shù)據(jù)外,所有援用該表的視圖,束縛,例程或觸發(fā)器
也會(huì)被刪除,也就是級(jí)聯(lián)操作,如果使用restrict,那末只有當(dāng)不存在依賴(lài)性時(shí)才能被刪除
使用drop table刪除的時(shí)表本身,行將表和表中的數(shù)據(jù)全部刪除,如果只想刪除表中的數(shù)據(jù),而保存表本省
那末使用delete語(yǔ)句
use 學(xué)生成績(jī)管理系統(tǒng)
go
delete 學(xué)生信息
//
生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
------分隔線----------------------------
------分隔線----------------------------