1數(shù)據(jù)庫的創(chuàng)建2表的創(chuàng)建_第1頁
1數(shù)據(jù)庫的創(chuàng)建2表的創(chuàng)建_第2頁
1數(shù)據(jù)庫的創(chuàng)建2表的創(chuàng)建_第3頁
1數(shù)據(jù)庫的創(chuàng)建2表的創(chuàng)建_第4頁
1數(shù)據(jù)庫的創(chuàng)建2表的創(chuàng)建_第5頁
已閱讀5頁,還剩164頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、2.1數(shù)據(jù)庫的創(chuàng)建 2.2 表的創(chuàng)建,第二章創(chuàng)建數(shù)據(jù)庫和表,一)邏輯數(shù)據(jù)庫 以用戶的觀點看待數(shù)據(jù)庫,數(shù)據(jù)庫是一個存放數(shù)據(jù)的表和支持這些數(shù)據(jù)存儲、檢索以及安全性和完整性的邏輯成分所組成的集合。這些邏輯成分稱為數(shù)據(jù)庫,一、數(shù)據(jù)庫的類別,2.1數(shù)據(jù)庫的創(chuàng)建,對象,如表、視圖、索引和約束等都是數(shù)據(jù)庫的邏輯成分,即數(shù)據(jù)庫對象。每一個數(shù)據(jù)庫對象都有一個唯一的完全限定名,包括服務(wù)器名、數(shù)據(jù)庫名、所有者名和對象名,表示為:server.database.owner.object,其中當(dāng)服務(wù)器名、數(shù)據(jù)庫名和所有者名取當(dāng)前工作環(huán)境的默認值時,均可省略。當(dāng)前工作環(huán)境下服務(wù)器默認為本地服務(wù)器,數(shù)據(jù)庫默認為當(dāng)前數(shù)據(jù)庫,

2、所有者默認為在數(shù)據(jù)庫中與當(dāng)前連接會話的登錄標(biāo)識相關(guān)聯(lián)的數(shù)據(jù)庫用戶,名或者數(shù)據(jù)庫所有者(dbo)。 (二)物理數(shù)據(jù)庫 從數(shù)據(jù)庫管理員的角度看待數(shù)據(jù)庫,數(shù)據(jù)庫由一系列文件及文件組架構(gòu)而成,它們以“頁”為基本存儲單位,以“塊”為分配存儲空間的基本單元,頁的大小為,8KB,8個相鄰的頁(64KB)為一個“塊”。創(chuàng)建數(shù)據(jù)庫時可以根據(jù)數(shù)據(jù)的存儲特點,規(guī)劃和分配數(shù)據(jù)庫文件的磁盤容量。 (三)系統(tǒng)數(shù)據(jù)庫 SQL Server有4個系統(tǒng)數(shù)據(jù)庫,這些數(shù)據(jù)庫在服務(wù)器建立時就已經(jīng)由系統(tǒng)創(chuàng)建,了,它們記錄了服務(wù)器中所有的系統(tǒng)信息,是SQL Server管理系統(tǒng)的依據(jù)。這4個系統(tǒng)數(shù)據(jù)庫是: 、master記錄SQL Se

3、rver的注冊信息、配置信息、數(shù)據(jù)庫的存儲位置和初始化信息等。 、model 用戶新建數(shù)據(jù)庫,時的模板。 、msdb記錄SQL Server Agent 進行復(fù)制、作業(yè)調(diào)度和報警等活動。 、tempdb記錄所有臨時表和臨時存儲過程等。 (四)用戶數(shù)據(jù)庫,用戶數(shù)據(jù)庫是由用戶自己創(chuàng)建的數(shù)據(jù)庫。在信息管理系統(tǒng)中,數(shù)據(jù)庫作為表的容器,一個數(shù)據(jù)庫包含許多數(shù)據(jù)表,用戶將基本數(shù)據(jù)用表的形式組織和存儲在數(shù)據(jù)庫中,所以用戶先要創(chuàng)建一個數(shù)據(jù)庫,才能進一步創(chuàng)建,表。創(chuàng)建數(shù)據(jù)庫前,用戶需要事先規(guī)劃數(shù)據(jù)庫框架,確定主文件、輔文件、日志文件和各文件組的大小和存放位置,一)主數(shù)據(jù)文件 簡稱主文件,是數(shù)據(jù)庫的關(guān)鍵文件,是所有

