SQL Cơ bản - Query
Chào mừng các bạn đã đến với thế giới SQL, nơi mà bạn có thể dễ dàng “ra lệnh” cho các cơ sở dữ liệu của mình làm đủ trò từ chọn lựa, chèn thêm, sửa đổi đến xóa sạch mọi thứ (chỉ đùa thôi, hãy cẩn thận với cái nút DELETE đấy). Dưới đây là một danh sách các câu lệnh SQL quan trọng mà bạn cần biết.
Nghe có vẻ khô khan, nhưng hãy thử đọc bài viết này … có thể bạn sẽ thay đổi ý nghĩ đấy!
1. SELECT
Câu lệnh SELECT là câu lệnh “thần thánh” nhất trong SQL, là nơi mà mọi câu chuyện bắt đầu. Bạn muốn lấy dữ liệu từ cơ sở dữ liệu của mình? Dễ thôi, chỉ cần gọi SELECT.
Cú pháp:
1
2
SELECT column1, column2, ...
FROM table_name;
Trong đó:
column1, column2,...: các cột cần selecttable_name: tên bảng cần select
Muốn lấy tất cả dữ liệu nhân viên của công ty, bảng Employees:
1
SELECT * FROM Employees;
Không chỉ có mỗi dấu *, bạn có thể lựa chọn những cột mình quan tâm:
1
SELECT Name, Age FROM Employees;
Nói chung, SELECT là câu thần chú đơn giản nhất mà bạn cần nắm vững trước khi học “biến hình” với SQL.
2. SELECT LIMIT
Cú pháp:
1
2
3
SELECT column1, column2, ...
FROM table_name
LIMIT number;
Lấy một ít dữ liệu thôi, đừng tham quá! Đó là mục đích của câu lệnh LIMIT. Bạn có hàng triệu bản ghi và chỉ muốn xem 10 bản ghi đầu tiên? Dễ thôi:
1
2
SELECT * FROM Employees
LIMIT 10;
Khi sếp yêu cầu, bạn chỉ cần cho họ xem đúng số lượng dữ liệu cần thiết, đừng dại mà dump cả cơ sở dữ liệu lên màn hình của họ!
3. SELECT TOP
Cú pháp:
1
2
SELECT TOP number column1, column2, ...
FROM table_name;
Giống như LIMIT, nhưng dành riêng cho SQL Server và MS Access. "TOP" giúp bạn chỉ lấy vài dòng đầu mà thôi.
1
SELECT TOP 5 * FROM Employees;
SQL Server kiểu như: “Đừng lo, tôi chỉ lấy TOP 5 thôi, hứa đấy!”.
4. INSERT
Cú pháp:
1
2
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
Khi bạn muốn thêm một bản ghi mới vào bảng, hãy nghĩ đến INSERT. Đừng chỉ đứng ngoài cửa sổ nhìn cơ sở dữ liệu của bạn, hãy chèn thêm vài bản ghi vào!
1
2
INSERT INTO Employees (Name, Age)
VALUES ('TungDaDev', 20);
Giờ thì cơ sở dữ liệu của bạn có thêm một anh dev trẻ đẹp trai tên là TungDaDev.
5. UPDATE
Cú pháp:
1
2
3
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
Khi nhân viên của bạn đổi nghề hoặc thay đổi tuổi tác (theo cách không tự nhiên), câu lệnh UPDATE sẽ là cứu tinh.
1
2
3
UPDATE Employees
SET Age = 21
WHERE Name = 'TungDaDev';
Giờ thì TungDaDev đã thêm một tuổi, nhưng mà không được để WHERE rỗng nhé! Nếu không thì mọi nhân viên trong công ty đều sẽ già thêm một tuổi, và điều đó thì… đáng sợ đấy!
6. DELETE
Cú pháp:
1
2
DELETE FROM table_name
WHERE condition;
Câu lệnh DELETE giống như việc sa thải nhân viên, nhưng hãy nhớ, chỉ sa thải đúng người thôi. Đừng dùng DELETE mà không có điều kiện (WHERE).
1
2
DELETE FROM Employees
WHERE Name = 'MikeDaDev';
Và giờ thì MikeDaDev đã bị xóa khỏi cơ sở dữ liệu. Cầu mong anh ấy sớm tìm được việc mới.
7. TRUNCATE TABLE
Cú pháp:
1
TRUNCATE TABLE table_name;
Đây không phải là sa thải nhân viên, mà là xóa hết nhân viên. Hãy cẩn thận, vì TRUNCATE không có đường lùi, và bạn sẽ mất hết dữ liệu mà không có cơ hội rollback.
1
TRUNCATE TABLE Employees;
Xoẹt một phát, tất cả nhân viên biến mất như một phép màu đen tối…
8. UNION Operator
Cú pháp:
1
2
3
4
5
SELECT column1, column2, ...
FROM table1
UNION
SELECT column1, column2, ...
FROM table2;
UNION kết hợp hai tập kết quả lại với nhau, nhưng loại bỏ các bản ghi trùng lặp. Ví dụ, bạn muốn biết danh sách khách hàng từ hai bảng khác nhau? UNION là bạn đồng hành của bạn.
1
2
3
SELECT Name FROM Customers1
UNION
SELECT Name FROM Customers2;
Vậy là bạn có danh sách khách hàng, không trùng nhau!
9. UNION ALL Operator
Cú pháp:
1
2
3
4
5
SELECT column1, column2, ...
FROM table1
UNION ALL
SELECT column1, column2, ...
FROM table2;
Giống UNION, nhưng lần này UNION ALL không xóa các bản ghi trùng lặp. Cứ thoải mái mà thêm tất cả vào.
1
2
3
SELECT Name FROM Customers1
UNION ALL
SELECT Name FROM Customers2;
Nếu bạn không quan tâm đến việc loại bỏ bản ghi trùng, hãy chọn UNION ALL.
10. INTERSECT Operator
Cú pháp:
1
2
3
4
5
SELECT column1, column2, ...
FROM table1
INTERSECT
SELECT column1, column2, ...
FROM table2;
INTERSECT sẽ lấy ra phần giao nhau giữa hai tập kết quả. Chỉ những bản ghi có trong cả hai bảng sẽ được giữ lại.
1
2
3
SELECT Name FROM Customers1
INTERSECT
SELECT Name FROM Customers2;
Giờ thì bạn biết những khách hàng nào mua hàng ở cả hai cửa hàng.
11. MINUS Operator / EXCEPT Operator
Cú pháp:
1
2
3
4
5
SELECT column1, column2, ...
FROM table1
MINUS (hoặc EXCEPT)
SELECT column1, column2, ...
FROM table2;
MINUS hay EXCEPT sẽ lấy ra phần chênh lệch giữa hai tập kết quả, tức là những bản ghi có trong tập đầu tiên nhưng không có trong tập thứ hai.
1
2
3
SELECT Name FROM Customers1
MINUS
SELECT Name FROM Customers2;
Vậy là bạn biết ai đã “biến mất” khỏi danh sách khách hàng cũ rồi!
Kết luận
Vậy là chúng ta đã điểm qua tất cả những câu lệnh SQL quan trọng và cần thiết để trở thành một SQL master chính hiệu. Từ việc chọn lọc dữ liệu với SELECT, giới hạn số lượng với LIMIT hay TOP, đến việc chèn thêm bản ghi với INSERT, sửa đổi với UPDATE, và thậm chí là xóa sạch sẽ với DELETE hoặc TRUNCATE. Đừng quên các phép toán tập hợp siêu hữu ích như UNION, INTERSECT, hay các cú pháp điều kiện mạnh mẽ như ORDER BY, GROUP BY và các hàm thống kê như AVG để biến dữ liệu khô khan thành những thông tin thực sự hữu ích.
SQL có thể được ví như một ngôn ngữ lập trình cơ sở dữ liệu mà bạn có thể dễ dàng “ra lệnh” cho máy tính làm mọi thứ từ cơ bản đến nâng cao. Nhưng, hãy luôn cẩn trọng với những cú pháp như DELETE và TRUNCATE nhé! Đôi khi, một cú click chuột có thể xóa tan mọi dữ liệu mà bạn không thể khôi phục.
Cuối cùng, nếu bạn cảm thấy SQL vẫn còn khó khăn, đừng lo lắng. Giống như việc học bất kỳ ngôn ngữ nào, hãy thực hành và chơi đùa với các câu lệnh, và SQL sẽ sớm trở thành một “cánh tay đắc lực” cho bạn trong việc xử lý dữ liệu.
Chúc bạn học SQL thật vui vẻ và “tương tác” với cơ sở dữ liệu một cách thông minh 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! 😎 👍🏻 🚀 🔥