【正文】
b 2 d 3 b b 3 b 2 d b 3 b 3 b c 2 d 2 d c 2 d 3 b d 3 b 2 d d 3 b 3 b(二)專門關(guān)系運(yùn)算1 選擇(SELECT) (選擇符合條件的元組) δ選擇條件(關(guān)系名) 如: δ性別=男(STUDENT) 表的水平劃分2 投影(Project)(選擇符合條件的屬性) Π屬性表 (關(guān)系名) 如: Π學(xué)號,姓名 (STUDENT) 表的垂直劃分3 連接操作(Join) 笛卡爾乘積 R ╳ S = {t,g|t∈R AND g∈S} (1)連接分為等值連接和自然連接AфB 連接操作: R|╳|S 其中A和B分別為R和S上度數(shù)相等且具有可比性的屬性組1)等值連接(ф為=) 如上例 R1 |╳| S = b 2 d 2 d = b 3 b 3 b c 2 d 2 d d 3 b 3 b 2)自然連接(只有|╳|)一般連接是從行的角度出發(fā)的,但自然連接還要取消重復(fù)的列,是從行和列的角度進(jìn)行運(yùn)算 如 R1 |╳| S = b 2 d B 3 b4 除運(yùn)算(247。2模式的刪除 DROP SCHEMA模式名CASCADE | RESTRICT (兩者必選其一) 例如:DROP SCHEMA “st” CASCADE;(1)CASCADE(級聯(lián))表示在刪除模式的同時(shí)把該模式中所有的數(shù)據(jù)庫對象全部一起刪除。(2)RESTRICT(限制)刪除該表是有限制條件的。但在下列兩種情況下必須明確指定組成視圖的列名。(4)不是所有視圖都是可更新的1)基于聯(lián)接查詢的視圖不可更新2)使用了函數(shù)的視圖不可更新3)使用了分組操作的視圖不可更新4)只有建立在單個(gè)表上而且沒有使用函數(shù)的視圖才是可更新的2 視圖的刪除 DROP VIEW 視圖名 [CASCADE](四)索引的定義和刪除1索引的定義CREATE [ UNIQUE | CLUSTER ] INDEX 索引名 ON 表名 (列名 [ 次序] [ ,列名 [次序] ]… )例如:CREATE UNIQUE INDEX SCno on SC(Sno ASC,Cno DESC)。三 數(shù)據(jù)更新 (一)插入數(shù)據(jù) INSERT插入數(shù)據(jù)通常有兩種形式,一種是插入一個(gè)元組,另一種是插入子查詢結(jié)果。在INTO子句中只指出了表名,沒有指出屬性名,新元組要在所有屬性列上都指定值,屬性列的次序與CREATE TABLE 中的次序相同。 (三)刪除數(shù)據(jù) DELETE FROM表名 [WHERE 條件]。(2)算術(shù)表達(dá)式 查詢學(xué)生的出生年份SELECT 2003-age AS 出生年份 FROM Student;(3)函數(shù)表達(dá)式SELECT sno, to_char(birth, ‘mmddyyyy’) AS birthday FROM StudentSELECT Count(sno) As 學(xué)生人數(shù) FROM Student4條件查詢(1)WHERE條件注:1)在where子句中使用列名和表達(dá)式,但不能使用別名。2)可以使用列的別名,列的位置進(jìn)行排序。 2)聚集函數(shù)只能出現(xiàn)在選擇列表、order by子句、having子句中,而不能出現(xiàn)在where 和group by 子句中。count(distinct sal) FuctionName([DISTINCT | ALL]列名) COUNT(列名):對一列中的值計(jì)數(shù)COUNT(*):計(jì)算記錄個(gè)數(shù)SUM(列名):求一列值的總和(數(shù)值)AVG (列名):求一列值的平均值MIN (列名):求一列值的最小值MAX (列名):求一列值的最大值 例子:求學(xué)生的總?cè)藬?shù)SELECT count(*) FROM student求選修了課程的學(xué)生人數(shù)SELECT COUNT(DISTINCT s) FROM SC求學(xué)生的平均年齡SELECT avg(age) as average_age FROM student (5)分組查詢(GROUP BY) 1)基本格式 group by 列名1,列名2 having 條件 ORDER by 列名 查詢男生和女生的平均年齡SELECT sex, AVG(age) as Average_age FROM StudentGroup By sex注意:除聚集函數(shù)外的屬性必須全部出現(xiàn)在Group By子句中 2)返回特定的分組結(jié)果(HAVEING)查詢不同年齡的學(xué)生人數(shù),并返回人數(shù)在5人以上的結(jié)果SELECT age, COUNT(*) as students FROM StudentGroup By ageHaving COUNT(*) 5Having子句中必須聚集函數(shù)的比較式,而且聚集函數(shù)的比較式也只能通過Having子句給出Having中的聚集函數(shù)可與SELECT中的不同查詢?nèi)藬?shù)在60以上的各個(gè)班級的學(xué)生平均年齡SELECT class, AVG(age) FROM StudentGroup By classHaving COUNT(*) 60 (6)使用rollup和cube限定詞 Rollup 用于生成橫向統(tǒng)計(jì)結(jié)果 SQL select deptno,job,avg(sal),max(sal) from emp 2 group by rollup(deptno,job)。當(dāng)指定表的別名時(shí),別名應(yīng)跟在表名后面。(三)嵌套查詢在SQL語言中,一個(gè)SELECTFROMWHERE語句稱為一個(gè)查詢塊。 例如:REVOKE SELECT ON TABLE Student FROM U1 CASCADE;(三)數(shù)據(jù)庫角色 1 創(chuàng)建角色CREATE ROLE 角色名。 例如:REVOKE R1 FROM wang。 ALTER TABLE Student ADD CONSTRAINT C5 CHECK (Sage40)。這種關(guān)系是通過學(xué)習(xí)屬性間值的相等與否體現(xiàn)出來的數(shù)據(jù)間相關(guān)聯(lián)系。若對于R(U)的任意一個(gè)可能的關(guān)系r,r中不可能存在兩個(gè)元組在X上的屬性值相等,而在Y上的屬性值不等,則稱X函數(shù)確定Y或Y函數(shù)依賴于X,記作X→Y。今后,若不特別聲明,我們總是討論非平凡的函數(shù)依賴。 2 完全函數(shù)依賴和部分函數(shù)依賴:在R(U)中,如果X→Y,并且對于X的任何一個(gè)真子集X39。 3 傳遞函數(shù)依賴:在R(U)中,如果X→Y,(YX),YX,Y→Z,則稱Z對X傳遞函數(shù)依賴。關(guān)系模式R(U)中多值依賴X→→Y成立,當(dāng)且僅當(dāng)對R(U)的任一關(guān)系r,給定的一對(x,z)值有一組Y的值,這組值僅僅決定于x值而與z值無關(guān)。 數(shù)學(xué)分析 張 平 四 范式 (一)范式關(guān)系數(shù)據(jù)庫中的關(guān)系模式要滿足一定的規(guī)范化要求,滿足不同程度規(guī)范化要求的關(guān)系模式的類稱為不同的范式。按屬性間依賴情況來區(qū)分,關(guān)系規(guī)范化的程度為1NF,2NF,3NF,BCNF,4NF和5NF等。所以一般情況下,關(guān)系模式應(yīng)至少達(dá)到3NF 2 范式總結(jié)消除決定因素非碼的非平凡函數(shù)依賴 1NF ↓ 消除非主屬性對碼的部分依賴 2NF ↓ 消除非主屬性對碼的傳遞函數(shù)依賴 3NF ↓ 消除主屬性對碼的部分和傳遞函數(shù)依賴 BCNF ↓ 消除非平凡且非函數(shù)依賴的多值依賴 5NF20