怎麼有這種人、這種邏輯!


陸委會懲處將引爆寒蟬效應!蕭旭岑呼籲賴政府:高抬貴手

來台訪問的陸生團團員、復旦大學學生宋思瑤一句「向『中國台北隊』在棒球12強賽奪冠表示祝賀」,據悉陸委會將行政處分。對此,蕭旭岑今表示,陸委會高抬貴手,不要用戒嚴的心態來處理兩岸交流。

沒有平等的國家地位,算什麼交流!
明明就是矮化台灣,還辯說是:不小心說出的習慣說法。
要來台灣,根本沒把交流當一回事!

資料庫系統理論(八)

除法(Divsion)

定義
此種運算如同數學的除法一般,有二個運算元:第一個關聯表R1當作「被除表格」;第二個關聯表R2當作「除表格」。其中,「被除表格」的屬性必須比「除表格」中的任何屬性中的值域都要與「被除表格」中的屬性之值域相符合。
代表符號
R1/R2
概念圖
基本型格式

巢狀結構查詢
定義
是指在 Where 敘述中再嵌入另一個查詢敘述,此查詢敘述稱為「子查詢」。換言之,您可以將「子查詢」的結果拿來做為另一個查詢條件。

注意
「子查詢」可以獨立地被執行,其執行結果稱為「獨立子查詢」。
分類
1.傳回單一值(=)
2.傳回多值(IN)
3.測試子查詢是否存在(利用EXIST)
第一種作法:
範例
利用子查詢來找出選修「資料庫系統」的學生學號及姓名。
解答
SELECT A.學號,姓名
FROM 學生檔 AS A, 選課檔 AS B 主查詢
WHERE A.學號=B.學號 AND B.學號=
(SELECT C.課號 FROM 課程檔 AS C
WHERE 課名='資料庫系統') 子查詢

第二種作法
範例
利用子查詢來找出選修「課號為C005」的學生學號與姓名
解答
SELECT A.學號,姓名
FROM 學生檔 AS A 主查詢
WHERE A.學號 =
(SELECT 學號 FROM 選課檔 AS B
WHERE A.學號 = B.學號 AND B.課號='C005') 子查詢

SQL巢狀EXISTS/NOT EXISTS        有點難懂請看進一步說明

更簡單的想法:
1.外層是:學生檔(Student)
2.把內層當成學生檔(Student)X選課檔(Course)(做卡式積/Cross Join)
3.內層紀錄去和課程檔(CourseTaken)去做比對(存在/不存在)
4.外層的紀錄再和內層做比對(存在/不存在)
如上圖所示:
橘色:內層(Student表×Course表)中不存在於CourseTaken表的紀錄
意義:每個學生沒有修的課
綠色:外層(Student表)中不存在於橘色的紀錄
意義:沒有課沒修的學生,即為解答!
經過以上方式及可求得巢狀EXISTS/NOT EXISTS的答案。

資料庫系統理論(七)

卡式積(Cartesian Product)

注意!CROSS JOIN 會有問題

改善的方法

作法
1.透過 SELECT 指令 WHERE 部分的等式,
及對等合併(Equi-Join)。

From A,B
Where (A.c=B.c)

2.透過 SELECT 指令 FROM 部分的 INNER JOIN。
即自然合併(Natural Join);又稱為內部合併
(Inner Join)。

From A INNER JOIN B
ON A.c=B.c
範例
1.第一種做法(Equi-Join最常用)

Select 學號,姓名,課程表,課號,課程名稱,學分數
From 學生表,課程表
Where 學生表.課號=課程表.課號

2.第二種做法:INNER JOIN

SELECT 學號,姓名,課程表,課號,課程名稱,學分數
FROM 學生表 INNER JOIN 課程表
ON 學生表.課表=課程表.課表
範例
SELECT A.學號,姓名,課號,成績
(加入 投影使用者 輸出的欄位名稱)

FROM 學生資料表 AS A, 選課資料表 AS B

WHERE A.學號=B.學號
(加入 內部合併 Join)

And B.成績>=70
(加入 限制條件 成績大於或等於70分者)

GROUP BY A.學號,姓名
(使用群組化及聚合函數)

HAVING AVG(成績)>=90
(在聚合函數後,再進行篩選條件)

ORDER BY AVG(成績) ASC
(在聚合函數結果,再來進行排序-由低到高)

左外部合併

右外部合併