Cú pháp và cách sử dụng lệnh SELECT, INSERT, DELETE trong SQL
Đây là một số hàm cơ bản của SQL mà bạn nên biết và sử dụng thành thạo rất hữu ích cho bạn khi bắt đầu tìm hiểu về SQL server
1. Cú pháp lệnh SELECT trong SQL:
SELECT cot1, cot2, cotN FROM TEN_BANG;
Đây là cú pháp câu lệnh SELECT SQL cơ bản nhất, cot1, cot2, cotN là các trường chứa giá trị bạn muốn lấy trong bảng. Nếu muốn lấy tất cả các trường của bảng, thì chỉ cần sử dụng cú pháp SELECT rút gọn như sau:
SELECT * FROM TEN_BANG;
Ví dụ về lệnh SELECT trong SQL:
Ta sử dụng lại bảng NHANVIEN đã tạo trong bài trước:
+----+----------+-----+-----------+---------+
| ID | TEN | TUOI| DIACHI | LUONG | +----+----------+-----+-----------+---------+
| 1 | Thanh | 24 | Haiphong | 2000.00 |
| 2 | Loan | 26 | Hanoi | 1500.00 |
| 3 | Nga | 24 | Hanam | 2000.00 |
| 4 | Mạnh | 29 | Hue | 6500.00 |
| 5 | Huy | 28 | Hatinh | 8500.00 |
| 6 | Cao | 23 | HCM | 4500.00 |
| 7 | Lam | 29 | Hanoi | 15000.00| +----+----------+-----+-----------+---------+
Sau đây, ta sẽ tách lấy ID, TEN và LUONG của nhân viên có trong bảng NHANVIEN.
SELECT ID, TEN, LUONG FROM NHANVIEN;
Kết quả khi thực hiện lệnh SELECT trên sẽ như thế này:
+----+----------+---------+
| ID | TEN | LUONG |
+----+----------+---------+
| 1 | Thanh | 2000.00 |
| 2 | Loan | 1500.00 |
| 3 | Nga | 2000.00 |
| 4 | Mạnh | 6500.00 |
| 5 | Huy | 8500.00 |
| 6 | Cao | 4500.00 |
| 7 | Lam | 15000.00|
+----+----------+---------+
Ngoài ra bạn có thể sử dụng kết hợp với hàm TOP
SELECT TOP(1) ID, TEN, LUONG FROM NHANVIEN;
Kết quả sẽ là:
+----+----------+---------+
| ID | TEN | LUONG |
+----+----------+---------+
| 1 | Thanh | 2000.00 |
+----+----------+---------+
Xem thêm: Cách sửa lỗi “Dyld: Library not Loaded” trên MacOS
2. Cú pháp lệnh INSERT trong SQL:
Lệnh INSERT INTO có 2 cú pháp cơ bản, chúng ta sẽ cùng tìm hiểu cả 2 cú pháp trong bài này.
Lệnh INSERT INTO, cú pháp 1:
INSERT INTO TEN_BANG (cot1, cot2, cot3,...cotN)
VALUES (gia_tri1, gia_tri2, gia_tri3,...gia_triN);
Ở đây, cot1, cot2, cot3,… cotN là tên các cột trong bảng mà bạn muốn chèn thêm dữ liệu. gia_tri1, gia_tri2, gia_tri3,…gia_triN là giá trị cần thêm vào tương ứng với các cột.
Nếu bạn muốn thêm giá trị vào tất cả các cột trong bảng thì có thể sử dụng lệnh INSERT INTO với cú pháp 2 dưới đây:INSERT INTO TEN_BANG
VALUES (gia_tri1, gia_tri2, gia_tri3,...gia_triN);
Bạn nhấn thấy sự khác biệt không? Ở cú pháp 2, bạn không cần liệt kê tên các cột trong bảng, chỉ cần đảm bảo rằng thứ tự các giá trị bạn muốn thêm vào đúng với thứ tự của các cột trong bảng là được.
Ví dụ về lệnh INSERT INTO:
Lệnh dưới đây sẽ tạo 6 bản ghi cho bảng NHANVIEN
INSERT INTO NHANVIEN (ID,TEN,TUOI,DIACHI,LUONG)
VALUES (1, 'Thanh', 24, 'Haiphong', 2000.00 );
INSERT INTO NHANVIEN (ID,TEN,TUOI,DIACHI,LUONG)
VALUES (2, 'Loan', 26, 'Hanoi', 1500.00 );
INSERT INTO NHANVIEN (ID,TEN,TUOI,DIACHI,LUONG)
VALUES (3, 'Nga', 24, 'Hanam', 2000.00 );
INSERT INTO NHANVIEN (ID,TEN,TUOI,DIACHI,LUONG)
VALUES (4, 'Manh', 29, 'Hue', 6500.00 );
INSERT INTO NHANVIEN (ID,TEN,TUOI,DIACHI,LUONG)
VALUES (5, 'Huy', 28, 'Hatinh', 8500.00 );
INSERT INTO NHANVIEN (ID,TEN,TUOI,DIACHI,LUONG)
VALUES (6, 'Cao', 23, 'HCM, 4500.00 );
Có thể sử dụng cú pháp 2 để thêm bản ghi thứ 7 cho bảng NHANVIEN như sau:
INSERT INTO NHANVIEN
VALUES (7, 'LAM', 29, 'Hanoi, 15000.00 );
Sau khi thực hiện tất cả các lệnh trên, ta sẽ có bảng NHANVIEN như sau:
+----+----------+-----+-----------+---------+
| ID | TEN | TUOI| DIACHI | LUONG | +----+----------+-----+-----------+---------+
| 1 | Thanh | 24 | Haiphong | 2000.00 |
| 2 | Loan | 26 | Hanoi | 1500.00 |
| 3 | Nga | 24 | Hanam | 2000.00 |
| 4 | Mạnh | 29 | Hue | 6500.00 |
| 5 | Huy | 28 | Hatinh | 8500.00 |
| 6 | Cao | 23 | HCM | 4500.00 |
| 7 | Lam | 29 | Hanoi | 15000.00| +----+----------+-----+-----------+---------+
Thêm một bảng vào bảng có sẵn:
Trong SQL, bạn có thể thêm bảng B vào bảng A bằng cách sử dụng lệnh SELECT trên bảng B, cụ thể như sau:
INSERT INTO TEN_BANG_A [(cot1, cot2, ... cot)]
SELECT cot1, cot2, ...cotN
FROM TEN_BANG_B
[WHERE DIEU_KIEN];
Trong lệnh trên bạn sẽ thêm các cột từ bảng B để thêm vào bảng A, những phần để trong dấu [] là có thể có hoặc không.
Xem thêm: eQuiz – Bài Ôn lại và kiểm tra trắc nghiệm kiến thức về ASP
3. Cú pháp lệnh DELETE trong SQL Server
Cú pháp đơn giản của lệnh DELETE như sau.
DELETE FROM bang
[WHERE dieu_kien];
Cú pháp đầy đủ của lệnh DELETE như dưới đây.
DELETE [ TOP (giatri_dau) [PERCENT] ]
FROM bang
[WHERE dieu_kien
];
Tên biến hoặc giá trị biến
bang
Bảng cần xóa bản ghi.
WHERE dieu_kien
Tùy chọn. Điều kiện mà bản ghi phải đáp ứng để bị xóa.
TOP (giatri_dau)
Tùy chọn. Nếu được nêu ra cụ thể sẽ chèn giá trị đầu của hàng dựa trên giatri_dau. Ví dụ TOP(10) sẽ chèn 10 hàng đầu tiên từ bộ kết quả.
PERCENT
Tùy chọn. Nếu được nêu ra cụ thể thì các hàng đầu tiên dựa trên số phần trăm giatri_dau của bộ kết quả. Ví dụ như TOP(10) PERCENT sẽ chèn 10% giá trị đầu trong bộ kết quả.
Lưu ý
Không cần liệt kê các trường trong lệnh DELETE vì bạn sẽ xóa toàn bộ hàng trong bảng.
Ví dụ – dùng 1 điều kiện
DELETE FROM nhanvien
WHERE ten = ‘Sarah’;
Lệnh này sẽ xóa tất cả bản ghi trong bảng nhanvien có tên nhân viên là Sarah.
Nếu muốn kiểm tra số hàng bị xóa, chạy lệnh SELECT trước khi thực hiện lệnh xóa.
SELECT coun (*)
FROM nhanvien
WHERE ten = ‘Sar
ah’;
Ví dụ – dùng 2 điều kiện
DELETE FROMnhanvien
WHERE ho = ‘Johnson’
AND nhanvien_id >
= 80;
Lệnh này sẽ xóa tất cả bản ghi trong bảng nhanvien nếu họ nhân viên là Johnson và nhanvien_id lớn hơn hoặc bằng 80.
Để biết số hàng bị xóa, chạy lệnh SELECT dưới đây trước khi chạy lệnh DELETE.
SELECT count (*)
FROM nhanvien
WHERE ho = ‘Johnson’
AND nhanvien_id
>= 80;
Ví dụ – dùng từ khóa TOP
DELETETOP(3)
FROM nhanvien
WHERE ho =
‘Johnson’;
Lệnh này sẽ xóa 3 bản ghi đầu tiên trong bảng nhanvien khi họ nhân viên là Johnson. Nếu có các bản ghi khác trong bảng này có giá trị họ nhân viên là Johnson thì chúng cũng không bị ảnh hưởng bởi lệnh DELETE này.
Ví dụ – dùng mệnh đề EXISTS
Bạn có thể thực hiện lệnh xóa phức tạp hơn, như xóa bản ghi trong 1 bảng dựa trên giá trị trong 1 bảng khác chẳng hạn. Vì không thể đưa ra nhiều hơn 1 bảng trong mệnh đề FROM trong lệnh DELETE nên có thể dùng mệnh đề EXISTS như dưới đây.
DELETE FROMnhanvien
WHERE EXISTS
(SELECT *
FROM danhba
WHERE danhba.danhba_id = nhanvien.nhanvien_id
AND danhba.danhba_id
< 100);
Lệnh DELETE này sẽ xóa tất cả bản ghi trong bảng nhanvien khi có bản ghi trong bảng danhba mà danhba_id nhỏ hơn 100 và danhba_id khớp với nhanvien_id.
Nếu muốn xác định số dòng bị xóa, chạy lệnh SELECT trước khi xóa.
SELECTcount (*)
FROM nhanvien
WHERE EXITS
(SELECT *
FROM danhba
WHERE danhba.danhba_id = nhanvien.nhanvien_id
AND danhba.da
nhba_id < 100);