1.關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義
1.關(guān)系
1.概述
單一的數(shù)據(jù)結(jié)構(gòu)——關(guān)系
現(xiàn)實世界的實體以及實體間的各種聯(lián)系均用關(guān)系來表示
邏輯結(jié)構(gòu)——二維表
從用戶角度刚夺,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表
建立在集合代數(shù)的基礎(chǔ)之上
2.域盐类,笛卡爾積蔗崎,元組,基數(shù)
域是一組具有相同數(shù)據(jù)類型的值得集合拉讯。例如整數(shù)袍祖,實數(shù),男和女......
給定一組域D1是复,D2,D3.....Dn.這些域中可以有相同的(意思就是D1可以是整數(shù)域疗隶,D2也可以是整數(shù)域)佑笋。
那么D1翼闹,D2斑鼻,D3.....Dn的笛卡爾積為全部(d1,d2猎荠,d3......dn)構(gòu)成的集合
笛卡爾積中的每一個元素(d1坚弱,d2,d3......dn)叫做元組
笛卡爾積元素(元組)中的每一個元素d1叫做分量
若D1关摇,D2荒叶,......Dn是有限集合,其中包含的元素個數(shù)為M1输虱,M2些楣,......Mn個,那么M1M2......Mn就是這個笛卡爾積的基數(shù)(其實就是這個笛卡爾積一共有多少個元素*)
舉個例子來說明就是:令
Teacher=(張教授宪睹,李教授)
profession=(計算機專業(yè)愁茁,網(wǎng)絡(luò)專業(yè))
Student=(小明,小葉)
上述的Teacher就相當于是D1亭病,profession就相當于是D2鹅很,Student就相當于是D3
那么他們的笛卡爾積中的元素一共有2×2×2=8個,也就是它的基數(shù)為8罪帖。例如(張教授促煮,計算機專業(yè)邮屁,小明),(李教授菠齿,計算機專業(yè)佑吝,小葉)都是其中的一個元組。而在(張教授绳匀,計算機專業(yè)迹蛤,小明)這個元組中,張教授襟士,計算機專業(yè)盗飒,小明這三個元素就叫做分量。
笛卡爾積可以表示成一個二維表陋桂,表中的每一列對應(yīng)一個域逆趣,每一行對應(yīng)一個元組。如下圖:
3.關(guān)系嗜历,元組宣渗,屬性,候選碼
D1×D2×......×Dn的子集叫做在域D1梨州,D2痕囱,......,Dn上的關(guān)系暴匠,表示為R(D1鞍恢,D2,......每窖,Dn)
其中R是關(guān)系名帮掉,n是關(guān)系的目或度
個人理解:關(guān)系是對于域來說的,而元組是對于笛卡爾積來說的窒典。元組就相當于笛卡爾積的其中一個元素蟆炊,而關(guān)系是對于構(gòu)成笛卡爾積的那幾個域來說。
關(guān)系中的每個元素叫做關(guān)系中的元組瀑志,用t表示
當n=1時涩搓,關(guān)系叫做單元關(guān)系或者一元關(guān)系;當n=2時劈猪,關(guān)系叫做二元關(guān)系
關(guān)系也是一個二維表昧甘,每一行對應(yīng)一個元組,每一列對應(yīng)一個域岸霹,如下圖:
屬性:關(guān)系中不同列可以對應(yīng)相同的域疾层,為了加以區(qū)分,必須給每一列起一個名字贡避,稱為屬性痛黎,n元關(guān)系必有n個屬性予弧。如上圖的SUPERVISOR,SPECIALITY就是屬性名
候選碼:如果關(guān)系中的某一屬性組的值能夠唯一地標識一個元祖t湖饱,那么這個屬性組稱為候選碼掖蛤。在上圖中,SPECIALITY列下的值都是一樣的不能區(qū)分到底是哪一行井厌,就比如我告訴你我要找一個信息專業(yè)的學生蚓庭,但是這個專業(yè)的學生肯定不止一個,所以你就無法找到具體哪個學生仅仆。
全碼:當全部的屬性組都能夠唯一地標識一個元祖t器赞,那么這個關(guān)系模式的全部屬性組都是候選碼,叫做全碼墓拜。
主碼:若一個關(guān)系有多個候選碼港柜,那么選定其中的一個叫做主碼。
主屬性:候選碼中的幾個屬性叫做主屬性咳榜,而不在候選碼里面的就叫做非主屬性或非碼屬性
4.三類關(guān)系
笛卡爾積沒有實際的意義夏醉,只有笛卡爾積的某個子集才具有真正的意義
(1).基本關(guān)系:實際存在的表,是實際存儲數(shù)據(jù)的邏輯表示
(1).查詢表:查詢結(jié)果對應(yīng)的表
(1).視圖表:由基本表或其它視圖表導(dǎo)出的表涌韩,是虛表畔柔,不對應(yīng)實際存儲的數(shù)據(jù)。
基本關(guān)系的性質(zhì):
(1).列是同性質(zhì)的臣樱。
(2).不同的列可以出自同一個域
(3).列的順序無所謂靶擦,可以隨意交換
(4).任意兩個元組的候選碼不能相同
(5).行的順序無所謂,可以隨意交換
(6).分量必須取原子值(也就是表中不能還有表)
2.關(guān)系模式
1.概述
關(guān)系模式是型擎淤,關(guān)系是值奢啥。關(guān)系模式是對關(guān)系的描述(元組集合的結(jié)構(gòu)秸仙,屬性間的數(shù)據(jù)依賴關(guān)系集合等等)嘴拢。
2.定義
R(U,D寂纪,DOM席吴,F(xiàn))
其中,R為關(guān)系名捞蛋,U是組成該關(guān)系的屬性名的集合孝冒,D是屬性組U中屬性所來自的域,DOM是屬性向域的映象集合拟杉,F(xiàn)是屬性間的數(shù)據(jù)依賴關(guān)系集合
例如庄涡,導(dǎo)師和研究生出自同一個域——人,取不同的屬性名搬设,并在模式中定義屬性向域的映象穴店,即說明他們分別出自哪個域:DOM(SUPERVISORPERSON)=DOM(POSTGRADUATE-PERSON)=PERSON
關(guān)系模式通乘汉矗可以簡記為R(U)或者R(A1,A2泣洞,...忧风,An)
3.關(guān)系模式與關(guān)系
關(guān)系模式:
對關(guān)系的描述,是靜態(tài)的球凰,穩(wěn)定的狮腿。比如我們看到的一張二維表的表頭,即有哪些列構(gòu)成呕诉,每個列的名稱缘厢,類型啊長度等等;
關(guān)系:
關(guān)系模式在某一時刻的狀態(tài)或內(nèi)容甩挫,是動態(tài)的昧绣,隨時間不斷變化的。關(guān)系是一張二維表的具體數(shù)據(jù)捶闸,除去表頭外各數(shù)據(jù)間的聯(lián)系夜畴。由于二維表中是數(shù)據(jù)會時常修改,所以呈現(xiàn)出動態(tài)删壮。
3.關(guān)系數(shù)據(jù)庫
1.定義
在給定的一個應(yīng)用領(lǐng)域中贪绘,所有關(guān)系的集合構(gòu)成一個關(guān)系數(shù)據(jù)庫。也就是許多張表構(gòu)成的集合央碟。
2.關(guān)系數(shù)據(jù)庫的型和值
關(guān)系數(shù)據(jù)庫的型:關(guān)系數(shù)據(jù)庫模式税灌。
關(guān)系數(shù)據(jù)庫的值:關(guān)系模式在某一時刻對應(yīng)的關(guān)系的集合,簡稱為關(guān)系數(shù)據(jù)庫亿虽。
2.關(guān)系操作
1.基本關(guān)系操作
1.查詢:選擇菱涤,投影,連接洛勉,除粘秆,并,交收毫,差
2.數(shù)據(jù)更新:增加攻走,刪除,修改
查詢的表達能力是其中最主要的部分此再。
選擇昔搂,投影,并输拇,差摘符,笛卡爾積是5種基本操作
2.關(guān)系數(shù)據(jù)庫的語言分類
1.關(guān)系代數(shù)語言
用關(guān)系的代數(shù)語言來表達查詢要求ISBL
2.關(guān)系演算語言
用謂詞來表達查詢要求:
-元組關(guān)系演算APLHA,QUEL
-域關(guān)系演算QBE
3.具有關(guān)系代數(shù)和關(guān)系演算雙重特點的語言SQL
3.關(guān)系的完整性
1.關(guān)系完整性的三類約束
1.實體完整性和參照完整性:
關(guān)系模型必須滿足的完整性約束條件稱為關(guān)系的兩個不變性,應(yīng)該由關(guān)系系統(tǒng)自動支持逛裤。
2.用戶定義的完整性:
特定的應(yīng)用領(lǐng)域需要遵循的約束條件
2.實體完整性
若屬性A是基本關(guān)系R的主屬性蠢古,則屬性A不能取空值。因為現(xiàn)實世界中的各個實體是可以區(qū)分的,即他們具有某種唯一標識,而主碼中的主屬性就是這些唯一標識僻弹,所以不能取空。
3.參照完整性
1.關(guān)系間的引用
例如有學生和專業(yè)兩個實體:
學生(學號堕战,姓名,性別拍霜,專業(yè)號嘱丢,年齡),專業(yè)(專業(yè)號祠饺,專業(yè)名)
學生關(guān)系引用了專業(yè)關(guān)系的主碼—專業(yè)號越驻,所以學生關(guān)系中的專業(yè)號必須是確實存在的專業(yè)的專業(yè)號。
另外道偷,還有:
學生(學號缀旁,姓名,性別勺鸦,專業(yè)號并巍,年齡)
課程(課程號,課程名换途,學分)
選修(學號懊渡,課程號,成績)
2.外碼
如果F是基本關(guān)系R的一個或一組屬性军拟,但不是關(guān)系R的碼剃执。如果F與基本關(guān)系S的主碼Ks相對應(yīng),則稱F是基本關(guān)系R的外碼懈息。R被稱為參照關(guān)系肾档,S被稱為被參照關(guān)系,目標關(guān)系漓拾。
例如:
學生(學號阁最,姓名,性別骇两,專業(yè)號,年齡)姜盈,專業(yè)(專業(yè)號低千,專業(yè)名)
其中,專業(yè)號是學生關(guān)系的外碼。學生關(guān)系是參照關(guān)系示血,專業(yè)關(guān)系是被參照關(guān)系棋傍。
另外,如下圖:
學號是主碼难审,班長是外碼瘫拣,它引用的并不是其它關(guān)系而是自身,此時告喊,學生關(guān)系既是參照關(guān)系又是被參照關(guān)系麸拄。
因此,對于外碼這個概念來說黔姜,關(guān)系R和關(guān)系S不一定是不同的關(guān)系拢切,但是目標關(guān)系S的主碼一定要和參照關(guān)系的外碼定義在同一個域上。外碼不一定要和主碼同名秆吵,當外碼與相應(yīng)的主碼不同關(guān)系時淮椰,往往取相同的名字,就如上面的學生(學號纳寂,姓名主穗,性別,專業(yè)號毙芜,年齡)黔牵,專業(yè)(專業(yè)號,專業(yè)名)就有相同的名字爷肝。
3.參照完整性規(guī)則
如果屬性F是基本關(guān)系R的外碼猾浦,并且它和基本關(guān)系S的主碼Ks相對應(yīng)(R和S不一定是不同關(guān)系),那么對于R中的每個元組在F上的值必須為空值或者等于S中某個元祖的主碼值灯抛。
4.用戶自定義的完整性
- 針對某一具體關(guān)系數(shù)據(jù)庫的約束條件金赦,反映某一個具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。
- 關(guān)系模型應(yīng)提供定義和檢驗這類完整性的機制对嚼,以便用統(tǒng)一的系統(tǒng)方法來處理他們夹抗,而不要由應(yīng)用程序來承擔這一功能。
例如:課程(課程號纵竖,課程名漠烧,學分)
- 課程號屬性必須取唯一值
- 非主屬性課程名也不能取空值
- 學分只能取正整數(shù),且只能{1,2,3,4}其中之一
4.關(guān)系代數(shù)
1.概述
2.傳統(tǒng)的集合運算
在做關(guān)系運算的時候靡砌,兩個關(guān)系要屬于同一類已脓,例如學生這個關(guān)系和課程這個關(guān)系不能進行并操作運算。即需要滿足以下條件:
- 具有相同的目(即兩個關(guān)系都有n個屬性)
- 相同的屬性取自同一個域
現(xiàn)在有R和S兩個關(guān)系進行如下運算通殃,得到的結(jié)果如下所示:
1.并:屬于R或者屬于S
2.差:屬于R但是不屬于S
3.交:既屬于R又屬于S
4.笛卡爾積:
如果是笛卡爾積度液,那么關(guān)系的目可以不同,就是從R中取出一個元素和S中取出一個元素構(gòu)成新的一個元素。
3.專門的關(guān)系運算
1.一些記號
例如堕担,在上圖中已慢,整個表就是一個關(guān)系R(SUPERVISOR,SPECIALITY,POSTGRADUATE),而第一行(張清玫 信息專業(yè) 李勇)就是R中的一個元祖t霹购,所以t[SUPERVISOR]=張清玫
例如佑惠,還是在上圖中,A={SUPERVISOR,SPECIALITY}齐疙,而第一行(張清玫 信息專業(yè) 李勇)就是R中的一個元祖t膜楷,所以t[A]=(張清玫,信息專業(yè))剂碴,A拔就={POSTGRADUATE}
象集可以理解為在X屬性上指定一個值例如X=2把将,把X=2的元組取出來,剩下的就是X的象集忆矛。如下圖中的例子:
象集
如上面有三張表分別為:學生關(guān)系察蹲,課程關(guān)系,選修關(guān)系
2.選擇
- 選擇又稱為限制催训,它是單目操作洽议,不像加法等需要兩個或以上的關(guān)系來操作
- 含義:在關(guān)系R中選擇出符合給定條件F(使邏輯表達式F為真)的諸個元組
例如:
3.投影
含義:從R中取出若干屬性列組成新的關(guān)系
例如,將Student關(guān)系中的學生姓名和學生所在系這兩個屬性列取出來漫拭,表達式如下:
結(jié)果為:
4.連接
含義:從兩個關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組
等值連接:
等值連接
自然連接:自然連接
例如亚兄,現(xiàn)在有下面兩個關(guān)系R和S:
一般連接的結(jié)果:
等值連接的結(jié)果:
自然連接的結(jié)果:
外連接
關(guān)系R和S的外連接結(jié)果如下:
如上圖,左外連接就是保留R中本來要丟棄的采驻,右外連接就是保留S中本來要丟棄的审胚。因此,左外連接就是在外連接的基礎(chǔ)之上去掉最后一行(S)礼旅,右外連接就是在外連接的基礎(chǔ)之上去掉倒數(shù)第二行(R)膳叨。
5.除
例如:
首先,R和S具有相同的屬性列B和C痘系。在R中菲嘴,A的取值有a1,a2,a3,a4四種選擇,當去a1時汰翠,象集為b1,c2;b2,c3;b2,c1龄坪,可以發(fā)現(xiàn)這些象集包含了關(guān)系S在B和C屬性列上的全部值,因此a1就是R除S的結(jié)果复唤。
5.關(guān)系演算
- 關(guān)系演算以數(shù)理邏輯中的謂詞演算為基礎(chǔ)
- 按照謂詞變元不同可以進行分類:
1.元組關(guān)系演算:以元組變量為謂詞變元的基本對象健田,元組關(guān)系演算語言ALPHA
2.域關(guān)系演算:以域變量為謂詞變元的基本對象,域關(guān)系演算語言QBE
1.元組關(guān)系演算語言ALPHA
由E.F.Codd提出苟穆,語句可以分為兩大類:
- 檢索語句:GET
- 更新語句:PUT抄课,HOLD唱星,UPDATE雳旅,DELETE跟磨,DROP
1.檢索操作
簡單檢索:
GET (工作空間名) (表達式1)
例如:查詢所有被選修的課程號碼:GET W (SC.Cno)
;查詢所有學生的數(shù)據(jù):GET W (Student)
限定檢索:
GET (工作空間名) (表達式1) :條件
例如:查詢信息系(IS)中年齡小于20歲的學生的學號和年齡:GET W (Student.Sno攒盈,Student.Sage):Student.Sdept='IS'ΛStudent.Sage<20
帶排序的檢索:查詢計算機科學系(CS)學生的學號抵拘,年齡,結(jié)果按照年齡降序排列:
GET W (Student.Sno型豁,Student.Sage):Student.Sdept='CS' DOWN Student.Sage
帶定額的檢索:取出一個信息系學生的學號:GET W (1) (Student.Sno):Student.Sdept='IS'
查詢信息系年齡最大的三個學生的學號及其年齡僵蛛,結(jié)果按照年齡降序排序:GET W (3) (Student.Sno,Student.Sage):Student.Sdept='IS'Λ DOWN Student.Sage
用元組變量的檢索:
元組變量的含義:表示可以在某一關(guān)系范圍內(nèi)變化(也稱為范圍變量)
元組變量的用途:簡化關(guān)系名迎变;操作條件中使用量詞時必須用到元組變量
定義元組變量:格式:RANGE 關(guān)系名 變量名
(注意:一個關(guān)系可以設(shè)置多個元組變量)
用存在量詞
?
的檢索:查詢至少選修一門其先行課為6號課程的學生名字
RANGE Course CX
SC SCX
GET W (Student.Sname):?SCX(SCX.Sno=Student.Sno)Λ?CX(CX.Cno=SCX.CnoΛCX.Pcno='6')
帶有多個關(guān)系的表達式的檢索:查詢成績?yōu)?0分以上的學生名字與課程名字
RANGE SC SCX
GET W (Student.Sname充尉,Course.Cname):?SCX(SCX.Grade>=90ΛSCX.Sno=Student.SnoΛSCX.Cno=Course.Cno)
用全稱量詞
?
的檢索:查詢不選1號課程學生的名字
RANGE SC SCX
GET W (Student.Sname):?SCX(SCX.Sno≠Student.SnoVSCX.Cno≠'1')
這里的意思就是選擇不選一號課程的學生的名字或者你選了1號課程但是不在我的學生名單里面,二者中的一個都滿足條件
用存在量詞表示:
RANGE SC SCX
GET W (Student.Sname):┐?SCX(SCX.Sno=Student.SnoΛSCX.Cno='1')
?任意
與┐?不存在
雖然字面意思不同衣形,但表達的意思都屬于全稱量詞驼侠,這里的意思就是不存在選一號課程的在我的學生名單里面的學生。
用兩種量詞的檢索:查詢選修了全部課程的學生姓名
RANGE Course CX
SC SCX
GET W (Student.Sno):? CX ?SCX (SCX.Sno=Student.SnoΛSCX.Cno=CX.Cno)
用蘊含的檢索:查詢最少選修200215122學生所選課程的學號
RANGE Course CX
SC SCX
SC SCY
GET W (Student.Sno):? CX (?SCX (SCX.Sno='200215122'ΛSCX.Cno=CX.Cno) —> ?SCY(SCY.Sno=Student.SnoΛSCY.Cno=CX.Cno))
箭頭的前半句描述的是"標準"學生也就是學號為200215122的學生SCX谆吴,后半句描述的就是我要尋找的學生SCY
聚集函數(shù)(內(nèi)置函數(shù)倒源,可以簡化一些操作):
關(guān)系演算中的聚集函數(shù)
例如:
(1).查詢學生所在系的數(shù)目:GET W (COUNT(Student.Sdept))
COUNT函數(shù)在計數(shù)時會自動排除重復(fù)值
(2).查詢信息系學生的平均年齡:GET W (AVG(Student.Sage):Student.Sdept='IS')
簡單來說其實就是表達式1(第一個括號)里面寫的是最后要得到的屬性組,:
后面的是判斷條件句狼,DWON|UP后面的就是指排序的關(guān)鍵字(DOWN降序UP升序)笋熬。
2.更新操作
- 修改操作
- 插入操作
- 刪除操作
修改操作:(1).用HOLD語句將要修改的元組從數(shù)據(jù)庫中讀取到工作空間中:
HOLD 工作空間名 (表達式1) [:操作條件]
HOLD語句是帶上并發(fā)控制的GET語句。(2).用宿主語言修改工作空間中元組的屬性腻菇。(3).用UPDATE語句將語句修改后的元組送回數(shù)據(jù)庫中:UPDATE 工作空間名
例如:把200215121學生從計算機系轉(zhuǎn)到信息系HOLD W (Student.Sno胳螟,Student.Sdept):Student.Sno='200215121' (從Student關(guān)系中讀出95007學生的數(shù)據(jù)) MOVE 'IS' TO W.Sdept (用宿主語言進行修改) UPDATE W (把修改后的元組送回到Student關(guān)系)
插入操作:(1).用宿主語言在工作空間中建立新的元組。(2).用PUT語句把該元組存入指定的關(guān)系中:
PUT 工作空間名 (關(guān)系名)
PUT語句只對一個關(guān)系操作筹吐,關(guān)系操作中的聚集函數(shù)
例如:學校新開設(shè)了一門2學分的課程"計算機組織與結(jié)構(gòu)"糖耸,其課程號為8,直接先行課為6號課程骏令,插入該課程元組:MOVE '8' TO W.Cno MOVE '計算機組織與結(jié)構(gòu)' TO W.Cname MOVE '6' TO W.Cpno MOVE '2' TO W.Ccredit PUT W (Course)
刪除操作:(1).用HOLD語句將要刪除的元組從數(shù)據(jù)庫中讀取到工作空間中:(2).用DELETE語句刪除該元組:
DELETE 工作空間名
例如:200215125學生因某些原因退學蔬捷,刪除該學生元組:HOLD W (Student):Student.Sno=‘200215125’ DELETE W
將學號200215121改為200215126:HOLD W (Student):Student.Sno='200215121' DELETE W MOVE '200215126' TO W.Sno MOVE '李勇' TO W.Sname MOVE '男' TO W.Ssex MOVE '20' TO W.Sage MOVE 'CS' TO W.Sdept PUT W (Student)
刪除全部學生:HOLD W (Student) DELETE W
為保證參照完整性,刪除Student中的元組時要對應(yīng)地刪除SC中的元組:HOLD W (SC) DELETE W
總結(jié):
檢索操作:GET 工作空間名 [(定額)] (表達式1) [:操作條件][DOWN|UP 表達式2]
插入操作:建立一個新的元組(直接使用MOVE
語句給各屬性賦值)——PUT
語句放入
修改操作:HOLD
取出元組數(shù)據(jù)——MOVE
語句修改屬性——UPDATE
把修改完的元組重新放入關(guān)系中
刪除操作:HOLD
取出元組數(shù)據(jù)——DELETE
語句刪除元組
2.域關(guān)系演算語言QBE
- 一種典型的域關(guān)系演算語言榔袋,由M.M.Zloof提出周拐,以元組變量的分量即域變量作為謂詞變元的基本對象。
- 是一種基于屏幕表格的查詢語言凰兑;查詢要求:以填寫表格的方式構(gòu)造查詢妥粟;用示例元素(域變量)來表示查詢結(jié)果可能的情況;查詢結(jié)果以表格形式顯示吏够。
1.QBE的操作框架:
2.檢索操作
簡單查詢:求信息系全體學生的姓名
(1).用戶提出要求
(2).屏幕顯示空白表格:空白表格
(3).用戶在最左邊一欄輸入要查詢的關(guān)系名Student:
輸入關(guān)系名
(4).系統(tǒng)顯示該關(guān)系的全部屬性名:顯示屬性名
(5).用戶在上面構(gòu)造查詢要求:構(gòu)造查詢要求
李勇是示例元素勾给,即域變量
(6).屏幕顯示查詢結(jié)果:顯示查詢結(jié)果
構(gòu)造查詢的幾個要素:
- 示例元素滩报,即域變量,一定要加下劃線(示例元素是這個域中可能的一個值播急,它不必是查詢的結(jié)果)脓钾。
- 打印操作符P,實際上是在屏幕上顯示桩警。
- 查詢條件:可以使用運算符=,<,>,...可训,=可以省略。
例如:
查詢?nèi)w學生的全部數(shù)據(jù):
或者全體學生的全部數(shù)據(jù)顯示全部數(shù)據(jù)
條件查詢:求年齡大于19歲的學生的學號:
年齡大于19歲的學生的學號
求計算機科學系年齡大于19歲的學生的學號:或者兩個條件寫在同一行兩個條件寫在不同行
查詢既選修1號課程又選修2號課程的學生的學號(條件查詢—與條件):與條件
查詢計算機科學系的或者年齡大于16的學生的學號(條件查詢—或條件):注意這里的Sno屬性下的兩個示例元素并不相同捶枢,如果相同那就是必須同時滿足計算機科學系和年齡大于19這兩個條件了握截。或條件
查詢選修1號課程的學生姓名(條件查詢—多表連接):多表連接
查詢沒有選修1號課程的學生的姓名(條件查詢—非條件):非條件
查詢有兩個人以上選修的課程號:有兩個人以上選修的課程號
QBE中的聚集函數(shù):QBE中的聚集函數(shù)
例如:查詢信息系學生的平均年齡:聚集函數(shù)—AVG
查詢結(jié)果排序:
- 升序:在對應(yīng)列中填入
AO.
- 降序:在對應(yīng)列中填入
DO.
- 多列排序:用
AO(i).
,DO(i).
表示烂叔,i值越小谨胞,優(yōu)先級越高(所謂的優(yōu)先級就是指第一優(yōu)先級碰到相同的時候看第二優(yōu)先級的屬性)
例如:對全體男生的姓名,要求查詢結(jié)果按照所在系升序蒜鸡,對相同系的學生按照年齡降序排序胯努。查詢結(jié)果排序
3.更新操作
修改操作(U):例如把200215121學生的年齡改成18歲:
或者將操作符U放在關(guān)系名上修改操作1或者把200215121學生的年齡增加一歲修改操作2操作修改3
將計算機系的所有學生的年齡都增加一歲:修改操作
插入操作(I):例如把信息系女生200215701,姓名張三术瓮,年齡17存入數(shù)據(jù)庫中:
插入操作
刪除操作(D):例如刪除學生200215089:
刪除操作