4、數(shù)據(jù)文件的起點,包含指向其他數(shù)據(jù)庫文件的指針。每個數(shù)據(jù)庫都必須有且僅有一個主文件,它的默認擴展名為.mdf,二、數(shù)據(jù)庫文件的類別,二)輔數(shù)據(jù)文件 簡稱輔文件,輔助主文件存儲數(shù)據(jù)的文件,包含不在主文件內(nèi)的其他數(shù)據(jù)。輔文件是可選的,一個數(shù)據(jù)庫可以有一個或多個輔文件,也可以沒有輔文件,它的擴展名為.ndf,三)日志文件 記錄存放恢復(fù)數(shù)據(jù)庫時所需要的所有日志信息,一個數(shù)據(jù)庫至少有一個日志文件,也可以有多個,它的擴展名為.ldf。 創(chuàng)建一個數(shù)據(jù)庫至少要包含一個主數(shù)據(jù)文件和一個日志文,件。為了更好地管理數(shù)據(jù)文件,SQL Server還提供了文件組概念。文件組分兩類即主文件組(PRIMARY)和用戶定義文件

5、組。主文件組存放主數(shù)據(jù)文件和任何沒有明確指定文件組的其他文件;用戶定義文件組是在創(chuàng)建,或修改數(shù)據(jù)庫時用 FILEGROUP關(guān)鍵字定義的文件組,存放輔數(shù)據(jù)文件。文件組具有以下特性: 、一個文件只能屬于一個文件組。 、只有數(shù)據(jù)文件才能歸屬于某個文件組,日志文件不屬于任,何文件組。 、每個數(shù)據(jù)庫中都有一個默認的文件組在運行,可以指定默認文件組,沒有指定則默認為主文件組。 、若沒有用戶定義文件組,則所有數(shù)據(jù)文件都存放在主文件組中,一)命令 用命令方式創(chuàng)建數(shù)據(jù)庫,即用T-SQL語句中的CREATE DATABASE命令來創(chuàng)建數(shù)據(jù)庫,創(chuàng)建數(shù)據(jù)庫必須要確定數(shù)據(jù)庫名、數(shù)據(jù)庫大小、增長方式和存,三、命令方式創(chuàng)建

6、數(shù)據(jù)庫,儲數(shù)據(jù)庫的文件。能夠創(chuàng)建數(shù)據(jù)庫的用戶必須是系統(tǒng)管理員,或是被授權(quán)使用CREATEDATABASE語句的用戶。 CREATE DATABASE語句的基本格式為: CREATE DATABASE,database_name /*指定數(shù)據(jù)庫名*/ ON子句 /*指定數(shù)據(jù)庫中數(shù)據(jù)文件和文件組屬性*/ LOG ON子句 /*指定日志文件屬性*/ 本書中語句書寫格式說明如下,大寫字母表示關(guān)鍵字,小寫字母表示用戶給定的名稱或數(shù)值。 表示可選項,表示必選項,| 表示多項選一,n 表示可有多個同類項,/* */表示注釋信息。 在上面CREATE DATABASE命令中,database_name 是所創(chuàng)

7、建,的數(shù)據(jù)庫邏輯名稱,其命名規(guī)則與一般高級語言的標(biāo)識符相同,最大長度為128個字符。ON子句和LOG ON子句說明如下: ON子句:用來指定數(shù)據(jù)庫的數(shù)據(jù)文件和文件組的屬性,格式為: ON,PRIMARY ,n,n 其中filespec為文件描述,filegroup為文件組描述,分別為一組屬性描述: := ( NAME=邏輯文件名,FILENAME=操作系統(tǒng)文件名 ,SIZE=size ,MAXSIZE=max_size | UNLIMTED ,FILEGORWTH= growth_increament) :=FILEGROUP,filegroup_name ,n 其中符號“:=”表示“等價于”

8、。 其他參數(shù)說明如下: NAME 關(guān)鍵字指定數(shù)據(jù)文件的邏輯文件名即用戶可使用的文件名,F(xiàn)ILENAME關(guān)鍵字指定數(shù)據(jù),庫的物理文件名,即在操作系統(tǒng)中包括完整路徑的文件標(biāo)識符;SIZE關(guān)鍵字指定數(shù)據(jù)文件的初始大小,單位為MB; MAXSIZE關(guān)鍵字指定數(shù)據(jù)文件的最大大小;FILEGROWTH關(guān)鍵字指定數(shù)據(jù)文件增長因子,可以是,以MB為單位,按其設(shè)定的數(shù)值進行增長,也可以是相對于當(dāng)前數(shù)據(jù)庫文件大小,每次增長時按其設(shè)定的百分比進行擴展;UNLIMITED關(guān)鍵字表示無限制增長到磁盤滿為止。 LOG ON子句用來指定數(shù)據(jù)庫,日志文件的屬性,格式為: LON ON ,n (二)示例 例2-1創(chuàng)建traff

