第六章

Creating Tables

•在一個資料表有那些欄位元素

–欄位名稱

–欄位屬性

–欄位型態

•命名規則

•在ASE(15.0)中名稱最長可以255字元

•第一個字元,一定要是文字或是底線( _ )

•除第一個字元之外,可以使用符號,包含:$、#、@、_

•不可用保留字元

•如何選擇資料型態

•1.確定列的可能值的集合

•2.決定要求的精度值

–可容納所有可能的值

–提供所需的精確度

–存取的效率

–為未來的發展

Adaptive Server的數據類型分類

•Exact numeric:數值預測的準確性

•Approximate numeric:與數值計算的準確性

•Money

•Data and time

•Character

•Binary

•Exact Numeric Datatypes

•Approximate Numeric Datatypes

•Money Datatypes

•Datatime Datatypes

•Character Datatypes

•Binary Datatypes

用戶定義

•用戶定義的數據類型是由用戶創建一個系統數據類型的數據類型

–它可以是有用的,以確保存儲多個值相同的一組列的一致性

– sp_addtype type_name, datatype [ , column_property]

–sp_help datatype_name

•查詢資料型態的訊息

–sp_rename old_datatype_name, new_datatype_name

•改變名稱

列屬性

•一個欄有三種屬性

–NULL:可以是空值

–NOT NULL:不可以是空值

–IDENTITY:自動流水號

•不指定的話就是NOT NULL

•NULL Values

•NULL值表示一個未知的值

–NULL不等於0

–NULL不等於””

•一個NULL不會小於、大於或等於任何其他值

•兩個NULL值不被認為是等於一個

•IDENTITY規則

•create table table_name( column_name datatype [NULL | NOT NULL | IDENTITY], ) [with identity_gap = value]

•在15之前

–要定義成numeric(5,0)

•在15之前

–可以定義成Integer

•如果啟用identity_inset就可以自行插入值,但,沒有關閉的話,系統就不會自動給值

•不可以是空值

•無法更新

•表中的 DENTITY 列包含一個獨特的,系統為每一行生成的ID號碼表

•如果發生系統當機的話,容易造成跳號的問題,可以修改 identity_gap的大小,來避免這個問題

•資料表的內部結構

•page是存儲的基本單位

•page的大小有:2K、4K、8K和16K

•資料表是一系列的page

•sp_help table_name

–顯示有關指定資料表的信息

•sp_rename ‘table.old_column_name”, new_column_name

–更改列名

•sp_rename old_table_name, new_table_name

–更改資料表名稱

default

•create table table_name( column_name datetype default default_value [property], ….)

•當沒有值的時候,自動給序一個預設的值

•可以用在屬性為(NULL),不可以使用在屬性為(NOT NULL)

•sp_helpconstraint table_name

–查詢所有default

•sp_help table_name

–顯示指定的資料表的信息,包括系統生成的名稱為任何default

•建立或修改

•alter table table_name replace column_name default default_value

Permissions

•grant { select | insert | update | delete | references | all } on table_name [(column_list)] to user_list

•允許其他人查詢,修改數據,或引用您的表,你必須給予他們的權限

修改列

•在現有的表,列可以添加,刪除,或修改

•如果在新增欄位的話

–值為NULL

–屬性為 NULL

•不能刪除所有欄位

•可以屬性或類型

–改變數據類型時,新的數據類型必須與舊的數據類型兼容

–你可以隨時更改NOT NULL列設為NULL

–如果列的值沒有是NULL,才可以更改NOT NULL為NULL

注意事項

•將建立物件的的內容寫到script中,並儲存

–可以重覆使用

–可做為參考

•指定每一列的屬性

•使用自行定義來存儲相同類型的欄位

–sp_addtype而報表中指定列的屬性