第3章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言-1_第1頁
第3章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言-1_第2頁
第3章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言-1_第3頁
第3章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言-1_第4頁
第3章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言-1_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第3章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言(1)主講:楊莎chloe4hku@163.com學(xué)習(xí)目標(biāo)了解數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL的背景與特點(diǎn)掌握SQL數(shù)據(jù)定義語句CREATE、DROP、ALTER掌握SQL查詢語句SELECT…FROM…WHERE…掌握數(shù)據(jù)操縱語句INSERT、DELETE、UPDATE掌握視圖的定義與使用Page

2目錄3.1SQL概述3.2數(shù)據(jù)定義3.3數(shù)據(jù)查詢3.5視圖3.4數(shù)據(jù)更新Page

33.1.1SQL的產(chǎn)生與發(fā)展3.1.2

SQL的特點(diǎn)3.1.3SQL的基本概念3.1SQL概述Page

4SQL語言是當(dāng)前最為成功、應(yīng)用最為廣泛的關(guān)系數(shù)據(jù)庫語言,其發(fā)展主要經(jīng)歷了以下幾個(gè)階段:1974年由CHAMBERLIN和BOYCE提出,當(dāng)時(shí)稱為SEQUEL(StructuredEnglishQueryLanguage);IBM公司對(duì)其進(jìn)行了修改,并用于其SYSTEMR關(guān)系數(shù)據(jù)庫系統(tǒng)中;1981年IBM推出其商用關(guān)系關(guān)系數(shù)據(jù)庫SQL/DS,并將其名字改為SQL,由于SQL語言功能強(qiáng)大,簡潔易用,因此得到了廣泛的使用;今天廣泛應(yīng)用于各種大型數(shù)據(jù)庫,如SYBASE、INFORMIX、ORACLE、DB2、INGRES等,也用于各種小型數(shù)據(jù)庫,如FOXPRO、ACCESS。3.1.1SQL的產(chǎn)生與發(fā)展Page

53.1.2SQL的特點(diǎn)SQL是結(jié)構(gòu)化查詢語言(StructuredQueryLanguage)的縮寫,集數(shù)據(jù)定義DDL、數(shù)據(jù)查詢、數(shù)據(jù)操縱DML和數(shù)據(jù)控制DCL四大功能于一體,其特點(diǎn)有:1.綜合統(tǒng)一2.高度非過程化3.面向集合的操作方式4.以同一種語法結(jié)構(gòu)提供兩種使用方式5.語言簡捷,易學(xué)易用Page

63.1.2SQL的特點(diǎn)www.1PPT.COMStructuredQueryLanguage結(jié)構(gòu)化查詢語句四大功能五大特點(diǎn)SQL數(shù)據(jù)定義DDL數(shù)據(jù)查詢數(shù)據(jù)操縱DML數(shù)據(jù)控制DCL1.綜合統(tǒng)一非關(guān)系模型的數(shù)據(jù)語言模式數(shù)據(jù)定義語言(模式DDL)外模式數(shù)據(jù)定義語言(外模式DDL)與數(shù)據(jù)存儲(chǔ)有關(guān)的描述語言(DSDL)數(shù)據(jù)操縱語言(DML)SQL語言數(shù)據(jù)定義語言DDL數(shù)據(jù)操縱語言DML數(shù)據(jù)控制語言DCL數(shù)據(jù)查詢Page

82.高度非過程化非關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操縱語言“面向過程”必須制定存取路徑用戶只需提出“做什么”,而不必指明怎么做存取路徑的選擇以及SQL的操作過程由系統(tǒng)自動(dòng)完成Page

93.面向集合的操作方式非關(guān)系數(shù)據(jù)采用的是面向記錄的操作方式,操作對(duì)象是一條記錄SQL語言采用集合操作方式操作對(duì)象、查找結(jié)果可以是元組的集合一次插入、刪除、更新操作的對(duì)象可以是元組的集合Page

104.以同一種語法結(jié)構(gòu)提供兩種使用方式自含式語言能夠獨(dú)立地用于聯(lián)機(jī)交互的使用方式嵌入式語言能夠嵌入到高級(jí)語言(例如:C、C++、JAVA)程序中,供程序員設(shè)計(jì)程序時(shí)使用兩種不同使用方式下,SQL的語法結(jié)構(gòu)基本一致5.語言簡捷,易學(xué)易用SQL功能極強(qiáng),完成核心功能只用了9個(gè)動(dòng)詞Page

