程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server數據庫技術(43)

SQL Server數據庫技術(43)

編輯:關於SqlServer

在使用數據庫的過程中,接觸最多的就是數據庫中的表。表是數據存儲的地方。是數據庫中最重要的部分,管理好表也就管理好了數據庫。本章將介紹如何創建和管理數據庫表。

表是由行和列組成的。創建表的過程主要就是定義表的列的過程,為此,應先了解表的列的屬性。

7.1.1 列的屬性
表的列名在同一個表中具有惟一性,同一列的數據屬於同一種數據類型。除了用列名和數據類型來指定列的屬性外,還可以定義其它屬性:NULL 或NOT NULL 屬性和IDENTITY 屬性。

(1) NULL 或NOT NULL
如果表的某一列被指定具有NULL 屬性,那麼就允許在插入數據時省略該列的值。反之,如果表的某一列被指定具有NOT NULL 屬性,那麼就不允許在沒有指定列缺省值的情況下插入省略該列值的數據行。在SQL Server 中,列的缺省屬性是NOT NULL。要設置缺省屬性為NULL 或NOT NULL,可以在Enterprise Manager 中修改數據庫屬性選項中的“ANSI null default”為真或假。也可以使用如下兩種語句來設定:

  • set ansi_null_dflt_on 或set ansi_null_dflt_off;
  • sp_dboption database_name, ‘ANSI null default’, true/false。
(2) IDENTITY
IDENTITY 屬性可以使表的列包含系統自動生成的數字。這種數字在表中可以惟一標識表的每一行,即表中的每一行數據在指定為IDENTITY 屬性的列上的數字均不相同。指定了IDENTITY 屬性的列稱為IDENTITY 列。當用IDENTITY 屬性定義一個列時,可以指定一個初始值和一個增量。插入數據到含有IDENTITY 列的表中時,初始值在插入第一行數據時使用,以後就由SQL Server 根據上一次使用的IDENTITY 值加上增量得到新的IDENTITY值。如果不指定初始值和增量值,則其缺省值均為1。
IDENTITY 屬性適用於INT、 SMALLINT、 TINYINT、 DECIMAL (P,0)、N::::::?
UMERIC (P,0)數據類型的列。
注意:一個列不能同時具有NULL屬性和IDENTITY屬性,只能二者選其一。

7.1.2 用CREATE TABLE 命令創建表
用CREATE TABLE 命令創建表快捷、明了。其語法如下:
CREATE TABLE [database_name.[owner].| owner.] table_name
( { | column_name AS computed_column_expression |
} [,...n] )
[ON {filegroup | DEFAULT} ]
[TEXTIMAGE_ON {filegroup | DEFAULT} ]
::= { column_name data_type }
[ [ DEFAULT constant_expression ]
| [ IDENTITY [(seed, increment ) [NOT FOR REPLICATION] ] ] ]
[ ROWGUIDCOL ]
[ COLLATE < collation_name > ]
[ ] [ ...n]
各參數說明如下:

  • database_name
    指定新建的表屬於哪個數據庫。如果不指定數據庫名,就會將所創建的表存放在當前數據庫中。
  • owner
    指定數據庫所有者的用戶名。
  • table_name
    指定新建的表的名稱,最長不超過128 個字符。
    對數據庫來說,database_name.owner_name.object_name 應該是惟一的。
  • column_name
    指定新建的表的名稱,最長不超過128 個字符。
    對數據庫來說,database_name.owner_name.object_name 應該是惟一的。
  • computed_column_expression
    指定計算列(Computed column)的列值的表達式。表達式可以是列名、常量、變量、函數等或它們的組合。所謂計算列是一個虛擬的列,它的值並不實際存儲在表中,而是通過對同一個表中其它列進行某種計算而得到的結果。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved