1. 程式人生 > 實用技巧 >Mysql知識點總結2

Mysql知識點總結2

內連線,外連線總結:

內連線:INNER JOIN 、CROSS JOIN


◦外連線:左外連線(LEFT OUTER JOIN)、右外連線(RIGHT OUTER JOIN)、全外連線(FULL OUTER JOIN)


◦自連線:當table1和table2本質上是同一張表,只是用取別名的方式虛擬成兩張表以代表不同的意義


◦內連線:只顯示重合的資料(兩表同時滿足條件)返回。
隱式內連線:
select * from t1,t2 where t1.= t2.;
顯示內連線
select * from t1 inner join t2 on t1.=t2.;

外連線:
隱式左/右連線:(outer 可以省略)
select * from t1 left join t2 on t1.=t2.
左連線:左邊表資料行全部保留,右邊表保留符合連線條件的行。
select * from t1 right join t2 on t1.* = t2.*
外連線:左邊表資料行全部保留,右邊表保留符合連線條件的行。
顯示左/外連線:
select * from t1 left outer join t2 on t1.=t2.
select * from t1 right outer join t2 on t1.=t2.

全連線:(顯示兩個表所有資訊)
select * from t1 full join t2 on t1.* = t2.*
交叉連線(笛卡爾積)
select * from t1 cross join t2 on t1.* = t2.*

別名AS

語法:AS 別名

說明:

(1)可以給欄位取別名、可以給表名取別名

(2)AS 可以省略

(3)如果給欄位取別名,如果別名中包含特殊符號,例如“空格”等,建議給別名加上雙引號或單引號

(4)如果是給表名取別名,那麼不能加雙引號或單引號,也不能有特殊符號,例如“空格”等

(5)建議別名簡短,見名知意

去重DISTINCT

著重號

例如:selectnamefrom t_stu;

可以給欄位或表名加著重號

如果欄位名或表名與關鍵字一樣更要加著重號了

MySQL的運算子

(1)算術運算子:+ - * /(除也可以寫成div,div取整) %(取模可以寫成mod)

(2)比較運算子:= > >= < <= !=(不等於還可以寫成<>) <=>(安全等於)

(3)邏輯運算子:&&(邏輯與也可以寫成and) ||(邏輯或也可以寫成or) not(邏輯非) xor(邏輯異或)

(4)範圍:表示式 between ... and ... (也可以寫成 表示式>=... and 表示式 <=...)

表示式 not between ... and ...(也可以寫成 表示式<... || 表示式 >...)

(5)集合:in (值,值,值...) not in(值,值,值...)

(6)模糊查詢:LIKE NOT LIKE,萬用字元:%表示0-n個字元,_下劃線代表一個字元

(7)位運算子:&(按位與) |(按位或)^(按位異或)~(按位取反)>>(右移)<<(左移)

(8)NULL值判斷,is null 或 is not null,如果使用null=null,null<>null,null=0,null<>0,null=false等都不對

不過xxx is null 可以使用xxx <=> null ,xxx is not null 可以寫成 not xxx <=> null

結論:所有的運算子遇到NULL結果都是NULL,除了<=>