123.1.3SQL的基本概念三個(gè)基本概念:基本表、存儲(chǔ)文件和視圖?;颈恚˙ASETABLE):是獨(dú)立存在的表,不是由其它的表導(dǎo)出的表。一個(gè)關(guān)系對(duì)應(yīng)一個(gè)基本表,一個(gè)或多個(gè)基本表對(duì)應(yīng)一個(gè)存儲(chǔ)文件。存儲(chǔ)文件邏輯結(jié)構(gòu)組成了關(guān)系數(shù)據(jù)庫內(nèi)模式物理結(jié)構(gòu)是任意的,對(duì)用戶是透明的Page

13SQL的基本概念(con.)視圖(VIEW):是一個(gè)虛擬的表,是從一個(gè)或幾個(gè)基本表導(dǎo)出的表。它本身不獨(dú)立存在于數(shù)據(jù)庫中,數(shù)據(jù)庫中只存放視圖的定義而不存放視圖對(duì)應(yīng)的數(shù)據(jù),這些數(shù)據(jù)仍存放在導(dǎo)出視圖的基本表中。當(dāng)基本表中的數(shù)據(jù)發(fā)生變化時(shí),從視圖中查詢出來的數(shù)據(jù)也隨之改變。Page

14SQL的基本概念(con.)SQL支持三級(jí)模式結(jié)構(gòu)一個(gè)SQL數(shù)據(jù)庫的總體邏輯結(jié)構(gòu)是基本表(Table)的集合,對(duì)應(yīng)于概念模式SQL數(shù)據(jù)庫的底層存儲(chǔ)結(jié)構(gòu)采用文件,一個(gè)或幾個(gè)表對(duì)應(yīng)一個(gè)存儲(chǔ)文件,以及索引文件,對(duì)應(yīng)內(nèi)模式用戶所見的數(shù)據(jù)結(jié)構(gòu)是視圖(View),用戶可直接操作的表,可為視圖或部分基本表。Page

15SQL視圖1視圖2基本表1基本表2基本表3基本表4存儲(chǔ)文件1存儲(chǔ)文件2外模式模式內(nèi)模式圖SQL語言支持的關(guān)系數(shù)據(jù)庫的三級(jí)邏輯結(jié)構(gòu)Page

16SQL語言的約定符號(hào){}表示必選項(xiàng),即必選其中之一項(xiàng)[]為任選項(xiàng)分隔符|表示參數(shù)之間”或”的關(guān)系省略號(hào)…表示重復(fù)前面的語法單元<>中的內(nèi)容是必須的,表示下面有子句定義[,…N]表示前面得項(xiàng)可以重復(fù)1—N遍/*…*/表示中間可以有多行注釋語句--表示只可以寫單行注釋語句Page

17SQL語言的數(shù)據(jù)類型Page

18SQL語言的數(shù)據(jù)類型說明1.整數(shù)數(shù)據(jù)類型:依整數(shù)數(shù)值的范圍大小,有BIT,INT,SMALLINT,TINYINT四種。2.精確數(shù)值類型:用來定義可帶小數(shù)部分的數(shù)字,有NUMERIC和DECIMAL兩種。十進(jìn)制數(shù),共P位,其中小數(shù)點(diǎn)后S位。0<=S<=P,S=0時(shí)可省略。如:123.0、8000.563.近似浮點(diǎn)數(shù)值數(shù)據(jù)類型:當(dāng)數(shù)值的位數(shù)太多時(shí),可用此數(shù)據(jù)類型來取其近似值,用FLOAT和REAL兩種。如:1.23E+10Page

19SQL語言的數(shù)據(jù)類型說明(con.)4.日期時(shí)間數(shù)據(jù)類型:用來表示日期與時(shí)間,依時(shí)間范圍與精確程度可分為DATETIME與SMALLDATETIME兩種。如:1998-06-0815:30:005.字符串?dāng)?shù)據(jù)類型:用來表示字符串的字段。包括:CHAR,VARCHAR,TEXT三種,如:“數(shù)據(jù)庫”6.標(biāo)記數(shù)據(jù)類型:有UNIQUEIDENTIFIER,TIMESTAMP兩種,此數(shù)據(jù)類型通常系統(tǒng)自動(dòng)產(chǎn)生,而不是用戶輸入的,TIMESTAMP記錄數(shù)據(jù)更新的時(shí)間戳印,而UNIQUEIDENTIFIER用來識(shí)別每一筆數(shù)據(jù)的唯一性。Page

203.1SQL概述3.2數(shù)據(jù)定義3.3數(shù)據(jù)查詢3.4數(shù)據(jù)更新3.5視圖第3章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言外模式模式內(nèi)模式視圖表索引Page

21學(xué)生-課程數(shù)據(jù)庫學(xué)生-課程數(shù)據(jù)庫S-T建庫Page

