版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
會(huì)計(jì)學(xué)1第講數(shù)據(jù)定義3.1SQL概述SQL的產(chǎn)生和發(fā)展1974年Boyce和Chamberlin提出1975~1979年在IBM的SystemR上實(shí)現(xiàn)1986年ANSI的數(shù)據(jù)庫(kù)委員會(huì)批準(zhǔn)了SQL作為關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言的美國(guó)標(biāo)準(zhǔn)1987年ISO也通過(guò)該標(biāo)準(zhǔn)第1頁(yè)/共46頁(yè)3.1SQL概述SQL的特點(diǎn)1.綜合統(tǒng)一2.高度非過(guò)程化3.面向集合的操作方式4.以同一種語(yǔ)法結(jié)構(gòu)提供兩種使用方法5.語(yǔ)言簡(jiǎn)潔,易學(xué)易用第2頁(yè)/共46頁(yè)第3頁(yè)/共46頁(yè)SQL的基本概念支持SQL的RDBMS支持關(guān)系數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu)。第4頁(yè)/共46頁(yè)3.2學(xué)生-課程數(shù)據(jù)庫(kù)包括以下三個(gè)表:學(xué)生表:Student(Sno,Sname,Ssex,Sage,Sdept)課程表:Course(Cno,Cname,Cpno,Ccredit)選課表:SC(Sno,Cno,Grade)各個(gè)表的數(shù)據(jù)示例參見(jiàn)課本P82第5頁(yè)/共46頁(yè)3.3數(shù)據(jù)定義
SQL的數(shù)據(jù)定義功能包括對(duì)基本表(table)、視圖(view)、和索引(index)的定義。第6頁(yè)/共46頁(yè)
<列名><數(shù)據(jù)類(lèi)型>[列級(jí)完整性約束條件][,<列名><數(shù)據(jù)類(lèi)型>[列級(jí)完整性約束條件]]
…[,<表級(jí)完整性約束條件>]<表名>:所要定義的基本表的名字<列名>:組成該表的各個(gè)屬性(列)<列級(jí)完整性約束條件>:涉及相應(yīng)屬性列的完整性約束條件<表級(jí)完整性約束條件>:涉及一個(gè)或多個(gè)屬性列的完整性約束條件1定義基本表的一般格式為:一、基本表的定義、修改與刪除CREATETABLE
<表名>();第7頁(yè)/共46頁(yè)1.整數(shù)數(shù)據(jù)類(lèi)型:依整數(shù)數(shù)值的范圍大小,有BIT,INT,SMALLINT。2.精確數(shù)值類(lèi)型:用來(lái)定義可帶小數(shù)部分的數(shù)字,有NUMERIC和DECIMAL,如:123.0、8000.563.近似浮點(diǎn)數(shù)值數(shù)據(jù)類(lèi)型:當(dāng)數(shù)值的位數(shù)太多時(shí),可用此數(shù)據(jù)類(lèi)型取其近似值,用FLOAT和REAL兩種。如:1.23E+10SQL支持的數(shù)據(jù)類(lèi)型
不同的DBMS支持的數(shù)據(jù)類(lèi)型不完全相同,其中使用最多的是字符型數(shù)據(jù)和數(shù)值型數(shù)據(jù)。例如,SQLSERVER中常用的數(shù)據(jù)類(lèi)型有:第8頁(yè)/共46頁(yè)SQL支持的數(shù)據(jù)類(lèi)型4.字符串?dāng)?shù)據(jù)類(lèi)型:用來(lái)表示字符串的字段。包括:CHAR,VARCHAR,TEXT三種5.日期時(shí)間數(shù)據(jù)類(lèi)型:用來(lái)表示日期與時(shí)間,依時(shí)間范圍與精確程度可分為DATETIME與SMALLDATETIME兩種。如:1998-06-0815:30:00第9頁(yè)/共46頁(yè)常用完整性約束實(shí)體完整性:PRIMARYKEY參照完整性:FOREIGNKEY…
REFERENCES…用戶(hù)定義完整性:NOTNULL:列值非空UNIQE:列值唯一CHECK:檢查列值是否滿(mǎn)足一個(gè)布爾表達(dá)式第10頁(yè)/共46頁(yè)例1
建立一個(gè)“學(xué)生”表Student,Student(Sno,Sname,Ssex,Sage,Sdept)其中學(xué)號(hào)不能為空,值是唯一的,并且姓名取值也唯一。
CREATETABLEStudent(SnoCHAR(5)NOTNULLUNIQUE,SnameCHAR(10)UNIQUE,SsexCHAR(2),SageSMALLINT,SdeptCHAR(20));第11頁(yè)/共46頁(yè)CREATETABLESC(SNOCHAR(5),CNOCHAR(5),SCORESMALLINT,PRIMARYKEY(SNO,CNO),F(xiàn)OREIGNKEYSNOREFERENCESS(SNO),FOREIGNKEYCNOREFERENCESC(CNO));練習(xí):解釋如下基本表的定義.第12頁(yè)/共46頁(yè)例2建立一個(gè)課程表Course,并標(biāo)明主碼和外碼。Course(Cno,Cname,Cpno,Ccredit)CREATETABLECourse(CnoCHAR(5)primarykey,CnameCHAR(20),CpnoCHAR(5),CcreditSMALLINT,ForeignkeyCpnoreferencesCourse(Cno));第13頁(yè)/共46頁(yè)2修改基本表ALTERTABLE<表名>[ADD<新列名><數(shù)據(jù)類(lèi)型>[完整性約束]][DROP<完整性約束名>][MODIFY<列名><數(shù)據(jù)類(lèi)型>];<表名>:要修改的基本表ADD子句:增加新列DROP子句:刪除指定的完整性約束條件MODIFY子句:用于修改列的數(shù)據(jù)類(lèi)型第14頁(yè)/共46頁(yè)例3向Student表增加“入學(xué)時(shí)間”列,其數(shù)據(jù)類(lèi)型為日期型。
ALTER
TABLEStudent
ADDScomeDATE;例4將Student表年齡的數(shù)據(jù)類(lèi)型改為短整數(shù)。ALTERTABLEStudentMODIFYSageSMALLINT;第15頁(yè)/共46頁(yè)DROPTABLE<表名>[RESTRICT\CASCADE];RESTRICT(缺省):該表的刪除有限制條件。如,該表不能被其他表的約束所引用,不能有視圖、觸發(fā)器、存儲(chǔ)過(guò)程。CASCADE:該表的刪除沒(méi)有限制條件。刪除基本表時(shí),相關(guān)依賴(lài)對(duì)象一起被刪除。
3刪除基本表例5刪除Student表
DROPTABLEStudent;不同數(shù)據(jù)庫(kù)產(chǎn)品在遵循SQL標(biāo)準(zhǔn)的基礎(chǔ)上具體實(shí)現(xiàn)細(xì)節(jié)和處理策略會(huì)與標(biāo)準(zhǔn)有差別。例如,P89第16頁(yè)/共46頁(yè)第17頁(yè)/共46頁(yè)二、索引的建立與刪除索引是基本表的目錄,建立索引是加快查詢(xún)速度的有效手段建立索引DBA或表的屬主(即建立表的人)根據(jù)需要建立有些DBMS自動(dòng)建立以下列上的索引
PRIMARYKEYUNIQUE維護(hù)索引
DBMS自動(dòng)完成
使用索引
DBMS自動(dòng)選擇是否使用索引以及使用哪些索引第18頁(yè)/共46頁(yè)語(yǔ)句格式CREATE[UNIQUE][CLUSTER]
INDEX<索引名>ON<表名>(<列名>[<次序>][,<列名>[<次序>]]…);用<表名>指定要建索引的基本表名字索引可以建立在該表的一列或多列上,各列名之間用逗號(hào)分隔用<次序>指定索引表中索引值的排列次序,升序:ASC,降序:DESC。缺省值為ASC。UNIQUE:唯一性索引。不允許索引列有同值;若已有同值,則不允許建立此索引。CLUSTER:聚簇索引。表中元組按索引項(xiàng)的值排序并物理地聚集在一起。1.建立索引第19頁(yè)/共46頁(yè)[例6]為學(xué)生-課程數(shù)據(jù)庫(kù)中的Student,Course,SC三個(gè)表建立索引。其中Student表按學(xué)號(hào)升序建唯一索引,Course表按課程號(hào)升序建唯一索引,SC表按學(xué)號(hào)升序和課程號(hào)降序建唯一索引。CREATEUNIQUEINDEXStusnoONStudent(Sno);CREATEUNIQUEINDEXCoucnoONCourse(Cno);CREATEUNIQUEINDEXSCnoONSC(SnoASC,CnoDESC);第20頁(yè)/共46頁(yè)練習(xí):解釋如下索引的含義:CREATECLUSTERINDEXStusnameONStudent(Sname);在Student表的Sname(姓名)列上建立一個(gè)聚簇索引,而且Student表中的記錄將按照Sname值的升序存放第21頁(yè)/共46頁(yè)2.刪除索引DROPINDEX<索引名>;刪除索引時(shí),系統(tǒng)會(huì)從數(shù)據(jù)字典中刪去有關(guān)該索引的描述。[例7]刪除Student表的Stusname索引。
DROPINDEXStusname;第22頁(yè)/共46頁(yè)索引的有關(guān)說(shuō)明可以動(dòng)態(tài)地定義索引,即可以隨時(shí)建立和刪除索引;一個(gè)表上可建多個(gè)索引;不允許用戶(hù)在數(shù)據(jù)操作中引用索引,索引如何使用完全由系統(tǒng)決定;應(yīng)在使用頻率高、經(jīng)常進(jìn)行連接的列上建立索引;索引可提高查詢(xún)效率,但索引過(guò)多耗費(fèi)空間,且降低了插入、刪除、更新的效率。第23頁(yè)/共46頁(yè)3.4數(shù)據(jù)查詢(xún)
3.4.1單表查詢(xún)3.4.2連接查詢(xún)3.4.3嵌套查詢(xún)3.4.4集合查詢(xún)3.4.5小結(jié)第24頁(yè)/共46頁(yè)示例數(shù)據(jù)庫(kù)
學(xué)生-課程數(shù)據(jù)庫(kù)e.g.P82學(xué)生表:Student(Sno,Sname,Ssex,Sage,Sdept)課程表:Course(Cno,Cname,Cpno,Ccredit)
學(xué)生選課表:SC(Sno,Cno,Grade)第25頁(yè)/共46頁(yè)概述
一般格式SELECT[ALL|DISTINCT]<目標(biāo)列表達(dá)式>[,<目標(biāo)列表達(dá)式>]…FROM<表名或視圖名>[,<表名或視圖名>]…[WHERE<條件表達(dá)式>][GROUPBY<列名1>[HAVING<條件表達(dá)式>]][ORDERBY<列名2>[ASC|DESC]];
第26頁(yè)/共46頁(yè)3.4.1單表查詢(xún)
查詢(xún)僅涉及一個(gè)表,是一種最簡(jiǎn)單的查詢(xún)操作一、選擇表中的若干列二、選擇表中的若干元組三、對(duì)查詢(xún)結(jié)果排序四、使用集函數(shù)五、對(duì)查詢(xún)結(jié)果分組
第27頁(yè)/共46頁(yè)1.查詢(xún)指定列[例1]查詢(xún)?nèi)w學(xué)生的學(xué)號(hào)與姓名。
[例2]查詢(xún)?nèi)w學(xué)生的姓名、學(xué)號(hào)、所在系。SELECTSno,SnameFROMStudent;SELECTSname,Sno,SdeptFROMStudent;——考慮語(yǔ)句的執(zhí)行過(guò)程一、選擇表中的若干列第28頁(yè)/共46頁(yè)2.查詢(xún)?nèi)苛衃例3]查詢(xún)?nèi)w學(xué)生的詳細(xì)記錄。SELECTSno,Sname,Ssex,Sage,SdeptFROMStudent;
或SELECT*FROMStudent;第29頁(yè)/共46頁(yè)3.查詢(xún)經(jīng)過(guò)計(jì)算的值[例4]查全體學(xué)生的姓名及其出生年份。SELECTSname,2010-SageFROMStudent;
輸出結(jié)果:
Sname2010-Sage----------------------
李勇1985劉晨1986王名1987張立1986SELECT子句的<目標(biāo)列表達(dá)式>可以是屬性列,也可以表達(dá)式,如算術(shù)表達(dá)式、字符串常量、函數(shù)等第30頁(yè)/共46頁(yè)[例5]查詢(xún)?nèi)w學(xué)生的姓名、出生年份和所有系,要求用小寫(xiě)字母表示所有系名。SELECTSname,'YearofBirth:',2010-Sage,ISLOWER(Sdept)FROMStudent;輸出結(jié)果:
Sname'YearofBirth:'2010-SageISLOWER(Sdept)----------------------------------------------
李勇YearofBirth:1985cs
劉晨YearofBirth:1986is
王名YearofBirth:1987ma
張立YearofBirth:1986is第31頁(yè)/共46頁(yè)使用列別名改變查詢(xún)結(jié)果的列標(biāo)題SELECTSnameNAME,'YearofBirth:’BIRTH,2010-SageBIRTHDAY,ISLOWER(Sdept)DEPARTMENTFROMStudent輸出結(jié)果:
NAMEBIRTHBIRTHDAYDEPARTMENT-----------------------------------------------------
李勇YearofBirth:1985cs
劉晨YearofBirth:1986is
王名YearofBirth:1987ma
張立YearofBirth:1986is第32頁(yè)/共46頁(yè)假設(shè)SC表中有下列數(shù)據(jù)
SnoCnoGrade---------------------9500119295001285950013889500229095002380二、選擇表中的若干元組
[例6]查詢(xún)選修了課程的學(xué)生學(xué)號(hào)。結(jié)果:Sno-------9500195001950019500295002
SELECTSnoFROMSC;第33頁(yè)/共46頁(yè)SELECTDISTINCTSnoFROMSC
結(jié)果:
Sno----------95001950021.消除取值重復(fù)的行第34頁(yè)/共46頁(yè)2.查詢(xún)滿(mǎn)足條件的元組WHERE子句常用的查詢(xún)條件第35頁(yè)/共46頁(yè)(1)比較大小在WHERE子句的<比較條件>中使用比較運(yùn)算符=,>,<,>=,<=,!=或<>邏輯運(yùn)算符NOT+比較運(yùn)算符[例8]查詢(xún)所有年齡在20歲以下的學(xué)生姓名及其年齡。SELECTSname,SageFROMStudentWHERESage<20;第36頁(yè)/共46頁(yè)(2)確定范圍使用謂詞BETWEEN…AND…NOTBETWEEN…AND…[例10]查詢(xún)年齡在20~23歲(包括20歲和23歲)之間的學(xué)生的姓名、系別和年齡。[例11]查詢(xún)年齡不在20~23歲之間的學(xué)生姓名、系別和年齡。第37頁(yè)/共46頁(yè)(3)確定集合:謂詞IN用來(lái)查找屬性值屬于指定集合的元組。使用謂詞IN<值表>
NOTIN<值表>其中,<值表>:用逗號(hào)分隔的一組取值[例12]查詢(xún)信息系(IS)、數(shù)學(xué)系(MA)和計(jì)算機(jī)科學(xué)系(CS)學(xué)生的姓名和性別。[例13]查詢(xún)既不是信息系、數(shù)學(xué)系,也不是計(jì)算機(jī)科學(xué)系的學(xué)生的姓名和性別。第38頁(yè)/共46頁(yè)(4)字符串匹配:查找指定的屬性列值與匹配串相匹配的元組。[NOT]LIKE
‘<匹配串>’[ESCAPE
‘<換碼字符>’]通配符:%(百分號(hào))代表任意長(zhǎng)度(長(zhǎng)度可以為0)的字符串例:a%b表示以a開(kāi)頭,以b結(jié)尾的任意長(zhǎng)度的字符串。如acb,addgb,ab等都滿(mǎn)足該匹配串_(下橫線(xiàn))代表任意單個(gè)字符例:a_b表示以a開(kāi)頭,以b結(jié)尾的長(zhǎng)度為3的任意字符串。如acb,afb等都滿(mǎn)足該匹配串第39頁(yè)/共46頁(yè)1)匹配串為固定字符串[例14]查詢(xún)學(xué)號(hào)為9500
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年攝影燈泡項(xiàng)目申請(qǐng)報(bào)告模范
- 2024-2025學(xué)年新疆省克孜勒蘇柯?tīng)柨俗巫灾沃萑昙?jí)數(shù)學(xué)第一學(xué)期期末統(tǒng)考試題含解析
- 2025年城市文化展示系統(tǒng)項(xiàng)目規(guī)劃申請(qǐng)報(bào)告模板
- 2025年服裝電子商務(wù)項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告范文
- 2025年植物穩(wěn)態(tài)營(yíng)養(yǎng)肥料項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告
- 小學(xué)畢業(yè)典禮講話(huà)稿15篇
- 本科畢業(yè)自我鑒定
- 元旦邀請(qǐng)函范文匯編10篇
- 七年級(jí)地理上冊(cè) 4.1 氣溫和氣溫的分布教學(xué)實(shí)錄 晉教版
- 去工廠(chǎng)實(shí)習(xí)報(bào)告模板錦集6篇
- 【信息技術(shù)2.0】A5技術(shù)支持的課堂導(dǎo)入 初中歷史《探尋新航路》課堂導(dǎo)入設(shè)計(jì)
- 修改留言條(課堂PPT)
- 銅排載流量表
- 3500常用字帶拼音
- 安規(guī)PIN腳尺寸
- 工程部獎(jiǎng)懲制度
- 出境竹木草制品生產(chǎn)企業(yè)衛(wèi)生防疫管理手冊(cè)
- 承建紅磚燒成隧道窯合同協(xié)議書(shū)范本模板
- 大班上學(xué)期周計(jì)劃1—20周精編版
- 三年級(jí)上冊(cè)數(shù)學(xué)試卷附加題解析
- 拌和站危險(xiǎn)源清單及控制措施
評(píng)論
0/150
提交評(píng)論