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

下載本文檔

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

文檔簡介

關(guān)系數(shù)據(jù)庫語言提供關(guān)系數(shù)據(jù)庫的數(shù)據(jù)定義、查詢、更新和控制等功能,是用戶和數(shù)據(jù)庫管理員建立、使用數(shù)據(jù)庫的主要工具?;陉P(guān)系代數(shù)的語言是用對關(guān)系(表)的運算來表達查詢的語言,它的運算基于關(guān)系代數(shù),包括一般的集合運算和特殊的關(guān)系運算——投影、選擇、連接等。結(jié)構(gòu)化查詢語言SQL主要是基于關(guān)系代數(shù)的,還有部分則是其他的。第7章關(guān)系數(shù)據(jù)語言SQL

從字面看SQL只是一個查詢語言,而實際上SQL作為一種標(biāo)準(zhǔn)數(shù)據(jù)庫語言,從對數(shù)據(jù)庫的隨機查詢到數(shù)據(jù)庫的管理和程序設(shè)計,SQL幾乎無所不能,功能十分豐富;而且SQL是一種陳述性的語言,語言簡潔易學(xué),書寫非常簡單,使用方便。SQL既可以作為交互式語言獨立使用,可以作為子語言嵌入宿主語言中使用,增強應(yīng)用程序的處理能力。第7章關(guān)系數(shù)據(jù)語言SQLHome第7章關(guān)系數(shù)據(jù)庫語言SQL7.3SQL語言組成7.4SQL的數(shù)據(jù)定義7.5數(shù)據(jù)庫的創(chuàng)建Home7.1SQL數(shù)據(jù)庫的體系結(jié)構(gòu)7.2

SQL語法約定7.1SQL數(shù)據(jù)庫的體系結(jié)構(gòu)7.1SQL數(shù)據(jù)庫的體系結(jié)構(gòu)SQL支持?jǐn)?shù)據(jù)庫的三級模式結(jié)構(gòu),視圖是外模式,基本表是模式,存儲文件是內(nèi)模式。在SQL中一個關(guān)系就對應(yīng)一個表。視圖是由若干個基本表或其他視圖構(gòu)成的表的定義。在數(shù)據(jù)庫中只存放視圖的定義,不存放視圖對應(yīng)的數(shù)據(jù)。7.2SQL語法約定1、標(biāo)識符數(shù)據(jù)庫對象的名稱即為其標(biāo)識符,服務(wù)器,數(shù)據(jù)庫和數(shù)據(jù)庫對象都可以有標(biāo)識符。對象標(biāo)識符是在定義對象時創(chuàng)建的。2、標(biāo)識符的類型SQLServer支持兩類標(biāo)識符:常規(guī)標(biāo)識符和分隔標(biāo)識符,分隔標(biāo)識符包含在雙引號(“”)或者方括號([])內(nèi)。常規(guī)標(biāo)識符必須遵循下列規(guī)則:(1)第一個字符必須是下列字符之一。Unicode標(biāo)準(zhǔn)3.2所定義的字母。Unicode中定義的字母包括拉丁字符a~z和A~Z,以及來自其他語言的字母字符。下劃線(-)、at符號(@)或數(shù)字符號(#)(2)其他字符可以包括:Unicode標(biāo)準(zhǔn)3.2所定義的字母,十進制數(shù)字,at符號(@),美元符號($),數(shù)字符號(#)或下劃線(-)注意:標(biāo)識符一定不能是SQL的保留字,不允許嵌入空格和其他特殊字符.7.3SQL語言組成7.3.1關(guān)系與表7.3.2SQL的數(shù)據(jù)類型7.3.3SQL的語句類型Home7.3.1關(guān)系與表表(或稱關(guān)系)具有下列特征:一個表中有一個或多個命名列。各列無從左到右的順序。一個表中可有零個或多個行行的順序是無關(guān)緊要的。一個表中的每一行都是唯一的。任何行和列的交點都有一個唯一的值。同一列中的所有值都必須取自同一值域。Home7.3.1關(guān)系與表教學(xué)管理數(shù)據(jù)庫Home每一個表都有一個稱為主關(guān)鍵字(PrimaryKey)的列的子集,它的值可以唯一確定每一行。表——關(guān)系,行——元組、記錄,列——屬性、字段。

1.?dāng)?shù)值型INTEGER簡寫為INT,占4字節(jié)固定長度內(nèi)存.。

SMALLINT占2字節(jié)固定長度.TINYINT占1字節(jié),可存儲0~255范圍內(nèi)的任意無符號整數(shù)

