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

正文內(nèi)容

數(shù)據(jù)庫(kù)概論-關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言(已修改)

2025-01-29 12:41 本頁(yè)面
 

【正文】 結(jié)構(gòu)化查詢語(yǔ)言 SQL (Structured Query Language) 是一種介于關(guān)系代數(shù)與關(guān)系演算之間的語(yǔ)言,其功能包括查詢、操縱、定義和控制四個(gè)方面,是一個(gè)通用的、功能極強(qiáng)的關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言,目前已成為關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言。 第四章 關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言 SQL的歷史 SQL語(yǔ)言最初是由 IBM公司 1974年在原型的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)SYSTEM R上開發(fā)的語(yǔ)言。 1979年, ORACLE公司首家推出商業(yè)上可執(zhí)行的 SQL。 如今, SQL成為國(guó)際上標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)存取語(yǔ)言。 SQL的標(biāo)準(zhǔn) 美國(guó)國(guó)家標(biāo)準(zhǔn)學(xué)會(huì)( ANSI )將 SQL作為關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的標(biāo)準(zhǔn)語(yǔ)言,并且定義在ANSI ”具有完整性增強(qiáng)特征的數(shù)據(jù)庫(kù)語(yǔ)言 SQL”文檔中,即 ANSI SQL89。 ISO SQL86 ISO SQL89 1992年 ISO SQL92 SQL2 2021年 ISO SQL99 SQL3 2021年 SQL2021, 包含了 XML相關(guān)內(nèi)容 2021年 SQL2021, 定義了 SQL與 XML(包含 XQuery)的 關(guān)聯(lián)應(yīng)用 SQL概述及其特點(diǎn) 1. SQL概述 按其功能分為四大類 名稱 動(dòng)詞 功能 數(shù)據(jù)查詢 SELECT 查詢數(shù)據(jù) 數(shù)據(jù)定義 CREATE, DROP, ALTER 定義 、 撤消和修改 數(shù)據(jù)模式 數(shù)據(jù)操縱 INSERT, UPDATE, DELETE 增、刪、改數(shù)據(jù) 數(shù)據(jù)控制 GRANT, REVOKE 數(shù)據(jù)訪問(wèn)權(quán)限的控制 其作用是建立和使用數(shù)據(jù)庫(kù)。 SQL 的特點(diǎn) ① 綜合統(tǒng)一的一體化的特點(diǎn) ② 高度非過(guò)程化 ③ 面向集合的操作方式,語(yǔ)言功能強(qiáng) ④ 統(tǒng)一的語(yǔ)法結(jié)構(gòu),兩種使用方式 ⑤ 語(yǔ)言簡(jiǎn)潔,易學(xué)易用 ⑥ 提供數(shù)據(jù)控制功能 ⑦ 提供有數(shù)據(jù)視圖的數(shù)據(jù)結(jié)構(gòu) ⑧ 所有關(guān)系數(shù)據(jù)庫(kù)的公共語(yǔ)言 2. SQL數(shù)據(jù)庫(kù)的體系結(jié)構(gòu) 按支持 SQL的數(shù)據(jù)庫(kù)管理系統(tǒng)可稱其 SQL數(shù)據(jù)庫(kù),其結(jié)構(gòu)基本上采用三級(jí)結(jié)構(gòu),但所用術(shù)語(yǔ)與傳統(tǒng)關(guān)系模型的術(shù)語(yǔ)有些不同。 SQL 傳統(tǒng)的 RDB 基本表 (Base Table) 關(guān)系模式 存儲(chǔ)文件 (Base Table) 內(nèi)模式(存儲(chǔ)模式) 視圖 (View) 外模式 行 (Row) / 列 (Column) 元組 /屬性 用戶 1 用戶 2 用戶 3 用戶 4 視圖 3 視圖 1 視圖 2 基本表 1 基本表 2 基本表 3 基本表 4 存儲(chǔ)文件 1 存儲(chǔ)文件 1 SQL用戶 視圖 基本表 存儲(chǔ)文件 外模式 模式 內(nèi)模式 表 說(shuō)明: ? 一個(gè) SQL數(shù)據(jù)庫(kù)是表的匯集 ,它用一個(gè)或若干個(gè)SQL模式定義; ? 基本表都是一個(gè)實(shí)際存在的關(guān)系,由行集構(gòu)成,一行是列的序列,每列對(duì)應(yīng)一個(gè)數(shù)據(jù)項(xiàng); ? 一個(gè)表或者是一個(gè)基本表,或者是一個(gè)視圖; ? 每個(gè)存儲(chǔ)文件與外部存儲(chǔ)上一個(gè)物理文件對(duì)應(yīng); ? 用戶可以用 SQL語(yǔ)句對(duì)視圖和基本表進(jìn)行查詢操作; ? SQL用戶可以應(yīng)用程序,也可以是終端用戶。 格式: SELECT [ALL|DISTINCT]目標(biāo)列表達(dá)式 [, 目標(biāo)列表達(dá)式, ] FROM 基本表名或視圖名 [, 基本表名或視圖名 , ] [WHERE 條件表達(dá)式 ] [GROUP BY 列名 1[HAVING條件表達(dá)式 ]] [ORDER BY 列名 2[ASC|DESC]]; 描述: 根據(jù) WHERE子句的條件表達(dá)式,從 FROM子句指定的基本表或視圖中找出滿足條件的元組,再按 SELECT子句中的目標(biāo)列表達(dá)式,選出元組中的屬性值形成結(jié)果表。如果有 GROUP BY子句則將結(jié)果按 列名 1的值進(jìn)行分組,該屬性列相等的元組為一個(gè)組。通常會(huì)在每組中作用集函數(shù)。如果 GROUP子句帶有 HAVING短語(yǔ),則只有滿足指定條件的組才予輸出。如果有 ORDER BY子句,則結(jié)果表還要按 列名 2的值升序或降序排列。 SQL查詢 1. 選擇表中的若干列 ? 選擇表中的指定列; ? 選擇表中的所有列; ? 結(jié)果列的顯示順序; ? 使用列表達(dá)式; SELECT中的 目標(biāo)列表達(dá)式 可以是表中的列,也可以是表達(dá)式,包括算術(shù)表達(dá)式、字符串常數(shù)、函數(shù)等。(字符串用單引號(hào)定界)。 ? 使用的列的別名 : 列名 [AS] 列的別名 單表查詢 僅涉及一個(gè)表的查詢 例 1:求全體學(xué)生的學(xué)號(hào)、姓名。 例 2:求全體學(xué)生的詳細(xì)信息。 例 3:求學(xué)生學(xué)號(hào)和學(xué)生出生的年份 (經(jīng)過(guò)計(jì)算的值)。 例 4:求學(xué)生的學(xué)號(hào)和出生年份,顯示時(shí) 使用別名 Student_No 和 Birth_Day。 2. 選擇表中的若干元組 ① 消除取值重復(fù)行 查找相異的行:在 SELECT語(yǔ)句中使用關(guān)鍵字 DISTINCT 原本不完全相同的元組,經(jīng)過(guò)向某些列投影操作后,可能變成相同的行了。如果想去掉結(jié)果表中的重復(fù)行,必須指定 DISTINCT 短語(yǔ),沒(méi)有指定,則使用用缺省值 ALL,意為保留結(jié)果表中所有的行。 例 5:求選修了課程的學(xué)生學(xué)號(hào)。 ② 查詢滿足條件的元組 可以通過(guò) WHERE子句來(lái)實(shí)現(xiàn)。 WHERE常用的查詢條件 如下表所示。 查詢條件 謂詞 比較 =,=,=,!=,!,!。 NOT+上述比較運(yùn)算符 確定范圍 BETWEEN AND, NOT BETWEEN AND 確定集合 IN, NOT IN 字符匹配 LIKE, NOT LIKE 空值 IS NULL, IS NOT NULL 多重條件 AND, OR, NOT ? 大小比較 條件表達(dá)式的形式如下: 屬性列 比較運(yùn)算符 {列名 |常量 |表達(dá)式 } 其中:字符串常量和日期常量要用一對(duì) 單引號(hào)括起來(lái)。 例 6:求年齡大于等于 20歲的學(xué)生姓名和年齡。 ? BETWEEN 確定范圍 謂詞 BETWEEN AND與 NOT BETWEEN AND 的一般格式為: 屬性列 [NOT] BETWEEN a AND b 查詢屬性值在(或不在)指定范圍內(nèi)的元組 其中: a 為范圍的下限(低值), b 為范圍的上限(高值)。 選出的元組包括邊界 a與 b,要求 a=b, 等價(jià)于 a = 屬性列 = b 。 例 7:求年齡在 20歲與 22歲之間(包括 20歲和 22歲)的學(xué)生學(xué)號(hào)和年齡。 例 8:求年齡不在 20歲與 22歲之間的學(xué)生學(xué)號(hào) 和年齡。 ? IN 確定集合 謂詞 IN可以用來(lái)查找屬性值屬于指定集合 的元組。 屬性列 [NOT] IN 值表 謂詞 IN實(shí)際上是一系列謂詞 ‘ OR’的縮寫。 所起的作用就是檢查列值是否等于它后面括弧 內(nèi)的一組值中某一個(gè)。如果等于其中某一個(gè)值, 則其結(jié)果為 ‘ 真 ’ ,否則其結(jié)果為 ‘ 假 ’ 。 NOT IN 表示與 IN完全相反的含義。 例 9: 求在下列各系的學(xué)生:數(shù)學(xué)系( ‘ MA’)、 計(jì)算機(jī)科學(xué)系( ‘ CS’)。 例 10:求不是數(shù)學(xué)系、計(jì)算機(jī)科學(xué)系的學(xué)生的 信息。 ? LIKE 匹配查詢或模糊查詢 謂詞 LIKE的一般格式為: 屬性列 [NOT] LIKE ‘匹配串 ’ 查詢指定的屬性列與 匹配串 相匹配的元組。 注釋: 匹配串 可以是一個(gè)完整的字符串,也可以含有通配符的字符串。 通配符包括: %( 百分號(hào) ) : 代表任意長(zhǎng) ( 長(zhǎng)度為 0) 字符串 。 _( 下劃線 ) : 代表任意單個(gè)字符 所有其它字符: 只代表自己 例 11:求姓名是以字母 ‘ 馬 ’ 打頭的學(xué)生信息。 例 12:求姓名中含有字母 ‘ 馬 ’ 的學(xué)生信息。 例 13:求姓名長(zhǎng)度至少是三個(gè)字符且倒數(shù)第 三個(gè)字符必須是字母 ‘ 馬 ’ 的學(xué)生信息。 ? 使用換碼字符將通配符轉(zhuǎn)義為普通字符 例 14:查詢以 DB_開頭,且倒數(shù)第 3個(gè)字符為 i的課程的詳細(xì)情況。 ESCAPE 39。\ 39。 表示 “ \ ” 為換碼字符 ? NULL 涉及空值查詢 NULL表示空值??罩凳且环N不存在的或者不知道、不可用的數(shù)據(jù)。 列名 [NOT] IS NULL 這里的 IS不能用 =替代。 ? 數(shù)據(jù)庫(kù)表的行中,未被賦值的字段自動(dòng)被認(rèn)為是空值。 0長(zhǎng)度的字符串自動(dòng)解釋為空值。 空值的賦值: ? 把連續(xù)兩個(gè)單引號(hào)賦值給它; ? 把空值常量 NULL賦值給它。 例 15:求缺少學(xué)習(xí)成績(jī)的學(xué)生的學(xué)號(hào)和課程號(hào)。 (查詢含有空值的行)。 SELECT SNO, CNO FROM SCORE WHERE GRADE IS NULL。 GRADE = NULL。 ? 多重條件 當(dāng)查詢條件涉及到多個(gè)時(shí),可將若干條件通過(guò)邏輯運(yùn)算符構(gòu)成一個(gè)更復(fù)雜的條件進(jìn)行查詢。 可以使用三種邏輯運(yùn)算符: NOT 邏輯非; AND 邏輯與; OR 邏輯或 運(yùn)算符的優(yōu)先順序如下: ? = != NOT= = = ? [NOT] BETWEEN… AND [NOT] IN [NOT] LIKE IS [NOT] NULL ? NOT ? AND ? OR ? 用戶可以用括號(hào) ( )改變優(yōu)先級(jí)。 例 16:求計(jì)算機(jī)系 (‘CS’)或數(shù)學(xué)系 (‘MA’),年齡 大于 20歲的學(xué)生姓名、系和年齡。 例 17:求選修課程 (‘001’)或課程 (‘002’),成績(jī)?cè)? 85和 95之間,學(xué)號(hào)為 96xxx的學(xué)生的學(xué)號(hào)、 課程與成績(jī)。 3. 控制行的顯示順序 ORDER BY 子句中,列名表 2指出在顯示查詢結(jié)果時(shí),數(shù)據(jù)按指定的列排序。 ASC 升序排序(默認(rèn)值); DESC 降序排序 ? 可以選擇多列進(jìn)行排序; ? ORDER BY子句中可以使用表達(dá)式; ? ORDER BY 子句必須是放在 SELECT命令中影響選取行的所有子句的后面; ? 如果排序列含有空值時(shí), DESC排序時(shí),含有空值的行位于最前面; ASC排序時(shí),含有空值的行位于最后面。 例 18:求選修課程 (‘001’)或課程 (‘002’)學(xué)生的 學(xué)號(hào)、課程號(hào)與成績(jī),結(jié)果按課程號(hào)升 序、成績(jī)降序排序。 4. 組函數(shù) SQL提供的五種組函數(shù) COUNT( ) 計(jì)算所選數(shù)據(jù)(記錄)的個(gè)數(shù) SUM( ) 計(jì)算某一數(shù)值列的和 AVG( ) 計(jì)算某一數(shù)值列的平均值 MAX( ) 求 (字符、日期、數(shù)值列 )的最大值 MIN( ) 求 (字符、日期、數(shù)值列 )的最小值 例 19:求學(xué)生總?cè)藬?shù)。 例 20:求選修了課程的學(xué)生人數(shù)。 例 21:求計(jì)算機(jī)系學(xué)生的平均年齡。 例 22:求選修了課程 ‘ 005’的最高、最低與 平均成績(jī)。 5. 分組查詢 實(shí)現(xiàn)行的分組和分組統(tǒng)計(jì)。 在對(duì)表格進(jìn)行操作時(shí),要求將記錄按某個(gè)或某幾個(gè)字段上相同的值分成組,然后再對(duì)組進(jìn)行相應(yīng)的操作,稱作分組查詢。 SNO SNAME SDEPT SCLASS SAGE 96001 丁一 CS 01 19 96002 王二 CS 01 20 96003 張三 CS 01 21 96004 李四 CS 02 19 96005 劉五 CS 02 20 96006 趙六 CS 04 22 96007 馬蓉 MA 01 20 96008 司馬明 MA 01 19 96009 張勝利 MA 01 20 96010 李力 CI 02 22 S SDEPT SCLASS SAGE CS 01 20 CS 02 CS 04 22 MA 01 CI 02 22 分組后的平均年齡 按系、班級(jí)分組計(jì)算學(xué)生的平均年齡 ? GROUP BY 子句
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1