多表查詢
主鍵:oid,唯一能標識一行的字段。非空,唯一特點。
外來鍵:可以在一張表當中通過乙個外來鍵定位到另外一張表的主鍵裡面。
一定要避免笛卡爾集合,在一些表當中,可能會存在乙個外來鍵,關聯另外乙個表當中的主鍵(或者是兩張表當中有些字段有些相等關係)。如何避免笛卡爾集合:加入鏈結條件,n個表當中查詢資料,條件不能少於n-1個。
等值連線和非等值連線
等值連線就是連線條件中使用「=」連線兩個表
非等值連線就是指連線條件》 >= <= != <> between...and...in 等,通常這種方式需要和其他等值運算一起使用。
select * from table1, table2 where table1.sal between table1.lowersal and table2.uppersal;
內連線和外連線
內連線:在進行多表查詢的過程中,多張表當中不滿足的都不顯示。(等值)
外連線:在進行多表查詢的時候,左邊(右邊)表不能滿足條件的也顯示出來。
外連線語法:使用外連線可以查詢不滿足連線條件的資料,外連線的符號是(+)。
左外連線:select table1.column, table2.column from table1,table2 where table1.column(+)=table2.column;
作用:出來可以查詢了滿足條件的資料,查詢不滿足條件的資料(左,右)。
全外連線
自連線:在一張表中某些欄位有一定的關聯。類似於emp表當中empno和mgr之間是乙個關聯的。
select 表別名.欄位...... from 表 別名,表 別名 where 表1 別名.欄位=表2 別名.欄位;
select e1.empno, e1.ename, e2.ename from emp e1, emp e2 where e1.mgr=e2.empno;
自然連線:
natural join 子句,會以兩個表中具有相同名字的列為條件建立等值連線。
在表中查詢滿足等值條件的資料。
如果只是列名相同而資料型別不同,則會產生錯誤。
select ename, dname from emp, dept where emp natural join dept;
溫故而知新
堆排 建立堆,維護堆的屬性 一次拿掉乙個,然後維護屬性,二分的結構 使得維護屬性只要logn的時間 冒泡也是一次拿走乙個 但是線性的結構 每次沒有節省時間 快排 一次確定 乙個值的位置,然後二分,縮小問題的範圍。floyd找最短 一次更新 將狀態改為經過固定點的 最短距離 迴圈 遍歷每個點,則結果為...
溫故而知新(一)
一 c 基礎語法 1.注釋符 b.解釋所寫的 2.vs中常用的快捷鍵 3.變數 用來在計算機中儲存資料 b.要給儲存空間起乙個有意義的名字,方便我們以後的使用 b.變數型別 變數名 值 4.命名規則 5.號的使用 6.佔位符的使用 先挖坑,再填坑 異常 exception 在程式執行的過程中,由於某...
C 陣列 溫故而知新
using system using system.collections.generic using system.linq using system.text namespace 陣列 陣列初始化器只能在宣告陣列變數時使用,不能在宣告陣列之後使用 int iii new int 用花括號初始化陣...