1. 程式人生 > >資料庫系統概念(機械工業出版社,第六版)複習——第三章:SQL

資料庫系統概念(機械工業出版社,第六版)複習——第三章:SQL

第三章       SQL

SQL功能及操作符

資料查詢:select

資料定義:create  alter  drop

資料操縱:insert   update   delete

資料控制:grant   revoke

SQL的資料定義語句(建立、刪除、修改)

表:create table   drop table   alter table

檢視:create view   drop view

索引:create index   drop index

基本資料型別

char(n):固定長度的字串

varchar(n):可變長字串(varchar2)

int:整數(-231~~231-1)

smallint:小整數型別(-215~~215-1)

numeric(p,d):定點數,小數點左邊p位,右邊q位

real:浮點數

double precision:雙精度浮點數

date:日期(年、月、日)

time:時間(小時、分、秒)

常用完整性約束

主碼約束: PRIMARY KEY

唯一性約束:UNIQUE

非空值約束:NOT NULL

參照完整性約束:FOREIGN KEY

撤銷基本表定義(drop)

撤消基本表後,基本表的定義、表中資料、索引都被刪除,由此表匯出的檢視將無法繼續使用。

SQL資料查詢基本結構

SELECT子句:指定要顯示的屬性列。

FROM子句:指定查詢物件(基本表或檢視)。

WHERE子句:指定查詢條件。

GROUP BY子句:對查詢結果按指定列的值分組,該屬性列值相等的元組為一個組。通常會在每組中作用聚集函式。

HAVING短語:篩選出只有滿足指定條件的組。

ORDER BY子句:對查詢結果按指定列值的升序或降序排序。

重複元組處理

預設為保留重複元組,也可用關鍵字all顯式指明。若要去掉重複元組,可用關鍵字distinct或unique指明。

常用查詢條件

查詢條件

謂詞

比較

>,<,=,<>,>=,<=,not+上述運算子

確定範圍

between … and …,not between …and …

確定集合

in,not in

判定空集合

exists,not exists

字元匹配

like,not like

空值

is null,is not null

多條件

and,or

聚集函式

平均值:avg

最小值:min

最大值:max

總和:sum

記數:count

聚集函式返回的是一個關係

count(屬性名)和count(*)的區別在於count(*)返回滿足條件的元組的總個數(即使一個元組的所有屬性取值均為null也會被計算在內),count(屬性名)返回該屬性中取值不為null的總個數。

空值null

除is [not]null之外,空值不滿足任何查詢條件。

如果null參與算術運算,則該算術表示式的值為null。

如果null參與比較運算,則結果可視為false。

如果null參與聚集運算,則除count(*)之外其它聚集函式都忽略null。

Where和having

相同:二者均是選擇運算。

不同:二者的作用物件不同,where的作用物件是元組,having的作用物件是分組。

With子句

With子句提供定義一個臨時檢視的方法,這個定義只對於with子句出現的那條查詢有效。