Các lệnh SQL cơ bản - Danh sách các truy vấn và câu lệnh cơ sở dữ liệu bạn nên biết

SQL (Structured Query Language) là ngôn ngữ không thể thiếu khi làm việc với cơ sở dữ liệu, giúp bạn thao tác và quản lý dữ liệu một cách hiệu quả. Dù bạn là người mới học SQL hay đã có kinh nghiệm, nắm vững các lệnh SQL cơ bản luôn là nền tảng quan trọng để xử lý dữ liệu, truy vấn thông tin và tối ưu hiệu suất hệ thống.
Trong bài viết này, hãy cùng VietnamWorks inTECH khám phá danh sách các truy vấn và câu lệnh SQL quan trọng mà bạn cần biết.
SQL là gì?
SQL là viết tắt của Structured Query Language (Ngôn ngữ Truy vấn Có cấu trúc). Các lệnh SQL là tập hợp các hướng dẫn dùng để giao tiếp với cơ sở dữ liệu nhằm thực hiện các tác vụ như truy vấn, thao tác và quản lý dữ liệu.
Các lệnh SQL có thể được sử dụng để tìm kiếm dữ liệu trong cơ sở dữ liệu, cũng như thực hiện các chức năng khác như tạo bảng, thêm dữ liệu vào bảng, sửa đổi dữ liệu và xóa bảng.
Dưới đây là danh sách các lệnh SQL cơ bản mà bạn cần biết khi làm việc với SQL.
Các lệnh SQL cơ bản
1. SELECT và FROM
Lệnh SELECT xác định các cột dữ liệu sẽ được hiển thị trong kết quả truy vấn. Ngoài ra, bạn cũng có thể tạo các cột tính toán dựa trên dữ liệu hiện có.
Ví dụ sau sẽ lấy ba cột (
studentID, FirstName, LastName
)
từ bảng student
và thêm một cột tính toán (FullName
) bằng cách ghép hai cột FirstName
và LastName
:
|
Kết quả:
+-----------+-------------------+------------+------------------------+
| studentID | FirstName | LastName | FullName |
+-----------+-------------------+------------+------------------------+
| 1 | Monique | Davis | Monique Davis |
| 2 | Teri | Gutierrez | Teri Gutierrez |
| 3 | Spencer | Pautier | Spencer Pautier |
| 4 | Louis | Ramsey | Louis Ramsey |
| 5 | Alvin | Greene | Alvin Greene |
| 6 | Sophie | Freeman | Sophie Freeman |
| 7 | Edgar Frank "Ted" | Codd | Edgar Frank "Ted" Codd |
| 8 | Donald D. | Chamberlin | Donald D. Chamberlin |
| 9 | Raymond F. | Boyce | Raymond F. Boyce |
+-----------+-------------------+------------+------------------------+
9 rows in set (0.00 sec)
2. CREATE TABLE
Lệnh CREATE TABLE
dùng để tạo bảng mới trong cơ sở dữ liệu.
|
3. ALTER TABLE
Lệnh ALTER TABLE
dùng để thay đổi cấu trúc của bảng. Ví dụ, thêm một cột mới vào bảng:
|
4. CHECK Constraint
CHECK
giúp giới hạn phạm vi giá trị có thể được nhập vào một cột.
Ví dụ sau tạo một ràng buộc CHECK
trên cột Age
, đảm bảo rằng tất cả giá trị nhập vào phải từ 18 trở lên:
|
Để đặt tên cho một ràng buộc CHECK
và định nghĩa ràng buộc CHECK
trên nhiều cột, hãy sử dụng cú pháp SQL sau:
|
5. WHERE (AND, OR, IN, BETWEEN, LIKE)
Mệnh đề WHERE
được sử dụng để giới hạn số lượng hàng được trả về.
Ví dụ sau đây sẽ minh họa cách hoạt động của WHERE
. Đầu tiên, chúng ta thực hiện một câu lệnh SELECT
mà không có mệnh đề WHERE
, sau đó thêm WHERE
để lọc dữ liệu dựa trên các điều kiện cụ thể.
Câu lệnh SELECT
không có WHERE
:
SELECT studentID, FullName, sat_score, rcd_updated FROM student; |
+-----------+------------------------+-----------+---------------------+
| studentID | FullName | sat_score | rcd_updated |
+-----------+------------------------+-----------+---------------------+
| 1 | Monique Davis | 400 | 2017-08-16 15:34:50 |
| 2 | Teri Gutierrez | 800 | 2017-08-16 15:34:50 |
| 3 | Spencer Pautier | 1000 | 2017-08-16 15:34:50 |
| 4 | Louis Ramsey | 1200 | 2017-08-16 15:34:50 |
| 5 | Alvin Greene | 1200 | 2017-08-16 15:34:50 |
| 6 | Sophie Freeman | 1200 | 2017-08-16 15:34:50 |
| 7 | Edgar Frank "Ted" Codd | 2400 | 2017-08-16 15:35:33 |
| 8 | Donald D. Chamberlin | 2400 | 2017-08-16 15:35:33 |
| 9 | Raymond F. Boyce | 2400 | 2017-08-16 15:35:33 |
+-----------+------------------------+-----------+---------------------+
9 rows in set (0.00 sec)
Câu lệnh SELECT
với WHERE
để giới hạn kết quả:
|
+-----------+----------------------+-----------+---------------------+
| studentID | FullName | sat_score | rcd_updated |
+-----------+----------------------+-----------+---------------------+
| 1 | Monique Davis | 400 | 2017-08-16 15:34:50 |
| 2 | Teri Gutierrez | 800 | 2017-08-16 15:34:50 |
| 4 | Louis Ramsey | 1200 | 2017-08-16 15:34:50 |
| 5 | Alvin Greene | 1200 | 2017-08-16 15:34:50 |
| 8 | Donald D. Chamberlin | 2400 | 2017-08-16 15:35:33 |
+-----------+----------------------+-----------+---------------------+
5 rows in set (0.00 sec)
6. UPDATE
Để cập nhật một bản ghi trong bảng, bạn sử dụng câu lệnh UPDATE
.
Sử dụng điều kiện WHERE
để chỉ định các bản ghi cần cập nhật. Bạn có thể cập nhật một hoặc nhiều cột cùng lúc. Cú pháp như sau:
|
Ví dụ sau đây cập nhật tên của bản ghi có Id = 4
:
Ví dụ sau cập nhật thông tin Manager
cho tất cả bản ghi trong bảng Person
:
|
7. GROUP BY
GROUP BY
cho phép bạn nhóm các hàng lại và tổng hợp dữ liệu.
Dưới đây là cú pháp của GROUP BY
:
|
8. HAVING
HAVING
cho phép bạn lọc dữ liệu đã được tổng hợp bởi mệnh đề GROUP BY
, giúp người dùng nhận được một tập hợp giới hạn các bản ghi để xem.
Dưới đây là cú pháp của HAVING
:
|
9. AVG()
"Average
" được sử dụng để tính trung bình của một cột số từ tập hợp các hàng được trả về bởi một câu lệnh SQL.
Dưới đây là cú pháp để sử dụng hàm này:
|
Dưới đây là một ví dụ sử dụng bảng student
:
|
10. AS (Đặt bí danh)
Lệnh AS dùng để đặt tên bí danh cho cột hoặc bảng:
|
Điều này tạo ra kết quả đầu ra như sau:
+-------------+------------------------+
| AgeOfServer | NonWarrantyPeriod |
+-------------+------------------------+
| 36 | 24 |
| 24 | 12 |
| 61 | 49 |
| 12 | 0 |
| 6 | -6 |
| 0 | -12 |
| 36 | 24 |
| 36 | 24 |
| 24 | 12 |
+-------------+------------------------+
Bạn cũng có thể sử dụng AS
để gán tên cho bảng, giúp việc tham chiếu trong các phép JOIN trở nên dễ dàng hơn.
Điều này tạo ra kết quả đầu ra như sau:
11. ORDER BY
ORDER BY
cung cấp cách sắp xếp tập kết quả theo một hoặc nhiều cột trong câu lệnh SELECT
. Dưới đây là một truy vấn SQL sắp xếp danh sách sinh viên theo FullName
theo thứ tự giảm dần.
Mặc định, thứ tự sắp xếp là tăng dần (ASC
), nhưng để sắp xếp theo thứ tự ngược lại (giảm dần), bạn sử dụng DESC
.
|
12. COUNT
COUNT
sẽ đếm số lượng hàng và trả về kết quả đó dưới dạng một cột trong tập kết quả.
Dưới đây là một số trường hợp sử dụng COUNT
:
- Đếm tất cả các hàng trong một bảng (không cần
GROUP BY
) - Đếm tổng số của từng tập con dữ liệu (cần có
GROUP BY
)
Câu lệnh SQL dưới đây đếm tổng số hàng trong bảng. Lưu ý rằng bạn có thể đặt tên cho cột kết quả COUNT
bằng cách sử dụng AS
.
|
13. DELETE
DELETE
được sử dụng để xóa một bản ghi trong bảng.
Hãy cẩn thận! Bạn có thể xóa toàn bộ dữ liệu trong bảng hoặc chỉ một số bản ghi nhất định. Sử dụng điều kiện WHERE
để chỉ định các bản ghi cần xóa. Cú pháp như sau:
|
JOIN, còn được gọi là Inner Join, chọn các bản ghi có giá trị khớp nhau trong hai bảng.
LEFT JOIN trả về tất cả các hàng từ bảng bên trái và các hàng khớp từ bảng bên phải. Nếu không có kết quả khớp nào ở bảng bên phải, các cột của bảng đó sẽ có giá trị NULL
.
|
RIGHT JOIN trả về tất cả các hàng từ bảng bên phải và các hàng khớp từ bảng bên trái. Ngược lại với LEFT JOIN, nếu không có kết quả khớp nào ở bảng bên trái, các cột của bảng đó sẽ có giá trị NULL
.
|
FULL OUTER JOIN trả về tất cả các hàng có kết quả khớp trong một trong hai bảng. Nếu một hàng ở bảng bên trái không có kết quả khớp ở bảng bên phải, nó vẫn được hiển thị. Tương tự, nếu một hàng ở bảng bên phải không có kết quả khớp ở bảng bên trái, nó cũng sẽ được hiển thị.
|
15. INSERT
Được dùng để thêm dữ liệu vào bảng:
|
16. LIKE (Tìm kiếm mẫu dữ liệu)
LIKE được sử dụng trong WHERE hoặc HAVING (như một phần của GROUP BY) để lọc các hàng có giá trị trong cột khớp với một mẫu ký tự nhất định.
Câu lệnh SQL sau sẽ chọn các sinh viên có FullName bắt đầu bằng "Monique" hoặc kết thúc bằng "Greene":
|
+-----------+---------------+-----------+---------------------+
| studentID | FullName | sat_score | rcd_updated |
+-----------+---------------+-----------+---------------------+
| 1 | Monique Davis | 400 | 2017-08-16 15:34:50 |
| 5 | Alvin Greene | 1200 | 2017-08-16 15:34:50 |
+-----------+---------------+-----------+---------------------+
2 rows in set (0.00 sec)
Bạn có thể đặt NOT trước LIKE để loại bỏ các hàng có mẫu chuỗi nhất định thay vì chọn chúng.
Câu lệnh SQL sau sẽ loại bỏ các bản ghi có chứa "cer Pau" và "Ted" trong cột FullName:
|
+-----------+----------------------+-----------+---------------------+
| studentID | FullName | sat_score | rcd_updated |
+-----------+----------------------+-----------+---------------------+
| 1 | Monique Davis | 400 | 2017-08-16 15:34:50 |
| 2 | Teri Gutierrez | 800 | 2017-08-16 15:34:50 |
| 4 | Louis Ramsey | 1200 | 2017-08-16 15:34:50 |
| 5 | Alvin Greene | 1200 | 2017-08-16 15:34:50 |
| 6 | Sophie Freeman | 1200 | 2017-08-16 15:34:50 |
| 8 | Donald D. Chamberlin | 2400 | 2017-08-16 15:35:33 |
| 9 | Raymond F. Boyce | 2400 | 2017-08-16 15:35:33 |
+-----------+----------------------+-----------+---------------------+
7 rows in set (0.00 sec)
Kết luận
Trên đây là tổng quan về các lệnh SQL cơ bản. Nắm vững các lệnh này sẽ giúp bạn làm việc với cơ sở dữ liệu hiệu quả hơn!