第六章
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而報表中指定列的屬性