版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第三講語言基礎(chǔ)及數(shù)據(jù)定義功能1第一頁,共十八頁,2022年,8月28日
1.SQL語言的發(fā)展一、SQL語言概述SQL(StructuredQueryLanguage)結(jié)構(gòu)化查詢語言,是關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。SQL是一個(gè)通用的、功能極強(qiáng)的關(guān)系數(shù)據(jù)庫語言。
標(biāo)準(zhǔn)大致頁數(shù)發(fā)布日期SQL/861986.10SQL/89(FIPS127-1)120頁1989年SQL/92622頁1992年SQL991700頁1999年SQL20032003年現(xiàn)狀:大部分DBMS產(chǎn)品都支持SQL,成為操作數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。有方言,支持程度不同2第二頁,共十八頁,2022年,8月28日綜合統(tǒng)一
2.SQL語言的特點(diǎn)及功能概述①集數(shù)據(jù)定義語言(DDL),數(shù)據(jù)操縱語言(DML),數(shù)據(jù)控制語言(DCL)功能于一體。②可以獨(dú)立完成數(shù)據(jù)庫生命周期中的全部活動(dòng):定義關(guān)系模式,插入數(shù)據(jù),建立數(shù)據(jù)庫;對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行查詢和更新;數(shù)據(jù)庫重構(gòu)和維護(hù);數(shù)據(jù)庫安全性、完整性控制等③用戶數(shù)據(jù)庫投入運(yùn)行后,可根據(jù)需要隨時(shí)逐步修改模式,不影響數(shù)據(jù)的運(yùn)行。④數(shù)據(jù)操作符統(tǒng)一高度非過程化①非關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操縱語言“面向過程”,必須制定存取路徑。②SQL只要提出“做什么”,無須了解存取路徑。③存取路徑的選擇以及SQL的操作過程由系統(tǒng)自動(dòng)完成。一、SQL語言概述3第三頁,共十八頁,2022年,8月28日面向集合的操作方式
2.SQL語言的特點(diǎn)及功能概述①非關(guān)系數(shù)據(jù)模型采用面向記錄的操作方式,操作對(duì)象是一條記錄②
SQL采用集合操作方式:操作對(duì)象、查找結(jié)果可以是元組的集合;一次插入、刪除、更新操作的對(duì)象可以是元組的集合以同一種語法結(jié)構(gòu)提供多種使用方式①SQL是獨(dú)立的語言:能夠獨(dú)立地用于聯(lián)機(jī)交互的使用方式②
SQL又是嵌入式語言:SQL能夠嵌入到高級(jí)語言(例如C,C++,Java)程序中,供設(shè)計(jì)程序時(shí)使用以同一種語法語言簡(jiǎn)潔,易學(xué)易用一、SQL語言概述SQL功能極強(qiáng),完成核心功能只用了9個(gè)動(dòng)詞:4第四頁,共十八頁,2022年,8月28日SQL支持關(guān)系數(shù)據(jù)庫三級(jí)模式結(jié)構(gòu)
3.SQL的基本概念SQL視圖2視圖1基本表2基本表1基本表3基本表4存儲(chǔ)文件2存儲(chǔ)文件1外模式模式內(nèi)模式一、SQL語言概述5第五頁,共十八頁,2022年,8月28日
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ù)庫的內(nèi)模式;物理結(jié)構(gòu)是任意的,對(duì)用戶透明。③視圖:從一個(gè)或幾個(gè)基本表導(dǎo)出的表。數(shù)據(jù)庫中只存放視圖的定義而不存放視圖對(duì)應(yīng)的數(shù)據(jù);視圖是一個(gè)虛表;用戶可以在視圖上再定義視圖。一、SQL語言概述6第六頁,共十八頁,2022年,8月28日二、SQL的數(shù)據(jù)類型SQL的數(shù)據(jù)類型SQL中域的概念用數(shù)據(jù)類型來實(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ù)(也可以寫作INTEGER)INT最大長(zhǎng)度為n的變長(zhǎng)字符串VARCHAR(n)長(zhǎng)度為n的定長(zhǎng)字符串CHAR(n)含義數(shù)據(jù)類型SQLServer支持的數(shù)據(jù)類型7第七頁,共十八頁,2022年,8月28日三、數(shù)據(jù)定義SQL的數(shù)據(jù)定義功能:模式定義、表定義、視圖和索引的定義SQL的數(shù)據(jù)定義語句定義基本表①基本表:本身獨(dú)立存在的表。SQL中一個(gè)關(guān)系就對(duì)應(yīng)一個(gè)基本表;一個(gè)(或多個(gè))基本表對(duì)應(yīng)一個(gè)存儲(chǔ)文件;一個(gè)表可以帶若干索引。
1.基本表的定義、刪除DDL8第八頁,共十八頁,2022年,8月28日定義基本表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第九頁,共十八頁,2022年,8月28日附:使用企業(yè)管理器創(chuàng)建惟一約束。操作步驟如下:①打開企業(yè)管理器,選擇要設(shè)置惟一約束的表,這里選擇mytable表,并單擊鼠標(biāo)右鍵選擇“設(shè)計(jì)表”命令。②在設(shè)計(jì)表窗口中單擊快捷工具欄中的按鈕,打開“屬性”對(duì)話框。③在“屬性”對(duì)話框中選擇“索引/鍵”選項(xiàng)卡,然后單擊“新建”按鈕,在“列名”下拉列表中選擇要?jiǎng)?chuàng)建為惟一約束的列名稱,并選中“創(chuàng)建UNIQUE”復(fù)選框和“約束”單選按鈕。最后在“索引名”文本框中輸入惟一約束名稱即可。④關(guān)閉“屬性”對(duì)話框,并單擊工具欄中的按鈕保存設(shè)置定義基本表
1.基本表的定義、刪除三、數(shù)據(jù)定義10第十頁,共十八頁,2022年,8月28日定義基本表
1.基本表的定義、刪除例2
建立一個(gè)“課程”表CourseCREATETABLECourse(CnoCHAR(4)PRIMARYKEY,
CnameCHAR(40),
CpnoCHAR(4),
CcreditSMALLINT,
FOREIGNKEY(Cpno)REFERENCESCourse(Cno));先修課
Cpno是外碼被參照表是Course被參照列是Cno三、數(shù)據(jù)定義11第十一頁,共十八頁,2022年,8月28日定義基本表
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第十二頁,共十八頁,2022年,8月28日刪除基本表
1.基本表的定義、刪除DROPTABLE<表名>;刪除表是有限制的。欲刪除的基本表不能被其他表的約束所引用,如果存在依賴該表的對(duì)象,則此表不能被刪除例4
刪除Student表
DROPTABLEStudent;例5
若表上建有視圖不能刪除DROPTABLEStudent;--ERROR:cannotdroptableStudentbecauseotherobjectsdependonitCREATEVIEWIS_Student AS SELECTSno,Sname,Sage FROMStudent WHERESdept='IS';三、數(shù)據(jù)定義13第十三頁,共十八頁,2022年,8月28日修改基本表
2.修改基本表ALTERTABLE<表名>[ADD<新列名><數(shù)據(jù)類型>[完整性約束]][DROP<完整性約束名>][ALTERCOLUMN<列名><數(shù)據(jù)類型>][ADD完整性約束定義]
;例6向Student表增加“入學(xué)時(shí)間”列,其數(shù)據(jù)類型為日期型。
ALTERTABLEStudentADDS_entranceDATE;不論基本表中原來是否已有數(shù)據(jù),新增加的列一律為空值。
例7將年齡的數(shù)據(jù)類型由字符型(假設(shè)原來的數(shù)據(jù)類型是字符型)改為整數(shù)。
ALTERTABLEStudentALTERCOLUMNSageINT;例8增加課程名稱必須取唯一值的約束條件。
ALTERTABLECourseADDUNIQUE(Cname);三、數(shù)據(jù)定義14第十四頁,共十八頁,2022年,8月28日
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第十五頁,共十八頁,2022年,8月28日③外碼引用約束:指明本表外碼列引用的表及表中的主碼列。[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第十六頁,共十八頁,2022年,8月28日⑥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第十七頁,共十八頁,2022年,8月28日1.學(xué)生關(guān)系模式為R1(學(xué)號(hào),姓名,性別,班號(hào)…),其中學(xué)號(hào)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026安徽馬鞍山市疾病預(yù)防控制中心招聘博士研究生1人備考題庫及參考答案詳解1套
- 銀行資產(chǎn)保全制度
- 罕見腫瘤的個(gè)體化治療生活質(zhì)量干預(yù)措施與患者獲益
- 聯(lián)合會(huì)財(cái)務(wù)制度
- 2025“才聚齊魯成就未來”山東通匯資本投資集團(tuán)有限公司招聘?jìng)淇碱}庫及完整答案詳解一套
- 罕見腫瘤的個(gè)體化治療精準(zhǔn)醫(yī)療策略實(shí)踐與未來-1-1
- 財(cái)務(wù)制度梳理登記表范本
- 從零開始建立財(cái)務(wù)制度
- 公益單位財(cái)務(wù)制度
- 監(jiān)理公司財(cái)務(wù)制度大全
- 廣東省佛山市順德區(qū)2026屆高一數(shù)學(xué)第一學(xué)期期末檢測(cè)模擬試題含解析
- 2026上海碧海金沙投資發(fā)展有限公司社會(huì)招聘?jìng)淇碱}庫及答案1套
- 二十屆四中全會(huì)測(cè)試題及參考答案
- 公司電腦使用規(guī)范制度
- 2026重慶水利電力職業(yè)技術(shù)學(xué)院高層次人才招聘筆試參考題庫及答案解析
- 特種作業(yè)培訓(xùn)課件模板
- 陶瓷工藝品彩繪師崗后測(cè)試考核試卷含答案
- 廣西壯族自治區(qū)工業(yè)和信息化廳直屬部分科研事業(yè)單位2025年度公開招聘工作人員備考題庫參考答案詳解
- 2026年及未來5年市場(chǎng)數(shù)據(jù)中國(guó)超細(xì)銅粉行業(yè)發(fā)展趨勢(shì)及投資前景預(yù)測(cè)報(bào)告
- (新教材)2026年人教版八年級(jí)下冊(cè)數(shù)學(xué) 21.2.2 平行四邊形的判定 21.2.3 三角形的中位線 課件
- 吞咽障礙患者誤吸的預(yù)防與管理方案
評(píng)論
0/150
提交評(píng)論