首頁 >資料庫 >mysql教程 >每個開發人員都應該掌握的基本 SQL 問題

每個開發人員都應該掌握的基本 SQL 問題

Barbara Streisand
Barbara Streisand原創
2024-12-24 03:17:15846瀏覽

Essential SQL Questions Every Developer Should Master

透過 100 個基本問題和範例掌握 SQL

SQL(結構化查詢語言)是資料庫管理和操作的基石。本指南探討了 100 個不同類別的實用和理論 SQL 問題,以幫助您提高資料庫技能。


1.基本的 SQL 查詢問題

  1. 編寫一個查詢以從表中取得所有記錄。
   SELECT * FROM table_name;

此查詢會擷取指定表中的每筆記錄。

  1. 寫一個查詢來找出表中第二高的工資。
   SELECT MAX(salary) AS second_highest_salary  
   FROM employees  
   WHERE salary < (SELECT MAX(salary) FROM employees);
  1. 寫一個查詢來取得姓名以「A」開頭的員工。
   SELECT * FROM employees WHERE name LIKE 'A%';
  1. 寫一個查詢來計算按地區分組的總銷售額。
   SELECT region, SUM(sales) AS total_sales  
   FROM sales_data  
   GROUP BY region;
  1. 寫一個查詢來取得所有列值為 NULL 的記錄。
   SELECT * FROM table_name WHERE column_name IS NULL;
  1. 編寫查詢以從表中刪除重複行。
   DELETE FROM table_name  
   WHERE id NOT IN (SELECT MIN(id) FROM table_name GROUP BY column_name);
  1. 編寫一個查詢以降序顯示記錄。
   SELECT * FROM table_name ORDER BY column_name DESC;
  1. 寫一個查詢來計算表中的行數。
   SELECT COUNT(*) FROM table_name;
  1. 寫一個查詢來連接兩個表。
   SELECT employees.name, departments.department_name  
   FROM employees  
   JOIN departments  
   ON employees.department_id = departments.id;
  1. 寫一個查詢來擷取表格中的前三行。

    SELECT * FROM table_name LIMIT 3;
    

2. SQL 效能問題

  1. 什麼是查詢最佳化?

    查詢最佳化涉及修改查詢以提高其執行時間和效率。

  2. 如何提升 SQL 查詢的效能?

    • 使用索引。
    • 避免選擇 *。
    • 最佳化連線。
    • 使用適當的資料型態。
    • 分析執行計劃。
  3. 索引的目的是什麼?

    索引提高了資料庫表上資料檢索操作的速度。

  4. 索引有哪些缺點?

    • 儲存要求增加。
    • 較慢的資料修改操作,例如 INSERT 和 DELETE。
  5. 如何分析查詢的執行計畫?

    使用EXPLAIN關鍵字查看執行計劃:

    EXPLAIN SELECT * FROM table_name;
    
  6. 什麼是查詢快取?

    查詢快取儲存查詢結果以供重複使用,從而減少計算時間。

  7. 什麼是資料庫分片?

    分片將資料庫劃分為更小、更快且更易於管理的部分,稱為分片。

  8. 解釋水平和垂直縮放之間的差異。

    • 水平擴展增加了更多機器來處理更多資料。
    • 垂直擴展為單一機器新增資源(CPU、RAM)。
  9. 分割區如何幫助提升資料庫效能?

    分區將大表分成更小、更易於管理的部分,從而提高查詢效能。

  10. 什麼是資料庫複製?

    複製涉及跨多個伺服器複製和維護資料庫副本,以實現可靠性和冗餘。


3. SQL 函數問題

  1. SQL 中什麼是聚合函式?

    聚合函數對多行資料進行計算:SUM、AVG、COUNT 等

  2. 解釋 COUNT、SUM 和 AVG 之間的差異。

    • COUNT:計算行數。
    • SUM:將列中的數值相加。
    • AVG:計算平均值。
  3. SQL 中的 ROUND 函數如何運作?

       SELECT * FROM table_name;
    
  4. LENGTH 函數的用途是什麼?

    它計算字串中的字元數:

       SELECT MAX(salary) AS second_highest_salary  
       FROM employees  
       WHERE salary < (SELECT MAX(salary) FROM employees);
    
  5. 解釋SQL中CASE語句的使用。

       SELECT * FROM employees WHERE name LIKE 'A%';
    
  6. COALESCE 和 ISNULL 有什麼差別?

    • COALESCE:傳回清單中的第一個非空值。
    • ISNULL:檢查 null 並替換為指定值。
  7. 如何使用 UPPER 和 LOWER 等字串函數?

       SELECT region, SUM(sales) AS total_sales  
       FROM sales_data  
       GROUP BY region;
    
  8. NOW() 函數的用途是什麼?

    返回當前日期和時間:

       SELECT * FROM table_name WHERE column_name IS NULL;
    
  9. 解釋 CONCAT 函數的使用。

       DELETE FROM table_name  
       WHERE id NOT IN (SELECT MIN(id) FROM table_name GROUP BY column_name);
    
  10. 截斷和刪除有什麼不同?

    • TRUNCATE:從表格中刪除所有行,而不記錄單一行刪除。
    • 刪除:刪除具有條件的行並記錄每次刪除。

嗨,我是 Abhay Singh Kathayat!
我是一名全端開發人員,擁有前端和後端技術的專業知識。我使用各種程式語言和框架來建立高效、可擴展且用戶友好的應用程式。
請隨時透過我的商務電子郵件與我聯繫:kaashshorts28@gmail.com。

以上是每個開發人員都應該掌握的基本 SQL 問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn