MySQL - Select 查詢

你好啊,未來的數據庫魔法師們!今天,我們將進入MySQL Select查詢的神奇世界。作為你們友好的鄰居計算機老師,我在這裡指引你們進行這次冒險,一步一步地。別擔心如果你之前從未寫過一行代碼——我們將從最基本的開始,然後逐步提升。所以,拿起你的虛擬魔杖(鍵盤),讓我們開始吧!

MySQL - Select Query

MySQL Select 語句

SELECT語句在MySQL世界中就像是一個魔法咒語。它讓我們能從數據庫表中檢索數據。把它當成是請求數據庫神燈賜予你願望,並顯示你所需要的資訊。

以下是一個SELECT語句的基本結構:

SELECT column1, column2, ...
FROM table_name;

讓我們分解一下:

  • SELECT:這個關鍵字告訴MySQL你要檢索數據。
  • column1, column2, ...:這些是你想看到的列名。
  • FROM:這個關鍵字指定你從哪個表中選擇。
  • table_name:這是你的表名。

示例 1:選擇所有列

SELECT * FROM employees;

這個查詢就像是在說:“請展示我employees表中的所有內容!”星號(*)是一個萬用字符,表示“所有列”。

示例 2:選擇特定列

SELECT first_name, last_name FROM employees;

這個查詢有禮地詢問:“你能請展示我employees表中只有第一名和姓嗎?”

在命令提示符中使用SELECT來獲取數據

現在,讓我們假設我們是使用命令提示符來質詢數據庫的數據庫偵探。以下是如何操作的:

  1. 打開你的命令提示符或終端。
  2. 連接到MySQL(通常是通过輸入mysql -u username -p並輸入你的密碼)。
  3. 使用USE database_name;選擇你的數據庫。
  4. 现在你已經準備好運行你的SELECT查詢了!

示例 3:帶條件的數據獲取

SELECT first_name, last_name FROM employees WHERE department = 'Sales';

這個查詢就像是在問:“Sales部門所有的員工都是誰?”WHERE子句幫我們過濾結果。

在命令提示符中使用SELECT進行計算

SELECT不僅僅是獲取數據——它還能進行數學計算!讓我們探索一些算術魔法。

示例 4:基本算術

SELECT product_name, price, price * 1.1 AS price_with_tax FROM products;

這個查詢計算了含10%稅的價格。AS關鍵字為我們的新列創造了一個別名。

示例 5:使用內置函數

SELECT CONCAT(first_name, ' ', last_name) AS full_name,
YEAR(CURDATE()) - YEAR(birth_date) AS age
FROM employees;

這個查詢組合了第一名和姓,並計算了年齡。MySQL有許多內置函數,如CONCAT()用於字符串操作和日期函數。

在SELECT語句中別名列

別名就像給你的列起個綽號。它在可讀性和計算時很有用。

示例 6:簡單別名

SELECT first_name AS name, email AS contact FROM customers;

這個查詢將'first_name'列重命名為'name',將'email'重命名為'contact'。

示例 7:帶表達式的別名

SELECT product_name,
price AS original_price,
price * 0.9 AS discounted_price
FROM products;

在這裡,我們展示了原始價格並計算了10%的折扣價格,並使用容易理解的列名。

使用客戶端程序將Select查詢結果放入MySQL數據庫

雖然命令行對於快速查詢來說很好,但許多開發者更喜歡使用客戶端程序來獲得更加用戶友好的體驗。流行的選擇包括MySQL Workbench、phpMyAdmin和DBeaver。

讓我們看看你如何可能使用一個客戶端程序:

  1. 使用客戶端的界面連接到你的數據庫。
  2. 通常,會有一個查詢編輯器,你可以在其中輸入你的SQL。
  3. 寫下你的SELECT語句並執行它。

示例 8:使用帶多個條件的WHERE子句

SELECT product_name, category, price
FROM products
WHERE category = 'Electronics' AND price < 500;

這個查詢找到了所有價格低於$500的電子產品。在客戶端程序中,你通常會以表格格式看到結果。

示例 9:排序結果

SELECT first_name, last_name, hire_date
FROM employees
ORDER BY hire_date DESC
LIMIT 5;

這個查詢展示了最近僱用的五名員工。ORDER BY子句對結果進行排序,LIMIT限制了返回的行數。

MySQL SELECT 方法表

以下是一個方便的表格,總結了一些常見的SELECT方法:

方法 描述 示例
SELECT * 選擇所有列 SELECT * FROM table_name;
SELECT column1, column2 選擇特定列 SELECT first_name, last_name FROM employees;
WHERE 基於條件過濾行 SELECT * FROM products WHERE price > 100;
ORDER BY 排序結果 SELECT * FROM customers ORDER BY last_name ASC;
LIMIT 限制返回的行數 SELECT * FROM orders LIMIT 10;
DISTINCT 返回唯一值 SELECT DISTINCT category FROM products;
GROUP BY 組合具有相同值的行 SELECT category, COUNT(*) FROM products GROUP BY category;
HAVING 為組指定搜索條件 SELECT category, AVG(price) FROM products GROUP BY category HAVING AVG(price) > 50;
JOIN 結合兩個或多個表的行 SELECT orders.order_id, customers.customer_name FROM orders JOIN customers ON orders.customer_id = customers.id;

記住,熟能生巧!不要害怕嘗試這些查詢。每次你成功運行一個查詢,你的數據庫技能就升了一級。在你意識到之前,你將會像專家一樣寫出複雜的查詢!

開心地查詢吧,願你的SELECT語句總是能返回你所尋求的數據!

Credits: Image by storyset