表的增刪改查:
Create, Retrieve,Update,Delete
1.Create
面試
INSERT [INTO] table_name [(column [, column] ...)] VALUES (value_list) [, (value_list)] ... value_list: value, [, value] ...
因爲主鍵或者惟一鍵對應的值已經存在而致使插入失敗時,能夠選擇性的進行同步更新操做。數據庫
INSERT ... ON DUPLICATE KEY UPDATE column = value [, column = value] ...
2.Retrieveide
SELECT [DISTINCT] {* | {column [, column] ...} [FROM table_name] [WHERE ...] [ORDER BY column [ASC | DESC], ...] LIMIT ...
爲查詢結構制定別名:函數
SELECT column [AS] alias_name [...] FROM table_name;
where條件
注:別名不能在where條件中使用。
結果排序
ASC 爲升序(從小到大),DESC 爲降序(從大到小),不設置默認爲 ASC。
學習
SELECT ... FROM table_name [WHERE ...] ORDER BY column [ASC|DESC], [...];
注:沒有 ORDER BY 子句的查詢,返回的順序是未定義的,永遠不要依賴這個順序。
注:ORDER BY語句中能夠使用列的別名。
篩選分頁結果
起始下標爲 0
-- 從 0 開始,篩選 n 條結果
code
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n;
-- 從 s 開始,篩選 n 條結果 blog
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT s, n;
-- 從 s 開始,篩選 n 條結果,比第二種用法更明確,建議使用 排序
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n OFFSET n;
注:對未知表進行查詢時,最好加一條 LIMIT 1,避免由於表中數據過大,查詢全表數據致使數據庫卡死。
3.Update
同步
UPDATE table_name SET column = expr [, column = expr ...] [WHERE ...] [ORDER BY ...] [LIMIT ...]
4.Delete
1)刪除數據
it
DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]
2)截斷表
TRUNCATE [TABLE] table_name
注:這個操做慎用
- 只能對整表操做,不能像 DELETE 同樣針對部分數據操做;
- 實際上 MySQL 不對數據操做,因此比 DELETE 更快
- 會重置 AUTOINCREMENT 項
5.插入查詢結果INSERT INTO table_name [(column [, column ...])] SELECT ...
6.聚合函數
7.group by子句的使用
在select中使用group by 子句能夠對指定列進行分組查詢select column1, column2, .. from table group by column;
面試題:
SQL查詢中各個關鍵字的執行前後順序?答:from > on> join > where > group by > with > having >select > distinct > order by > limit