




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
關系數據庫語言提供關系數據庫的數據定義、查詢、更新和控制等功能,是用戶和數據庫管理員建立、使用數據庫的主要工具。基于關系代數的語言是用對關系(表)的運算來表達查詢的語言,它的運算基于關系代數,包括一般的集合運算和特殊的關系運算——投影、選擇、連接等。結構化查詢語言SQL主要是基于關系代數的,還有部分則是其他的。第7章關系數據語言SQL
從字面看SQL只是一個查詢語言,而實際上SQL作為一種標準數據庫語言,從對數據庫的隨機查詢到數據庫的管理和程序設計,SQL幾乎無所不能,功能十分豐富;而且SQL是一種陳述性的語言,語言簡潔易學,書寫非常簡單,使用方便。SQL既可以作為交互式語言獨立使用,可以作為子語言嵌入宿主語言中使用,增強應用程序的處理能力。第7章關系數據語言SQLHome第7章關系數據庫語言SQL7.3SQL語言組成7.4SQL的數據定義7.5數據庫的創建Home7.1SQL數據庫的體系結構7.2
SQL語法約定7.1SQL數據庫的體系結構7.1SQL數據庫的體系結構SQL支持數據庫的三級模式結構,視圖是外模式,基本表是模式,存儲文件是內模式。在SQL中一個關系就對應一個表。視圖是由若干個基本表或其他視圖構成的表的定義。在數據庫中只存放視圖的定義,不存放視圖對應的數據。7.2SQL語法約定1、標識符數據庫對象的名稱即為其標識符,服務器,數據庫和數據庫對象都可以有標識符。對象標識符是在定義對象時創建的。2、標識符的類型SQLServer支持兩類標識符:常規標識符和分隔標識符,分隔標識符包含在雙引號(“”)或者方括號([])內。常規標識符必須遵循下列規則:(1)第一個字符必須是下列字符之一。Unicode標準3.2所定義的字母。Unicode中定義的字母包括拉丁字符a~z和A~Z,以及來自其他語言的字母字符。下劃線(-)、at符號(@)或數字符號(#)(2)其他字符可以包括:Unicode標準3.2所定義的字母,十進制數字,at符號(@),美元符號($),數字符號(#)或下劃線(-)注意:標識符一定不能是SQL的保留字,不允許嵌入空格和其他特殊字符.7.3SQL語言組成7.3.1關系與表7.3.2SQL的數據類型7.3.3SQL的語句類型Home7.3.1關系與表表(或稱關系)具有下列特征:一個表中有一個或多個命名列。各列無從左到右的順序。一個表中可有零個或多個行行的順序是無關緊要的。一個表中的每一行都是唯一的。任何行和列的交點都有一個唯一的值。同一列中的所有值都必須取自同一值域。Home7.3.1關系與表教學管理數據庫Home每一個表都有一個稱為主關鍵字(PrimaryKey)的列的子集,它的值可以唯一確定每一行。表——關系,行——元組、記錄,列——屬性、字段。
1.數值型INTEGER簡寫為INT,占4字節固定長度內存.。
SMALLINT占2字節固定長度.TINYINT占1字節,可存儲0~255范圍內的任意無符號整數
BIGINT占8字節固定長度.
FLOAT(p)REAL
Home7.3.2SQL的數據類型
2.字符串型
CHAR(n)按n個字節的固定長度存放,小于n,尾部填空格
x1CHAR(30)VARCHAR(n)定義可變長字符串。
3.位串型
BIT(n)只能存放0和1和null,一般用于邏輯判斷
Home7.3.2SQL的數據類型4.時間型
DATETIME定義日期。5.布爾型
BOOLEAN定義布爾數,其值可以是:TRUE(真)、FALSE(假)、UNKNOWN(未知)。Home7.3.2SQL的數據類型用戶定義數據類型是一個對象類型,是由用戶按照一定的規則用預定義數據類型組合定義的自己專用的數據類型。許多SQL產品還擴充了其他一些數據類型,如TEXT(文本)、MONEY(貨幣)、GRAPHIC(圖形)、IMAGE(圖像)、GENERAL(通用)、MEMO(備注)等。Home7.3.2SQL的數據類型(1)查詢語言(QL)
查詢語言用來對已存在的數據庫中的數據按照指定的組合、條件表達式或排序進行檢索。它的基本結構是由SELECT子句、FROM子句、WHERE子句組成的查詢塊。(2)數據操縱語言(DML)
DML的命令用來改變數據庫中的數據,它有3個基本語句:INSERT(插入)、UPDATE(修改)、DELETE(刪除)。7.3.3SQL的語句類型Home(3)數據定義語言(DDL)
DDL用來創建數據庫中的各種對象,包括數據庫模式、表、視圖、索引、存儲過程等,它的基本語句有:CREATESCHEMA、CREATETABLE、CREATEVIEW、CREATEINDEX等。(4)數據控制語言(DCL)
DCL用來授予或回收訪問數據庫的某種特權,控制數據操縱事務的發生時間及效果、對數據庫進行監視等。數據控制基本語句有:GRANT、REVOKE、COMMIT等。Home7.3.3SQL的語句類型7.4SQL的數據定義Home7.4.1表的建立和刪除7.4.2表的擴充與修改7.4.1表的建立和刪除1.表的建立
CREATETABLE
<表名>
(<列定義>…[<完整性約束>…])
<列定義>給出列的名稱、數據類型、缺省值。每一個列的數據類型可以是預定義數據類型,也可以是用戶定義數據類型。缺省值用默認子句表達:DEFAULT<缺省值>。<完整性約束>可以是對表的約束或對列的約束,以保證數據的完整性。Home完整性約束可用以下語句表達。(1)主關鍵字子句:PRIMARYKEY(<列名>)(2)外來關鍵字子句:FOREIGNKEY(<列名>)REFERENCES<表名>(<列名>)7.4.1表的建立和刪除例:對于關系模式班級(班號,班名,人數)可以定義如下:
CREATETABLE班級(班號char(10),
班名char(20),人數int)7.4.1表的建立和刪除該表沒有定義主鍵
CREATETABLE班級(班號char(10),notnull
班名char(20),人數int)修改NOTNULL代表該列不能為空
CREATETABLE班級(班號char(10)NOTNULL,班名char(20)notnull,人數int
,
PRIMARYKEY(班號))凡帶有NOTNULL的列,不允許出現空值;未帶NOTNULL的列,可以出現空值。空值NULL表示“不知道”。當首次用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.在現存表中增加新列
ALTERTABLE<表名>
ADD[COLUMN](<列名><數據類型>[NULL|NOTNULL],…)
例
在student表中增加住址列。
ALTERTABLEstudentADD(DRCHAR(50))Home2.刪除已存在的某個列
ALTERTABLE<表名>
DROPCOLUMN
<列名>例
把STUDENTS表中的age列刪除
ALTERTABLESTUDENTSDROPcolumnageHome7.4.2表的擴充和修改3.補充定義主關鍵字
ALTERTABLE<表名>
ADDPRIMARYKEY(<列名表>)
例
補充定義student表的主關鍵字。
ALTERTABLEstudentADDPRIMARYKEY(SNO,SNAME);Home7.4.2表的擴充和修改4.刪除主關鍵字
ALTERTABLE<表名>DROPconstraint主鍵名5.補充定義外來關鍵字
ALTERTABLE<表名-1>
ADDFOREIGNKEY(列名)REFERENCES<表名-2>(列名)6.刪除外來關鍵字
ALTERTABLE<表名>
DROPconstraint<外來關鍵字名>7.4.2表的擴充和修改約束7.5數據庫的創建1、數據庫的存儲結構數據庫的存儲結構包括邏輯存儲結構和物理存儲結構。數據庫的邏輯存儲結構指的是數據庫是由哪些性質的信息所組成,SQLServer的數據庫不僅僅只是數據的存儲,所有與數據處理操作相關的信息都存儲在數據庫中。這種存儲結構是面向數據庫使用者的。數據庫的物理存儲結構則是討論數據庫文件是如何在磁盤上存儲的。數據庫在磁盤上以文件為單位存儲,由數據庫文件和事務日志文件組成。一個數據庫至少應該包含一個數據庫文件和一個事務日志文件。(1)數據庫文件是存儲數據的文件,由主數據庫文件和輔助數據文件兩部分組成。主數據文件:一個數據庫可以有一個或多個數據庫文件,其中一個被定義為主數據庫文件,其擴展名為“mdf”,主數據庫文件用來存儲數據庫的啟動信息以及部分或者全部數據,也包含指向其他數據庫文件的指針。一個數據庫只能有一個主數據庫文件。輔助數據庫文件存儲主數據庫文件中未能存儲的剩余數據和數據庫對象。一個數據庫可以沒有二級數據庫文件,也可以同時擁有多個二級數據庫文件。其擴展名為ndf。(2)事務日志文件:存儲數據庫的更新情況等事務日志信息。每個數據庫至少必須有一個該文件,也允許擁有多個日志文件,其擴展名為ldf,日志文件的大小至少是1MB。SQLServer2000的文件擁有兩個名稱,即邏輯文件名和物理文件名。當使用命令訪問某一個文件時,必須使用該文件的邏輯名。(3)數據庫文件組為了便于管理,允許將多個文件歸納為同一組,并賦予此組一個名稱,該組就是文件組,文件組分為主文件組、次文件組和自定義文件組。在創建數據庫時沒有指定放在哪個文件組中,則將它放在缺省文件組,如果沒有指定缺省文件組,則主文件組為缺省文件組。在一個數據庫中可以創建多個文件組,一個數據文件只能放于一個文件組中,一個文件組只能被一個數據庫使用,日志文件是獨立的,不做為任何文件組成員。
(4)
SQLServer2005中數據存儲的基本單位是頁。為數據庫中的數據文件(.mdf
或.ndf)分配的磁盤空間可以從邏輯上劃分成頁(從0到n連續編號),SQLServer2005讀取或寫入所有數據頁。每頁是8KB,頁的開頭都是用來存儲頁的系統信息。每8個連續的頁即是一個區,一個區可以用來單一的對象,也可以存儲多個不同的對象。
2、SQLServer2005數據庫中的數據在邏輯上被組織成一系列對象,當一個用戶連接到數據庫后,所看到的是這些邏輯對象,而不是物理的數據庫文件。
SQLServer2005中有以下數據庫對象:表(Table)、視圖(View)、存儲過程(StoredProcedure)、觸發器(Trigger)、用戶自定義數據類型、函數、索引(Index)、規則(Rule)、默認值(Default)等。3、系統數據庫
SQLServer2005包含master、model、msdb、tempdb和Resource5個系統數據庫。(1)
master數據庫master數據庫記錄SQLServer2005實例的所有系統級信息。master數據庫還記錄所有其他數據庫是否存在以及這些數據庫文件的位置。另外,master還記錄了SQLServer的初始化信息。(2)model數據庫
model數據庫用作SQLServer2005實例上創建的所有數據庫的模板。如果修改model數據庫,之后創建的所有數據庫都將繼承這些修改。(3)msdb數據庫msdb數據庫由SQLServer代理用來計劃警報和作業。(4)tempdb數據庫tempdb數據庫是連接到SQLServer2005實例的所有用戶都可用的全局資源,它保存所有臨時表和臨時存儲過程。另外,它還用來滿足所有其他臨時存儲要求
(5)Resource數據庫Resource數據庫是只讀數據庫,它包含了SQLServer2005中的所有系統對象。4、數據庫的創建創建數據庫的過程實際上就是為數據庫設計名稱,設計所占用的存儲空間和存放文件位置的過程。創建數據庫基本語法如下:Createdatabase數據庫名[on][primary][<文件格式>[,…n]][logon{<文件格式>[,…n]}]<文件格式>::=([name=邏輯文件名,]Filename=‘操作系統下的物理路徑和文件名’[,size=文件初始大小][,maxsize={文件最大大小|UNLIMITED}][,filegrowth=增量值])例:創建一個名為BOOK的數據庫,它由5MB的主數據文件和1MB的日志文件組成.并且主數據文件以2MB的速度增長,其最大數據文件的大小為15MB,事務日志文件以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)文件大小默認單位是MB,程序中省略邏輯文件名物理文件名上面創建了一個名為book的數據庫,由于在指定數據文件時,沒使用PRIMARY關鍵字,所以第一個文件(藍色字體)被默認
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 熔爐自動化控制系統的維護考核試卷
- 畜牧業智能監控系統設計與實施考核試卷
- 山西省晉城市高平市2025年數學五下期末學業水平測試試題含答案
- 江蘇省無錫市長涇片2024-2025學年初三畢業班“三診”模擬考試英語試題試卷含答案
- 綿陽市2025屆四年級數學第二學期期末達標檢測模擬試題含解析
- 四川省自貢市曙光中學2025屆初三年級模擬考試(二)數學試題含解析
- 南昌工學院《文學創作與評論訓練》2023-2024學年第二學期期末試卷
- 南京郵電大學通達學院《油氣儲運新技術》2023-2024學年第二學期期末試卷
- 武漢海事職業學院《園林專業英語》2023-2024學年第一學期期末試卷
- 沈陽城市學院《輕松學營銷》2023-2024學年第二學期期末試卷
- 2025年全國低壓電工作業證(復審)考試練習題庫(600題)附答案
- 2025年上海市閔行區初三中考語文二模調研試卷
- 2025年《職業病防治法》宣傳周知識考試題(附答案)
- 2024年濰坊市技師學院招聘筆試真題
- 2025年中考道德與法治一輪復習:專題4 我與他人 和諧相處 課件79張
- 無人機飛手培訓班合作合同協議范本模板
- 港口智能運維系統-全面剖析
- 康復治療士測試題及答案
- 漢語言文學自考命題形式試題及答案
- VDA6.3-2023版培訓教材課件
- 皮瓣移植護理與病例介紹課件
評論
0/150
提交評論