SQL cơ bản - phần 1
MySQL SELECT
SELECT dùng để lấy dữ liệu từ bảng. Kết quả trả về là một bảng dữ liệu (result set).
Cú pháp:
SELECT column1, column2, ...
FROM table_name;
Nếu muốn lấy tất cả cột, dùng SELECT *.
Ví dụ: lấy các cột cơ bản của đơn hàng.
SELECT order_id, created_at, price_usd
FROM orders
LIMIT 10;
MySQL WHERE
WHERE dùng để lọc dữ liệu theo điều kiện. Chỉ các dòng thỏa điều kiện mới được trả về.
Cú pháp:
SELECT column1, column2
FROM table_name
WHERE condition;
Ví dụ: lọc đơn hàng có giá trị từ 50 USD trở lên.
SELECT order_id, price_usd
FROM orders
WHERE price_usd >= 50;
MySQL AND, OR, NOT
AND/OR/NOT dùng để kết hợp hoặc phủ định điều kiện trong WHERE.
Cú pháp:
WHERE condition1 AND condition2
WHERE condition1 OR condition2
WHERE NOT condition
Ví dụ: kết hợp nhiều điều kiện và loại trừ phiên quay lại.
SELECT website_session_id, utm_source, device_type
FROM website_sessions
WHERE utm_source = 'gsearch'
AND device_type = 'desktop'
AND NOT is_repeat_session = 1;
MySQL ORDER BY
ORDER BY dùng để sắp xếp kết quả theo cột tăng dần (ASC) hoặc giảm dần (DESC).
Cú pháp:
SELECT column1, column2
FROM table_name
ORDER BY column_name ASC|DESC;
Ví dụ: sắp xếp đơn hàng theo giá trị giảm dần.
SELECT order_id, created_at, price_usd
FROM orders
ORDER BY price_usd DESC
LIMIT 10;
MySQL NULL Values
NULL biểu thị giá trị trống/không xác định. Dùng IS NULL hoặc IS NOT NULL để kiểm tra.
Cú pháp:
WHERE column_name IS NULL
WHERE column_name IS NOT NULL
Ví dụ: tìm các phiên không có nguồn chiến dịch.
SELECT website_session_id, utm_source
FROM website_sessions
WHERE utm_source IS NULL
LIMIT 10;
MySQL LIMIT
LIMIT dùng để giới hạn số dòng kết quả trả về.
Cú pháp:
SELECT column1, column2
FROM table_name
LIMIT number;
Ví dụ: giới hạn số bản ghi trả về.
SELECT website_pageview_id, pageview_url
FROM website_pageviews
LIMIT 5;
MySQL MIN and MAX
MIN và MAX là hàm tổng hợp để lấy giá trị nhỏ nhất/lớn nhất của một cột.
Cú pháp:
SELECT MIN(column_name), MAX(column_name)
FROM table_name;
Ví dụ: lấy giá trị nhỏ nhất và lớn nhất của đơn hàng.
SELECT MIN(price_usd) AS min_price, MAX(price_usd) AS max_price
FROM orders;
MySQL COUNT, AVG, SUM
COUNT, AVG, SUM là các hàm tổng hợp để đếm, tính trung bình, và tính tổng.
Cú pháp:
SELECT COUNT(*), AVG(column_name), SUM(column_name)
FROM table_name;
Ví dụ: tính tổng số đơn, giá trị trung bình và tổng doanh thu.
SELECT COUNT(*) AS total_orders,
AVG(price_usd) AS avg_order_value,
SUM(price_usd) AS total_revenue
FROM orders;
MySQL LIKE
LIKE dùng để tìm chuỗi theo mẫu ký tự.
Cú pháp:
WHERE column_name LIKE pattern;
Ví dụ: tìm các trang bắt đầu bằng đường dẫn /products.
SELECT website_pageview_id, pageview_url
FROM website_pageviews
WHERE pageview_url LIKE '/products%'
LIMIT 10;
MySQL Wildcards
Ký tự đại diện trong LIKE:
%đại diện cho nhiều ký tự._đại diện cho một ký tự.
Ví dụ: lọc đường dẫn có một ký tự sau /products/.
SELECT website_pageview_id, pageview_url
FROM website_pageviews
WHERE pageview_url LIKE '/products/_%'
LIMIT 10;
MySQL IN
IN dùng để kiểm tra một giá trị có nằm trong danh sách không.
Cú pháp:
WHERE column_name IN (value1, value2, ...);
Ví dụ: lọc đơn hàng có sản phẩm chính nằm trong danh sách.
SELECT order_id, primary_product_id, price_usd
FROM orders
WHERE primary_product_id IN (1, 2, 3);
MySQL BETWEEN
BETWEEN dùng để lọc giá trị trong một khoảng (bao gồm cả 2 đầu mút).
Cú pháp:
WHERE column_name BETWEEN value1 AND value2;
Ví dụ: lọc đơn hàng có giá trị trong khoảng 20–80 USD.
SELECT order_id, price_usd
FROM orders
WHERE price_usd BETWEEN 20 AND 80;