《資料庫系統概念第六版》讀書筆記
1.任何沒有出現在group by句中的屬性如果出現在select子句中的話,它只能出現在聚集函式的內部(sum,avg,count,max,min)。否則,這樣的查詢是錯誤的。例:select dept_name,ID,avg(salary) from instructor group by dept_name;
2.having子句一般對分組限定條件。一般跟在group by語句後面。表示這分組所滿足的條件。與select子句情況類似,任何出現在having子句中,但沒有被聚集的屬性必須出現在group by子句中,否則查詢出錯。
3.集合的比較:“找出滿足下面條件的所有教師的姓名,他們的工資至少比Biology系某一位教師的工資高”。select name from instrutor where salary > some (select salary from instrutor where dept_name = 'Biology')。 >some ,<some表示至少比某一個要大或者至少比某一個小。
4.exists接受引數子查詢非空時返回true值。
5.為了與外連線運算相區分,之前不保留未匹配元組的連線運算稱作內連線運算(inner join)
6.左外連線(left outer join):只保留出現在左外連線運算之前(左邊)的關係中的元組。右外連線(right outer join):只保留出現在右外連線之後(右邊)的關係中的元組。全外連線(full outer join):保留出現在兩個關係中的元組。
7.一個事務或者在完成所有步驟後提交其行為,或者在不能成功完成其所有動作的情況下回滾其所有動作。通過這種方式資料庫提供了對事務具有原子性的抽象。
8.第一正規化(1NF):屬性不可分。