Sql là gì? Các câu lệnh SQL cơ bản, nâng cao thường dùng

Bài viết này giúp bạn nắm chắc những cấu trúc SQL làm việc với cơ sở dữ liệu thường dùng trong quá trình học và xây dựng án. Tất nhiên tôi sẽ đưa vào những ví dụ cụ thể để bạn dễ hình dung và áp dụng dễ dàng ngay lập tức.

Sql là gì?

SQL (Structured Query Language) là một ngôn ngữ lập trình dùng để quản lý và tương tác với cơ sở dữ liệu quan hệ. SQL cho phép bạn truy vấn dữ liệu từ cơ sở dữ liệu, thêm, sửa đổi và xóa dữ liệu trong cơ sở dữ liệu, tạo và quản lý bảng, chỉnh sửa cấu trúc cơ sở dữ liệu, và thực hiện nhiều tác vụ khác liên quan đến quản lý dữ liệu.

SQL được sử dụng rộng rãi trong lập trình web và phát triển ứng dụng cơ sở dữ liệu. Các hệ quản lý cơ sở dữ liệu phổ biến như MySQL, PostgreSQL, SQLite, SQL Server, Oracle và nhiều hệ quản lý cơ sở dữ liệu khác đều hỗ trợ SQL như ngôn ngữ tương tác với cơ sở dữ liệu.

SQL gồm một loạt các lệnh và cú pháp cho phép bạn tạo, truy vấn và quản lý dữ liệu trong cơ sở dữ liệu quan hệ. Các lệnh SQL chủ yếu bao gồm SELECT (truy vấn), INSERT (thêm), UPDATE (cập nhật), DELETE (xóa), CREATE TABLE (tạo bảng), ALTER TABLE (thay đổi cấu trúc bảng), JOIN (kết hợp dữ liệu từ nhiều bảng), và nhiều lệnh khác. SQL cung cấp một cách mạnh mẽ để làm việc với dữ liệu trong các ứng dụng và hệ thống cơ sở dữ liệu.

Câu lệnh SQL cơ bản

Có nhiều lệnh SQL thường được sử dụng trong lập trình web để tương tác với cơ sở dữ liệu. Dưới đây là một số lệnh SQL quan trọng mà chúng ta thường gặp:

#1. SELECT: Sử dụng để truy vấn dữ liệu từ cơ sở dữ liệu.

Cấu trúc:

SELECT column1, column2
FROM table_name
WHERE condition;

Ví dụ: Lấy dữ liệu về tên và họ của các khách hàng từ bảng “customers” những người sống ở thành phố New York.

SELECT first_name, last_name
FROM customers
WHERE city = 'New York';

#2. INSERT: Thêm dữ liệu mới vào bảng.

Cấu trúc:

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);

Ví dụ: Thêm dữ liệu mới vào bảng “products”.

INSERT INTO products (product_name, price)
VALUES ('Smartphone', 499);

#3. UPDATE: Cập nhật dữ liệu trong bảng.

Cấu trúc:

UPDATE table_name
SET column1 = value1, column2 = value2
WHERE condition;

Ví dụ: Cập nhật lương (salary) của tất cả các nhân viên trong bộ phận “Sales” của bảng “employees” thành 55,000 đơn vị tiền tệ.

UPDATE employees
SET salary = 55000
WHERE department = 'Sales';

#4. DELETE: Xóa dữ liệu từ bảng.

Cấu trúc:

DELETE FROM table_name
WHERE condition;

Ví dụ: Xóa tất cả các đơn hàng trong bảng “orders” có ngày đặt hàng trước ngày 1/1/2023.

DELETE FROM orders
WHERE order_date < '2023-01-01';

#5. CREATE TABLE: Tạo một bảng mới.

Cấu trúc:

CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
    ...
    PRIMARY KEY (column_name)
);

Ví dụ: Tạo bảng employees gồm các trường employee_id, first_name, last_name, hire_date.

CREATE TABLE employees (
    employee_id INT PRIMARY KEY,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    hire_date DATE
);

#6. ALTER TABLE: Thay đổi cấu trúc bảng đã tồn tại.

Cấu trúc:

ALTER TABLE table_name
ADD column_name datatype;

Ví dụ: Tạo thêm trường discount_percentage trong bảng “products”

ALTER TABLE products
ADD discount_percentage FLOAT;

#7. JOIN: Kết hợp dữ liệu từ nhiều bảng dựa trên điều kiện.

Cú pháp:

SELECT columns
FROM table1
INNER JOIN table2 ON table1.column = table2.column;

Ví dụ: Câu lệnh SQL bên dưới thực hiện một truy vấn kết hợp (JOIN) giữa hai bảng, “customers” và “orders,” để truy xuất thông tin về tên khách hàng (first_name) và ngày đặt hàng (order_date).

SELECT customers.first_name, orders.order_date
FROM customers
INNER JOIN orders ON customers.customer_id = orders.customer_id;

#8. GROUP BY: Nhóm các bản ghi dựa trên giá trị của một hoặc nhiều cột.

Cú pháp:

SELECT column, aggregate_function(column)
FROM table_name
GROUP BY column;

Ví dụ: Tính giá trị trung bình của cột “price” (giá sản phẩm) cho mỗi danh mục sản phẩm (cột “category”).

SELECT category, AVG(price) as avg_price
FROM products
GROUP BY category;

#9. ORDER BY: Sắp xếp kết quả truy vấn dựa trên giá trị cột.

Cú pháp:

SELECT columns
FROM table_name
ORDER BY column ASC/DESC;

Ví dụ: Câu lệnh SQL này thực hiện một truy vấn để lấy danh sách sản phẩm từ bảng “products” và sắp xếp chúng theo giá giảm dần (giảm dần theo giá).

SELECT product_name, price
FROM products
ORDER BY price DESC;

#10. WHERE: Lọc bản ghi dựa trên điều kiện.

Cú pháp:

SELECT columns
FROM table_name
WHERE condition;

Ví dụ: Lấy danh sách sản phẩm từ bảng “products” thuộc danh mục “Electronics” và chỉ lấy tên sản phẩm và giá sản phẩm.

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

#11. LIMIT: Giới hạn số lượng kết quả trả về từ truy vấn.

Cấu trúc:

SELECT columns
FROM table_name
LIMIT number_of_rows;

Ví dụ: Lấy thông tin từ bảng “orders” và chỉ hiển thị tên khách hàng và ngày đặt hàng của 10 đơn hàng đầu tiên trong bảng.

SELECT customer_name, order_date
FROM orders
LIMIT 10;

#12. OFFSET: Được kết hợp với LIMIT để thực hiện phân trang.

Cấu trúc:

SELECT columns
FROM table_name
LIMIT number_of_rows
OFFSET offset_value;

Ví dụ: Lấy thông tin về tên khách hàng và ngày đặt hàng từ bảng “orders,” bắt đầu từ hàng thứ 21 và giới hạn kết quả trả về 10 bản ghi. Điều này thường được sử dụng để hiển thị trang dữ liệu thứ hai của một danh sách, bỏ qua trang đầu tiên.

SELECT customer_name, order_date
FROM orders
LIMIT 10 OFFSET 20;

#13. COUNT(): Đếm số lượng bản ghi hoặc giá trị.

Cấu trúc:

SELECT COUNT(column_name) AS count_alias
FROM table_name
WHERE condition;

Ví dụ: Đếm số lượng khách hàng trong bảng “customers” có địa chỉ là “New York”.

SELECT COUNT(customer_id) AS customer_count
FROM customers
WHERE city = 'New York';

#14. SUM(): Tính tổng giá trị của một cột.

Cấu trúc:

SELECT SUM(column_name) AS sum_alias
FROM table_name
WHERE condition;

Ví dụ: Tính tổng giá trị đơn hàng trong bảng “orders”.

SELECT SUM(order_total) AS total_sales
FROM orders;

#15. AVG(): Tính giá trị trung bình của một cột.

Cấu trúc:

SELECT AVG(column_name) AS average_alias
FROM table_name
WHERE condition;

Ví dụ: Tính giá trị trung bình của lương của nhân viên trong bảng “employees”.

SELECT AVG(salary) AS average_salary
FROM employees;

#16. MAX(): Tìm giá trị lớn nhất trong một cột.

Cấu trúc:

SELECT MAX(column_name) AS max_alias
FROM table_name
WHERE condition;

Ví dụ: Tìm giá trị lớn nhất của sản phẩm trong bảng “products”.

SELECT MAX(price) AS max_price
FROM products;

#17. MIN(): Tìm giá trị nhỏ nhất trong một cột.

Cấu trúc:

SELECT MIN(column_name) AS min_alias
FROM table_name
WHERE condition;

Ví dụ: Tìm giá trị nhỏ nhất của ngày đặt hàng trong bảng “orders”.

SELECT MIN(order_date) AS earliest_order_date
FROM orders;

#18. HAVING: Lọc kết quả theo Group By

Lệnh HAVING trong SQL được sử dụng để lọc kết quả của một truy vấn sau khi đã được nhóm bởi lệnh GROUP BY. Nó cho phép bạn áp dụng các điều kiện lên các nhóm dữ liệu được tạo bởi GROUP BY.

Cấu trúc:

SELECT column1, column2, aggregate_function(column3)
FROM table_name
GROUP BY column1, column2
HAVING condition;
  • SELECT: Chọn các cột bạn muốn hiển thị trong kết quả.
  • aggregate_function(column3): Áp dụng hàm tổng hợp (ví dụ: SUM, COUNT, AVG, MAX, MIN,…) cho một cột cụ thể.
  • FROM: Chọn nguồn dữ liệu từ bảng cơ sở dữ liệu.
  • GROUP BY: Nhóm các hàng dữ liệu theo các cột cụ thể.
  • HAVING: Áp dụng điều kiện lên các nhóm được tạo bởi GROUP BY.

Ví dụ:

Giả sử bạn có bảng “orders” chứa thông tin về các đơn hàng và bạn muốn tìm những sản phẩm có tổng số lượng bán được lớn hơn 100. Bạn có thể sử dụng HAVING như sau:

SELECT product_id, SUM(quantity) as total_quantity
FROM orders
GROUP BY product_id
HAVING SUM(quantity) > 100;

Trong ví dụ này, trước hết, chúng ta nhóm các hàng từ bảng “orders” theo “product_id,” sau đó tính tổng số lượng của mỗi sản phẩm bằng hàm SUM(quantity). Cuối cùng, bằng cách sử dụng HAVING, chúng ta lọc ra các sản phẩm có tổng số lượng bán được lớn hơn 100.

Kết quả của truy vấn sẽ là danh sách các sản phẩm có tổng số lượng bán được lớn hơn 100, với mỗi hàng hiển thị “product_id” và tổng số lượng tương ứng.

Tổng kết

Trong bài viết này tôi đã chia sẻ đến bạn những cấu trúc SQL thường được sử dụng trong quá trình lập trình website.

Để nắm chắc và áp dụng tốt bạn hãy ghi chép lại những nội dung quan trọng sau đó thực hành để nắm chắc bài học.

Ngoài ra, nếu bạn có những câu hỏi gì về SQL hãy để lại ở phần bình luận bên dưới của bài viết này. Tôi sẽ dành thời gian đọc và hỗ trợ bạn.

Đừng quên để lại cảm nhận của bạn về bài viết này nhé!

Phan Văn Cương

P/s: Tí quên, nếu bạn đang học lập trình web muốn đi làm nhưng đang bế tắc hãy bắt đầu ngay với lộ trình học web đi làm tại unitop.vn. Bạn được kèm cặp hỗ trợ trực tiếp qua nhóm kín tới khi đi làm.

Đề xuất cho bạn

Subscribe
Notify of
guest

0 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments

Tặng Ebook chia sẻ kinh nghiệm học lập trình web đi làm cho người mới bắt đầu!

Đây là tấm bản đồ chia sẻ lại cách học lập trình web đi làm đã giúp nhiều học trò của unitop kiếm được thu nhập từ 8-30tr mỗi tháng.

Ebook Bí quyết học lập trình web đi làm - Phan Văn Cương - Unitop.vn
0
Bạn đang nghĩ gì? Hãy để lại bình luận tại đâyx
()
x