BIGINT占8字節(jié)固定長度.

FLOAT(p)REAL

Home7.3.2SQL的數(shù)據(jù)類型

2.字符串型

CHAR(n)按n個字節(jié)的固定長度存放,小于n,尾部填空格

x1CHAR(30)VARCHAR(n)定義可變長字符串。

3.位串型

BIT(n)只能存放0和1和null,一般用于邏輯判斷

Home7.3.2SQL的數(shù)據(jù)類型4.時間型

DATETIME定義日期。5.布爾型

BOOLEAN定義布爾數(shù),其值可以是:TRUE(真)、FALSE(假)、UNKNOWN(未知)。Home7.3.2SQL的數(shù)據(jù)類型用戶定義數(shù)據(jù)類型是一個對象類型,是由用戶按照一定的規(guī)則用預(yù)定義數(shù)據(jù)類型組合定義的自己專用的數(shù)據(jù)類型。許多SQL產(chǎn)品還擴充了其他一些數(shù)據(jù)類型,如TEXT(文本)、MONEY(貨幣)、GRAPHIC(圖形)、IMAGE(圖像)、GENERAL(通用)、MEMO(備注)等。Home7.3.2SQL的數(shù)據(jù)類型(1)查詢語言(QL)

查詢語言用來對已存在的數(shù)據(jù)庫中的數(shù)據(jù)按照指定的組合、條件表達式或排序進行檢索。它的基本結(jié)構(gòu)是由SELECT子句、FROM子句、WHERE子句組成的查詢塊。(2)數(shù)據(jù)操縱語言(DML)

DML的命令用來改變數(shù)據(jù)庫中的數(shù)據(jù),它有3個基本語句:INSERT(插入)、UPDATE(修改)、DELETE(刪除)。7.3.3SQL的語句類型Home(3)數(shù)據(jù)定義語言(DDL)

DDL用來創(chuàng)建數(shù)據(jù)庫中的各種對象,包括數(shù)據(jù)庫模式、表、視圖、索引、存儲過程等,它的基本語句有:CREATESCHEMA、CREATETABLE、CREATEVIEW、CREATEINDEX等。(4)數(shù)據(jù)控制語言(DCL)

DCL用來授予或回收訪問數(shù)據(jù)庫的某種特權(quán),控制數(shù)據(jù)操縱事務(wù)的發(fā)生時間及效果、對數(shù)據(jù)庫進行監(jiān)視等。數(shù)據(jù)控制基本語句有:GRANT、REVOKE、COMMIT等。Home7.3.3SQL的語句類型7.4SQL的數(shù)據(jù)定義Home7.4.1表的建立和刪除7.4.2表的擴充與修改7.4.1表的建立和刪除1.表的建立

CREATETABLE

<表名>

(<列定義>…[<完整性約束>…])

<列定義>給出列的名稱、數(shù)據(jù)類型、缺省值。每一個列的數(shù)據(jù)類型可以是預(yù)定義數(shù)據(jù)類型,也可以是用戶定義數(shù)據(jù)類型。缺省值用默認(rèn)子句表達:DEFAULT<缺省值>。<完整性約束>可以是對表的約束或?qū)α械募s束,以保證數(shù)據(jù)的完整性。Home完整性約束可用以下語句表達。(1)主關(guān)鍵字子句:PRIMARYKEY(<列名>)(2)外來關(guān)鍵字子句:FOREIGNKEY(<列名>)REFERENCES<表名>(<列名>)7.4.1表的建立和刪除例:對于關(guān)系模式班級(班號,班名,人數(shù))可以定義如下:

CREATETABLE班級(班號char(10),

班名char(20),人數(shù)int)7.4.1表的建立和刪除該表沒有定義主鍵

CREATETABLE班級(班號char(10),notnull

班名char(20),人數(shù)int)修改NOTNULL代表該列不能為空

CREATETABLE班級(班號char(10)NOTNULL,班名char(20)notnull,人數(shù)int

,

PRIMARYKEY(班號))凡帶有NOTNULL的列,不允許出現(xiàn)空值;未帶NOTNULL的列,可以出現(xiàn)空值??罩礜ULL表示“不知道”。當(dāng)首次用CREATETABLE定義一個新表后,只是建立了一個空表。定義主鍵例2:student(sno,sname,age,sex,班號)可以定義如下:

