自考《數(shù)據(jù)庫(kù)原理》串講-關(guān)系數(shù)據(jù)庫(kù)SQL語(yǔ)言
第三章 關(guān)系數(shù)據(jù)庫(kù)SQL語(yǔ)言
本章為重點(diǎn)章,應(yīng)熟悉和掌握SQL的數(shù)據(jù)定義、數(shù)據(jù)查詢、數(shù)據(jù)更新的句法及其應(yīng)用,特別是數(shù)據(jù)查詢的應(yīng)用。結(jié)合上機(jī)操作進(jìn)行理解和掌握。
一、SQL概述。
1、SQL發(fā)展歷程( 識(shí)記 )
SQL從1970年美國(guó)IBM研究中心的E.F.Codd發(fā)表論文到1974年Boyce和Chamberlin把SQUARE語(yǔ)言改為SEQUEL語(yǔ)言,到現(xiàn)在還在不斷完善和發(fā)展之中,SQL(結(jié)構(gòu)式查詢語(yǔ)言)雖然名為查詢,但實(shí)際上具有定義、查詢、更新和控制等多種功能。
2、SQL數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)( 領(lǐng)會(huì) )
SQL數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)也是三級(jí)結(jié)構(gòu) ,但術(shù)語(yǔ)與傳統(tǒng)關(guān)系模型術(shù)語(yǔ)不同,在SQL中,關(guān)系模式稱為“ 基本表 ”,存儲(chǔ)模式稱為“ 存儲(chǔ)文件 ”,子模式稱為“ 視圖 ”,元組稱“ 行 ”,屬性稱“ 列 ”。
SQL數(shù)據(jù)庫(kù)體系的結(jié)構(gòu)要點(diǎn)如下:
(1)一個(gè)SQL數(shù)據(jù)庫(kù)是表的匯集。
(2)一個(gè)SQL表由行集構(gòu)成,行是列的序列,每列對(duì)應(yīng)一個(gè)數(shù)據(jù)項(xiàng)。
(3)表或者是基本表,或者是視圖。基本表是實(shí)際存儲(chǔ)在數(shù)據(jù)庫(kù)中的表,視圖由是由若干基本表或其他視圖構(gòu)成的表的定義。
(4)一個(gè)基本表可以跨一個(gè)或多個(gè)存儲(chǔ)文件,一個(gè)存儲(chǔ)文件也可存放一個(gè)或多個(gè)基本表。存儲(chǔ)文件與物理文件對(duì)應(yīng)。
(5)用戶可以用SQL語(yǔ)句對(duì)表進(jìn)行操作,包括視圖和基本表。
(6)SQL的用戶可以是應(yīng)用程序,也可以是終端用戶。
3、SQL的組成( 識(shí)記 )
SQL由四部分組成:
(1)數(shù)據(jù)定義:SQL DDL.定義SQL模式,基本表、視圖和索引。
(2)數(shù)據(jù)操縱:SQL DML.包括數(shù)據(jù)查詢和數(shù)據(jù)更新(增、刪、改)。
(3)數(shù)據(jù)控制:包括對(duì)基本表和視圖的授權(quán)、完整性規(guī)則的描述,事務(wù)控制等。
(4)嵌入式SQL的使用規(guī)定。
二、SQL的數(shù)據(jù)定義( 簡(jiǎn)單應(yīng)用 )
1、SQL模式的創(chuàng)建和撤消:
SQL 模式的創(chuàng)建 可簡(jiǎn)單理解為建立一個(gè)數(shù)據(jù)庫(kù),定義一個(gè)存儲(chǔ)空間,其句法是:
CREAT SCHEMA <模式名> AUTHORIZATION <用戶名>
撤消SQL模式的句法為:
DROP SCHEMA <模式名> [ CASCADE | RESTRICT ]
方括號(hào)中的選項(xiàng)參數(shù)CASCADE表示連鎖方式,執(zhí)行時(shí)將模式下所有基本表、視圖、索引等元素全部撤消。RESTRICT表示約束式,執(zhí)行時(shí)必須在SQL模式中沒(méi)有任何下屬元素時(shí)方可撤消模式。
2、SQL提供的基本數(shù)據(jù)類(lèi)型
數(shù)值型:包括 integer、smallint、real、double precision 、float(n),numeric(p,d)
字符串型:char(n)、varchar(n),前者是定長(zhǎng),后者為變長(zhǎng)串
位串型:bit(n),bit varying(n),同上。
時(shí)間型:date、time.
3、基本表的創(chuàng)建、修改和撤消
基本表的創(chuàng)建:(可理解為建立表結(jié)構(gòu))
CREAT TABLE SQL 模式名?;颈砻?/P>
(列名,類(lèi)型,
……
完整性約束……)
完整性約束包括主鍵子句(PRIMARY KEY)、檢查子句(CHECK)和外鍵子句(Foreign KEY)。
基本表結(jié)構(gòu)的修改
ALTER TABLE 基本表名 ADD/ DROP (增加/刪除) 列名 類(lèi)型名(增加時(shí)寫(xiě)出)
刪除時(shí)有子句 [CASCADE|RESTRICT],前者為連鎖刪除,后者為約束刪除,即沒(méi)有對(duì)本列的任何引用時(shí)才能刪除。
基本表的撤消
DROP TABLE 基本表名 [CASCADE|RESTRICT]
4、視圖的創(chuàng)建和撤消
創(chuàng)建: CREAT VIEW 視圖名(列名表) AS SELECT 查詢語(yǔ)句
撤消: DROP VIEW 視圖名
5、索引的創(chuàng)建和撤消
創(chuàng)建: CREAT [UNIQUE] INDEX 索引名 ON 基本表名(列名表 [ASC|DESC])
撤消: DROP INDEX 索引名
總結(jié):凡創(chuàng)建都用 CREAT ,刪除都用 DROP ,改變用 alter ,再跟類(lèi)型和名字,附加子句很容易了。
三、SQL的數(shù)據(jù)查詢( 綜合應(yīng)用 )
這一段是本章的重點(diǎn)內(nèi)容,應(yīng)該熟練掌握。首先了解基本句法:
1、 SELECT -FROM- WHERE 句型
SELECT 列名表(逗號(hào)隔開(kāi)) FROM 基本表或視圖序列 WHERE 條件表達(dá)式
在這里,重點(diǎn)要掌握條件表達(dá)式中各種運(yùn)算符的應(yīng)用,如=,>,<,<>等算術(shù)比較運(yùn)算符、邏輯運(yùn)算符 AND、OR、NOT 、集合成員資格運(yùn)算符: IN,NOT IN ,以及嵌套的 SELECT 語(yǔ)句的用法要特別注意理解。 針對(duì)課本的例題和課后習(xí)題進(jìn)行掌握。
在查詢時(shí), SELECT 語(yǔ)句可以有多種寫(xiě)法,如 聯(lián)接查詢、嵌套查詢和使用存在量詞的嵌套查詢 等。最好都掌握,但是起碼應(yīng)能寫(xiě)出一種正確的查詢語(yǔ)句。
2. SELECT 語(yǔ)句完整的句法:
SELECT 列名表(逗號(hào)隔開(kāi))
FROM 基本表或視圖序列
[ WHERE 條件表達(dá)式] (此為和條件子句)
[GROUP BY 列名序列] (分組子句)
[HAVING 組條件表達(dá)式] (組條件子句)
[ORDER BY列名[ASC|DESC]……] (排序子句)
這段關(guān)于完整句法的內(nèi)容能夠理解也就問(wèn)題不大了。
3、 SELECT 語(yǔ)句中的限定
這一段內(nèi)容主要是對(duì) SELECT 語(yǔ)句進(jìn)一步使用進(jìn)行的深入學(xué)習(xí),領(lǐng)會(huì)下列各種限定的使用目的和方法。
要求輸出表格中不出現(xiàn)重復(fù)元組,則在 SELECT 后加一DISTINCT
SELECT 子句中允許出現(xiàn)加減乘除及列名,常數(shù)的算術(shù)表達(dá)式
WHERE 子句中可以用BETWEEN……AND……來(lái)限定一個(gè)值的范圍
同一個(gè)基本表在 SELECT 語(yǔ)句中多次引用時(shí)可用AS來(lái)增加別名
WHERE 子句中字符串匹配用LIKE和兩個(gè)通配符,%和下劃線_.
查詢結(jié)果的結(jié)構(gòu)完全一致時(shí)可將兩個(gè)查詢進(jìn)行并(UNION)交(INTERSECT)差(EXCPT)操作
查詢空值操作不是用='null',而是用 IS NULL來(lái)測(cè)試。
集合成員資格比較用 IN/NOT IN ,集合成員算術(shù)比較用元組θSOME/ALL
可以用子查詢結(jié)果取名(表名(列名序列))來(lái)作為導(dǎo)出表使用
基本表的自然聯(lián)接操作是用 NATURAL INNER JOIN來(lái)實(shí)現(xiàn)的。
四、SQL的數(shù)據(jù)更新( 簡(jiǎn)單應(yīng)用 )
簡(jiǎn)單應(yīng)用就是掌握基本的句型并能套用在一些簡(jiǎn)單的查詢要求上。
1、數(shù)據(jù)插入:
INSERT INTO 基本表名(列名表)
valueS (元組值)
或
INSERT INTO 基本表名(列名表)
SELECT 查詢語(yǔ)句
其中元組值可以連續(xù)插入。用查詢語(yǔ)句可以按要求插入所需數(shù)據(jù)。
2、數(shù)據(jù)刪除:
DELETE FROM 基本表名 [ WHERE 條件表達(dá)式]
3、數(shù)據(jù)修改:
UPDATE 基本表名
SET 列名=值表達(dá)式,[列名=值表達(dá)式……]
[ WHERE 條件表達(dá)式]
4、對(duì)視圖的更新:
我們知道,對(duì)視圖的查詢是和基本表相同的,但是更新操作則受到下列三條規(guī)則的限制:(領(lǐng)會(huì)一下)
如果視圖是從多個(gè)基本表使用聯(lián)接操作導(dǎo)出的,則不允許更新。
如果導(dǎo)出的視圖使用了分組和聚合操作,也不允許更新。
如果視圖是從單個(gè)基本表使用選擇和投影操作導(dǎo)出的,并且包括了基本表的主鍵或某個(gè)候選鍵,則可以執(zhí)行操作。(這就相當(dāng)于在基本表上操作)。
這一節(jié)的關(guān)于增刪改的操作要和前面關(guān)于數(shù)據(jù)庫(kù)模式、表的增刪改操作進(jìn)行對(duì)比學(xué)習(xí),以加深理解。不要忘記上機(jī)實(shí)踐 .
?2013年高教自考網(wǎng)絡(luò)輔導(dǎo)課程招生簡(jiǎn)章
更多信息請(qǐng)?jiān)L問(wèn):自學(xué)考試頻道 自學(xué)考試論壇
最新資訊
- 考前必背!自學(xué)考試《中國(guó)近現(xiàn)代史綱要》論述題高頻考點(diǎn)2024-10-19
- 自考報(bào)考策略:科學(xué)搭配科目,加速畢業(yè)進(jìn)程2024-07-20
- 2025年考研考生五一假期,英語(yǔ)科目應(yīng)該如何復(fù)習(xí)?2024-05-03
- 備考指南!2024年4月自學(xué)考試考前要做哪些準(zhǔn)備?2024-03-31
- 考前備考沖刺!自考如何一次就過(guò)?2024-03-30
- 考點(diǎn)匯總:《中國(guó)近現(xiàn)代史綱要》論述題2024-03-25
- 備考資料:《中國(guó)近現(xiàn)代史綱要》簡(jiǎn)答題考點(diǎn)匯總2024-03-25
- 自考可以從哪些維度進(jìn)行備考?2024-02-17
- @自考生,這里有備考技巧2024-02-17
- 自學(xué)考試備考復(fù)習(xí)方法!建議收藏2024-02-16