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