Tổng hợp các câu lệnh SQL cơ bản dành cho người mới học
- 2025-05-13 09:30:08
Trong thời đại công nghệ số hiện nay, dữ liệu đóng vai trò then chốt trong việc vận hành và phát triển của hầu hết các hệ thống thông tin. Để quản lý và thao tác với dữ liệu một cách hiệu quả, ngôn ngữ SQL đã trở thành công cụ không thể thiếu đối với các lập trình viên, nhà phân tích dữ liệu cũng như quản trị cơ sở dữ liệu.
Việc nắm vững các câu lệnh SQL cơ bản không chỉ giúp truy xuất dữ liệu nhanh chóng mà còn hỗ trợ xử lý, cập nhật và quản lý thông tin một cách chính xác và tối ưu. Hãy cùng AntBook tìm hiểu các câu lệnh SQL phổ biến và vai trò của chúng trong thực tiễn nhé.
1. Đôi nét về hệ quản trị dữ liệu SQL
SQL là ngôn ngữ chuyên dụng được thiết kế để thao tác và quản lý dữ liệu trong các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS). Với SQL, người dùng có thể thực hiện các thao tác như tạo bảng, truy vấn dữ liệu, cập nhật thông tin và xóa dữ liệu một cách linh hoạt và hiệu quả. Ngoài ra, SQL còn hỗ trợ các truy vấn phức tạp nhằm phục vụ nhu cầu phân tích, tổ chức và xử lý dữ liệu theo nhiều điều kiện khác nhau.
Nhờ khả năng tương thích và hiệu năng cao trên các hệ quản trị phổ biến như MySQL, PostgreSQL, SQL Server hay Oracle. SQL đã trở thành một công cụ tiêu chuẩn và không thể thiếu trong lĩnh vực quản trị và phát triển hệ thống dữ liệu
SQL là ngôn ngữ truy vấn có cấu trúc, là tập hợp các lệnh để tương tác với cơ sở dữ liệu
2. Tổng hợp các câu lệnh SQL thường gặp
Các bạn có thể dễ dàng bắt gặp một vài câu lệnh SQL quen thuộc trong quá trình thực hành như: UPDATE, Join, Delete, Insert,… Chi tiết mời bạn tìm hiểu dưới đây.
2.1 Các câu lệnh trong SQL: Câu lệnh UPDATE trong SQL
Lệnh UPDATE trong SQL là một công cụ quan trọng giúp duy trì tính chính xác và nhất quán của dữ liệu trong cơ sở dữ liệu.
Với câu lệnh update trong SQL, bạn có thể cập nhật giá trị của một hoặc nhiều bản ghi trong bảng, chỉ định các thay đổi cần thiết và áp dụng chúng dựa trên những điều kiện cụ thể thông qua mệnh đề WHERE. Điều này giúp bạn kiểm soát và quản lý dữ liệu một cách hiệu quả, đồng thời tránh việc thay đổi không mong muốn đối với các bản ghi không liên quan.
Cú pháp tổng quát:
UPDATE table_name
SET column1 = value1, column2 = value2, …
WHERE condition;
Trong đó:
- UPDATE table_name: Xác định tên bảng bạn muốn cập nhật dữ liệu.
- SET column1 = value1, column2 = value2, …: Chỉ định cột cần cập nhật và giá trị mới tương ứng. Cập nhật một hoặc nhiều cột cùng lúc.
- WHERE condition: Điều kiện xác định bản ghi nào sẽ được cập nhật. Nếu không có mệnh đề WHERE, tất cả các bản ghi trong bảng sẽ bị cập nhật (cẩn thận khi sử dụng).
- Giá trị (value): Có thể là hằng số, giá trị từ một cột khác hoặc kết quả của biểu thức hay truy vấn con.
Lệnh UPDATE trong SQL giúp duy trì tính chính xác của dữ liệu trong cơ sở dữ liệu
2.2 Các câu lệnh SQL: Câu lệnh DELETE trong SQL
Câu lệnh DELETE trong SQL đóng vai trò quan trọng trong việc quản lý và duy trì dữ liệu, cho phép bạn xóa các bản ghi không còn cần thiết từ bảng. Câu lệnh delete trong SQL giúp loại bỏ dữ liệu dựa trên các điều kiện xác định, mà không ảnh hưởng đến cấu trúc của bảng, các chỉ mục hay các ràng buộc dữ liệu.
Việc sử dụng câu lệnh DELETE một cách chính xác đảm bảo rằng chỉ những bản ghi không mong muốn mới bị xóa, trong khi các thành phần khác của cơ sở dữ liệu vẫn được bảo toàn.
Cú pháp tổng quát:
DELETE FROM table_name
WHERE condition;
Trong đó:
- table_name: Tên bảng chứa các bản ghi cần xóa.
- condition: Điều kiện lọc các bản ghi cần xóa. Chỉ những bản ghi thỏa mãn điều kiện này mới bị xóa. Nếu không cung cấp điều kiện (bỏ WHERE), toàn bộ dữ liệu trong bảng sẽ bị xóa.
Lệnh DELETE trong SQL đóng vai trò quan trọng trong việc quản lý và duy trì dữ liệu
2.3 Các câu lệnh trong SQL: Câu lệnh INSERT trong SQL
Câu lệnh INSERT trong SQL được sử dụng để thêm các bản ghi mới vào bảng trong cơ sở dữ liệu. Với câu lệnh này, bạn có thể thêm một hoặc nhiều bản ghi cùng lúc, tùy thuộc vào yêu cầu công việc. INSERT thường xuyên được áp dụng trong các tình huống thực tế, chẳng hạn như lưu trữ thông tin khách hàng mới, thêm sản phẩm vào kho hàng hoặc ghi nhận các giao dịch tài chính.
Lệnh INSERT trong SQL có cú pháp cơ bản như sau:
INSERT INTO table_name (column1, column2, column3, …)
VALUES (value1, value2, value3, …);
Trong đó:
- INSERT INTO table_name: Xác định tên bảng mà bạn muốn thêm dữ liệu.
- Column là danh sách cột, xác định các cột mà dữ liệu sẽ được thêm vào. Nếu bỏ qua, dữ liệu sẽ được thêm theo thứ tự mặc định của tất cả các cột trong bảng.
- VALUES: Chỉ định các giá trị cần thêm vào bảng tương ứng với số lượng và kiểu dữ liệu của danh sách cột được khai báo. Nếu danh sách cột không được chỉ định, giá trị phải khớp với danh sách cột mặc định của bảng.
- Truy vấn con ((value tùy chọn): Thay vì VALUES, bạn có thể sử dụng một truy vấn con để chèn dữ liệu từ một bảng khác.
2.4 Các câu lệnh SQL: Câu lệnh JOIN trong SQL
Câu lệnh join trong SQL là một công cụ mạnh mẽ giúp kết hợp dữ liệu từ hai hoặc nhiều bảng khác nhau trong cùng một cơ sở dữ liệu thông qua một câu truy vấn duy nhất. Phép JOIN được sử dụng khi cần lấy thông tin từ nhiều bảng và hiển thị kết quả dưới dạng một tập dữ liệu thống nhất.
Hai bảng có thể được nối với nhau thông qua một trường chung, thường là khóa chính và khóa ngoại, để tạo thành mối quan hệ giữa chúng.
Cú pháp Inner Join:
SELECT columns
FROM tableA
INNER JOIN tableB
ON tableA.column = tableB.column;
Trong đó:
- SELECT columns: Liệt kê các cột mà bạn muốn lấy dữ liệu.
- FROM tableA: Chỉ định bảng cơ sở từ đó bạn muốn lấy dữ liệu.
- INNER JOIN tableB: Chỉ định bảng mà bạn muốn kết hợp với bảng cơ sở (bởi vì inner join được xem là phép JOIN mặc định nên chúng ta có thể viết gọn là JOIN table B)
- ON tableA.column = tableB.column: Chỉ định điều kiện để kết hợp các hàng từ hai bảng.
Cú pháp Left Join:
SELECT columns
FROM left_table
LEFT JOIN right_table
ON left_table.common_column = right_table.common_column;
Cú pháp Right Join:
SELECT columns
FROM left_table
RIGHT JOIN right_table
ON right_table.common_column = left_table.common_column;
Cú pháp Full Join:
SELECT columns
FROM table1
FULL JOIN table2
ON table1.common_column = table2.common_column;
Cú pháp Cross Join:
SELECT columns
FROM table1
CROSS JOIN table2;
Cú pháp Natural JOIN:
SELECT *
FROM TableA
NATURAL JOIN TableB;
Các lệnh INSERT trong SQL sử dụng để thêm các bản ghi mới vào bảng cơ sở dữ liệu
2.5 Các câu lệnh SQL: Câu lệnh SELECT trong SQL
Câu lệnh Select trong SQL là một trong những câu lệnh cơ bản và quan trọng nhất, được sử dụng để truy xuất dữ liệu từ một hoặc nhiều bảng trong cơ sở dữ liệu.
Với SELECT, bạn có thể lấy toàn bộ dữ liệu từ bảng hoặc chỉ các bản ghi đáp ứng các điều kiện nhất định. Kết quả của câu lệnh này là một tập hợp các dữ liệu (resultset), được trả về sau khi thực hiện truy vấn.
Cú pháp 1: Truy xuất dữ liệu cột xác định từ một bảng
SELECT column1, column2, …
FROM table_name;
Cú pháp 2: Truy xuất tất cả các cột từ một bảng
SELECT *
FROM table_name;
Cú pháp 3: Alias gán tên cột tạm thời
Nếu muốn gán tên cột hoặc trong kết quả trả về, ta có thể sử dụng Alias với cú pháp như sau:
SELECT column_name AS alias_name
FROM table_name;
Cú pháp 4: SELECT DISTINCT trong SQL
SELECT DISTINCT city AS unique_city
FROM customers;
2.6 Các câu lệnh SQL: Câu lệnh truy vấn SQL nâng cao
+ Truy vấn đơn giản
select *: Hiện tất cả bảng
select *from SinhVien
select: Hiện một số cột
select TenSV, DiemTBfrom SinhVien
select..where: Hiện một số dòng / bản ghi
select TenSV, DiemTBfrom SinhVien
where DiemTB > 6.0
select..order by: Hiện và sắp xếp theo điểm rồi theo tên
select TenSV, DiemTBfrom SinhVien
order by DiemTB desc, TenSV asc // asc sắp sếp tăng dần, desc là giảm dần
select..distinct: Hiện danh sách giá trị không trùng lặp
select distinct QueQuanfrom SinhVien
select..top: Hiện các dòng đầu tiên trong bảng
select top 3 TenSV, DiemTBfrom SinhVien
order by DiemTB desc, TenSV asc
+ Truy vấn lồng nhau (nested query)
select..where (select)
Hiện tất cả những người trong bảng nhân viên có lương bằng lương lớn nhất của những người có trong công ty:
select TenNV, Luongfrom NhanVien
where Luong = (select max(Luong) from NhanVien)
select..where (in)
Hiện tất cả những người trong bảng nhân viên có lương lớn nhất hoặc lớn nhì của những người có trong công ty:
select TenNV, Luongfrom NhanVien
where Luong in (select top 2 Luong from NhanVien order by Luong)
Câu lệnh select trong sẽ tạo ra một tập hai giá trị (top 2) đó là lương lớn nhất và lương lớn nhì. Và câu lệnh select thứ nhất sẽ chọn ra những người mà lương nằm trong tập lớn nhất và lớn nhì.
select..where (in sub)
Hiển thị những người có lương lớn nhất phòng của anh ta (không phải lớn nhất trong công ty mà lớn nhất trong phòng hoặc đơn vị mà anh ta thuộc về)
select nv1.TenNV, nv1.Luongfrom NhanVien as nv1
where nv1.Luong = (select max(Luong) from NhanVien where Phong=nv1.Phong)
Câu lệnh select trong sẽ trả về giá trị lương lớn nhất nhưng không phải lớn nhất trong toàn công ty mà lớn nhất trong phòng của nv1. Sau đó câu lệnh select ngoài cùng sẽ xác định xem nv1 có được chọn không bằng cách kiểm tra lương anh ta với lương lớn nhất của phòng anh ta.
+ Truy vấn tổng nhóm (subtotal query / grouping query)
select..group by: Thống kê theo tiêu chí
Hiện ra số lượng các nhân viên ứng với từng quê
select QueQuan, count(*)from NhanVien
group by QueQuan
Đếm số nam và số nữ trong công ty
select GioiTinh, count(*)from NhanVien
group by GioiTinh
Tính tổng thu nhập theo từng phòng
select Phong, sum(Luong)from NhanVien
group by Phong
select..having: Hiện ra một số nhóm phù hợp
Chỉ đếm số lượng người ở Hải Phòng và số lượng người ở Hà nội
select QueQuan, count(*)from NhanVien
group by QueQuan
having (QueQuan = ‘HP’, QueQuan = ‘HN’)
Chỉ hiện ra những phòng nào có tổng thu nhập lớn hơn 500000
select Phong, sum(Luong)from NhanVien
group by Phong
having sum(Luong) > 5000000
Chỉ hiện ra những tỉnh nào có số lượng người lớn hơn 10
select QueQuan, count(*)from NhanVien
group by QueQuan
having count(*) > 10
+ Truy vấn liên bảng (cross table query / joining query)
select..inner join: ghép các cặp bản ghi thỏa mãn điều kiện
Ghép bảng nhân viên và hiện ra tên nhân viên và tên địa phương
select NhanVien.TenNV, DiaPhuong.TenDP
from NhanVien
inner join DiaPhuong on NhanVien.QueQuan = DiaPhuong.MaDP
select..left outer join: lấy tất cả phía trái và ghép (nếu có) với phải
Lấy tất cả những nhân viên kể cả những nhân viên có quê quán không hợp lệ (nghĩa là mã quê quán không có trong bảng địa phương)
select NhanVien.TenNV, DiaPhuong.TenDP
from NhanVien
left outer join DiaPhuong on NhanVien.QueQuan = DiaPhuong.MaDP
select..right outer join: lấy tất cả phía phải và ghép (nếu có) với phía trái
Lấy tất cả những địa phương ghép với nhân viên, các địa phương không hợp lệ được ghép với bộ dữ liệu rỗng. Không hiện ra các nhân viên không có mã quê quán phù hợp
select NhanVien.TenNV, DiaPhuong.TenDP
from NhanVien
right outer join DiaPhuong on NhanVien.QueQuan = DiaPhuong.MaDP
select..full outer join: lấy từ hai phía và ghép nếu có
Lấy tất cả những nhân viên (nếu không có quê quán phù hợp thì ghép với bộ dữ liệu rỗng) và tất cả những địa phương kể cả không có nhân viên.
select NhanVien.TenNV, DiaPhuong.TenDP
from NhanVien
right outer join DiaPhuong on NhanVien.QueQuan = DiaPhuong.MaDP
select..cross join: trả về tất cả các cặp có thể ghép
Ghép từng nhân viên với tất cả các địa phương. Như vậy nếu có m nhân viên và có n địa phương thì bảng đích sẽ có m*n dòng. n dòng đầu cho nhân viên thứ nhất ghép với các địa phương. n dòng sau cho nhân viên thứ hai ghép với các địa phương. và tiếp tục như thế tới nhân viên thứ m.
select NhanVien.TenNV, DiaPhuong.TenDP
from NhanVien
cross join DiaPhuong
2.7 Các câu lệnh trong SQL: Câu lệnh điều kiện trong SQL
+ Lệnh IF
Sau đây là cú pháp minh họa cách dùng lệnh IF trong SQL Server:
IF boolean_expression
BEGIN
{ statement_block }
END
+ IF…ELSE trong SQL là gì?
IF dieukien {…câu lệnh thực thi khi điều kiện là TRUE…}[ ELSE {…câu lệnh thực thi khi điều kiện là FALSE…} ]
Để nắm rõ các câu lệnh SQL và nâng cao khả năng phân tích dữ liệu, một tài liệu hữu ích chính là bộ sách Data Analysis tại AntBook. Bộ sách cung cấp kiến thức cơ bản và nâng cao về việc sử dụng SQL trong phân tích dữ liệu. Nhờ đó giúp bạn hiểu rõ hơn về cách truy vấn, xử lý và phân tích dữ liệu hiệu quả. Ngoài ra, sách cũng có thể cung cấp các ví dụ thực tế, bài tập thực hành để bạn áp dụng lý thuyết vào các tình huống thực tế. Mua ngay tại AntBook để nhận video hướng dẫn học DA chi tiết và đầy đủ nhất nhé!