SQL Cơ bản - Clauses
Lưu ý: Học SQL không chỉ để code ngầu, mà còn để gây ấn tượng với đồng nghiệp khi nói về “cái database”! 🤓
SQL có thể không phải là điều khiến bạn trông “cool” ngay lập tức như việc học cách nhảy hip-hop hay đi du lịch vòng quanh thế giới, nhưng mà này! SQL là công cụ tối thượng giúp bạn điều khiển dữ liệu như một bậc thầy phù thủy. Và chúng ta sẽ bắt đầu với những câu lệnh kinh điển nhất của SQL – mấy cái clauses
1. DISTINCT: Lặp Lại Để Làm Gì? Hãy Khác Biệt!
Khi bạn đi mua sắm, bạn sẽ không muốn mua 10 chiếc áo giống nhau, đúng không? DISTINCT
trong SQL cũng có chức năng tương tự — nó giúp loại bỏ các hàng bị trùng lặp, chỉ trả về các kết quả duy nhất.
Cú pháp:
1
2
SELECT DISTINCT column1, column2, ...
FROM table_name;
Trong đó:
DISTINCT
: Chỉ giữ lại các giá trị duy nhất.column1, column2
: Các cột mà bạn muốn chọn ra các giá trị duy nhất.table_name
: Bảng dữ liệu bạn truy vấn.
Giả sử bạn có một bảng Employees
với cột Department
. Bạn muốn biết có bao nhiêu phòng ban khác nhau trong công ty.
1
2
SELECT DISTINCT Department
FROM Employees;
Dù trong bảng có hàng trăm nhân viên, SQL chỉ trả về danh sách phòng ban không trùng lặp.
2. FROM: nguồn dữ liệu từ đâu
FROM chính là nơi bạn nói với SQL rằng: “Tôi muốn lấy dữ liệu từ đâu”. Cũng như việc bạn phải chọn siêu thị để mua sắm, bạn cần chỉ rõ bảng dữ liệu nào bạn muốn làm việc với.
Cú pháp:
1
2
SELECT column1, column2, ...
FROM table_name;
Trong đó:
column1, column2:
Các cột bạn muốn chọn từ bảng.table_name
: Tên bảng dữ liệu chứa thông tin cần truy vấn.
Bạn muốn lấy thông tin về tên và lương của các nhân viên trong bảng Employees
.
1
2
SELECT Name, Salary
FROM Employees;
Kết quả: | Name | Salary | |————-|——–| | John Doe | 5000 | | Jane Smith | 6000 | | Bob Johnson | 5500 |
Câu lệnh này chọn ra hai cột Name và Salary từ bảng Employees.
3. WHERE: điều kiện là gì?
Khi bạn muốn truy vấn cụ thể hơn, như chỉ chọn những nhân viên có mức lương trên 5000 chẳng hạn, thì WHERE
là người bạn thân của bạn.
Cú pháp:
1
2
3
SELECT column1, column2, ...
FROM table_name
WHERE condition;
Trong đó:
condition
: Điều kiện lọc kết quả (ví dụ: Salary > 5000).
Bạn muốn chọn ra các nhân viên có lương trên 5000.
1
2
3
SELECT Name, Salary
FROM Employees
WHERE Salary > 5000;
Kết quả: WHERE Salary > 5000
giúp bạn lọc chỉ những nhân viên có lương trên 5000.
| Name | Salary |
|————-|——–|
| Jane Smith | 6000 |
| Bob Johnson | 5500 |
4. ORDER BY: Sắp xếp phải có thứ tự
Bạn thích sắp xếp mọi thứ theo thứ tự, chẳng hạn từ cao đến thấp, từ nhỏ đến lớn? ORDER BY
là cách để bạn làm điều đó với kết quả truy vấn SQL.
Cú pháp:
1
2
3
SELECT column1, column2, ...
FROM table_name
ORDER BY column1 [ASC|DESC];
Trong đó:
ASC
: Sắp xếp theo thứ tự tăng dần (mặc định).DESC
: Sắp xếp theo thứ tự giảm dần.
Bạn muốn sắp xếp nhân viên theo lương từ cao đến thấp.
1
2
3
SELECT Name, Salary
FROM Employees
ORDER BY Salary DESC;
Kết quả: ORDER BY Salary DESC
sắp xếp bảng theo cột Salary
theo thứ tự giảm dần.
Name | Salary |
---|---|
Jane Smith | 6000 |
Bob Johnson | 5500 |
John Doe | 5000 |
5. GROUP: chia nhóm
Có bao giờ bạn tự hỏi, có bao nhiêu nhân viên trong mỗi phòng ban? GROUP BY
sẽ giúp bạn trả lời câu hỏi đó bằng cách nhóm dữ liệu lại theo các tiêu chí cụ thể.
Cú pháp:
1
2
3
SELECT column1, COUNT(*)
FROM table_name
GROUP BY column1;
Trong đó:
COUNT(*)
: Đếm số lượng hàng trong mỗi nhóm.column1
: Cột mà bạn muốn nhóm dữ liệu theo.
Bạn muốn biết số lượng nhân viên trong mỗi phòng ban.
1
2
3
SELECT Department, COUNT(*)
FROM Employees
GROUP BY Department;
Kết quả: | Department | COUNT(*) | |————|———-| | IT | 5 | | Sales | 3 | | Marketing | 4 |
GROUP BY Department
giúp bạn nhóm nhân viên theo phòng ban và COUNT(*)
đếm số lượng nhân viên trong mỗi phòng ban.
6. AVG
Có bao giờ bạn cần tính mức lương trung bình của toàn bộ nhân viên không? AVG
chính là cách để bạn làm điều đó.
Cú pháp:
1
2
SELECT AVG(column_name)
FROM table_name;
Trong đó:
AVG(column_name)
: Tính trung bình của cột column_name.
Bạn muốn tính mức lương trung bình của tất cả nhân viên trong công ty.
1
2
SELECT AVG(Salary)
FROM Employees;
Kết quả: | AVG(Salary) | |————-| | 5500 |
Kết quả trả về là mức lương trung bình của tất cả nhân viên trong bảng Employees.
Kết luận
Sau khi đọc xong bài viết này, bạn đã nắm rõ được các clauses quan trọng trong SQL:
DISTINCT
: Loại bỏ các giá trị trùng lặp.FROM
: Chọn bảng dữ liệu.WHERE
: Lọc dữ liệu theo điều kiện.ORDER BY
: Sắp xếp kết quả theo thứ tự.GROUP BY
: Nhóm dữ liệu lại theo tiêu chí.AVG
: Tính trung bình.
Chỉ với những kiến thức này, bạn đã có thể viết được các câu truy vấn SQL cực kỳ mạnh mẽ, và điều khiển dữ liệu như một siêu cao thủ. Chúc bạn sớm trở thành bậc thầy SQL, và nhớ đừng quên dùng SQL để “gây ấn tượng” với đồng nghiệp nhé! 😎
Bài viết mang tính chất “ghi chú, lưu trữ, chia sẻ và phi lợi nhuận”.
Nếu bạn thấy hữu ích, đừng quên chia sẻ với bạn bè và đồng nghiệp của mình nhé!
Happy coding! 😎 👍🏻 🚀 🔥