第三章SQLServer 2012 表基本操作
SQL Server數(shù)據(jù)庫中的表是一個非常重要的數(shù)據(jù)庫對象,我們的數(shù)據(jù)都是存儲在各個表中,對數(shù)據(jù)的訪問,驗證,關(guān)聯(lián)性連接等都是通過對表的操用來實現(xiàn)的,所以撐據(jù)好數(shù)據(jù)庫表的操作,顯得非常重要。
一、表的概念
關(guān)系數(shù)據(jù)庫的理論基礎(chǔ)是關(guān)系模型,它直接描述數(shù)據(jù)庫中數(shù)據(jù)的邏輯結(jié)構(gòu)。關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)它是一種二維表格結(jié)構(gòu)。
二、數(shù)據(jù)類型
數(shù)據(jù)類型是用來表現(xiàn)數(shù)據(jù)特征的,它決定了數(shù)據(jù)在計算機中的存儲格式、存儲長度、數(shù)據(jù)精度和小數(shù)位數(shù)等屬性。

常用數(shù)據(jù)類型

三、表的設(shè)計
設(shè)計SQL Server數(shù)據(jù)庫表時,要根據(jù)數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計的要求,確定需要什么樣的表,各表中都有那些數(shù)據(jù)、所包含的數(shù)據(jù)類型、那些列允許為空值、那些需要索引、哪些列是主鍵、哪些列是外鍵等。在創(chuàng)建和操作表的過程中,將對表進行更為細致的設(shè)計。

四、數(shù)據(jù)庫中表的創(chuàng)建
在SQLServer中建立了數(shù)據(jù)庫后,就可以在該數(shù)據(jù)庫中創(chuàng)建表了。創(chuàng)建表可以在對象資源管理器和在查詢分析器中使用T-SQL語言兩種方法進行。
? ? (1)定義表結(jié)構(gòu):給表的每一列取字段名,并確定每一列的數(shù)據(jù)庫型、數(shù)據(jù)長度、列數(shù)據(jù)是否可以為空等。
(2)設(shè)置約束:設(shè)置約束是為了限制該列輸入值的取值范圍,以保證輸入數(shù)據(jù)的正確性和統(tǒng)一性。
(3)添加數(shù)據(jù):表結(jié)構(gòu)建立完成之后,應(yīng)該向表中輸入數(shù)據(jù)。
“班級”表的結(jié)構(gòu):
2、創(chuàng)建表
(1)在“對像資源管理器”窗口展開“數(shù)據(jù)庫”結(jié)點,選擇在其中建立表的數(shù)據(jù)庫,右擊“表”結(jié)點,在彈出的快捷菜單中選擇”新建表”命令。
(2)在“表設(shè)計器”窗口上的網(wǎng)絡(luò)中,每一行描述了表中一個字段,每行有三列,這三列分別描術(shù)列名,數(shù)據(jù)類型,和允許為空等信息。
2.1使用T-SQL語句創(chuàng)建表
格式:
create table table_name
(
學(xué)號int primary key identity ,
名稱char(6) not null,
專業(yè)方向varchar(10) not null,
系部代碼char(2) not null,
備注varchar(50)
)
3、查看表
表建立好后,我們可以根據(jù)需要查看表的結(jié)構(gòu)和數(shù)據(jù),以便更好的管理表。
可以使用對象資源管理器或系統(tǒng)存儲過程查看表的結(jié)構(gòu)。
(1)在”對象資源管理器”窗口中展開“數(shù)據(jù)庫”結(jié)點,選擇相應(yīng)的數(shù)據(jù)庫并展開其中的表結(jié)點,右擊表選擇“屬性”。即可查看表信息。
(2)使用系統(tǒng)存儲過程sp_help查看表信息。
EXEC ?sp_help table_name
五、修改表結(jié)構(gòu)
一個表建立之后,可以根據(jù)使用的需要對它進行修改和刪除,修改的內(nèi)容可以是列的屬性, 數(shù)據(jù)類型、長度等等,還可以添加列、刪除列。修改和刪除表,可以使用對像資源管理器,也可以使用T-SQL語言完成。
5.1 使用對象資源管理器修改表結(jié)構(gòu)
1.在“對象資源管理器”窗口,展開”數(shù)據(jù)庫“結(jié)點,選擇相應(yīng)的數(shù)據(jù)庫,展開表對象,右擊要修改的表。在彈出菜單中選“修改”。
5.2使用T-SQL語句修改表結(jié)構(gòu)
重命名表:
execsp_rename 'old_table_name','new_table_name‘
重命名列:
execsp_rename 'table_name.old_name','new_name','column‘
添加新列:
altertable [table_name] add [new_column] varchar(33)
更改列的數(shù)據(jù)類型:
altertable [table_name] ?alter column [column_name] [data_type]
刪除列:
alter table [table_name] drop column [column_name]
刪除表:
droptable table_name
刪除表的所有數(shù)據(jù):
Truncatetable [table_name]
創(chuàng)建主鍵約束
alter table [table_name]
add constraint pk
primary key clustered (列名)
創(chuàng)建外建約束
alter table [table_name]
add constraint wz
foreign key (列名)
references 表名(列名)
