常見(jiàn)的sql語(yǔ)句學(xué)習(xí)整理

  1. 常見(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中的多表查詢:
      *了解多表連接:內(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
  2. sql查詢中的一些比較復(fù)雜的查詢:
    1. 父子查詢:即在查詢sql中的from中也是一段查詢語(yǔ)句,即:SELECT * FROM (SELECT * FROM employees WHERE department = 'Sales') WHERE salary > 60000;
    2. in操作符:針對(duì)查詢條件具有多個(gè)的可以使用in操作符,即:SELECT * FROM basebook WHERE book_id IN (SELECT DISTINCT book_id FROM chapteritem)
  3. 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)連接,外連接(左外連接、右外連接)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容