国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

創(chuàng)建數(shù)據(jù)庫表

2024-07-21 02:13:03
字體:
供稿:網(wǎng)友
  在使用數(shù)據(jù)庫的過程中,接觸最多的就是數(shù)據(jù)庫中的表。表是數(shù)據(jù)存儲的地方。是數(shù)據(jù)庫中最重要的部分,管理好表也就管理好了數(shù)據(jù)庫。本章將介紹如何創(chuàng)建和管理數(shù)據(jù)庫表。

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

7.1.1 列的屬性
    表的列名在同一個表中具有惟一性,同一列的數(shù)據(jù)屬于同一種數(shù)據(jù)類型。除了用列名和數(shù)據(jù)類型來指定列的屬性外,還可以定義其它屬性:null 或not null 屬性和identity 屬性。

(1) null 或not null
如果表的某一列被指定具有null 屬性,那么就允許在插入數(shù)據(jù)時省略該列的值。反之,如果表的某一列被指定具有not null 屬性,那么就不允許在沒有指定列缺省值的情況下插入省略該列值的數(shù)據(jù)行。在sql server 中,列的缺省屬性是not null。要設(shè)置缺省屬性為null 或not null,可以在enterprise manager 中修改數(shù)據(jù)庫屬性選項中的“ansi null default”為真或假。也可以使用如下兩種語句來設(shè)定:

  • set ansi_null_dflt_on 或set ansi_null_dflt_off;
  • sp_dboption database_name, ‘a(chǎn)nsi null default’, true/false。

(2) identity
    identity 屬性可以使表的列包含系統(tǒng)自動生成的數(shù)字。這種數(shù)字在表中可以惟一標(biāo)識表的每一行,即表中的每一行數(shù)據(jù)在指定為identity 屬性的列上的數(shù)字均不相同。指定了identity 屬性的列稱為identity 列。當(dāng)用identity 屬性定義一個列時,可以指定一個初始值和一個增量。插入數(shù)據(jù)到含有identity 列的表中時,初始值在插入第一行數(shù)據(jù)時使用,以后就由sql server 根據(jù)上一次使用的identity 值加上增量得到新的identity值。如果不指定初始值和增量值,則其缺省值均為1。
    identity 屬性適用于int、 smallint、 tinyint、 decimal (p,0)、n::::::?
umeric (p,0)數(shù)據(jù)類型的列。
注意:一個列不能同時具有null屬性和identity屬性,只能二者選其一。

7.1.2 用create table 命令創(chuàng)建表
用create table 命令創(chuàng)建表快捷、明了。其語法如下:
create table [database_name.[owner].| owner.] table_name
( {<column_definition> | column_name as computed_column_expression |
<table_constraint>} [,...n] )
[on {filegroup | default} ]
[textimage_on {filegroup | default} ]
<column_definition> ::= { column_name data_type }
[ [ default constant_expression ]
| [ identity [(seed, increment ) [not for replication] ] ] ]
[ rowguidcol ]
[ collate < collation_name > ]
[ <column_constraint>] [ ...n]
各參數(shù)說明如下:

  • database_name
    指定新建的表屬于哪個數(shù)據(jù)庫。如果不指定數(shù)據(jù)庫名,就會將所創(chuàng)建的表存放在當(dāng)前數(shù)據(jù)庫中。
  • owner
    指定數(shù)據(jù)庫所有者的用戶名。
  • table_name
    指定新建的表的名稱,最長不超過128 個字符。
    對數(shù)據(jù)庫來說,database_name.owner_name.object_name 應(yīng)該是惟一的。
  • column_name
    指定新建的表的名稱,最長不超過128 個字符。
    對數(shù)據(jù)庫來說,database_name.owner_name.object_name 應(yīng)該是惟一的。
  • computed_column_expression
    指定計算列(computed column)的列值的表達(dá)式。表達(dá)式可以是列名、常量、變量、函數(shù)等或它們的組合。所謂計算列是一個虛擬的列,它的值并不實際存儲在表中,而是通過對同一個表中其它列進(jìn)行某種計算而得到的結(jié)果。例如:員工信息表中存儲了員工的雇傭日期,那么員工的工齡就可以通過表達(dá)式“雇傭日期當(dāng)前日期”計算出來,則工齡列就可作為一個計算列。
  • on {filegroup | default}
    指定存儲表的文件組名。如果使用了default 選項或省略了on 子句,則新建的表會存儲在默認(rèn)文件組中。
  • textimage_on
    指定text、ntext、 和image 列的數(shù)據(jù)存儲的文件組。如果無此子句,這些類型的數(shù)據(jù)就和表一起存儲在相同的文件組中。
  • data_type
    指定列的數(shù)據(jù)類型
  • default
    指定列的缺省值。當(dāng)輸入數(shù)據(jù)時,如果用戶沒有指定列值,系統(tǒng)就會用設(shè)定的缺省值作為列值。如果該列沒有指定缺省值但允許null 值,則null 值就會作為缺省值。其中缺省值可以為常數(shù)、null 值、sql server 內(nèi)部函數(shù)(如getdate()函數(shù))、niladic 函數(shù)等。
  • constant_expression
    列缺省值的常量表達(dá)式,可以為一個常量或系統(tǒng)函數(shù)或null。
  • identity
    指定列為identity 列。一個表中只能有一個identity 列。
  • seed
    指定identity 列的初始值。
  • increment
    指定identity 列的增量。
  • not for replication
    指定列的identity 屬性在把從其它表中復(fù)制的數(shù)據(jù)插入到表中時不發(fā)生作用,即不足的生成列值,使得復(fù)制的數(shù)據(jù)行保持原來的列值。
  • rowguidcol
    指定列為全球惟一鑒別行號列(rowguidcol是row global unique identifier column 的縮寫)。此列的數(shù)據(jù)類型必須為uniqueidentifier 類型。一個表中數(shù)據(jù)類型為uniqueidentifier 的列中只能有一個列被定義為rowguidcol 列。rowguidcol 屬性不會使列值具有惟一性,也不會自動生成一個新的數(shù)值給插入的行。需要在insert 語句中使用newid()函數(shù)或指定列的缺省值為newid()函數(shù)。
  • collate指明表使用的校驗方式。
  • column_constraint 和table_constraint
    指定列約束和表約束,我們將在下一節(jié)中介紹其具體定義。
    其余參數(shù)將在后面的章節(jié)中逐步講述。

