第三講語(yǔ)言基礎(chǔ)及數(shù)據(jù)定義功能_第1頁(yè)
第三講語(yǔ)言基礎(chǔ)及數(shù)據(jù)定義功能_第2頁(yè)
第三講語(yǔ)言基礎(chǔ)及數(shù)據(jù)定義功能_第3頁(yè)
第三講語(yǔ)言基礎(chǔ)及數(shù)據(jù)定義功能_第4頁(yè)
第三講語(yǔ)言基礎(chǔ)及數(shù)據(jù)定義功能_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第三講語(yǔ)言基礎(chǔ)及數(shù)據(jù)定義功能1第1頁(yè),共18頁(yè),2023年,2月20日,星期一

1.SQL語(yǔ)言的發(fā)展一、SQL語(yǔ)言概述SQL(StructuredQueryLanguage)結(jié)構(gòu)化查詢語(yǔ)言,是關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言。SQL是一個(gè)通用的、功能極強(qiáng)的關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言。

標(biāo)準(zhǔn)大致頁(yè)數(shù)發(fā)布日期SQL/861986.10SQL/89(FIPS127-1)120頁(yè)1989年SQL/92622頁(yè)1992年SQL991700頁(yè)1999年SQL20032003年現(xiàn)狀:大部分DBMS產(chǎn)品都支持SQL,成為操作數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言。有方言,支持程度不同2第2頁(yè),共18頁(yè),2023年,2月20日,星期一綜合統(tǒng)一

2.SQL語(yǔ)言的特點(diǎn)及功能概述①集數(shù)據(jù)定義語(yǔ)言(DDL),數(shù)據(jù)操縱語(yǔ)言(DML),數(shù)據(jù)控制語(yǔ)言(DCL)功能于一體。②可以獨(dú)立完成數(shù)據(jù)庫(kù)生命周期中的全部活動(dòng):定義關(guān)系模式,插入數(shù)據(jù),建立數(shù)據(jù)庫(kù);對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行查詢和更新;數(shù)據(jù)庫(kù)重構(gòu)和維護(hù);數(shù)據(jù)庫(kù)安全性、完整性控制等③用戶數(shù)據(jù)庫(kù)投入運(yùn)行后,可根據(jù)需要隨時(shí)逐步修改模式,不影響數(shù)據(jù)的運(yùn)行。④數(shù)據(jù)操作符統(tǒng)一高度非過(guò)程化①非關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操縱語(yǔ)言“面向過(guò)程”,必須制定存取路徑。②SQL只要提出“做什么”,無(wú)須了解存取路徑。③存取路徑的選擇以及SQL的操作過(guò)程由系統(tǒng)自動(dòng)完成。一、SQL語(yǔ)言概述3第3頁(yè),共18頁(yè),2023年,2月20日,星期一面向集合的操作方式

2.SQL語(yǔ)言的特點(diǎn)及功能概述①非關(guān)系數(shù)據(jù)模型采用面向記錄的操作方式,操作對(duì)象是一條記錄②

SQL采用集合操作方式:操作對(duì)象、查找結(jié)果可以是元組的集合;一次插入、刪除、更新操作的對(duì)象可以是元組的集合以同一種語(yǔ)法結(jié)構(gòu)提供多種使用方式①SQL是獨(dú)立的語(yǔ)言:能夠獨(dú)立地用于聯(lián)機(jī)交互的使用方式②

SQL又是嵌入式語(yǔ)言:SQL能夠嵌入到高級(jí)語(yǔ)言(例如C,C++,Java)程序中,供設(shè)計(jì)程序時(shí)使用以同一種語(yǔ)法語(yǔ)言簡(jiǎn)潔,易學(xué)易用一、SQL語(yǔ)言概述SQL功能極強(qiáng),完成核心功能只用了9個(gè)動(dòng)詞:4第4頁(yè),共18頁(yè),2023年,2月20日,星期一SQL支持關(guān)系數(shù)據(jù)庫(kù)三級(jí)模式結(jié)構(gòu)

3.SQL的基本概念SQL視圖2視圖1基本表2基本表1基本表3基本表4存儲(chǔ)文件2存儲(chǔ)文件1外模式模式內(nèi)模式一、SQL語(yǔ)言概述5第5頁(yè),共18頁(yè),2023年,2月20日,星期一

3.SQL的基本概念①基本表:本身獨(dú)立存在的表。SQL中一個(gè)關(guān)系就對(duì)應(yīng)一個(gè)基本表;一個(gè)(或多個(gè))基本表對(duì)應(yīng)一個(gè)存儲(chǔ)文件;一個(gè)表可以帶若干索引。②存儲(chǔ)文件:邏輯結(jié)構(gòu)組成了關(guān)系數(shù)據(jù)庫(kù)的內(nèi)模式;物理結(jié)構(gòu)是任意的,對(duì)用戶透明。③視圖:從一個(gè)或幾個(gè)基本表導(dǎo)出的表。數(shù)據(jù)庫(kù)中只存放視圖的定義而不存放視圖對(duì)應(yīng)的數(shù)據(jù);視圖是一個(gè)虛表;用戶可以在視圖上再定義視圖。一、SQL語(yǔ)言概述6第6頁(yè),共18頁(yè),2023年,2月20日,星期一二、SQL的數(shù)據(jù)類型SQL的數(shù)據(jù)類型SQL中域的概念用數(shù)據(jù)類型來(lái)實(shí)現(xiàn)定義表的屬性時(shí)需要指明其數(shù)據(jù)類型及長(zhǎng)度:選用哪種數(shù)據(jù)類型、取值范圍、要做哪些運(yùn)算等日期,包含年、月、日,格式為YYYY-MM-DDHH:MM:SSDATETIME浮點(diǎn)數(shù),精度至少為n位數(shù)字FLOAT(n)取決于機(jī)器精度的浮點(diǎn)數(shù)REAL由p位數(shù)字(不包括符號(hào)、小數(shù)點(diǎn))組成,小數(shù)后面有q.0≤q≤p≤15decimal(p,q)短整數(shù)SMALLINT長(zhǎng)整數(shù)(也可以寫(xiě)作INTEGER)INT最大長(zhǎng)度為n的變長(zhǎng)字符串VARCHAR(n)長(zhǎng)度為n的定長(zhǎng)字符串CHAR(n)含義數(shù)據(jù)類型SQLServer支持的數(shù)據(jù)類型7第7頁(yè),共18頁(yè),2023年,2月20日,星期一三、數(shù)據(jù)定義SQL的數(shù)據(jù)定義功能:模式定義、表定義、視圖和索引的定義SQL的數(shù)據(jù)定義語(yǔ)句定義基本表①基本表:本身獨(dú)立存在的表。SQL中一個(gè)關(guān)系就對(duì)應(yīng)一個(gè)基本表;一個(gè)(或多個(gè))基本表對(duì)應(yīng)一個(gè)存儲(chǔ)文件;一個(gè)表可以帶若干索引。

1.基本表的定義、刪除DDL8第8頁(yè),共18頁(yè),2023年,2月20日,星期一定義基本表CREATETABLE<表名>

(<列名><數(shù)據(jù)類型>[<列級(jí)完整性約束條件>][,<列名><數(shù)據(jù)類型>[<列級(jí)完整性約束條件>]]…[,<表級(jí)完整性約束條件>]);如果完整性約束條件涉及到該表的多個(gè)屬性列,則必須定義在表級(jí)上,否則既可以定義在列級(jí)也可以定義在表級(jí)。

1.基本表的定義、刪除例1

建立“學(xué)生”表Student,學(xué)號(hào)是主碼,姓名取值唯一。

CREATETABLEStudent (SnoCHAR(9)PRIMARYKEY,/*列級(jí)完整性約束條件*/SnameCHAR(20)UNIQUE,/*Sname取唯一值*/SsexCHAR(2),

SageSMALLINT,

SdeptCHAR(20));主碼三、數(shù)據(jù)定義9第9頁(yè),共18頁(yè),2023年,2月20日,星期一附:使用企業(yè)管理器創(chuàng)建惟一約束。操作步驟如下:①打開(kāi)企業(yè)管理器,選擇要設(shè)置惟一約束的表,這里選擇mytable表,并單擊鼠標(biāo)右鍵選擇“設(shè)計(jì)表”命令。②在設(shè)計(jì)表窗口中單擊快捷工具欄中的按鈕,打開(kāi)“屬性”對(duì)話框。③在“屬性”對(duì)話框中選擇“索引/鍵”選項(xiàng)卡,然后單擊“新建”按鈕,在“列名”下拉列表中選擇要?jiǎng)?chuàng)建為惟一約束的列名稱,并選中“創(chuàng)建UNIQUE”復(fù)選框和“約束”單選按鈕。最后在“索引名”文本框中輸入惟一約束名稱即可。④關(guān)閉“屬性”對(duì)話框,并單擊工具欄中的按鈕保存設(shè)置定義基本表

1.基本表的定義、刪除三、數(shù)據(jù)定義10第10頁(yè),共18頁(yè),2023年,2月20日,星期一定義基本表

1.基本表的定義、刪除例2