CREATETABLESTUDENTS(SNOchar(20)NOTNULL,SNAMECHAR(8)NOTNULL,AGEtinyint,SEXCHAR(2),PRIMARYKEY(SNO),

班號char(10)FOREIGNKEY(班號)REFERENCES

班級(班號)Home7.4.1表的建立和刪除定義外鍵Home7.4.1表的建立和刪除2.表的刪除

DROPTABLE<表名>例

刪除student表。

DROPTABLEstudent7.4.2表的擴充和修改1.在現(xiàn)存表中增加新列

ALTERTABLE<表名>

ADD[COLUMN](<列名><數(shù)據(jù)類型>[NULL|NOTNULL],…)

在student表中增加住址列。

ALTERTABLEstudentADD(DRCHAR(50))Home2.刪除已存在的某個列

ALTERTABLE<表名>

DROPCOLUMN

<列名>例

把STUDENTS表中的age列刪除

ALTERTABLESTUDENTSDROPcolumnageHome7.4.2表的擴充和修改3.補充定義主關(guān)鍵字

ALTERTABLE<表名>

ADDPRIMARYKEY(<列名表>)

補充定義student表的主關(guān)鍵字。

ALTERTABLEstudentADDPRIMARYKEY(SNO,SNAME);Home7.4.2表的擴充和修改4.刪除主關(guān)鍵字

ALTERTABLE<表名>DROPconstraint主鍵名5.補充定義外來關(guān)鍵字

ALTERTABLE<表名-1>

ADDFOREIGNKEY(列名)REFERENCES<表名-2>(列名)6.刪除外來關(guān)鍵字

ALTERTABLE<表名>

DROPconstraint<外來關(guān)鍵字名>7.4.2表的擴充和修改約束7.5數(shù)據(jù)庫的創(chuàng)建1、數(shù)據(jù)庫的存儲結(jié)構(gòu)數(shù)據(jù)庫的存儲結(jié)構(gòu)包括邏輯存儲結(jié)構(gòu)和物理存儲結(jié)構(gòu)。數(shù)據(jù)庫的邏輯存儲結(jié)構(gòu)指的是數(shù)據(jù)庫是由哪些性質(zhì)的信息所組成,SQLServer的數(shù)據(jù)庫不僅僅只是數(shù)據(jù)的存儲,所有與數(shù)據(jù)處理操作相關(guān)的信息都存儲在數(shù)據(jù)庫中。這種存儲結(jié)構(gòu)是面向數(shù)據(jù)庫使用者的。數(shù)據(jù)庫的物理存儲結(jié)構(gòu)則是討論數(shù)據(jù)庫文件是如何在磁盤上存儲的。數(shù)據(jù)庫在磁盤上以文件為單位存儲,由數(shù)據(jù)庫文件和事務(wù)日志文件組成。一個數(shù)據(jù)庫至少應(yīng)該包含一個數(shù)據(jù)庫文件和一個事務(wù)日志文件。(1)數(shù)據(jù)庫文件是存儲數(shù)據(jù)的文件,由主數(shù)據(jù)庫文件和輔助數(shù)據(jù)文件兩部分組成。主數(shù)據(jù)文件:一個數(shù)據(jù)庫可以有一個或多個數(shù)據(jù)庫文件,其中一個被定義為主數(shù)據(jù)庫文件,其擴展名為“mdf”,主數(shù)據(jù)庫文件用來存儲數(shù)據(jù)庫的啟動信息以及部分或者全部數(shù)據(jù),也包含指向其他數(shù)據(jù)庫文件的指針。一個數(shù)據(jù)庫只能有一個主數(shù)據(jù)庫文件。輔助數(shù)據(jù)庫文件存儲主數(shù)據(jù)庫文件中未能存儲的剩余數(shù)據(jù)和數(shù)據(jù)庫對象。一個數(shù)據(jù)庫可以沒有二級數(shù)據(jù)庫文件,也可以同時擁有多個二級數(shù)據(jù)庫文件。其擴展名為ndf。(2)事務(wù)日志文件:存儲數(shù)據(jù)庫的更新情況等事務(wù)日志信息。每個數(shù)據(jù)庫至少必須有一個該文件,也允許擁有多個日志文件,其擴展名為ldf,日志文件的大小至少是1MB。SQLServer2000的文件擁有兩個名稱,即邏輯文件名和物理文件名。當(dāng)使用命令訪問某一個文件時,必須使用該文件的邏輯名。(3)數(shù)據(jù)庫文件組為了便于管理,允許將多個文件歸納為同一組,并賦予此組一個名稱,該組就是文件組,文件組分為主文件組、次文件組和自定義文件組。在創(chuàng)建數(shù)據(jù)庫時沒有指定放在哪個文件組中,則將它放在缺省文件組,如果沒有指定缺省文件組,則主文件組為缺省文件組。在一個數(shù)據(jù)庫中可以創(chuàng)建多個文件組,一個數(shù)據(jù)文件只能放于一個文件組中,一個文件組只能被一個數(shù)據(jù)庫使用,日志文件是獨立的,不做為任何文件組成員。

(4)

SQLServer2005中數(shù)據(jù)存儲的基本單位是頁。為數(shù)據(jù)庫中的數(shù)據(jù)文件(.mdf

或.ndf)分配的磁盤空間可以從邏輯上劃分成頁(從0到n連續(xù)編號),SQLServer2005讀取或?qū)懭胨袛?shù)據(jù)頁。每頁是8KB,頁的開頭都是用來存儲頁的系統(tǒng)信息。每8個連續(xù)的頁即是一個區(qū),一個區(qū)可以用來單一的對象,也可以存儲多個不同的對象。

