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
分組查詢
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;