0%

SQL基本語法-查詢、更新、刪除

學習Ruby on Rails的過程中,因為都透過model來跟資料庫溝通,常常忽略掉最根本的SQL語法,所以接下來會在開發app的過程中,繼續把這塊補起來。
(以下都以一拳超人的資料庫為範本)

查詢資料

  1. 查全部資料

    1
    2
    SELECT *
    FROM heroes;
  2. 查全部S級英雄的資料

    1
    2
    3
    SELECT *
    FROM heroes
    WHERE hero_level = 'S';
  3. 查全部S級女性英雄的資料

    1
    2
    3
    SELECT *
    FROM heroes
    WHERE hero_level = 'S' AND gender = 'F';
  4. 只查部分欄位

    1
    2
    3
    SELECT name, gender
    FROM heroes
    WHERE hero_level = 'S';
  5. 查空值的資料

    1
    2
    3
    SELECT *
    FROM heroes
    WHERE age IS NULL;
  6. 查擁有關鍵字的資料

    1
    2
    3
    SELECT *
    FROM heroes
    WHERE name LIKE '%背心%';
  7. 查某個區間的資料

    1
    2
    3
    4
    5
    6
    7
    8
    9
    #數字不需要引號
    SELECT *
    FROM heroes
    WHERE age >= 10 AND age <= 25;

    #可簡寫為
    SELECT *
    FROM heroes
    WHERE age BETWEEN 10 AND 25;
  8. 查所有 S 級跟 A 級的英雄

    1
    2
    3
    4
    5
    6
    7
    SELECT *
    FROM heroes
    WHERE hero_level = 'S' OR hero_level = 'A';

    SELECT *
    FROM heroes
    WHERE hero_level IN ('S', 'A');
  9. 查不符合條件的資料

    1
    2
    3
    4
    5
    SELECT *
    FROM heroes
    WHERE hero_level <> 'S';

    #<>為不等於的意思
  10. 查不是 S 級也不是 A 級的英雄

    1
    2
    3
    SELECT *
    FROM heroes
    WHERE hero_level NOT IN ('S','A')

    更新資料

  11. 更新單筆資料的某個欄位

    1
    2
    3
    UPDATE heroes
    SET age = 10
    WHERE id = 25
  12. 更新單筆資料的多個欄位

    1
    2
    3
    UPDATE heroes
    SET age = 10, hero_level = 'A', hero_rank = 5
    WHERE id = 25
  13. 更新全部資料的某個欄位

    1
    2
    UPDATE heroes
    SET age = age + 1

    刪除資料

刪除符合某個條件的所有資料

1
2
DELETE FROM heroes
WHERE hero_level = 'C';