1. 程式人生 > 實用技巧 >mysql語法,5分鐘,從進門到入門

mysql語法,5分鐘,從進門到入門

mysql增刪改查

插入: insert into 表名 values()
更新:update 表名 set 列名 where 條件=""
刪除:delete from 表名 where 條件=""
as起別名
distinct去重
​ where 條件1and/or/between/<> 條件2
​ where 條件is = ""
​ where 列名like "李%" %代表任意個字元 _:表示一個字元

聚合函式中的count統計的記錄數量不包括null的資料
分頁查詢: limit 跳過的資料量,查詢幾條資料量
​ order by asc

/desc 預設正序
​ 分組查詢
​ SELECT gender,COUNT(*) FROM student GROUP BY gender;
​ 統計數量,統記的是student的性別
​ 例: 男 3 女 2

truncate 截斷

​ 與delete不同的是,執行後會自動提交
​ truncate比delete快,會影響自增,truncate table 清空表

外來鍵

​ 假如有一個部門表,有一個員工表, 這些員工肯定都屬於某個部門,在mysql靠外來鍵來設定這個約束
​ 假如id用來表示部門表中每個部門, 員工表靠deptId來寫自己屬於哪個部門
​ 所以deptId一定不存在id中沒有的值
constraint 外來鍵名 foreign key(自己的鍵) reference dept(參考的鍵)


級聯操作

​ 有了外來鍵之後,希望修改主表的值,副表的值也受到影響
在外來鍵的語句後補加
cascade漢語小瀑布

級聯修改: ON UPDATE CASCADE
級聯刪除: ON DELETE CASCADE
級聯刪除: ON DELETE SET NULL
	`constraint 外來鍵名 foreign key(自己的鍵) reference dept(參考的鍵) on..... on....`

關聯查詢(多表查詢)

SELECT empName,deptName FROM employee,dept; 一般這樣查詢,會產生笛卡爾積的情況,會有很多重複記錄

​ 使用頻繁的是內連線查詢(有條件的查詢)

SELECT empName,deptName       -- 2)確定哪些哪些欄位
FROM employee,dept    -- 1)確定查詢哪些表
WHERE employee.deptId=dept.id  -- 3)表與表之間連線條件

​ 內連線的另一種語法
​ SELECT empName,deptName
​ FROM employee
​ INNER JOIN dept
​ ON employee.deptId=dept.id;

左(外)連線查詢(就是無論另一個表有沒有和自身匹配的,自身的資料都是全部顯示的)

SELECT d.deptName,e.empName
FROM dept d
LEFT OUTER JOIN employee e
ON d.id=e.deptId;