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

正文內(nèi)容

數(shù)據(jù)庫開發(fā)技術(shù)-第2章關(guān)系數(shù)據(jù)庫系統(tǒng)理論基礎(chǔ)(文件)

2025-07-09 08:53 上一頁面

下一頁面
 

【正文】 OP TABLE student 數(shù)據(jù)定義命令 ? SQL語言的數(shù)據(jù)定義命令用于定義表(CREATE TABLE)、定義視圖 (CREATE VIEW)和定義索引 (CREATE INDEX)等。 ? 索引的作用:通過使用索引,可以大大提高數(shù)據(jù)庫的檢索速度,改善數(shù)據(jù)庫性能。可以有多個(gè),小于 249個(gè) 如何創(chuàng)建索引 CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED] INDEX index_name ON table_name (column_name…) UNIQUE表示唯一索引,可選 CLUSTERED、 NONCLUSTERED表示聚集索引還是 非聚集索引,可選 ? 使用 TSQL語句創(chuàng)建索引的語法: 唯一索引 聚集索引或非聚集索引 CREATE NONCLUSTERED INDEX IX_writtenExam ON stuMarks(writtenExam) ? 在 stuMarks表的 writtenExam列創(chuàng)建索引: 建立索引的原則 什么情況不適合建索引 ? 表記錄太少 ? 經(jīng)常插入、刪除、修改的表 ? 對于查詢很少涉及的列或數(shù)據(jù)值較少的列 什么情況適合建索引 ? 對于按范圍查詢的列 ? 經(jīng)常參與查詢的列 ? 主鍵和外鍵 數(shù)據(jù)定義命令 ? SQL語言的數(shù)據(jù)定義命令用于定義表(CREATE TABLE)、定義視圖 (CREATE VIEW)和定義索引 (CREATE INDEX)等。 ? SELECT institute ? FROM Class ? 上述查詢不消除重復(fù)元組 ? 消除重復(fù)元組,查詢結(jié)果如圖 312所示 ? SELECT DISTINCT institute ? FROM Class 目標(biāo)列表達(dá)式 ? 可以是列名 ? 也可以一個(gè)運(yùn)算表達(dá)式 ? 也可以用 SQL提供的表達(dá)式 ? COUNT(*) 統(tǒng)計(jì)記錄條數(shù) ? COUNT(列名 ) 統(tǒng)計(jì)列值的個(gè)數(shù) ? SUM(列名 ) 計(jì)算數(shù)值列的總和 ? AVG(列名 ) 計(jì)算數(shù)值列的平均值 ? MAX(列名 ) 計(jì)算數(shù)值列的最大值 ? MIN(列名 ) 計(jì)算數(shù)值列的最小值 單表查詢 ? 選擇表中的若干列 ? 查詢?nèi)苛? ? 查詢經(jīng)過計(jì)算的列 ? 選擇表中的若干元組 ? 對查詢結(jié)果排序 ? 使用集函數(shù) 查詢?nèi)苛? ? 可使用兩種方法: ? 將所有的列在 SELECT子句中列出 (可以改變列的顯示順序 ); ? 使用 *符號, *表示所有屬性,按照表定義時(shí)的順序顯示所有屬性 ? [例 ] 查詢班級表的全部信息。 ? SELECT studentNo, courseNo, score ? FROM Score ? WHERE courseNo IN (39。, 39。 OR courseNo=39。 對查詢結(jié)果排序 ? 使用 ORDER BY 子句實(shí)現(xiàn)排序運(yùn)算,其語法為: ? ORDER BY 表達(dá)式 1 [ASC | DESC] [, 表達(dá)式 2 [ASC | DESC], ... ] ? 其中: ? 表達(dá)式 1, 表達(dá)式 2, ...可以是列名、函數(shù)或表達(dá)式 ? 缺省按升序 (ASC)排序 ? 按降序排序,必須指明 DESC選項(xiàng) ? 該運(yùn)算含義是: ? 在查詢結(jié)果中首先按 表達(dá)式 1的值進(jìn)行排序 ? 在 表達(dá)式 1值相等的情況下再按 表達(dá)式 2值排序 ? 依此類推 排序查詢舉例 ? [例 ] 在學(xué)生 Student表中查詢“女”學(xué)生的學(xué)號、姓名、所屬班級編號和出生日期,并按班級編號的升序、出生日期的降序排序輸出。 ? 查詢結(jié)果分組的目的是為了細(xì)化集函數(shù)作用的對象。在查詢中是先用 WHERE子句限定元組,然后進(jìn)行分組,最后再用 HAVING子句剔除不需要的分組。 分組統(tǒng)計(jì)舉例 ? 例:求每個(gè)學(xué)生選課的考試成績平均分。 SELECT 課程號 ,AVG(成績 ) FROM 選課 GROUP BY 課程號 HAVING AVG(成績 )80 分組查詢限制 ? 分組列必須是 FROM子句指定的表中的實(shí)際列名,不能按照計(jì)算列分組 ? 出現(xiàn)在分組查詢 SELECT 子句 中每項(xiàng)對于每個(gè)分組只能有一個(gè)值,因此,選項(xiàng)只能為下列情形之一 ? 常數(shù) ? 集函數(shù),每個(gè)分組生成單個(gè)值 ? 分組列,每個(gè)分組具有相同的值 select , name, avg(degree) from score, student where = group by 思考:上述查詢正確嗎? 分組統(tǒng)計(jì)查詢練習(xí) ?查詢每個(gè)同學(xué)的學(xué)號、選課門數(shù)、平均分和最高分 ?查詢獲得的總學(xué)分 (注:只有成績合格才能獲得該課程的學(xué)分 )大于或等于 28的同學(xué)的學(xué)號、姓名和總學(xué)分。 SELECT 姓名 ,選課 .學(xué)號 ,成績 FROM 學(xué)生 ,選課 WHERE 學(xué)生 .學(xué)號 =選課 .學(xué)號 因?yàn)閮蓚€(gè)表中均有“學(xué)號”字段,所以必須指明所屬表。會計(jì)學(xué)院 39。 非等值連接 【 例 】 查詢 score 表中的信息,包括學(xué)號,課程號,成績和成績等級( A、 B、 C、 D、 E)。 右外連接 ? 右外連接 ? 連接結(jié)果中包含右關(guān)系中的所有元組,對于右關(guān)系中沒有連接上的元組,其左關(guān)系中的相應(yīng)屬性用空值替代 ? [例 ] 使用右外連接查詢每個(gè)班級的班級名稱、所屬學(xué)院、學(xué)生學(xué)號、學(xué)生姓名,按班級名稱排序輸出 ? SELECT className, institute, studentNo, studentName ? FROM Student a RIGHT OUTER JOIN Class b ? ON = ? ORDER BY className 全外連接 ? 全外連接 ? 連接結(jié)果中包含左、右關(guān)系中的所有元組 ? 對左關(guān)系中沒有連接上的元組,其右關(guān)系中的相應(yīng)屬性用空值替代 ? 對右關(guān)系中沒有連接上的元組,其左關(guān)系中的相應(yīng)屬性用空值替代 ? [例 ] 使用全外連接查詢每個(gè)班級的班級名稱、所屬學(xué)院、學(xué)生學(xué)號、學(xué)生姓名,按班級名稱排序輸出。 ? 嵌套查詢的求解方法是由里向外進(jìn)行處理。101? SELECT city FROM student WHERE no=?101? 。 ? 當(dāng)該子查詢至少存在一個(gè)返回值時(shí),這個(gè)條件為真( .T.) ,否則為假( .F.) ? 例:輸出所有任課老師的姓名和單位 SELECT , FROM teacher s1 WHERE EXISTS (SELECT FROM course s2 WHERE =) 帶 EXIST謂詞的子查詢 子查詢練習(xí) ?查詢至少選修了 28個(gè)學(xué)分的同學(xué)的學(xué)號、姓名以及所選修各門課程的課程名、成績和學(xué)分,并按學(xué)號排序輸出 集合查詢 ? SQL支持集合運(yùn)算 ? SELECT語句查詢的結(jié)果是集合 ? 傳統(tǒng)的集合操作主要包括并 UNION、交INTERSECT、差 EXCEPT運(yùn)算 ? 在執(zhí)行集合運(yùn)算時(shí)要求參與運(yùn)算的查詢結(jié)果的列數(shù)一樣,其對應(yīng)列的數(shù)據(jù)類型必須一致。 UNION SELECT studentNo, birthday, className, institute FROM Student a, Class b WHERE = AND year(birthday)=1991 AND institute=39。 INTERSECT SELECT , studentName FROM Student a, Score b WHERE = AND courseNo=39。2022030239。女 39。如果省略表后的列名則 VALUES中必須包含各個(gè)列的值,這些值可以是 NULL。,39。, 39。, 39。對所以符合 WHERE條件的行,都將使用 SET子句中指定的值更新指定列中的值。 WHERE 學(xué)號 =39。,姓名 =39。,院系名稱 =39。 UPDATE語句一次可更改多條記錄 DELETE 語句 ? 命令格式: DELETE FROM TableName [WHERE Condition] ? 例:刪除課程關(guān)系中課程號為“ 05”的元組。 ? 一個(gè)基本表可以建立多個(gè)視圖,一個(gè)視圖也可以建立在多個(gè)基本表上。 ? 視圖在數(shù)據(jù)庫中是作為查詢來保存的,當(dāng)引用一個(gè)查詢時(shí), DBMS就執(zhí)行這個(gè)查詢,然后將查詢結(jié)果作為視圖來用。 ? WITH CHECK OPTION 子句是為了防止用戶通過視圖對數(shù)據(jù)進(jìn)行更新、插入、刪除操作。 ? 為防止用戶通過視圖對數(shù)據(jù)進(jìn)行增加、刪除、修改時(shí),有意無意地對不屬于視圖范圍內(nèi)的基本表數(shù)據(jù)進(jìn)行操作,可在定義視圖時(shí)加上 WITH CHECK OPTION子句。除行列子集視圖外,還有些視圖理論上是可更新的,但它們的確切特征還是尚待研究的課題。 這里 主要介紹一下安全性控制功能。 ( 2)不一致性 由于數(shù)據(jù)存儲冗余,當(dāng)更新某些數(shù)據(jù)項(xiàng)時(shí),就有可能一部分字段修改了,而另一部分字段未修改,造成存儲數(shù)據(jù)的不一致性。 ( 4)刪除異常 當(dāng)要刪除所有學(xué)生成績時(shí),所有 NO、 NAME 和 SEX 屬性值也都刪除了,這便是刪除異常。 ( 3)插入異常 如果某個(gè)學(xué)生未選修課程,則其 NO、 NAME 和 SEX 屬性值無法插入,因?yàn)? CNO 為空,關(guān)系數(shù)據(jù)模式規(guī)定主碼不能為空或部分為空,這便是插人異常。主碼為( NO, CNO) 這個(gè)關(guān)系模式存在如下問題: ( 1)數(shù)據(jù)冗余 當(dāng)一個(gè)學(xué)生選修多門課程就會出現(xiàn)數(shù)據(jù)冗余。 視圖消解舉例 ? [例 ] 在信息系學(xué)生的視圖中找出年齡小于 20歲的學(xué)生。 更新視圖 ? 在關(guān)系數(shù)據(jù)庫中,并不是所有的視圖都是可更新的,因?yàn)橛行┮晥D的更新不能唯一地有意義地轉(zhuǎn)換成對相應(yīng)基本表的更新。 CREATE VIEW mgstuinfo AS SELECT sno, sname, ssex, sbirthday FROM student WHERE nation=?蒙古族’ WITH CHECK OPTION 多個(gè)基表上建立的視圖 ? 建立選修了‘ 001?號課程的學(xué)生信息(學(xué)號、姓名、性別、班號)的視圖 CREATE VIEW c001stuinfo(學(xué)號,姓名,性別,班號 ) AS SELECT , sname,ssex,classno FROM student, score WHERE = 分組視圖(練習(xí)) ? 建立一個(gè)學(xué)生平均成績的視圖,要求包括學(xué)號,學(xué)生姓名,選修課程門數(shù),平均成績 視圖的刪除 ? DROP VIEW 視圖名 ? DROP VIEW c001stuinfo 視圖的數(shù)據(jù)操作 ? 查詢視圖 ? 查詢蒙古族學(xué)生視圖 mgstuinfo中性別為男的學(xué)生 SELECT * FROM mgstuinfo WHERE ssex=?男’ 更新視圖 ? 更新視圖是指通過視圖進(jìn)行數(shù)據(jù)的增加、刪除、修改。 ? 可以在視圖上再定義視圖。 ? 基本表的數(shù)據(jù)發(fā)生改變,視圖中查詢的數(shù)據(jù)也隨之改變。 1 視圖的特點(diǎn) 2 視圖的定義 3 視圖的數(shù)據(jù)操作 4 視圖的作用 視圖的特點(diǎn) ? 視圖是從一個(gè)或幾個(gè)基本表(或視圖)導(dǎo)出的表,它與基本表不同,是一個(gè)虛表。 WHERE 學(xué)號 =39。,性別 =39。 UPDATE 學(xué)生表 SET 學(xué)號 =39。 UPDATE 學(xué)生表 SET 姓名 =39。,NULL) UPDATE語句 UPDATE語句用于更新一個(gè)表中選定行的一列或者多列的值。,39。,39。 INSERT INTO 學(xué)生表 VALUES(39。國貿(mào)系 39。李婷 39。 ●插入數(shù)據(jù) INSERT ●修改數(shù)據(jù) UPDATE ●刪除數(shù)據(jù) DELETE INSERT語句 INSERT語句向表中插入新行,其語法格式為: INSERT [ INTO] table_or_view [(column_list)] VALUES (DA
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1