- 常見(jiàn)的sql語(yǔ)句的學(xué)習(xí)整理:
- 最基本的查詢語(yǔ)句:select * from chapteritem where book_id = "870";
- 試用distinct關(guān)鍵字進(jìn)行去重(次關(guān)鍵字只能作用于單個(gè)字段,作用于多個(gè)字段的時(shí)候只有多個(gè)字段的數(shù)據(jù)完全一致,其才認(rèn)為是重復(fù)數(shù)據(jù),有一項(xiàng)不同數(shù)據(jù)也會(huì)保留):select DISTINCT display_order,is_preview,id from chapteritem where book_id = "870"
- 試用order by 對(duì)數(shù)據(jù)進(jìn)行排序(可以指定單列,也可以指定多列,多列排序優(yōu)先級(jí)取決于執(zhí)行的排序順序):select * from chapteritem where book_id = "870" ORDER BY display_order ASC/DESC (升序/降序,默認(rèn)是升序ASC)
- 聚合函數(shù)(sql語(yǔ)句):常見(jiàn)的包括count,max,min,sum,avg函數(shù):select COUNT(*) from chapteritem where book_id = "870";
-
通過(guò)group by語(yǔ)句結(jié)合上面的聚合函數(shù)實(shí)現(xiàn)對(duì)數(shù)據(jù)的分組的統(tǒng)計(jì),聚合查詢等,group by后面跟著單列或者多列(單列是根據(jù)這一列分組,多列是先根據(jù)這一列分組然后在根據(jù)后面一列分組此時(shí)的分組行數(shù)是第一列的分組行數(shù)和第二列分組行數(shù)的乘積):select book_id,is_preview, COUNT(*) from chapteritem GROUP BY book_id,is_preview
分組 - Having:sql數(shù)據(jù)查詢中的過(guò)濾語(yǔ)句,通常結(jié)合上面的聚合和分組一塊使用,即對(duì)上面查詢后的數(shù)據(jù)可以進(jìn)一步的過(guò)濾:select book_id,is_preview, COUNT() from chapteritem GROUP BY book_id,is_preview HAVING COUNT() > 2
比上面少了一條數(shù)據(jù) - Limite(數(shù)據(jù)限制)和Offet(取數(shù)據(jù)的偏移量):即從offset偏移量后取limit條符合所有查詢條件的數(shù)據(jù):select * from chapteritem where book_id = "870" LIMIT 10 OFFSET 5;
- LIKE:模糊查詢:查詢符合查詢條件的數(shù)據(jù)。select * from chapteritem where id LIKE "343%"
- sql語(yǔ)句中模糊查詢的通配符:
- %:任意個(gè)數(shù)的字符
- _:一個(gè)字符
- []: 指定模糊查詢的字符,即[a,b,c] 即數(shù)據(jù)查詢中模糊匹配a,b,c三個(gè)字符
- []:指定模糊查詢的非,即上面通配符的反面,[a,b,c] 即數(shù)據(jù)查詢中模糊匹配非a,b,c三個(gè)字符。
- sql語(yǔ)句中模糊查詢的通配符:
- sql中的多表查詢:
*了解多表連接:內(nèi)連接,左外連接,右外連接,全連接:內(nèi)連接即兩個(gè)表共有的,左外連接返回左表所有的右表不包含的返回null 右外連接則是返回所有右表數(shù)據(jù),左表不包含的返回null,全連接是返回兩張表所有的,即全連接包含了左右兩張表。- 內(nèi)連接:select name,description,chapter_title from basebook a JOIN chapteritem b ON a.book_id=b.book_id
- 左外連接:select name,description,chapter_title from basebook a LEFT JOIN chapteritem b ON a.book_id=b.book_id
- 右外連接:select name,description,chapter_title from basebook a RIGHT JOIN chapteritem b ON a.book_id=b.book_id
- 全連接:select name,description,chapter_title from basebook a FULL JOIN chapteritem b ON a.book_id=b.book_id
- sql查詢中的一些比較復(fù)雜的查詢:
- 父子查詢:即在查詢sql中的from中也是一段查詢語(yǔ)句,即:SELECT * FROM (SELECT * FROM employees WHERE department = 'Sales') WHERE salary > 60000;
- in操作符:針對(duì)查詢條件具有多個(gè)的可以使用in操作符,即:SELECT * FROM basebook WHERE book_id IN (SELECT DISTINCT book_id FROM chapteritem)
- sql中的聚合函數(shù):SQL聚合函數(shù)是在結(jié)果集的所有行中應(yīng)用數(shù)學(xué)運(yùn)算的方法。這些函數(shù)通常用于求和、平均值、最小值、最大值、計(jì)數(shù)等操作。
AVG():返回平均值
COUNT():返回行數(shù)
MAX():返回最大值
MIN():返回最小值
SUM():返回總和
GROUP_CONCAT():返回一個(gè)字符串結(jié)果,該結(jié)果由來(lái)自一組數(shù)據(jù)庫(kù)行的列的連接值組成
SELECT AVG(salary) AS average_salary FROM employees;
SELECT COUNT(*) AS total_employees FROM employees;
SELECT SUM(salary) AS total_salary FROM employees;
SELECT department_id, GROUP_CONCAT(employee_name) AS employee_names
FROM employees
GROUP BY department_id;
參考文章:
SQL語(yǔ)言入門(mén)到精通
數(shù)據(jù)庫(kù)中的多表查詢總結(jié)[通俗易懂]
SQL 內(nèi)連接,外連接(左外連接、右外連接)