9、ic1數(shù)據(jù)庫,所有選項均為系統(tǒng)默認值。 CREATE DATABASE traffic1/*創(chuàng)建名為traffic1的數(shù)據(jù)庫*,這是創(chuàng)建數(shù)據(jù)庫最簡單的情況,數(shù)據(jù)庫只包含一個主數(shù)據(jù)文件和一個日志文件,它們均采用系統(tǒng)默認的存儲路徑和文件名,其大小分別為model數(shù)據(jù)庫中主數(shù)據(jù)文件和日志文件的大小。 例2-2創(chuàng)建traffic2 數(shù)據(jù)庫,該數(shù)據(jù)庫有一個主數(shù)據(jù)文件組和一個日志文件,并指定其數(shù)據(jù)文件和日志文件屬性。 CREATE DATABASE traffic2 ON PRIMARY ( NAME=traffic_data,FILENAME=c:/mysql/data/traffic_data.mdf

10、 SIZE=10, MAXSIZE=50, FILEGROWTH=5) LOG ON ( NAME=traffic_log,FILENAME=C:/mysal/data/traffic_log.ldf, SIZE=2, MAXSIZE=10, FILEGROWTH=2) GO,GO為批處理命令,指示系統(tǒng)執(zhí)行自上一次GO后所有的語句,如果前面沒有GO,則從開始處執(zhí)行所有語句,一)查看數(shù)據(jù)庫信息 在管理和使用數(shù)據(jù)庫之前,需要先選擇數(shù)據(jù)庫并打開它,下面語句打開指定的數(shù)據(jù)庫: USE database_name,四、命令方式管理數(shù)據(jù)庫框架,如果不知道當(dāng)前服務(wù)器上有哪些數(shù)據(jù)庫,可以用sp_databas

11、e系統(tǒng)存儲過程查看當(dāng)前服務(wù)器上的所有數(shù)據(jù)庫,執(zhí)行語句 EXECsp_database 即可,打開數(shù)據(jù)庫后,就可以使用下面語句: sp_helpdb sp_helpfile 調(diào)用系統(tǒng)存儲過程來查看數(shù)據(jù)庫、文件及文件組的信息,注:以sp_為前綴的標(biāo)識表示系統(tǒng)存儲過程,可以直接運行,也可以用EXEC命令調(diào)用。 (二)修改數(shù)據(jù)庫選項 使用ALTER DATABASE 命令可以對數(shù)據(jù)庫的選項進行修改,ALTER DATABASE命令,的基本格式為: ALTER DATABASE database_name ADD FILE,n TO FILEGROUP filegroup_name /*在文件組中增加數(shù)

12、據(jù)文件*, REMOVE FILE file_name/*刪除數(shù)據(jù)文件*/ | ADD LOG FILE ,n/*增加日志文件*/ | REMOVE FILE log_ file_name,*刪除日志文件*/ | ADD FILEGROUP filegroup_name /*增加文件組*/ | REMOVE FILEGROUP filegroup_name,*刪除文件組*/ | MODIFY NAME = new_dbname/*更改數(shù)據(jù)庫名*/ | MODIFY FILEGROUP filegroup_nam NAME=new_filegroup_name /*更改文件組名*,例2-3給例2

13、-2中創(chuàng)建traffic2數(shù)據(jù)庫增加和刪除文件與文件組。 (三)修改數(shù)據(jù)庫選項 ALTER DATABASE traffic2/*在主文件組PRIMARY中增加一個數(shù)據(jù)文件*,ADD FILE ( NAME=addfile1_data, FILENAME=c:/mysql/data/addfile1_data.ndf, SIZE=10, MAXSIZE=30,FILEGROWTH=10%) GO ALTER DATABASE traffic2/*增加一個日志文件*/ ADD LOG FILE( NAME=addfile1_log, FILENAME=c:/mysql/data,addfile1

14、_log.ldf, SIZE=10, MAXSIZE=30,FILEGROWTH=1MB) GO ALTER DATABASE traffic2/*增加一個文件組,并,在文件組中增加一個文件*/ ADD FILEGROUP trafficgroup ( NAME=addfile2_data, FILENAME=c:/mysql/data/addfile2_data.ndf, SIZE=10, MAXSIZE=30,FILEGROWTH=10%) GO ALTER DATABASE traffic/*刪除文件addfile2_data*/ REMOVE FILE addfile2_data GO

