數據庫 chapter 3 關系數據庫標準語言SQL
第三章 關系數據庫標準語言SQL
SQL集數據查詢,數據操縱,數據定義和數據控制功能於一體,主要特點包括:
綜合統一(各個過程各個部分的語言風格統一)
高度非過程化
面向集合的操作方式
以同一種語法結構提供多種使用方式(既可獨立使用,也可以嵌入到高級語言如C程序中)
語言簡潔,易學易用(完成核心功能只用了9個動詞)
SQL通常不提供修改模式定義、修改視圖定義和修改索引定義的操作。用戶如果想修改這些對象,只能將它們先刪除掉,然後再重建。
SQL同樣支持數據庫三級模式結構(外模式,模式和內模式,模式和內模式為唯一,外模式可不唯一)
定義模式
基本表的定義、刪除與修改
關系模型中的一個重要概念是域,每一個屬性來自一個域,它的取值必須是域中的值。在SQL中域的概念用數據類型來實現。
每一個基本表都屬於某一個模式,一個模式包含多個基本表。定義基本表時定義它所屬的模式共有三種方法:
若用戶創建基本表(其他數據庫對象也相同)時沒有指定模式,系統根據搜索路徑來確定該對象所屬的模式。
SHOW search_path; 此語句可以顯示當前搜索路徑。
搜索路徑的當前默認值是:$user. PUBLIC. 含義為首先搜索與用戶名相同的模式名,若不存在,則使用PUBLIC模式。
修改基本表
刪除基本表
索引的建立與刪除
建立索引是加快查詢速度de有效手段。用戶可以根據應用環境的需要,在基本表上建立一個或多個索引,以提供多種存取路徑,加快查找速度。
數據查詢
SQL提供了SELECT語句進行數據庫的查詢,其一般格式為:
SELECT既可以完成簡單的單表查詢(僅涉及一個表的查詢),也可以完成復雜的連接查詢和嵌套查詢。
最後形成一個結果關系作為輸出。
取消取值重復的行使用DISTINCT
連接查詢:一個查詢同時涉及兩個以上的表,則稱之為連接查詢。
自身連接:連接操作不僅可以在兩個表之間進行,也可以是一個表與其自己進行連接,稱為表的自身連接。
復合條件連接
WHERE子句中有多個連接條件。
嵌套查詢
相關子查詢是循環查詢,就是先查詢一個父查詢元組,傳入子查詢,再進行父查詢,然後再進行下一個元組(就是子查詢的數值需要父查詢傳入);而不相關子查詢是一次性檢查完子查詢,再進行父查詢。
就是屬性列名和值一一對應。
視圖的作用:
視圖能夠簡化用戶的操作
視圖使用戶能以多種角度看待同一數據
視圖對重構數據庫提供了一定程度的邏輯獨立性
視圖能夠對機密數據提供安全保護
適當的利用視圖可以更清晰的表達查詢
數據庫 chapter 3 關系數據庫標準語言SQL