22Student表Page

23建表學(xué)號(hào)(sno)姓名(sname)性別(ssex)年齡(sage)院系(sdept)200215121李勇男20CS200215122劉晨女19IS200215123王敏女18MA200215125張立男19ISCourse表Page

24建表課程號(hào)(cno)課程名(cname)先行課(cpno)學(xué)分(ccredit)1數(shù)據(jù)庫542數(shù)學(xué)23信息系統(tǒng)144操作系統(tǒng)635數(shù)據(jù)結(jié)構(gòu)746數(shù)據(jù)處理27PASCal語言64SC表Page

25建表學(xué)號(hào)(sno)課程號(hào)(cno)成績(grade)2002151211922002151212852002151213882002151222902002151223803.2數(shù)據(jù)定義注:視圖和索引不能直接修改,只能通過刪除舊視圖/索引+創(chuàng)建新視圖/索引的方式進(jìn)行間接修改操作對(duì)象操作創(chuàng)建刪除修改表CreatetableDroptableAltertable視圖CreateviewDropview索引CreateindexDropindex數(shù)據(jù)庫CreatedatabaseDropdatabaseAlterdatabasePage

263.2數(shù)據(jù)定義3.2.1數(shù)據(jù)庫的創(chuàng)建、修改和刪除3.2.2基本表的定義及變更3.2.3索引的定義與刪除Page

27數(shù)據(jù)庫的創(chuàng)建、修改和刪除數(shù)據(jù)庫的建立CREATEDATABASE<數(shù)據(jù)庫名>[其它參數(shù)]數(shù)據(jù)庫的刪除DROPDATABASE<數(shù)據(jù)庫名>[其它參數(shù)]數(shù)據(jù)庫的修改ALTERDATABASEPage

28例題:建立學(xué)生數(shù)據(jù)庫[例1]:建立一個(gè)學(xué)生數(shù)據(jù)庫,名為ST

CREATEDATABASESTPage

293.2數(shù)據(jù)定義3.2.1數(shù)據(jù)庫的創(chuàng)建、修改和刪除3.2.2基本表的定義及變更3.2.3索引的定義與刪除Page

30一定義語句語句格式CREATETABLE<表名>

(<列名><數(shù)據(jù)類型>[<列級(jí)完整性約束條件>][,<列名><數(shù)據(jù)類型>[<列級(jí)完整性約束條件>]]…[,<表級(jí)完整性約束條件>]);所要定義的基本表的名字組成該表的各個(gè)屬性(列)涉及相應(yīng)屬性列的完整性約束條件涉及兩個(gè)或多個(gè)屬性列的完整性約束條件Page

31例題:建立學(xué)生表[例2]建立一個(gè)“學(xué)生”表Student,其中學(xué)號(hào)是主碼,姓名取唯一值CREATETABLEStudent(SnoCHAR(9)PRIMARYKEY,

SnameCHAR(20)UNIQUE,/*Sname取唯一值*/SsexCHAR(2),

SageSMALLINT,

SdeptCHAR(20))學(xué)生表主碼Page

32例題:建立課程表[例3]建立一個(gè)課程表CourseCREATETABLECourse

(CnoCHAR(4)PRIMARYKEY,CnameCHAR(40),CpnoCHAR(4),CcreditSMALLINT,

FOREIGNKEY(Cpno)REFERENCESCourse(Cno))課程表先行課Cpno是外碼,被參照表是Course被參照列是CnoPage

33例題:建立選課表[例4]建立一個(gè)學(xué)生選課表SCCREATETABLESC(SnoCHAR(9),

CnoCHAR(4),

GradeSMALLINT,

PRIMARYKEY(Sno,Cno),

/*主碼由兩個(gè)屬性構(gòu)成,必須作為表級(jí)完整性進(jìn)行定義*/FOREIGNKEY(Sno)REFERENCESStudent(Sno),

/*表級(jí)完整性約束條件,Sno是外碼,被參照表是Student*/

FOREIGNKEY(Cno)REFERENCESCourse(Cno)/*表級(jí)完整性約束條件,Cno是外碼,被參照表是Course*/ )選課表Page

34五種常用完整性約束非空值約束:NOTNULL唯一性約束:UNIQUE主碼約束:PRIMARYKEY外碼約束:FOREIGNKEY檢查約束:CHECKPRIMARYKEY與

UNIQUE的區(qū)別?Page

35說明:

PRIMARYKEY與UNIQUE約束類似,通過建立唯一索引來保證基本表在主鍵列取值的唯一性,但它們之間存在著很大的區(qū)別:①在一個(gè)基本表中只能定義一個(gè)PRIMARYKEY約束,但可定義多個(gè)UNIQUE約束;②對(duì)于指定為PRIMARYKEY的一個(gè)列或多個(gè)列的組合,其中任何一個(gè)列都不能出現(xiàn)空值,而對(duì)于UNIQUE所約束的唯一鍵,則允許為空。PRIMARYKEY=NOTNULL+UNIQUEPage

36不能為同一個(gè)列或一組列既定義UNIQUE約束,又定義PRIMARYKEY約束。PRIMARYKEY既可用于列約束,也可用于表約束Page

37二、修改基本表ALTERTABLE<表名>[ADD<新列名><數(shù)據(jù)類型>[完整性約束]][DROP<完整性約束名>][ALTERCOLUMN<列名><數(shù)據(jù)類型>];要修改的基本表增加新列和新的完整性約束條件刪除指定的完整性約束條件用于修改列名和數(shù)據(jù)類型Page

38修改表ADD例題[例5]向Student表增加“入學(xué)時(shí)間”列,其數(shù)據(jù)類型為日期型。

ALTERTABLEStudentADDS_entranceDATETIME不論基本表中原來是否已有數(shù)據(jù),新增加的列一律為空值。

Page

39修改表DROP語句格式刪除屬性列的方法:間接刪除:把表中要保留的列及其內(nèi)容復(fù)制到一個(gè)新表中刪除原表再將新表重命名為原表名直接刪除屬性列:(新:oracle不支持)例:ALTERTABLEStudentDropS_entrance;Page

40修改表MODIFY例題[例6]將年齡的數(shù)據(jù)類型改為整型(假設(shè)原為字符型)。

ALTERTABLEStudentAltercolumnSageINT注:修改原有的列定義有可能會(huì)破壞已有數(shù)據(jù)Page

41例題(續(xù))[例7]刪除學(xué)生姓名必須取唯一值的約束。ALTERTABLEStudent

DROPUNIQUE(Sname);[例8]增加課程表中課程名必須取唯一值的條件ALTERTABLECourse

ADDUNIQUE(Cname);Page

42三、刪除基本表DROPTABLE<表名>[RESTRICT][CASCADE];

注:RESTRICT:刪除表是有限制的先清除表中的所有記錄行數(shù)據(jù)以及所有視圖、索引后才能刪除該表該基本表沒有被其他表的約束所引用時(shí)才能刪除CASCADE:刪除該表沒有限制在刪除基本表的同時(shí),相關(guān)的所有依賴對(duì)象一起刪除Page

43例題[例9]刪除基本表StudentDROPTABLE

StudentCASCADE;基本表定義被刪除,數(shù)據(jù)被刪除表上定義的視圖、索引、觸發(fā)器等一般也被刪除Page

443.2數(shù)據(jù)定義3.2.1數(shù)據(jù)庫的創(chuàng)建、修改和刪除3.2.2基本表的定義及變更3.2.3索引的定義與刪除Page

45索引簡介在日常生活中我們會(huì)經(jīng)常遇到索引,例如圖書目錄、詞典索引等。借助索引,人們會(huì)很快地找到需要的東西。索引是數(shù)據(jù)庫隨機(jī)檢索的常用手段,它實(shí)際上就是記錄的關(guān)鍵字與其相應(yīng)地址的對(duì)應(yīng)表。如果把數(shù)據(jù)庫表比作一本書,則表的索引就如書的目錄一樣,通過索引可大大提高查詢速度。建立索引是加快查詢速度的有效手段Page

46索引簡介(con.)建立索引DBA或表的屬主(即建立表的人)根據(jù)需要建立有些DBMS自動(dòng)建立以下列上的索引

PRIMARYKEYUNIQUE維護(hù)索引

DBMS自動(dòng)完成

使用索引

DBMS自動(dòng)選擇是否使用索引以及使用哪些索引Page

47一、建立索引語句格式CREATE[UNIQUE][CLUSTER]INDEX<索引名>ON<表名>(<列名>[<ASC|DESC>],[<列名>[<ASC|DESC

>]]

…);

指定要建索引的基本表名字表明此索引的每一個(gè)索引值只對(duì)應(yīng)唯一的數(shù)據(jù)記錄表示要建立的索引是聚簇索引表示升序/降序排列:ASC-升序;DESC-降序缺省值:ASC索引可以建立在該表的一列或多列上,各列名之間用逗號(hào)分隔Page

48建立索引說明唯一值索引對(duì)于已含重復(fù)值的屬性列不能建UNIQUE索引對(duì)某個(gè)列建立UNIQUE索引后,插入新記錄

溫馨提示

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

評(píng)論

0/150

提交評(píng)論