2、SQLServer2005數(shù)據(jù)庫中的數(shù)據(jù)在邏輯上被組織成一系列對象,當(dāng)一個用戶連接到數(shù)據(jù)庫后,所看到的是這些邏輯對象,而不是物理的數(shù)據(jù)庫文件。

SQLServer2005中有以下數(shù)據(jù)庫對象:表(Table)、視圖(View)、存儲過程(StoredProcedure)、觸發(fā)器(Trigger)、用戶自定義數(shù)據(jù)類型、函數(shù)、索引(Index)、規(guī)則(Rule)、默認(rèn)值(Default)等。3、系統(tǒng)數(shù)據(jù)庫

SQLServer2005包含master、model、msdb、tempdb和Resource5個系統(tǒng)數(shù)據(jù)庫。(1)

master數(shù)據(jù)庫master數(shù)據(jù)庫記錄SQLServer2005實例的所有系統(tǒng)級信息。master數(shù)據(jù)庫還記錄所有其他數(shù)據(jù)庫是否存在以及這些數(shù)據(jù)庫文件的位置。另外,master還記錄了SQLServer的初始化信息。(2)model數(shù)據(jù)庫

model數(shù)據(jù)庫用作SQLServer2005實例上創(chuàng)建的所有數(shù)據(jù)庫的模板。如果修改model數(shù)據(jù)庫,之后創(chuàng)建的所有數(shù)據(jù)庫都將繼承這些修改。(3)msdb數(shù)據(jù)庫msdb數(shù)據(jù)庫由SQLServer代理用來計劃警報和作業(yè)。(4)tempdb數(shù)據(jù)庫tempdb數(shù)據(jù)庫是連接到SQLServer2005實例的所有用戶都可用的全局資源,它保存所有臨時表和臨時存儲過程。另外,它還用來滿足所有其他臨時存儲要求

(5)Resource數(shù)據(jù)庫Resource數(shù)據(jù)庫是只讀數(shù)據(jù)庫,它包含了SQLServer2005中的所有系統(tǒng)對象。4、數(shù)據(jù)庫的創(chuàng)建創(chuàng)建數(shù)據(jù)庫的過程實際上就是為數(shù)據(jù)庫設(shè)計名稱,設(shè)計所占用的存儲空間和存放文件位置的過程。創(chuàng)建數(shù)據(jù)庫基本語法如下:Createdatabase數(shù)據(jù)庫名[on][primary][<文件格式>[,…n]][logon{<文件格式>[,…n]}]<文件格式>::=([name=邏輯文件名,]Filename=‘操作系統(tǒng)下的物理路徑和文件名’[,size=文件初始大小][,maxsize={文件最大大小|UNLIMITED}][,filegrowth=增量值])例:創(chuàng)建一個名為BOOK的數(shù)據(jù)庫,它由5MB的主數(shù)據(jù)文件和1MB的日志文件組成.并且主數(shù)據(jù)文件以2MB的速度增長,其最大數(shù)據(jù)文件的大小為15MB,事務(wù)日志文件以1MB速度增長,其最大日志文件的大小為10MB.CreatedatabaseBOOKOn(name=book1,Filename=‘d:\book1.mdf’,Size=5,maxsize=15,filegrowth=200KB)Logon(name=book_log,Filename=‘d:\book_log.ldf’,Size=1,maxsize=10,filegrowth=1)文件大小默認(rèn)單位是MB,程序中省略邏輯文件名物理文件名上面創(chuàng)建了一個名為book的數(shù)據(jù)庫,由于在指定數(shù)據(jù)文件時,沒使用PRIMARY關(guān)鍵字,所以第一個文件(藍色字體)被默認(rèn)

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論