15、 ALTER DATABASE traffic,*刪除文件組trafficgroup*/ REMOVE FILEGROUP trafficgroup/*注意必須先刪除文件組中的文件,才能刪除文件組*/ GO/*注意主文件組不能刪除*,ALTER DATABASE traffic/*刪除日志文件*/ REMOVE FILE addfile1_log.ldf /*注意主日志文件不能刪除*/GO 例2-4將traffic1數(shù)據(jù),庫改名為mytemp1。注意此時應(yīng)保證該數(shù)據(jù)庫不被其他任何用戶使用。 ATLER DATABASE traffic1 MODIFY NAME=mytemp1,該操作也可通過調(diào)

16、用系統(tǒng)存儲過程實現(xiàn)。 例2-5使用系統(tǒng)存儲過程將數(shù)據(jù)庫traffic2改名為mytemp2。 sp_rename “ traffic2”,”mytemp2,*注意主日志文件不能刪除*/GO 例2-4將traffic1數(shù)據(jù)庫改名為mytemp1。注意此時應(yīng)保證該數(shù)據(jù)庫不被其他任何用戶使用。 ATLER DATABASE traffic1,MODIFY NAME=mytemp1 GO 該操作也可通過調(diào)用系統(tǒng)存儲過程實現(xiàn)。 例2-5使用系統(tǒng)存儲過程將數(shù)據(jù)庫traffic2改名為mytemp2,sp_rename “ traffic2”,”mytemp2” (四)刪除數(shù)據(jù)庫使用DROP DATABAS

17、E語句可以刪除已創(chuàng)建的數(shù)據(jù)庫,DROP DATABASE 語句的語法格式為,DROP DATABASE database_name,n 其中database_name為要刪除的數(shù)據(jù)庫名,可一次刪除多個指定的數(shù)據(jù)庫,例2-6刪除mytemp1。 DROP DATABASE mytemp1 GO,第1步 單擊“開始 / 程序 / M icrosoft SQLServer / 企業(yè)管理器”,啟動SQLServer企業(yè)管理器。 第2步 展開M icrosoft SQL Servers、SQLServer組和已,五、界面方式創(chuàng)建數(shù)據(jù)庫,連接的SQL Server服務(wù)器(本 例中為DXY服務(wù)器),選擇 “

18、數(shù) 據(jù)庫”對象,單擊鼠標(biāo)右鍵,在 快捷菜單上選擇“新建數(shù)據(jù)庫” 如圖2-1,打開數(shù)據(jù)庫屬性框,第3步 數(shù)據(jù)庫屬性對話框有三個標(biāo) 簽卡即常規(guī)、數(shù)據(jù)文件和事務(wù)日 志。選擇“常規(guī)”標(biāo)簽卡,在名稱 文本框中輸入欲創(chuàng)建的數(shù)據(jù)庫名 “交通信息數(shù)據(jù)庫”,如圖2-2。此 時如果單擊“確定”按鈕,則數(shù)據(jù) 庫建立完畢,新創(chuàng)建的數(shù)據(jù)庫文,件框架采用系統(tǒng)默認值,僅包含 一個主數(shù)據(jù)文件和一個主日志文 件,存儲位置分別為 SQL Server 根目錄 data 數(shù)據(jù)庫名 _Data.mdf 和SQL Server根目 錄 data 數(shù)據(jù)庫名_Log.ldf。文 件屬性均為系統(tǒng)默認值,第4步 選擇“數(shù)據(jù)文件”標(biāo)簽,可重新設(shè)

19、定主數(shù)據(jù)文件的初始大小、最大值、增長方式和增長速度,如圖2-3。本例中將數(shù)據(jù)庫初始大小由默認值改為,限定數(shù)據(jù)庫最大由默認值2改為80,第5步單擊“位置”列下的“”按鈕,在所彈出的“查找數(shù)據(jù)庫文件”對話框中選擇或輸入文件路徑和文件名,如圖2-4。單擊“確定”按鈕,即可改變數(shù)據(jù)文件的存儲位置,第6步 選擇“事務(wù)日志”標(biāo)簽,可重新設(shè)定日志文件的初始大小、最大值、增長方式和增長速度,如圖 2-5。在此均采用默認設(shè)置,第7步單擊“位置”列下的“”按鈕,在所彈出的“查找數(shù)據(jù)庫文件”對話框中選擇或輸入文件路徑和文件名,如圖2-6。單擊“確定”按鈕,即可改變?nèi)罩疚募拇鎯ξ恢?第8步單擊“確定”按鈕,數(shù)據(jù)庫創(chuàng)

