数据库系统概念总结:第四章 中级SQL
生活随笔
收集整理的這篇文章主要介紹了
数据库系统概念总结:第四章 中级SQL
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
周末無事水文章,期末備考的總結資料
第四章 中級SQL
4.1 連接表達式
4.1.1 連接條件
select * from student join takes on student.ID = takes.ID;4.1.2 外連接
- 連接操作的擴展,可避免信息丟失
- 分類
–左外連接(left outer join):保留在左外連接運算之前(左邊)的關系中的元組
*例子:select * from course natural left outer join prereq –右外連接(right outer join):保留在右外連接運算之后(右邊)的關系中的元組
*例子:select * from course natural right outer join prereq –全外連接(full outer join):都保留
*例子:select * from course natural full outer join prereq
4.1.3 連接類型和條件
- 內連接(常規連接):inner join或join
4.2 視圖
- 目的:出于安全考慮,可能需要向用戶隱藏特定的數據
- 實現:SQL允許通過查詢來定義“虛關系”,它在概念上包含查詢結果。虛關系并不預先計算并存儲,而是在使用虛關系的時候才通過執行查詢被計算出來
4.2.1 視圖定義
create view faculty as select ID, name, dept_name from instructor4.2.2 SQL查詢中使用視圖
4.2.3 物化視圖(materialized view)
- 限定:如果用于定義視圖的實際關系改變,視圖也跟著改變
- 保持物化視圖一直在最新狀態的過程稱為物化視圖維護(materialized view maintenance)
4.2.4 視圖更新
- 如果定義視圖的查詢滿足下列條件,則稱SQL視圖是可更新的(updatable)
–from子句中只有一個數據庫關系
–select子句中只包含關系的屬性名,不包含任何表達式、聚集或distinct聲明
–任何沒有出現在select子句中的屬性可以取空值;即這些屬性上沒有not null約束,也不構成主碼的一部分
–查詢中不含有group by或having子句
4.3 事務(Transaction)
- 由查詢和(或)更新語句的序列組成
- 下列SQL語句之一會結束一個事務:
–Commit work:提交當前事務,也就是將該事務所做的更新在數據庫中持久保存
–Rollback work:回滾當前事務,即撤銷該事務中所有SQL語句對數據庫的更新
4.4 完整性約束(Integrity Constraints)
- 作用:保證授權用戶對數據庫所做的修改不會破壞數據的一致性
4.4.1 單個關系上的約束
- not null、unique、check(<謂詞>)
4.4.2 not null約束
- 作用:禁止空值
- 用法:name varchar(20) not null
4.4.3 unique約束
- 作用:指出括號內的屬性形成一個候選碼,即在關系中沒有兩個元組能在所有列出的屬性上取值相同
- 用法:unique ( A1, A2, …, Am)
4.4.4 check子句
- 作用:指定一個謂詞P,關系中的每個元組都必須滿足謂詞P
4.4.5 參照完整性(Referential Integrity)
- 保證在一個關系中給定屬性集上的取值也在另一個關系的特點屬性集的取值中出現
- 若有on delete cascade,如果刪除表中的元組導致了此參照完整性約束被違反,則刪除并不被系統拒絕,而是作“級聯”刪除
4.4.6 事務中對完整性約束的違反
4.4.7 復雜check條件與斷言
- 斷言(assertion):希望數據庫總能滿足的一個條件
–形式:create assertion <assertion-name> check <predicate>;
4.5 SQL的數據類型與模式
4.5.1 SQL中的日期和時間類型
- date:日期,年月日
- time:時分秒
- timestamp:date + time
4.5.2 默認值
create table student( ID varchar(5),Name varchar(20) not null,Dept_name varchar(20),Tot_cred numeric (3, 0) default 0 );4.5.3 創建索引
create index studentID_index on student(ID)4.5.4 大對象類型
4.5.5 用戶定義的類型
create type Dollars as numeric (12,2) final4.5.6 create table的擴展
create table A like B --創建一個與B具有相同模式的新表A4.5.7 模式、目錄與環境
4.6 授權
- 類型:增、刪、查、改
4.6.1 權限的授予與回收
- 授予:grant select on department to Amit, Satoshi;
- 回收:revoke select on department to Amit, Satoshi;
4.6.2 角色
- 一類身份的標識,可把它的權限賦予給用戶create role instructor; grant instructor to Amit;
4.6.3 視圖的授權
grant select on geo_instructor to geo_staff4.6.4 模式的授權
4.6.5 權利的轉移
4.6.6 權限的回收
總結
以上是生活随笔為你收集整理的数据库系统概念总结:第四章 中级SQL的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库系统概念总结:第五章 高级SQL
- 下一篇: 数据库系统概念总结:第七章 数据库设计和