




已閱讀5頁,還剩62頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第三章關(guān)系數(shù)據(jù)庫語言SQL,本章提綱:一.SQL概述(3.1)二.SQL的功能數(shù)據(jù)定義功能(3.2)數(shù)據(jù)查詢功能(3.3)數(shù)據(jù)修改功能(3.4)數(shù)據(jù)控制功能(第6,7章)三.視圖(3.5),目錄*,3.1SQL概述3.1.1SQL產(chǎn)生與標(biāo)準(zhǔn)3.1.2SQL功能與組成3.1.3語句類型與數(shù)據(jù)類型3.2數(shù)據(jù)定義3.3數(shù)據(jù)查詢3.4數(shù)據(jù)修改3.5視圖管理,SQL的產(chǎn)生與標(biāo)準(zhǔn),什么是SQL?StructuredQueryLanguage(結(jié)構(gòu)化查詢語言)的縮寫SQL是一種數(shù)據(jù)庫語言提供了對關(guān)系數(shù)據(jù)庫的定義、操縱(查詢和修改)、控制等功能SQL是關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言主流的關(guān)系數(shù)據(jù)庫管理系統(tǒng)軟件,雖然提供的(用戶與數(shù)據(jù)庫交互用的)數(shù)據(jù)庫語言各有不同,但都要遵循這一標(biāo)準(zhǔn)。不管是Oracle的PL/SQL,還是SQLServer的Transact-SQL,它們與標(biāo)準(zhǔn)SQL都是大同小異的。SQL的歷史1974年,由Boyce和Chamber提出1975-1979年,在SystemR上實現(xiàn),由IBM的SanJose研究室研制,稱為Sequel,SQL的產(chǎn)生與標(biāo)準(zhǔn),SQL的標(biāo)準(zhǔn)化相關(guān)組織ANSI(AmericanNationalStandardInstitute)美國國家標(biāo)準(zhǔn)協(xié)會ISO(InternationalOrganizationforStandardization)國際標(biāo)準(zhǔn)化組織相關(guān)版本SQL-86:“數(shù)據(jù)庫語言SQL”,確立了SQL(擊敗其它競爭對手)成為關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。SQL-89:“具有完整性增強的數(shù)據(jù)庫語言SQL”,增加了對完整性約束的支持,SQL的產(chǎn)生與標(biāo)準(zhǔn),SQL-92(SQL-2)是SQL-89的超集,增加了許多新特性,如新的數(shù)據(jù)類型,更豐富的數(shù)據(jù)操作,更強的完整性、安全性支持等。SQL-99(SQL-3)增加了對對象模型的支持SQL-2003標(biāo)志著傳統(tǒng)關(guān)系模型到非關(guān)系模型(對象模型和XML模型)的第二次重要擴充,即本章學(xué)習(xí)的SQL,SQL的特點,SQL的特點1.綜合統(tǒng)一性功能的統(tǒng)一:提供數(shù)據(jù)定義、操縱和控制功能,集DDL、DML和DCL等語言于一體。操作過程的統(tǒng)一:都是對關(guān)系進行操作,包括操作對象和結(jié)果2.高度非過程化用戶只需提出“做什么”,而無須說明“怎么做”,不必介入具體的操作實現(xiàn)過程(由系統(tǒng)自動處理)3.面向集合的操作方式一次一集合:每次操作的對象和結(jié)果都是關(guān)系(記錄集合)與之相反的是“一次一記錄”:每次操作只能處理一條記錄,要通過循環(huán)等手段才能處理一個記錄集合,SQL的特點,4.兩種使用方式,統(tǒng)一的語法結(jié)構(gòu)自含式SQL:數(shù)據(jù)庫管理系統(tǒng)自帶,供用戶與數(shù)據(jù)庫聯(lián)機交互使用,所以又稱為聯(lián)機式SQL。嵌入式SQL:嵌入到高級語言里面,供程序員用這些高級語言開發(fā)數(shù)據(jù)庫應(yīng)用程序時使用。5.語言簡潔,易學(xué)易用,SQL規(guī)定的三級模式結(jié)構(gòu),數(shù)據(jù)庫的三級模式物理模式整體數(shù)據(jù)庫的物理結(jié)構(gòu)描述所有數(shù)據(jù)是如何在硬盤等介質(zhì)上存儲的邏輯模式整體數(shù)據(jù)庫的邏輯結(jié)構(gòu)描述所有數(shù)據(jù)的結(jié)構(gòu)及所有數(shù)據(jù)間的聯(lián)系子模式部分?jǐn)?shù)據(jù)庫的邏輯結(jié)構(gòu)描述某個特定用戶能看到的那一部分?jǐn)?shù)據(jù)的結(jié)構(gòu)及它們之間的聯(lián)系,SQL規(guī)定的三級模式結(jié)構(gòu),SQL中所規(guī)定的數(shù)據(jù)庫結(jié)構(gòu)(三級模式結(jié)構(gòu)),SQL的數(shù)據(jù)類型,SQL-92標(biāo)準(zhǔn)中規(guī)定的數(shù)據(jù)類型char(n):長度固定為n的字符串varchar(n):可變長度的字符串,最大長度為nint:整數(shù)smallint:小整數(shù)numeric(p,q):總共不多于p位,小數(shù)點右邊不多于q位的定點數(shù)real:浮點數(shù)doubleprecision:雙精度浮點數(shù)float(n):精度至少為n位的浮點數(shù)date:日期(年,月,日)time:時間(小時,分,秒)interval:兩個date或time類型數(shù)據(jù)之間的差,SQL的功能,SQL的功能和相應(yīng)的操作語句,SQL的功能,SQL的功能和相應(yīng)的操作語句,SQL的功能,SQL的功能和相應(yīng)的操作語句,目錄*,3.1SQL概述3.2數(shù)據(jù)定義3.2.1SQL模式定義3.2.2基本表定義3.2.3索引定義3.3數(shù)據(jù)查詢3.4數(shù)據(jù)修改3.5視圖管理,SQL的數(shù)據(jù)定義功能,SQL提供各種對象的定義數(shù)據(jù)庫/模式SQL中,一個關(guān)系數(shù)據(jù)庫(的模式)可以稱為SQL模式或模式。包含為滿足應(yīng)用需要而建立的多個基本表、視圖、索引等。關(guān)系視圖索引用戶域(數(shù)據(jù)類型),SQL的數(shù)據(jù)定義功能,模式的定義,新建模式格式createschema模式名authorization所有者用戶名示例createschemaClass_schemaauthorizationDBA撤銷模式格式dropschema模式名cascade|restrict示例dropschemaClass_dbcascade,數(shù)據(jù)庫的定義,新建數(shù)據(jù)庫格式createdatabase數(shù)據(jù)庫名示例createdatabaseClass_db撤銷數(shù)據(jù)庫格式dropdatabase數(shù)據(jù)庫名示例dropdatabaseClass_db,(基本表)關(guān)系的定義,新建(基本表)關(guān)系命令格式createtable關(guān)系名(屬性名域default缺省值null|notnull,屬性名域default缺省值null|notnull,primarykey(屬性名,屬性名),foreignkey(屬性名,屬性名)references被參照關(guān)系名(屬性名,屬性名),check(條件)格式:A表示A出現(xiàn)0或1次;A表示A出現(xiàn)0或1或多次,關(guān)系的屬性,1或多個,關(guān)系的主碼,0或1個,關(guān)系的外部碼,0或多個,每一個元組(內(nèi)部屬性值)都必須滿足的約束條件(插入或更新元組時檢查),(基本表)關(guān)系的定義,例:createtableS(SNOVARCHAR(4),SNAMEPERSON-NAMEnotnull,AGESMALLINTdefault22,SEXVARCHAR(1),primarykey(SNO),check(AGE0),S,(基本表)關(guān)系的定義,例:createtableC(CNOVARCHAR(4),CNAMEVARCHAR(10)notnull,TEACHERVARCHAR(8),primarykey(CNO),),S,C,(基本表)關(guān)系的定義,例:createtableSC(SNOVARCHAR(4),CNOVARCHAR(4),SCOREINT,primarykey(SNO,CNO),foreignkey(SNO)referencesS(SNO),foreignkey(CNO)referencesC(CNO),check(SCOREISNULL)OR(SCOREBETWEEN0AND100),S,C,SC,(基本表)關(guān)系的定義,修改關(guān)系(的結(jié)構(gòu)如屬性等,而非內(nèi)容如元組等)命令格式altertable關(guān)系名add屬性名域default缺省值notnulldrop屬性名modify屬性名新域default新缺省值notnull例altertableSaddDEPTVARCHAR(20)notnullaltertableSCmodifyRESULTSMALLINT,(基本表)關(guān)系的定義,撤銷關(guān)系命令格式droptable關(guān)系名示例droptableSCWarning!:撤銷關(guān)系的定義后,關(guān)系的結(jié)構(gòu)(字段)和內(nèi)容(數(shù)據(jù)記錄)都不再存在。相關(guān)索引,由它導(dǎo)出的視圖也都可能被連帶撤銷。,索引的定義,新建索引格式createuniqueclusterindex索引名on表名(屬性名,屬性名,)unique表示唯一索引;cluster表示聚簇索引示例createuniqueindexindex_on_s_s#onS(S#)撤銷索引格式dropindex索引名示例dropindexindex_on_s_s#,目錄*,3.1SQL概述3.2數(shù)據(jù)定義3.3數(shù)據(jù)查詢3.4數(shù)據(jù)修改3.5視圖管理,SQL的數(shù)據(jù)查詢功能,統(tǒng)一的查詢語句:Select語句基本結(jié)構(gòu)Select子句(投影)From子句(笛卡兒積)Where子句(選擇)匯合基本結(jié)構(gòu)匯合多個基本結(jié)構(gòu)查詢出的結(jié)果(集合運算)擴展基本結(jié)構(gòu)增加GroupBy子句(聚集運算)增加OrderBy子句(對結(jié)果排序)嵌套子查詢連接關(guān)系,Select查詢的基本結(jié)構(gòu),基本結(jié)構(gòu):SelectA1,A2,AnFromR1,R2,RmWherePA1,A2,An:屬性R1,R2,Rm:關(guān)系P:條件(布爾表達式)近似等價關(guān)系運算A1,A2,An(p(R1R2Rm)運算和次序From(笛卡兒積)Where(選擇)Select(投影),Select子句,作用:從(From子句列出的)關(guān)系中選出指定屬性近似于投影運算應(yīng)用示例:S:學(xué)生關(guān)系問:所有學(xué)生的姓名和年齡?,Select姓名,年齡FromS,S,保留指定的屬性,Select子句,要點屬性列表中,可以用表達式來構(gòu)造的新屬性相當(dāng)于廣義投影運算例S:學(xué)生關(guān)系問:每個學(xué)生的出生年份,S,Select姓名,2013年齡FromS,Select子句,用表達式構(gòu)造的新屬性無屬性名,但可采用以下方式命名表達式as屬性名原有屬性也可用如下方式重新命名舊屬性名as新屬性名,S,Select姓名as學(xué)生姓名,2013年齡as出生年份FromS,Select子句,要點如果列出的關(guān)系有多個,且有同名屬性。則指定這些同名屬性時,必須加關(guān)系名前綴:關(guān)系名.屬性名。其它屬性可加可不加以下SQL正確么?如正確,結(jié)果關(guān)系的屬性名是什么?Select姓名,性別,成績FromR,SSelectR.姓名,S.姓名,S.性別FromR,S,S,R,Select子句,要點在屬性列表中,*號表示所有關(guān)系的所有屬性,關(guān)系名.*表示某個關(guān)系的所有屬性思考,下列SQL的結(jié)果包含哪些屬性?,Select*FromS,R,S,R,SelectS.*,R.成績FromS,R,思考,select子句等價于投影運算么?,Select子句,要點Select后面,屬性列表前,可加上關(guān)鍵字all或者distinctall關(guān)鍵字表明結(jié)果中不消去重復(fù)元組distinct關(guān)鍵字表明結(jié)果中消去重復(fù)元組沒說明all或distinct的情況下,默認(rèn)是all,即不消去重復(fù)行,Selectall課程FromR,R,Selectdistinct課程FromR,思考,select子句等價于投影運算么?selectdistinct等價于投影。select或者selectall都未消去重復(fù),Where子句,作用:選出滿足條件的行等價于選擇運算例:S:學(xué)生關(guān)系問:所有男學(xué)生的信息?,S,篩選滿足條件的行,SelectFromSWhere性別=男,Where子句,在Where子句的條件中可能出現(xiàn)的運算符號比較運算符、=、邏輯運算符and,or,not范圍運算格式1:between下界and上界(下界上界)格式2:notbetween下界and上界例1:年齡between20and23例2:年齡between23and20,Where子句,集合運算:格式1:in集合;格式2:notin集合例:姓名in小陳,小李例:姓名notin小陳,小李匹配運算格式:like匹配串;notlike匹配串是轉(zhuǎn)義字符例1:姓名like陳%例2:姓名like陳_例3:內(nèi)容like%100%正確%,Where子句,例:S:學(xué)生關(guān)系問:所有學(xué)生的姓名和出生年份?,S,Select姓名,2013年齡as出生年份FromS,Where子句,例:S:學(xué)生關(guān)系問:所有91年之前(不含91年)出生的學(xué)生姓名和出生年份?,S,Select姓名,2013年齡as出生年份FromSWhere出生年份1991,Select姓名,2013年齡as出生年份FromSWhere2013年齡85,OrderBy子句,格式(出現(xiàn)在最最后面)SelectA1,A2,AnFromR1,R2,RmWherePGroupBy屬性1,屬性2,Having分組限定條件QOrderBy屬性1ascdesc,屬性2ascdesc,OrderBy子句的作用:在Select子句得出結(jié)果后,對結(jié)果進行排序先按屬性1的值,升序(asc)或降序(desc)排列,缺省是升序;屬性1的值相同時,再按屬性2值升序或降序排列,OrderBy子句,例R:選修關(guān)系問:從高到低列出物理課程的成績,R,Select姓名,成績FromSWhere課程=物理OrderBy成績desc,總結(jié),Select語句的運算“
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程經(jīng)濟優(yōu)化方法試題及答案
- 2025年經(jīng)濟法概論不同考點試題及答案
- 工程管理重要試題及答案解析
- 2025市政工程考試科目深度解析與試題及答案
- 復(fù)習(xí)內(nèi)容覆蓋水利水電考試試題及答案
- 2025年公司項目負責(zé)人安全培訓(xùn)考試試題及完整答案1套
- 2025新員工崗前安全培訓(xùn)考試試題帶答案(模擬題)
- 2025年部門級安全培訓(xùn)考試試題附答案【預(yù)熱題】
- 2025年市政工程知識測試題及答案
- 市政工程考試典型案例試題及答案
- 園林植物養(yǎng)護管理 項目4 任務(wù)4.5行道樹整形修剪學(xué)習(xí)資料
- 2025年高考作文備考訓(xùn)練:歌曲《世界贈予我的》
- 四年級下冊課外閱讀(含答案)
- 美術(shù)創(chuàng)作行業(yè)藝術(shù)品損壞免責(zé)協(xié)議
- 消費心理學(xué)-理論、案例與實踐-綜合練習(xí)題及答案
- 《深度解析張旭課程》課件
- 家裝主材下單安裝流程
- 供水管網(wǎng)漏損更新改造工程(一期)可行性研究報告
- 【重慶】2024年度重慶房地產(chǎn)市場研究報告正式版
- 課題申報參考:產(chǎn)教融合背景下護理專業(yè)技能人才“崗課賽證”融通路徑研究
- 測繪設(shè)備投入計劃
評論
0/150
提交評論