freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第三章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言sql(參考版)

2025-08-04 12:49本頁面
  

【正文】 常見的視圖形式 ?行列子集視圖 ? WITH CHECK OPTION的視圖 ?基于多個(gè)基表的視圖 ?基于視圖的視圖 ?帶表達(dá)式的視圖 ?分組視圖 二、刪除視圖 格式: DROP VIEW 視圖名 說明: ? 該語句從數(shù)據(jù)字典中刪除指定的視圖定義 ? 由該視圖導(dǎo)出的其他視圖定義仍在數(shù)據(jù)字典中,但已不能使用,必須顯式刪除 ? 刪除基表時(shí),由該基表導(dǎo)出的所有視圖定義都必須顯式刪除 例 8 刪除視圖 IS_S1 DROP VIEW IS_S1 查詢視圖 1. 從用。 修改上例: CREATE VIEW F_Student2 (stdnum, name, sex, age, dept) AS SELECT Sno, Sname, Ssex, Sage, Sdept FROM Student WHERE Ssex=?女 ’ 說明: 為基表 Student增加屬性列不會破壞 Student表與F_Student2視圖的映象關(guān)系。女 39。假設(shè) SC表中 “ 成績 ” 列 Grade為數(shù)字型。 2. 帶表達(dá)式的視圖必須明確定義組成視圖的各個(gè)屬性列名。 例 5 定義一個(gè)反映學(xué)生出生年份的視圖。 例 4 建立信息系選修了 1號課程且成績在 90分以上的學(xué)生的視圖。 AND = AND = 39。 CREATE VIEW IS_S1(Sno, Sname, Grade) AS SELECT , Sname, Grade FROM Student, SC WHERE Sdept= 39。IS39。IS39。IS39。IS39。IS39。 從單個(gè)基本表導(dǎo)出 只是去掉了基本表的某些行和某些列 保留了碼 例 2 建立信息系學(xué)生的視圖,并要求透過該視圖進(jìn)行的更新操作只涉及信息系學(xué)生。 CREATE VIEW IS_Student AS SELECT Sno, Sname, Sage FROM Student WHERE Sdept= 39。 ( 3) WITH CHECK OPTION: 透過視圖進(jìn)行增刪改操作時(shí),不得破壞視圖定義中的謂詞條件(即子查詢中的條件表達(dá)式) ( 4) 組成視圖的屬性列名或者全部省略或者全部指定。 ? 必須有事務(wù)的概念和原子性 ? 完整性檢查和保證 視 圖 視圖的特點(diǎn): ? 虛表,是從一個(gè)或幾個(gè)基本表(或視圖)導(dǎo)出的表 ? 只存放視圖的定義,不會出現(xiàn)數(shù)據(jù)冗余 ? 基表中的數(shù)據(jù)發(fā)生變化,從視圖中查詢出的數(shù)據(jù)也隨之改變 ? 視圖一經(jīng)定義,就可以和基本表一樣被查詢、被刪除 基于視圖的操作 ? 查詢 ? 刪除 ? 受限更新 ? 定義基于該視圖的新視圖 定義視圖 一、建立視圖 1. 語句格式 CREATE VIEW 視圖名 [(列名 [, 列名 ]… )] AS 子查詢 [WITH CHECK OPTION] 2. 說明: ( 1) DBMS執(zhí)行 CREATE VIEW語句時(shí)只是把視圖的定義存入數(shù)據(jù)字典,并不執(zhí)行其中的 SELECT語句。= (SELETE Sdept FROM Student WHERE =) DELETE FROM SC WHERE SNO IN ( SELECT SNO FROM Student WHERE Sdept=?CS? ? ★ 注 : ?DELETE語句刪除的是表中的數(shù)據(jù),而不是關(guān)于表的定義; ? DBMS在執(zhí)行插入語句時(shí)會檢查所插元組是否破壞表上已定義的完整性規(guī)則 。 DELETE FROM SC WHERE 39。 例 10 刪除所有的學(xué)生選課記錄。 DELETE FROM SC WHERE Cno=39。9501939。= (SELETE Sdept FROM Student WHERE = ) ? UPDATE SC SET Grade=0 WHERE SNO IN ( SELECT SNO FROM Student WHERE Sdept=‘CS’) 刪除數(shù)據(jù) 1. 格式: DELETE FROM 表名 [WHERE 條件 ] 2. 功能: 刪除指定表中滿足 WHERE子句條件的 元組 3. 說明: WHERE子句 ? 指定要刪除的元組 ? 缺省表示要修改表中的所有元組 4. 刪除方式: ? 刪除某一個(gè)元組的值 ? 刪除多個(gè)元組的值 ? 帶子查詢的刪除語句 例 8 刪除學(xué)號為 95019的學(xué)生記錄。 UPDATE SC SET Grade=0 WHERE 39。 IS 39。 UPDATE Student SET Sage= Sage+1 例 5 將信息系所有學(xué)生的年齡增加 1歲。 95001 39。 ★ 注 : DBMS在執(zhí)行修改語句時(shí)會檢查修改操作是否破壞表上已定義的完整性規(guī)則 ? 實(shí)體完整性 ? 主碼不允許修改 ? 用戶定義的完整性 ? NOT NULL約束 ? UNIQUE約束 ? 值域約束 例 3 將學(xué)生 95001的年齡改為 22歲。 3. 修改方式: ? 修改某一個(gè)元組的值 ? 修改多個(gè)元組的值 ? 帶子查詢的修改語句 4. 說明: ( 1) SET子句 ? 指定修改方式 ? 要修改的列 ? 修改后取值。 ★ 注 : DBMS在執(zhí)行插入語句時(shí)會檢查所插元組是否破壞表上已定義的完整性規(guī)則。 1 39。 95020 39。)。 39。 18) 例 2 插入一條選課記錄 ( 39。 39。 39。 39。 INSERT INTO Student VALUES (39。 ( 2) VALUES子句 提供的值必須與 INTO子句匹配 ? 值的個(gè)數(shù) ? 值的類型 ★ 注 : 在表定義時(shí)說明了 NOT NULL的屬性列不能取空值。 數(shù)據(jù)更新 插入數(shù)據(jù) 兩種插入數(shù)據(jù)方式 插入單個(gè)元組 插入子查詢結(jié)果 一、插入單個(gè)元組 1. 語句格式: INSERT INTO 表名 [(屬性列 1[, 屬性列 2 … )] VALUES (常量 1 [, 常量 2] … ) 2. 功能: 將新元組插入指定表中。CS39。CS39。CS39。 例 47 查詢計(jì)算機(jī)科學(xué)系的學(xué)生與年齡 不大于 19歲的學(xué)生的差集。 2 39。 1 39。 本例實(shí)際上是查詢既選修了課程 1又選修了課程 2的學(xué)生。CS39。 例 45 查詢計(jì)算機(jī)科學(xué)系的學(xué)生與年齡不大于 19歲的學(xué)生的交集。 2 39。 1 39。 2 39。 1 39。 OR Sage=19 例 44 查詢選修了課程 1或者選修了課程 2的學(xué)生。 UNION SELECT * FROM Student WHERE Sage=19 方法 2 SELECT DISTINCT * FROM Student WHERE Sdept= 39。 方法 1: SELECT * FROM Student WHERE Sdept= 39。 集合查詢 標(biāo)準(zhǔn) SQL直接支持的集合操作種類:并操作 (UNION) 一般商用數(shù)據(jù)庫支持的集合操作種類: ? 并操作 (UNION) ? 交操作 (INTERSECT) ? 差操作 (MINUS) 一、 并操作 1. 形式: 查詢塊 UNION 查詢塊 2. 說明: 參加 UNION操作的各結(jié)果表的列數(shù)必須相同;對應(yīng)項(xiàng)的數(shù)據(jù)類型也必須相同。內(nèi)層查詢由于與外層查詢有關(guān),因此必須反復(fù)求值。) 想一想: 此例用連接運(yùn)算能否實(shí)現(xiàn)? 說明: ( 1) 由 EXISTS引出的查詢,子查詢條件依賴于外層父查詢的某個(gè)屬性值(上兩例中是 STUDENT中的 SNO值),稱這類查詢?yōu)橄嚓P(guān)子查詢。 SELECT Sname FROM Student WHERE NOT EXISTS (SELECT * FROM SC WHERE Sno = AND Cno=39。139。則取此 。 ? 若 SC中存在這樣的元組,其 Sno值等于此 ,并且其Cno= 39。 思路分析: ? 本查詢涉及 Student和 SC關(guān)系。 ? 若內(nèi)層查詢結(jié)果非空,則返回真值 ? 若內(nèi)層查詢結(jié)果為空,則返回假值 ★ 注 : 由 EXISTS引出的子查詢,其目標(biāo)列表達(dá)式通常都用* ,因?yàn)閹?EXISTS的子查詢只返回真值或假值,給出列名無實(shí)際意義。 AND Sdept 39。 IS ’ 方法二:用集函數(shù) SELECT Sname, Sage FROM Student WHERE Sage (SELECT MIN(Sage) FROM Student WHERE Sdept= 39。 IS 39。 IS ’ 例 40 查詢其他系中比信息系 所有 學(xué)生年齡 都 小的學(xué)生姓名及年齡。 IS 39。 例 39: 用集函數(shù)實(shí)現(xiàn)例 38查詢其他系中比信息系任意 一 個(gè) (其中某 一 個(gè) )學(xué)生年齡小的學(xué)生姓名和年齡。 結(jié)果 : Sname Sage 王敏 18 執(zhí)行過程 : ,首先處理子查詢,找出 IS系中所有學(xué)生的年齡,構(gòu)成一個(gè)集合 (19, 18) 2. 處理父查詢,找所有不是 IS系且年齡小于 19 或 18的學(xué)生 注: ANY和 ALL謂詞有時(shí)可以用集函數(shù)實(shí)現(xiàn)。) AND Sdept 39。 SELECT Sname, Sage FROM Student WHERE Sage ANY (SELECT Sage FROM Student WHERE Sdept= 39。 劉晨 39。 用自身連接完成本查詢要求 SELECT Sno, Sname, Sdept FROM Student S1 WHERE IN (SELECT Sdept FROM Student S2 WHERE = ? 劉晨 ’ ) 例 37 查詢選修了課程名為 “ 信息系統(tǒng) ” 的學(xué)生學(xué)號和姓名。 IS 39。 ② 查找所有在 IS系學(xué)習(xí)的學(xué)生。 用分步來完成 ① 確定 “ 劉晨 ” 所在系名 SELECT Sdept FROM Student WHERE Sname= 39。) ?子查詢的限制 SELECT語句中不能使用 ORDER BY子句,ORDER BY 子句只能對最終結(jié)果排序; ?層層嵌套方式反映了 SQL語言的結(jié)構(gòu)化; ?有些嵌套查詢可以用連接運(yùn)算替代。 AND 90 連接謂詞 其它限定條件 例 35 查詢每個(gè)學(xué)生的學(xué)號、姓名、選修的課程名及成績 SELECT , Sname, Cname, Grade FROM Student, SC, Course WHERE = and = 多表連接 結(jié)果: Sname Cname Grade 95001 李勇 數(shù)據(jù)庫 92 95001 李勇 數(shù)學(xué) 85 95001 李勇 信息系統(tǒng) 88 95002 劉晨 數(shù)學(xué) 90 95002 劉晨 信息系統(tǒng)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1