資源描述:
《關(guān)系代數(shù)和關(guān)系約束.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第二章數(shù)據(jù)模型2.1數(shù)據(jù)模型概述2.2關(guān)系模型基礎(chǔ)2.3在SQL中定義關(guān)系模式2.4代數(shù)查詢語言2.5關(guān)系上的約束AnIntroductiontoDatabaseSystems關(guān)系數(shù)據(jù)語言的種類關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)SQL關(guān)系代數(shù)語言關(guān)系演算語言AnIntroductiontoDatabaseSystemsSQL結(jié)構(gòu)化查詢語言(StructuredQueryLanguage)簡稱SQL,是一種數(shù)據(jù)庫查詢和程序設(shè)計語言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng);1974年,IBM公司SanJose實驗室Boyce(Boyce-Codd范
2、式)和Chamberlin提出SEQUEL語言;1975~1979年,研究人員在數(shù)據(jù)庫管理系統(tǒng)SystemR中實現(xiàn)并發(fā)展為SQL語言。ANSISQL-86“數(shù)據(jù)庫語言SQL”1986年10月,美國國家標(biāo)準(zhǔn)局(ANSI)的數(shù)據(jù)庫委員會批準(zhǔn)SQL-86版為美國數(shù)據(jù)庫語言的標(biāo)準(zhǔn)。AnIntroductiontoDatabaseSystems2.3在SQL中定義關(guān)系模式隨著時間的推移,SQL的簡潔、直觀,在市場上獲得了的不錯反響,從而引起了ANSI的關(guān)注,之后分別在1989年、1992年、1999年及2003年發(fā)布了SQL標(biāo)準(zhǔn)。提供三方面的
3、內(nèi)容:數(shù)據(jù)定義語言DDL----定義數(shù)據(jù)庫模式數(shù)據(jù)操作語言DML----查詢和更新數(shù)據(jù)庫數(shù)據(jù)控制語言DCL----完整性約束本節(jié)介紹SQL的數(shù)據(jù)定義部分,第6章介紹數(shù)據(jù)操作,第7章介紹SQL的數(shù)據(jù)約束問題。AnIntroductiontoDatabaseSystems2.3.1SQL中的關(guān)系SQL中的三類關(guān)系表(Table)存儲在數(shù)據(jù)庫中的關(guān)系,用戶可以對其中的元組進(jìn)行查詢和更新。視圖(View)通過計算定義的關(guān)系,并不在數(shù)據(jù)庫中存儲,只在需要的時候被完整或部分地構(gòu)造。臨時表執(zhí)行數(shù)據(jù)查詢和更新時由SQL處理程序臨時構(gòu)造,處理結(jié)束后被
4、刪除。AnIntroductiontoDatabaseSystems2.3.2SQL的基本數(shù)據(jù)類型可變長度或固定長度字符串固定或可變長度的位串布爾類型整型浮點類型日期和時間類型AnIntroductiontoDatabaseSystems固定長度和可變長度字符串類型CHAR(n)最大為n個字符的固定長度字符串。當(dāng)字符數(shù)量小于定義的長度時,后面補上某個短字符(例如,空格)。例如,將字符串’foo’賦給CHAR(5)類型的字段時,存儲的實際值是’foo’。VARCHAR(n)表示最多可有n個字符的字符串。當(dāng)字符數(shù)量小于n時,使用一個結(jié)束
5、符或字符長度值來標(biāo)識字符串的結(jié)束,未滿的空間不會被填充。AnIntroductiontoDatabaseSystems固定或可變長度的位串BIT(n)固定長度為n的位串。BITVARYING(n)最大長度為n的位串。其區(qū)別類似于上述的固定或可變長字符串,區(qū)別在于取值為比特位取值。AnIntroductiontoDatabaseSystems布爾類型和整型數(shù)據(jù)BOOLEAN表示具有邏輯類型的值。該類屬性的可能取值為TRUE、FALSE和UNKNOWN。INT(等價于INTEGER)表示具有準(zhǔn)確數(shù)字的整數(shù)數(shù)據(jù)類型。一般分為:shorti
6、nt、int、bigint等,位數(shù)不同使其取值范圍不同。AnIntroductiontoDatabaseSystems近似數(shù)字類型FLOAT(和REAL)用于表示浮點數(shù)字?jǐn)?shù)據(jù)的近似數(shù)字?jǐn)?shù)據(jù)類型。浮點數(shù)據(jù)為近似值;并非數(shù)據(jù)類型范圍內(nèi)的所有數(shù)據(jù)都能精確地表示。Float(n):n表示用于存儲科學(xué)記數(shù)法浮點數(shù)尾數(shù)的位數(shù),同時指示其精度和存儲大小。decimal(和numeric)帶定點精度和小數(shù)位數(shù)的浮點類型。Decimal(n,d):n位有效數(shù)字的十進(jìn)制數(shù),小數(shù)點是在從右往左第d位的位置。AnIntroductiontoDatabase
7、Systems日期和時間類型DATE日期類型日期值由關(guān)鍵字DATE后面接一個用單引號括起來的特定形式的字符串來定義。例如,DATE‘1948-05-14’,注意數(shù)字0的填充。TIME時間類型時間值由關(guān)鍵字TIME和一個特定形式的字符串組成。例如,TIME‘15:00:02.5’AnIntroductiontoDatabaseSystems2.3.3簡單的表定義簡單表的定義形式CREATETABLE關(guān)系名(屬性名1類型名1[default缺省值1],……,屬性名n類型名n[default缺省值n]);例5.13關(guān)系Movies和Mov
8、ieStar的SQL定義AnIntroductiontoDatabaseSystems2.3.4修改關(guān)系模式刪除關(guān)系模式DROPTABLE關(guān)系名;修改關(guān)系模式添加屬性:添加的字段值為空值—NULLALTERTABLE關(guān)系名ADD屬性名