建立一個(gè)“課程”表CourseCREATETABLECourse(CnoCHAR(4)PRIMARYKEY,

CnameCHAR(40),

CpnoCHAR(4),

CcreditSMALLINT,

FOREIGNKEY(Cpno)REFERENCESCourse(Cno));先修課

Cpno是外碼被參照表是Course被參照列是Cno三、數(shù)據(jù)定義11第11頁(yè),共18頁(yè),2023年,2月20日,星期一定義基本表

1.基本表的定義、刪除例3

建立一個(gè)“學(xué)生選課”表SC CREATETABLESC (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*/ );三、數(shù)據(jù)定義12第12頁(yè),共18頁(yè),2023年,2月20日,星期一刪除基本表

1.基本表的定義、刪除DROPTABLE<表名>;刪除表是有限制的。欲刪除的基本表不能被其他表的約束所引用,如果存在依賴該表的對(duì)象,則此表不能被刪除例4

刪除Student表

DROPTABLEStudent;例5

若表上建有視圖不能刪除DROPTABLEStudent;--ERROR:cannotdroptableStudentbecauseotherobjectsdependonitCREATEVIEWIS_Student AS SELECTSno,Sname,Sage FROMStudent WHERESdept='IS';三、數(shù)據(jù)定義13第13頁(yè),共18頁(yè),2023年,2月20日,星期一修改基本表

2.修改基本表ALTERTABLE<表名>[ADD<新列名><數(shù)據(jù)類型>[完整性約束]][DROP<完整性約束名>][ALTERCOLUMN<列名><數(shù)據(jù)類型>][ADD完整性約束定義]

;例6向Student表增加“入學(xué)時(shí)間”列,其數(shù)據(jù)類型為日期型。

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

例7將年齡的數(shù)據(jù)類型由字符型(假設(shè)原來(lái)的數(shù)據(jù)類型是字符型)改為整數(shù)。

ALTERTABLEStudentALTERCOLUMNSageINT;例8增加課程名稱必須取唯一值的約束條件。

ALTERTABLECourseADDUNIQUE(Cname);三、數(shù)據(jù)定義14第14頁(yè),共18頁(yè),2023年,2月20日,星期一

3.數(shù)據(jù)完整性完整性約束條件的作用對(duì)象①列級(jí)約束②元組完整性約束③關(guān)系約束約束定義①列取值非空約束

<列名><類型>NOTNULL

例:snamechar(10)NOTNULL②表主碼約束:在定義列時(shí)定義主碼(僅用于單列主碼)列定義PRIMARYKEY例:SNOchar(7)PRIMARYKEY在定義完列時(shí)定義主碼(用于單列或多列主碼)PRIMARYKEY(<列名序列>)

例:PRIMARYKEY(SNO)PRIMARYKEY(SNO,CNO)三、數(shù)據(jù)定義15第15頁(yè),共18頁(yè),2023年,2月20日,星期一③外碼引用約束:指明本表外碼列引用的表及表中的主碼列。[FOREIGNKEY(<本表列名>)]REFERENCES<外表名>(<外表主碼列名>)例:FOREIGNKEY(sno)REFERENCES學(xué)生表(sno)④默認(rèn)值約束格式:DEFAULT默認(rèn)值例:定義系的默認(rèn)值為“計(jì)算機(jī)系”。

DEFAULT‘計(jì)算機(jī)系’⑤CHECK約束格式:CHECK(約束表達(dá)式)例:定義成績(jī)大于等于0。

CHECK(grade>=0)

3.數(shù)據(jù)完整性約束定義三、數(shù)據(jù)定義16第16頁(yè),共18頁(yè),2023年,2月20日,星期一⑥UNIQUE約束在列級(jí)約束定義(僅用于單列約束)列定義UNIQUE例:SNAMEchar(7)UNIQUE在表級(jí)約束定義(用于單列或多列組合約束)UNIQUE(<列名序列>)例:UNIQUE(SNO,CNO)CREATETABLEStudent(Snochar(7)PRIMARYKEY,Snamechar(10)NOTNULL,Ssexchar(2)CHECK(Ssex='男'ORSsex='女'),SagetinyintCHECK(Sage>=15ANDSage<=45),Sdeptchar(20)DEFAULT'計(jì)算機(jī)系')

3.數(shù)據(jù)完整性約束定義三、數(shù)據(jù)定義練習(xí):將student表增加入學(xué)時(shí)間列,并設(shè)定默認(rèn)值;將性別列加上取值男或女的約束,并設(shè)定為非空。將course表中的Cname設(shè)定為唯一的。17第17頁(yè),共18頁(yè),2023年,2月20日,星期一1.學(xué)生關(guān)系模式為R1(學(xué)號(hào),姓名,性別,班號(hào)…),其

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論