MySQL - Select 查詢
你好啊,未來的數據庫魔法師們!今天,我們將進入MySQL Select查詢的神奇世界。作為你們友好的鄰居計算機老師,我在這裡指引你們進行這次冒險,一步一步地。別擔心如果你之前從未寫過一行代碼——我們將從最基本的開始,然後逐步提升。所以,拿起你的虛擬魔杖(鍵盤),讓我們開始吧!
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來獲取數據
現在,讓我們假設我們是使用命令提示符來質詢數據庫的數據庫偵探。以下是如何操作的:
- 打開你的命令提示符或終端。
- 連接到MySQL(通常是通过輸入
mysql -u username -p
並輸入你的密碼)。 - 使用
USE database_name;
選擇你的數據庫。 - 现在你已經準備好運行你的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。
讓我們看看你如何可能使用一個客戶端程序:
- 使用客戶端的界面連接到你的數據庫。
- 通常,會有一個查詢編輯器,你可以在其中輸入你的SQL。
- 寫下你的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