20、建 完畢。在企業(yè)管理器左邊窗口,可 看到新創(chuàng)建的數(shù)據(jù)庫“交通信息數(shù)據(jù) 庫”,選擇“交通信息數(shù)據(jù)庫”或展開 “交通信息數(shù)據(jù)庫”,可看到該數(shù)據(jù) 庫中系統(tǒng)預(yù)置的表、視圖存儲過 程、用戶、規(guī)則等對象,如圖2-7,一)改變數(shù)據(jù)文件、日志文件 的大小、增長方式 選擇“數(shù)據(jù)文件”標(biāo)簽卡,可 重新設(shè)定數(shù)據(jù)文件的初始大小、 最大值、增長方式和增長速度,六、界面方式修改數(shù)據(jù)庫,選擇“事務(wù)日志”文件,可重新設(shè) 定日志文件的初始大小、最大 值、增長方式和增長速度,如圖 2-10,二)增加或刪除數(shù)據(jù)文件、日 志文件 當(dāng)增加數(shù)據(jù)文件時,選擇“數(shù) 據(jù)文件”標(biāo)簽卡,在數(shù)據(jù)庫文件下 的空白行中,在“文件名”一欄中輸 入數(shù)據(jù)文件

21、名,并可設(shè)置文件的屬 性,如圖2-11。當(dāng)要刪,除某數(shù)據(jù)文件時,選擇要刪除的數(shù) 據(jù)文件所在行,單擊“刪除”按鈕。 當(dāng)增加日志文件時,選擇“事務(wù)日 志”標(biāo)簽卡,在日志文件下的空白 行中,在“文件名”一欄中輸入數(shù)據(jù) 文件名,并可設(shè)置文件的屬性,三)增加或刪除文件組 選擇“文件組”標(biāo)簽卡,在文 件組下空白行的“名稱”一欄中輸 入新文件組名“filegroup”,如 圖2-12。當(dāng)要刪除某文件組,選 擇要刪除的文件組所在行,單擊 “刪除”按鈕,四)在文件組中增加或刪除數(shù)據(jù) 文件 選擇“數(shù)據(jù)文件”標(biāo)簽卡,在數(shù) 據(jù)庫文件下的空白行中的“文件名” 一欄中輸入新數(shù)據(jù)文件名,設(shè)置數(shù) 據(jù)文件的初始大小,最大值、增

22、長方式和增長速度。然 在文件組中增加數(shù)據(jù)文件,選擇文件組名,如圖2-13,一、表結(jié)構(gòu)與數(shù)據(jù)類型,表由行和列組成,是我們?nèi)?常工作和生活中常見的數(shù)據(jù)表示 形式,如表2-1是一個駕駛員簡 況表,2.2表的創(chuàng)建,一)表的術(shù)語 、表名 在關(guān)系數(shù)據(jù)庫中,一個表表示 一個關(guān)系,表名即關(guān)系名。數(shù)據(jù)庫 中用多個表來存儲所有用戶數(shù)據(jù), 在理論上一個數(shù)據(jù)庫可多達20億個 表,每個表用表名來標(biāo),識。在同一個數(shù)據(jù)庫中表名必須 是唯一的,即不可有重名的表。 、表的設(shè)計結(jié)構(gòu) 表的設(shè)計結(jié)構(gòu)是指組成表的 各列的列名及數(shù)據(jù)類型,表示表 中包含哪些數(shù)據(jù)項及每個數(shù)據(jù)項 填寫什么樣的數(shù)據(jù),表的設(shè)計結(jié),構(gòu)也就是指表的第一行內(nèi)容的定 義

23、,故有時也稱為表頭。 、字段和字段名 表的每一列表示一個數(shù)據(jù) 項,稱為字段,每一列的列名稱 為字段名,所有字段名組成了表 頭。在同一表中字段名必須唯一,一個表最多可有1024列。 、記錄 表中除第一行為表頭外,其余 行均為數(shù)據(jù)行,每一行表示一條記 錄。表是記錄的有限集合,表的大 小受數(shù)據(jù)庫大小限制,關(guān)鍵字 能唯一標(biāo)識記錄的字段或字段 組合稱為關(guān)鍵字,通過關(guān)鍵字可以 區(qū)別不同的記錄。如上表中“駕照 號”就是關(guān)鍵字,通過“駕照號”可 以唯一確定一個駕駛員的記錄,主鍵 若表中有多個關(guān)鍵字,選定 其中一個作為主關(guān)鍵字,既主 鍵。當(dāng)表中只有一個關(guān)鍵字時, 該關(guān)鍵字就是主鍵。主鍵是表與 表之間建立關(guān)聯(lián)時的

24、依據(jù),默認值 列的默認值表示,當(dāng)向表中 錄入新數(shù)據(jù)時,該列若沒有錄入 值,則系統(tǒng)自動取默認值代替。 如“籍貫”列,可以設(shè)置默認為 “天津,二)系統(tǒng)數(shù)據(jù)類型,整數(shù)型 整數(shù)型的數(shù)據(jù)類型有5種, 它們分別是: bigint大整數(shù),范圍為 -263263-1,精度為19,占用8 個字節(jié)。 int整數(shù),范圍為-231,231-1,精度為10,占用4個字節(jié) samllint短整數(shù),范圍為 -215215-1,精度為5,占用 2個字節(jié)。 tinyint微整數(shù),范圍為0 255,精度為3,占用1個字節(jié) bit位型整數(shù),只能取0或1,占,用1個二進制位,是最小的數(shù)據(jù) 類型。 、字符型 字符型的數(shù)據(jù)類型有3種,它

25、們 分別是: char(n)定長字符,n為字 符個數(shù),或數(shù)據(jù)固定長度。沒有,n值時默認為1。每個字符占1字 節(jié),最大可存儲8KB。char數(shù)據(jù) 長度是固定的,不能改變,如果 數(shù)據(jù)實際長度小于固定長度,系 統(tǒng)將在多余位置補以空格;如果 實際長度超過固定長度,將自動 截斷超過的字符,字符型的數(shù)據(jù)類型有3種, 它們分別是: varchar(n)變長字符,n為 最大長度。varchar數(shù)據(jù)的長度 是可變的,它的長度就是實際數(shù) 據(jù)的長度。 text字符文本塊,當(dāng)要存儲,超過8KB的字符數(shù)據(jù),如較長的 備注或說明信息時,使用text文 本型的字符數(shù)據(jù)存儲。該類型可 以存儲最大長度為231-1字節(jié), 數(shù)據(jù)的

26、長度為實際字符個數(shù)。 、精確數(shù)值型宏對 它有兩種數(shù)據(jù)類型即,decimal和numeric。數(shù)值數(shù)據(jù) 通常由整數(shù)部分和小數(shù)部分組 成,格式為decimal (p ,(s) 和 numeric (p ,(s),其中p是精 度,表示數(shù)據(jù)的總位數(shù),s是小 數(shù)位數(shù),默認值為0。decimal和 numeric可表示數(shù)的范圍為-10的,38次方10的38次方-1,存儲長517字節(jié)之間。decimal和numeric非常相似,兩者的唯一區(qū)別在于decimal不能用于帶有IDENTITY關(guān)鍵字的字段。 、近似數(shù)值型 近似數(shù)值型也稱浮點型,有,兩種數(shù)據(jù)類型即real和float。它 們也由整數(shù)部分和小數(shù)部分組

27、 成,格式為real和float(n)。 real數(shù)據(jù)精度為7,存儲長度為4 字節(jié),表示數(shù)范圍-3.40E-38 3.40E+38。float數(shù)據(jù)精度由n指 定,當(dāng)n在124之間,等效于,real型數(shù)據(jù);當(dāng)n在2553之 間,精度為15,存儲長度為8字 節(jié);沒有n值時默認精度為15。 float數(shù)據(jù)表示數(shù)范圍為 -1.79E+3081.79E+308。 由于real和float在大于精度 的右邊數(shù)字位有舍入誤差,不能,精確地表示數(shù)據(jù),常用于處理取 值范圍大且對精確度要求不高數(shù) 值量,如統(tǒng)計值之類的數(shù)值量. 、貨幣型貨幣型數(shù)據(jù) 類型有兩種,它們分別是: money由8字節(jié)整數(shù)構(gòu)成, 前面4個字節(jié)

28、整數(shù)代表貨幣值的,整數(shù)部分,后面4個字節(jié)整數(shù)代 表貨幣值的小數(shù)據(jù)部分,取值范 圍為: -922 377 203 685 477.5808 922 337 203 685 477.5803,精 度為19,小數(shù)位數(shù)為4。 smallmoney由4字節(jié)整數(shù)構(gòu),成,前面2個字節(jié)整數(shù)代表貨幣 值的整數(shù)部分,后面2個字節(jié)整 數(shù)代表貨幣值的小數(shù)據(jù)部分,取 值范圍為-214 748.3648214 748.3648,精度為10,小數(shù)位 數(shù)為4。 在錄入貨幣數(shù)據(jù)時,必須在數(shù)值,前加上一貨幣記號(),數(shù)據(jù) 中間不能有逗號(,);若貨幣 值為負數(shù),需在符號后面加上 負號(-),如75.08、- 33.9067等。

29、、日期時間型有兩種,分別 是,smalldatetime占4個字節(jié), 數(shù)據(jù)范圍為1900年1月1日 2079年6月6日,可精確到分鐘。 datetime占8個字節(jié),數(shù)據(jù) 范圍為1753年1月1日9999年 12月13日,可精確到3/100毫 秒,錄入日期型數(shù)據(jù)的格式很多,常 用的格式有“SEP 2,2001 12:30:13.4”、“09/02/2001”、 “20010902”、“02 september 2001”、“09/02/2001 00:30:13.4PM”、“09.02.2001” 等,二進制型 二進制型數(shù)據(jù)類型使用十六 進制來表示數(shù)據(jù),有3種形式, 分別是: binary(n)

30、固定長度二進制 型,長度為n+4個字節(jié),n取值范圍為18000,默認為1。最大長,度為8KB。如數(shù)據(jù)0 x31AE、 0 xFF表示值31AE、FF,十六進 制數(shù)據(jù)兩位占一個字節(jié)。 varbinary(n)可變長度二進 制型,n的含義同上。 image存儲超過8KB的數(shù) 據(jù),如圖像數(shù)據(jù)、word文檔,Excel圖表等。 錄入二進制數(shù)據(jù)時,要在數(shù) 據(jù)前面加0 x。 、雙字節(jié)型 雙字節(jié)型數(shù)據(jù)類型有3種, 分別是nchar(n)、 nvarchar(n)和ntext。它們與,相應(yīng)的字符型數(shù)據(jù)類型區(qū)別只是 在于使用的字符集不同,字符型 數(shù)據(jù)類型使用ASCII字符集,雙 字節(jié)型數(shù)據(jù)類型使用“Unicod

31、e” 字符集既“統(tǒng)一字符編碼標(biāo)準”。 雙字節(jié)型數(shù)據(jù)類型主要用來存儲 雙字節(jié)字符,如漢字,時間戳型 時間戳型數(shù)據(jù)類型timestamp 是表示對記錄進行修改的先后次 序的值,若表中定義了一個字段 的數(shù)據(jù)類型為時間戳型,則以后 每當(dāng)對表加入新行或修改已有行 時,系統(tǒng)自動將一個計數(shù)器值加,到這個時間戳型數(shù)據(jù)上,即在原 來的時間戳值上增加一個增量, 所以記錄的時間戳值實際反映了 系統(tǒng)對該記錄的修改在時間上的 先后順序。一個表只能有一個 timestamp字段,timestamp類 型的值實際上是二進制數(shù)據(jù),長,度為8個字節(jié)。 其他數(shù)據(jù)類型 除上述數(shù)據(jù)類型外,系統(tǒng)還 提供了其他幾種數(shù)據(jù)類型,它們 分別是

32、: cursor游標(biāo)數(shù)據(jù)類型,用于 創(chuàng)建游標(biāo)變量或定義存儲過程的,輸出參數(shù)。 table結(jié)果集數(shù)據(jù)類型或稱表 數(shù)據(jù),用于存儲結(jié)果集供后續(xù) 處理。 sql_variant可以存儲各種數(shù) 據(jù)類型(除text、ntext、 image、timestampt和,sql_variant外)的值的數(shù)據(jù)類 型。 uniquedentifier唯一標(biāo)識符 類型。系統(tǒng)自動為這種類型的數(shù) 據(jù)產(chǎn)生唯一標(biāo)識值,它是一個16 字節(jié)長的二進制數(shù)據(jù)。 自定義數(shù)據(jù)類型,用戶可以在系統(tǒng)數(shù)據(jù)類型的 基礎(chǔ)上構(gòu)建自定義數(shù)據(jù)類型,以 滿足特定需要。創(chuàng)建自定義數(shù)據(jù) 類型時首先要考慮下面三個屬 性: 數(shù)據(jù)類型名稱 新數(shù)據(jù)類型所依據(jù)的系統(tǒng),

33、數(shù)據(jù)類型 是否為空 例如定義一個新的數(shù)據(jù)類型 jsy_id,該類型名為jsy_id,為 字符型char(6),非空屬性。 可用系統(tǒng)存儲過程sp_addtype 或在企業(yè)管理器中用“用戶自定,義數(shù)據(jù)類型”對象來創(chuàng)建自定義數(shù) 據(jù)類型,詳見實驗六。 創(chuàng)建自定義數(shù)據(jù)類型后,其使 用方法與系統(tǒng)數(shù)據(jù)類型相同,二、命令方式創(chuàng)建表,CREATE TABLE語句基本格 式 CREATE TABLE table_name (column_name datatype | IDENTITY | NULL | NOT NULL) 其中參數(shù)說明如下,table_name、column_name分 別為表名和列名 data

34、type為列的數(shù)據(jù)類型 IDENTITY指定列為標(biāo)識列 NULL、NOT NULL指定列是否 可為空值,2、示例 下面通過兩個實例來說明使 用CREATE TABLE語句創(chuàng)建數(shù) 據(jù)表。設(shè)數(shù)據(jù)庫traffic已創(chuàng)建完 成,在該庫創(chuàng)建若干數(shù)據(jù)表。 例2-7在數(shù)據(jù)庫traffic中建立駕駛員表jsy,USE traffic CREATE TABLE jsy ( 駕照號char(6) IDENTITY NOT NULL , 姓名 char(8) NOT NULL, 所學(xué)專業(yè) char(10) , 出生時間 smalldatetime,是否見習(xí) bit, 積分 numeric(5,1), 備注text

35、) GO 例2-8在數(shù)據(jù)庫traffic中建立行車單表cd。 USE traffic,CREATE TABLE cd ( 出車單號char(6) IDENTITY NOT NULL, 日期datetime, 目的地char(10) , 大約行程 smallint, 實際行程 smallint ) GO,一)查看表信息 可使用系統(tǒng)存儲過程查看表 的屬性,如使用系統(tǒng)存儲過程 sp_help、sp_spaceused和 sp_depends查看表的列、數(shù)據(jù) 量和關(guān)聯(lián)數(shù)據(jù)庫對象的情況,三、命令方式修改表結(jié)構(gòu),例2-9查看數(shù)據(jù)庫traffic中駕駛員表jsy的情況。 USE traffic GO sp_

36、help jsy/*查看數(shù)據(jù)庫 traffic中表jsy信息*/ GO,二)表的重命名 可使用系統(tǒng)存儲過程 sp_rename更新表名,如下例: 例2-10將數(shù)據(jù)庫traffic中駕駛員表jsy更名為jsy_new。 USE traffic GO,ssp_rename jsy jsy_new /* 把表jsy更名為jsy_new*/ GO (三)修改表的結(jié)構(gòu) 使用ALTER TABLE語句可 以修改表中的列及其屬性, ALTER TABLE語句的基本格式,為: ALTER TABLE table_name ALTER COLUMN column_name /*修改已有列的屬性*/ new_da

