




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、5.1 SQL語言概述 SQL,結構化查詢語言 w Structured Query Languagew 是一種介于關系代數(shù)與關系演算之間的語言w 已成為關系數(shù)據(jù)庫的標準語言w 支持關系系統(tǒng) Oracle、Informix、Sybase、MS SQL、INGRES、DB2、VF、FoxPro、Access等 SQL86w 由ANSI(美國國家標準局)于1986年10月公布w 1987年6月國際標準化組織OSI把它采納為國際標準 SQL89w ISO于1989年4月公布,增強了完整性特征 SQL92w ISO于1992年公布,也稱為SQL2 SQL99意義:自SQL成為國際標準語言以后,各個數(shù)據(jù)
2、庫廠家紛紛推出各自支持的SQL軟件或與SQL的接口軟件。大多數(shù)數(shù)據(jù)庫均用SQL作為共同的數(shù)據(jù)存取語言和標準接口,使不同數(shù)據(jù)庫系統(tǒng)之間的互操作有了共同的基礎。這個意義十分重大。因此,有人把確立SQL為關系數(shù)據(jù)庫語言標準及其后的發(fā)展稱為一場革命。 SQL成為國際標準,對數(shù)據(jù)庫以外的領域也產生了很大影響,有不少軟件產品將SQL語言的數(shù)據(jù)查詢功能與圖形功能、軟件工程工具、軟件開發(fā)工具、人工智能程序結合起來。SQL已成為關系數(shù)據(jù)庫領域中一個主流語言。 意義: 大多數(shù)數(shù)據(jù)庫開發(fā)商支持SQL/99,但并不是百分之百符合這個標準。目前市場上存在一些不同風格的SQL,因為每一個RDBMS開發(fā)商都試圖擴展這個標準
3、,以增強產品的功能,提高產品的吸引力,因此各個DBMS產品在實現(xiàn)標準SQL語言時也各有差別,讀者在使用某個DBMS產品時,應仔細閱讀系統(tǒng)提供的有關手冊。本書中我們將遵循SQL/99標準向大家介紹語句。但為了增強大家的認識,我們會通過SQL Server數(shù)據(jù)庫闡述部分特性,與標準SQL/99會有一些偏離。 1、數(shù)據(jù)定義w DDL語言(數(shù)據(jù)定義語言),主要定義數(shù)據(jù)庫的邏輯結構,包括定義基本表、視圖和索引; 2、數(shù)據(jù)操縱w DML語言(數(shù)據(jù)操縱語言),包括數(shù)據(jù)查詢和更新(插入、刪除和修改)兩大類操作; 3、數(shù)據(jù)控制w DCL語言(數(shù)據(jù)控制語言),包括對基本表和視圖的授權,完整性規(guī)則的描述和事務控制;
4、 4、嵌入式SQLw 規(guī)定了SQL語句在宿主語言的程序中使用規(guī)則。1. SQL語言的組成: 1. 綜合統(tǒng)一w 查詢、操縱、定義、控制操作功能一體化w 語言風格統(tǒng)一,數(shù)據(jù)操作符統(tǒng)一性 2. 高度非過程化w 用戶只需提出“做什么”,而不必指明“怎么做”w 隱蔽數(shù)據(jù)存取路徑 3. 面向集合的操作方式w 操作的對象和結果都是元組的集合(關系)2. SQL語言的特點: 4. 以同一種語法結構提供兩種使用方式w 交互式語言,一般DBMS都提供聯(lián)機交互工具,用戶可直接鍵入SQL命令對數(shù)據(jù)庫進行操作,由DBMS來進行解釋,針對所有DB用戶。w 嵌入式語言,將SQL語句嵌入到高級語言(宿主語言),使應用程序充分
5、利用SQL訪問數(shù)據(jù)庫的能力,針對應用程序員。 w 兩種類型的語法結構基本一致 5. 語言簡潔,易學易用w 類似于英語的自然語言w 操作謂詞少(核心功能只用9個動詞)SQL功能動詞 數(shù)據(jù)查詢 數(shù)據(jù)定義 數(shù)據(jù)操縱 數(shù)據(jù)控制SELECTCREATE,DROP,ALTERINSERT,UPDATE,DELETEGRANT,REVOKE3. SQL對關系數(shù)據(jù)庫模式的支持基本表基本表B1視圖視圖V1基本表基本表B3基本表基本表B4存儲文件存儲文件S1存儲文件存儲文件S2基本表基本表B2視圖視圖V2SQL外層外層/ /外模式外模式概念層概念層/ /概念模式概念模式內層內層/ /存儲模式存儲模式 基本表(ba
6、se table):w 數(shù)據(jù)庫中實際獨立存在的表(關系)w 存儲在實際的文件中 存儲文件w 存儲基本表的數(shù)據(jù) 視圖(view)w 是一個虛擬表w 從基本表或其他視圖中導出的表w 沒有實際的存儲位置w 數(shù)據(jù)庫中只存放視圖的定義而不存放視圖對應的數(shù)據(jù),數(shù)據(jù)仍然存放在導出視圖的基本表中3.2 數(shù)據(jù)定義 數(shù)據(jù)定義功能包括定義基本表、視圖和索引操作對象操作方式創(chuàng) 建刪 除修 改表CREAT TABLEDROP TABLEALTER TABLE視圖CREAT VIEWDROP VIEW索引CREAT INDEXDROP INDEX準備工作:數(shù)據(jù)類型 數(shù)據(jù)類型用于給特定的列提供數(shù)據(jù)規(guī)則,數(shù)據(jù)類型用于給特定的
7、列提供數(shù)據(jù)規(guī)則,不同的不同的DBMS支持的數(shù)據(jù)類型不同,有支持的數(shù)據(jù)類型不同,有細微的差別。細微的差別。SQL提供的主要類型:提供的主要類型: 數(shù)值型、字符型、位串型、日期型數(shù)值型、字符型、位串型、日期型T-SQL數(shù)據(jù)類型 T-SQL中支持的、常用的數(shù)據(jù)類型 w 字符型 w 日期時間類型 w 數(shù)值類型 w 二進制型 w 位型 w 文本型 w 圖像型 w 時間戳型 非unicod字符型 固定長度或可變長度的字符數(shù)據(jù)類型 允許定義的長度是1-8000 有兩種w 固定長度的char( 10)類型w 可變長度的varchar( )類型 輸入字符型數(shù)據(jù)時必須用單引號將數(shù)據(jù)括起來,例:hello unic
8、od字符型 使用 UNICODE UCS-2 字符集 定義值在 1 到 4,000 之間(含)。存儲大小為兩倍 n 字節(jié)。 有兩種w 固定長度的nchar( )類型w 可變長度的nvarchar( )類型 輸入字符型數(shù)據(jù)時格式,例:Nhello 日期時間類型 datetime和smalldatetime是用來存儲日期和時間數(shù)據(jù) 比較內容 Datetime Smalldatetime 最小值 Jan 1,1753 Jan 1,1900 最大值 Dec 31,9999 Jun 6,2079 占用存儲空間 8byte 4byte 精度 3.33毫秒 1分鐘 整數(shù)類型 整數(shù)類型的比較 比較內容 Int
9、 Smallint Tinyint 最小值 -231 -215 0 最大值 231-1 215-1 255 占用存儲空間 4byte 2byte 1byte 浮點數(shù)類型 比較內容FloatReal最小值-1.79E+308-3.40E+38最大值1.79E+3083.40E+38占用存儲空間8Byte4Byte精度最多15位最多7位精確數(shù)類型 精確數(shù)類型有兩種形式w Decimalw Numeric 與浮點類型數(shù)據(jù)的區(qū)別 w 可以自定義精度的位數(shù)w 例 num_col(5,2)貨幣型 貨幣類型的比較 比較內容MoneySmallmoney最小值-922,337,203,685,477.5808
10、-214,748.3648最大值922,337,203,685,477.5807214,748.3647占用存儲空間8Byte4Byte精度小數(shù)點后4位小數(shù)點后4位位數(shù)據(jù)類型 位數(shù)據(jù)類型bit是一種邏輯數(shù)據(jù)類型 只有1和0兩種數(shù)值 一般常用作true/false使用 定義bit列時,不允許為NULL,也不能建立索引 多個bit列可占用一個字節(jié)文本型和圖像型 文本類型text 圖像類型image 每行可以存儲2GB的二進制大型對象 時間戳型 時間戳型表示Timestamp 由系統(tǒng)自動賦值的一個計數(shù)器數(shù)據(jù) 記錄了數(shù)據(jù)行的操作順序 時間戳列的數(shù)據(jù)保持惟一,它可以惟一標識表中的列 時間戳列的值實際來自
11、于事務日志 語句格式:CREATE TABLE ( 列級完整性約束條件 , 列級完整性約束條件 , );1、定義基本表 CREATE TABLE 列和表完整性約束條件列和表完整性約束條件 約束類型說明Not null防止NULL值進入該列 unqiue防止重復值進入該列 Default默認約束,將該列常用的值定義為缺省值,減少數(shù)據(jù)輸入Check檢查約束,通過約束條件表達式設置列值應滿足的條件Primary key要求進入該列的所有值是唯一的,且不為NULL Foreign key表間約束列約束或表約束,分別取決于否應用于一個或多個列 例1 創(chuàng)建無約束的表結構 建立學生表student,由學號、
12、姓名、性別、年齡、系別5個屬性組成。CREATE TABLE student (Sno char(8), Sname char(20) , Ssex char(1) Sage int, Sdept char(20) 創(chuàng)建有約束的表結構Create table student(sno char(8) primary key, sname char(8) not null unique, ssex char(2) default 男 check(ssex=男 or ssex=女), sage tinyint check(sage between 15 and 50), sdept char(20)
13、 T-SQL中具體創(chuàng)建約束時,分為命名約束與自命名約束,自命名約束不需要constraint關鍵字,直接在字段定義后創(chuàng)建,命名約束需要constraint關鍵字,對約束命名,位置在字段定義結束后。創(chuàng)建有約束的表結構create table sc(sno char(8), cno char(2), grade tinyint, constraint pk_sc primary key(sno,cno), constraint fk_stuid foreign key(sno) references student(sno), constraint fk_course foreign key(cn
14、o) references course(cno), constraint ck_grade check(grade=0 and grade=100) )注意:教材是標準SQL99語法,和具體的DBMS的語法有區(qū)別 語句格式ALTER TABLE ADD 完整性約束 ADD constraint 完整性約束 DROP constraint DROP COLUMN -T-SQL ALTER column -T-SQL 修改內容w 增加新列和新的完整性約束條件(ADD子句) w 刪除指定的完整性約束條件(DROP子句) w 修改原有的列定義 ( ALTER子句)2、修改基本表 ALTER TABL
15、E 例2 向Student表中增加“入學時間”列,其數(shù)據(jù)類型為日期型。ALTER TABLE Student ADD Scome DATEtime; 例3 將Student表中年齡的數(shù)據(jù)類型改為半字長整數(shù)。ALTER TABLE Student ALTER Sage SMALLINT; 例4 刪除sc表中成績取值限制的約束ALTER TABLE Student DROP constraint ck_grade; 語句格式DROP TABLE 例5 刪除Student表DROP TABLE Student 說明:w 刪除基本表定義時,表中的數(shù)據(jù)、在此表上建立的索引將同時被刪除;w 此表上的視圖不
16、被刪除,但已無法使用。3、刪除基本表 DROP TABLE4、索引 表的索引就是表中數(shù)據(jù)的目錄 索引基于表中的列創(chuàng)建,可以基于不同的列創(chuàng)建多個索引 在進行數(shù)據(jù)查詢時,如果不使用索引,就需要將數(shù)據(jù)文件分塊,逐個讀到內存中進行查找比較操作。如果使用索引,可先將索引文件讀入內存,根據(jù)索引項找到元組的地址,然后再根據(jù)地址將元組數(shù)據(jù)讀入內存,并且由于索引文件中只含有索引項和元組地址,文件很小,而且索引項經過排序,索引可以很快的讀入內存并找到相應元組地址,極大地提高查詢的速度。 使用索引可保證數(shù)據(jù)的唯一性。在索引的定義中包括了數(shù)據(jù)唯一性的內容。 使用索引可加快連接速度 索引的分類 聚簇/聚集索引 w 索引
17、樹的葉級頁包含實際的數(shù)據(jù);表的物理順序與記錄的索引順序相同。非常類似于目錄表,目錄表的順序與實際頁碼順序。一個表只能有一個聚簇索引。 非聚簇/非聚集索引 w 記錄的物理順序與邏輯順序沒有必然關系,一個表也可以同時有多個非聚簇索引,類似于一本書同時有主題索引和作者索引。 Sql server 在創(chuàng)建主鍵是會根據(jù)主鍵自動創(chuàng)建聚簇索引,表中數(shù)據(jù)的物理順序要重新排列,和聚簇索引的順序保持一致。 SQL Server在某個列上建立unique約束時,會根據(jù)該列自動創(chuàng)建唯一索引。 語句格式CREATE UNIQUE CLUSTERINDEX ON (, ) ;w UNIQUE 表示每一個索引值只對應唯一的數(shù)據(jù)記錄w CLUSTER 聚簇索引:索引項的順序與表中記錄的物理順序相一致 相關說明w 索引可以提高數(shù)據(jù)檢索速度w 索引可以保證行的唯一性。w 索引會增加系統(tǒng)的開銷(空間、速度)w 索引由系統(tǒng)自動使用和維護建立索引 CREATE INDEX 例6 為學生-課程數(shù)據(jù)庫中Student,Course,SC三個表建立索引。w Student表按姓名升序建立唯一索引;w SC表按學號升序課程號降序建立唯一索引。CR
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025員工解除勞動合同協(xié)議書范本2
- 2025至2030年中國金不換復合地板數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國鉤型彎電極數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國立式吊運鋼帶卷電磁鐵數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國玻璃真空熱合夾膠機數(shù)據(jù)監(jiān)測研究報告
- 種植草坪工程施工方案
- 臨電臨電施工方案
- 社交化學習環(huán)境公共營養(yǎng)師試題及答案
- 課堂閱讀測試題及答案
- 飲食干預設計與執(zhí)行試題及答案
- 2023年高考生物全國通用易錯題13致死類的遺傳題(解析版)
- 中建項目裝飾裝修工程施工方案
- 消防維保質量保證體系
- 《光》 單元作業(yè)設計
- 大學生心理健康教育(第3版)PPT完整全套教學課件
- 2021年上海市中考二模化學試卷匯編多選題
- 財建2016504號-基本建設項目建設成本管理規(guī)定-含附件
- GB/T 18323-2022滑動軸承燒結軸套尺寸和公差
- 新概念二冊課文電子版
- 成都市中考英語題型專項復習練習(word版):補全表格
- 中國民間藝術的奇妙之旅知到章節(jié)答案智慧樹2023年南昌大學
評論
0/150
提交評論