0. サンプルテーブルを作成し、データを挿入します。
CREATE TABLE orders (
order_id INT PRIMARY KEY AUTO_INCREMENT,
customer_name VARCHAR(50) NOT NULL,
order_date DATE,
total_amount DECIMAL(10, 2)
);
INSERT INTO orders (customer_name, order_date, total_amount) VALUES
('lfsun-1', '2023-07-15', 120.50),
('lfsun-2', '2023-07-16', 85.20),
('lfsun-4', '2023-07-17', 320.75),
('lfsun-5', '2023-07-18', 210.00),
('lfsun-6', '2023-07-19', 450.60);
1. COUNT を使用して注文数量を計算します。
SELECT COUNT(*) AS order_count FROM orders;
2. SUM を使用して合計金額を計算します。
SELECT SUM(total_amount) AS total_amount FROM orders;
3. AVG を使用して平均金額を計算します。
SELECT AVG(total_amount) AS average_amount FROM orders;
4. MAX と MIN を使用して最大量と最小量を見つけます。
SELECT MAX(total_amount) AS max_amount, MIN(total_amount) AS min_amount FROM orders;
5. CONCAT を使用して文字列を接続します。
SELECT CONCAT('Order #', order_id, ' - ', customer_name) AS order_info FROM orders;
6. SUBSTRING を使用して文字列をインターセプトします。
SELECT SUBSTRING(order_id, -3) AS last_three_digits FROM orders;
7. REPLACE を使用して文字列を置換します。
SELECT REPLACE(customer_name, '1', '11') AS modified_name FROM orders;
8. ROUND を使用して数値を丸めます。
SELECT ROUND(total_amount, 2) AS rounded_amount FROM orders;
9. TRIM を使用して文字列の両側のスペースを削除します。
SELECT TRIM(customer_name) AS trimmed_name FROM orders;
10. DATE_FORMAT を使用して日付をフォーマットします。
SELECT DATE_FORMAT(order_date, '%Y-%m-%d') AS formatted_date FROM orders;
11. NOW を使用して現在の日付と時刻を取得します。
SELECT NOW() AS current_datetime FROM orders;
12. RAND を使用して乱数を生成します。
SELECT RAND() AS random_number FROM orders;
13. IF 条件を使用して以下を判断します。
SELECT customer_name, IF(total_amount >= 300, 'High Value', 'Low Value') AS value_category FROM orders;
14. CASE 条件式を使用します。
SELECT
customer_name,
total_amount,
CASE
WHEN total_amount >= 400 THEN 'High Value'
WHEN total_amount >= 200 THEN 'Medium Value'
ELSE 'Low Value'
END AS value_category
FROM orders;
15. データ型変換には CAST と CONVERT を使用します。
SELECT
customer_name,
CAST(total_amount AS SIGNED) AS total_amount_integer
FROM orders;