37、ta_type (precision,scale)NULL ,NOT NULL ADD ,n /*增加新列*/ | column_name AS computed_column_expressi on,n,*增加計算列*/ DROP COLUMN column ,n/*刪除列*/ 其中各子句說明如下: ALTER COLUMN子句用于說明 修改表中指定列的屬性,要修改 的列名由column_name給出,_data_type 為被修改列的新的數(shù)據(jù)類型。 ADD子句向表中增加新列或新計 算列。新列的定義方法與CREATE TABLE語句中定義列的方法相同 DROP子句可刪除現(xiàn)有的列,下面通過例子

38、說明ALTER TABLE語句的使用。 例2-11在表jsy中增加一個新列“籍貫”。 USE traffic GO ALTER TABLE jsy,ADD 籍貫 char(20), GO 例2-12在表jsy中刪除名為“是否見習(xí)”的列 USE traffic GO,ALTER TABLE jy DROP COLUMN 是否見習(xí) GO 注意:在刪除一個列以前,必須 先刪除與該列有關(guān)的所有索引和 約束,例2-13修改表jsy中已有的列的屬性,將“姓名”列的長度改為10,將“積分”列的數(shù)據(jù)類型改為tinyint。 USE traffic GO ALTER TABLE jsy,ALTER COLUMN

39、 姓名char(10) ALTER COLUMN 積分tinyint GO (四)刪除表 刪除表使用DROP TABLE 語句,其語法格式為: DROP TABLE table_name,例2-13修改表jsy中已有的列的屬性,將“姓名”列的長度改為10,將“積分”列的數(shù)據(jù)類型改為tinyint。 USE traffic GO ALTER TABLE jsy,ALTER COLUMN 姓名char(10) ALTER COLUMN 積分tinyint GO 例2-14刪除表jsy_new USE traffic GO DROP TABLE jsy_new,GO 表名jsy也可用traffic.dbo.jsy表 示。刪除一個表時,表的定義、 表中的記錄以及與該表相關(guān)的索 引、約束和觸發(fā)器等均被刪除, 注意不能刪除系統(tǒng)表和有外鍵約 束所參照的表,通過企業(yè)管理器可以用界面 方式在數(shù)據(jù)庫中創(chuàng)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論