邏輯操作符
-
AND:連接多個WHERE條件:SELECT name,age,sex FROM `user` WHERE age > 18 AND sex=1;
-
OR:用法同AND。
-
計算次序:AND在計算中優先級比OR高,所以在進行操作符組合時要注意括號的使用。
-
IN:用來指定條件範圍,範圍內的每個條件都可以進行匹配。例,SELECT name,age,sex FROM `user` WHERE age IN (15,20);
-
NOT:進行條件的否定。例,SELECT name,age,sex FROM `user` WHERE NOT age IN (15,20);(注意NOT的位置)
通配符:
-
LIKE:在SQL中使用通配符,必須使用LIKE操作符。
-
%:%表示任何字符出現任意次數。
-
_:下劃線只匹配單個字符,而不是多個字符。
拼接字段:
-
將多個列的返回值拼接在一塊,作爲一列返回。
-
MYSQL中使用CONCAT函數拼接字段,例:SELECT CONCAT(name,':',age) c FROM `user` WHERE age > 10;
-
CONCAT(str1,str2,...)
-
還可以直接對檢索出的數據執行計算,例:SELECT age*age FROM `user` WHERE age > 10
插入數據:
-
插入一條數據:INSERT INTO user(name,age,sex,role_id) VALUES('小西',33,2,1);
-
插入檢索出的數據:INSERT語句與SELECT語句一塊使用,將SELECT返回的結果集作爲插入集。例:INSERT INTO role(id,name) SELECT age,name FROM user;參數屬性及順序都必須一致。列名無所謂。
-
複製表:CREATE TABLE role1 AS SELECT * FROM role,複製role表到role1表。
更新和刪除數據:
-
更新一條數據:UPDATE user SET age = 15,name='小蘭' WHERE age=16。
-
更新的多個條件之間使用逗號分隔。
-
刪除一條語句:DELETE FROM user WHERE age = 15
-
快速刪除表中所有行:例,刪除role1表中所有數據:TRUNCATE role1。(因爲不記錄數據的變動,所以快)
表的連接(各種連接的含義)
-
內部連接(等值連接):INNER JOIN,會輸出兩個表的笛卡爾積,只使用JOIN關鍵詞也會產生笛卡爾積。
-
自連接:即自己連接自己
-
自然連接:排除多次出現,使每個列只返回一次。系統不會實現,由自己實現。
-
外部連接:
-
左外連接(LEFT JOIN),右外連接(RIGHT JOIN),全外連接(FULL JOIN)。
-