注意:一個表至少有一列,但最多不超過1024個列。 每個數(shù)據(jù)庫中最多可以創(chuàng)建200萬個表。 表在存儲時使用的計量單位是盤區(qū)(extent)。一個盤區(qū)分為8個數(shù)據(jù)頁,每頁8kb字節(jié)。在創(chuàng)建新表時,會分配給它一個初始只為一個盤區(qū)的存儲空間。當(dāng)增加表的存儲空間時,以盤區(qū)為單位增加。





7.1.3 用enterprise manager 創(chuàng)建表
在enterprise manager 中創(chuàng)建表按以下步驟進(jìn)行:
(1) 在要創(chuàng)建表的數(shù)據(jù)庫中選擇“tables” 對象后,單擊右鍵,從快捷菜單中選擇“new table” 選項,或在工具欄中選擇圖標(biāo),即會出現(xiàn)如圖7-1 所示的定義列對話框。在此可以是設(shè)定表的列名、數(shù)據(jù)類型、精度、缺省值等屬性。



(2) 單擊圖7-1 工具欄中的保存按鈕,即出現(xiàn)如圖7-2 所示的輸入新建表名的對話框。

(3) 輸入表名后單擊“ok”按鈕,即會將表保存到數(shù)據(jù)庫中。然后圖7-1 中工具欄右邊原來不可用的幾個按鈕將變?yōu)榭捎茫梢允褂盟鼈儊碓O(shè)置表的其它信息,在以后的章節(jié)中將講到它們的使用。

7.1.4 創(chuàng)建臨時表
可以用create table 命令創(chuàng)建表局部的或全局作用的臨時表。其語法與創(chuàng)建一般表基本相同,只是在局部臨時表的表名前要使用符號“#”,全局臨時表的表名前要使用符號“##”以便與一般的表相區(qū)別。由于sql server 將臨時表的表名存儲到tempdb數(shù)據(jù)庫中sysobjects 表中時,會自動在其后面添加一個系統(tǒng)產(chǎn)生的12 位的數(shù)字后綴,因此臨時表的表名最長只能指定116 個字符,以不超過128 個字符的命名限制。
例7-2 創(chuàng)建一個局部臨時表test123
create table #test123 (
test_id smallint ,
test_name char(10) ,
) on [primary

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 葫芦岛市| 扎赉特旗| 四平市| 清徐县| 鹤壁市| 琼结县| 防城港市| 宿州市| 嘉兴市| 图们市| 高尔夫| 宜都市| 大兴区| 通化县| 灵山县| 兴山县| 阿坝| 濉溪县| 紫阳县| 义马市| 松阳县| 三原县| 临猗县| 江孜县| 德化县| 南皮县| 九龙城区| 驻马店市| 阳城县| 邢台县| 霍山县| 连城县| 章丘市| 墨玉县| 潮州市| 珠海市| 松滋市| 利辛县| 平湖市| 麻江县| 共和县|