Huy Bui
1,697
19-04-2022
Cùng Cole điểm mặt 26 câu lệnh phổ biến trong câu lệnh sql, lưu về và dùng ngay nhé.
SELECT là lệnh được dùng để lấy kết quả từ một; hoặc nhiều bảng trong CSDL của SQL Server.
Cú pháp lệnh SELECT
Ở dạng đơn giản, cú pháp của lệnh SELECT như sau: SELECT “biểu thức” FROM “bảng” [WHERE “điều kiện”]; Ở dạng đầy đủ, cú pháp của lệnh SELECT trong SQL Server sẽ là: SELECT [ ALL | DISTINCT ] [ TOP (gia_tri_dau) [ PERCENT ] [ WITH TIES ] ] “Biểu thức” FROM “bảng” [WHERE “điều kiện”] [GROUP BY “biểu thức”] [HAVING “điều kiện”] [ORDER BY “biểu thức” [ ASC | DESC ]]; Tên biến hoặc giá trị biến: ALL: Tùy chọn. Trả lại tất cả các hàng phù hợp. DISTINCT: Tùy chọn. Loại bỏ tất cả các giá trị trùng lặp khỏi bộ kết quả. TOP (gia_tri_dau): Tùy chọn. Nếu chỉ định cụ thể sẽ trả về những giá trị đầu trong bộ kết quả dựa trên gia_tri_dau đã chon. Ví dụ TOP(10) sẽ trả về 10 hàng đầu tiên trong bộ kết quả. PERCENT: Tùy chọn. Nếu chỉ định cụ thể thì các hàng đầu tiên dựa theo phần trăm trên bộ kết quả (chỉ định bằng gia_tri_dau). Ví dụ TOP(10) PERCENT sẽ trả về top 10% kết quả đầu tiên trong bộ kết quả. WITH TIES: Tùy chọn. Nếu chỉ định cụ thể thì các hàng cố định ở cuối trong kết quả có giới hạn sẽ được trả về. Điều này có thể khiến cho số hàng trả về nhiều hơn biến TOP cho phép. Biểu thức: Cột hay giá trị tính toán mà bạn muốn lấy về. Dùng * nếu muốn lấy tất cả các cột. Bảng: Bảng mà bạn muốn lấy kết quả về. Phải có ít nhất 1 bảng được liệt kê trong lệnh FROM. WHERE “điều kiện”: Tùy chọn. Điều kiện mà kết quả trả về phải đáp ứng được. GROUP BY “biểu thức”: Tùy chọn. Thu thập dữ liệu từ nhiều bản ghi và nhóm kết quả theo một hoặc nhiều cột. HAVING “điều kiện”: Tùy chọn. Dùng kết hợp với GROUP BY để giới hạn nhóm các hàng trả về khi điều kiện được đáp ứng là TRUE. ORDER BY “biểu thức”: Tùy chọn. Được dùng để lọc bộ kết quả. ASC sẽ lọc theo thứ tự tăng dần và DESC sẽ lọc theo thứ tự giảm dần. |
Trong SQL Server (Transact-SQL); mệnh đề DISTINCT được dùng để loại bỏ trùng lặp trong bộ kết quả trả về. Mệnh đề DISTINCT chỉ có thể dùng trong lệnh SELECT.
Cú pháp mệnh đề DISTINCT
SELECT DISTINCT “biểu thức” FROM “bảng” [WHERE “điều kiện”]; Tên biến hoặc giá trị biến “biểu thức” Cột hoặc giá trị tính toán mà bạn muốn lấy “bảng” Bảng dùng để lấy bản ghi. Phải có ít nhất 1 bảng trong mệnh đề FROM. WHERE “điều kiện” Tùy chọn. Điều kiện mà bản ghi phải đáp ứng để được chọn. |
Lưu ý
Trong SQL Server; mệnh đề DISTINCT không bỏ qua giá trị NULL. Vậy nên; khi dùng mệnh đề này trong lệnh; kết quả trả về sẽ có cả giá trị NULL duy nhất.
Trong SQL Server (T-SQL); mệnh đề WHERE được dùng để lọc kết quả từ các lệnh SELECT; INSERT; UPDATE hoặc DELETE.
Cú pháp mệnh đề WHERE
WHERE “điều kiện”; Tên các biến hoặc giá trị biến Điều kiện – Là các điều kiện mà bản ghi phải đáp ứng được để được chọn. |
Khi kết hợp 2 điều kiện này; cần phải nhớ dùng dấu ngoặc đơn để cơ sở dữ liệu biết được thứ tự thực hiện từng điều kiện.
Cú pháp kết hợp điều kiện AND và điều kiện OR
WHERE “điều kiện 1” AND “điều kiện 2” … OR “điều kiện n”; Tên biến và giá trị biến điều kiện 1, điều kiện 2… điều kiện n Các điều kiện được đánh giá để xác định xem bản ghi có được lựa chọn hay không. |
Lưu ý:
Điều kiện IN được dùng trong SQL Server (Transact-SQL); để giảm thiểu việc phải sử dụng quá nhiều điều kiện OR trong các lệnh SELECT; INSERT; UPDATE hoặc DELETE.
Cú pháp điều kiện IN
biểu thức IN (giá trị 1, giá trị 2, … giá trị n); Tên biến hoặc giá trị biến biểu thức Giá trị để kiểm tra giá trị 1, giá trị 2, … giá trị n Các giá trị để kiểm tra với biểu thức |
Lưu ý
Trong SQL Server (Transact-SQL); điều kiện BETWEEN được dùng để lấy dữ liệu trong một khoảng; trong lệnh SELECT; INSERT; UPDATE hoặc DELETE.
Cú pháp điều kiện BETWEEN
bieu_thuc BETWEEN giatri1 AND giatri2 ; Tên biến hoặc giá trị biến bieu_thuc cột hoặc trường thông tin giatri1 và giatri2 các giá trị tạo nên khoảng mà bieu_thuc sẽ đối chiếu, bao gồm cả 2 giá trị đầu cuối. |
Lưu ý
Điều kiện BETWEEN sẽ trả về tất cả các bản ghi mà bieu_thuc nằm trong khoảng từ giatri1 tới giatri2; bao gồm 2 giá trị đầu cuối.
Điều kiện LIKE trong SQL Server (Transact-SQL) cho phép dùng wildcard (các kí hiệu đại diện) trong mệnh đề WHERE ở các lệnh SELECT; INSERT; UPDATE và DELETE; dùng để đối sánh mẫu.
Cú pháp điều kiện LIKE
“biểu thức” LIKE “mẫu” [ ESCAPE ‘Escape_Character’ ] Tên biến hoặc giá trị biến biểu thức Biểu thức kí tự như cột hoặc trường thông tin. mẫu BIểu thức kí tự có chứa đối chiếu mẫu. Các mẫu có thể chọn từ bảng dưới đây.
Escape Character Tùy chọn. Tạm dịch là ký tự bỏ qua. Cho phép kiểm tra xem ký tự đại diện như % hay _ có được dùng theo đúng nghĩa đen (dưới dạng hằng số); chứ không được dùng như một kí tự đặc biệt. |
Mệnh đề ORDER BY được dùng để lọc bản ghi trong bộ kết quả trả về của SQL Server. Mệnh đề này chỉ có thể dùng trong lệnh SELECT.
Cú pháp mệnh đề ORDER BY
SELECT “biểu thức” FROM “bảng” [WHERE “điều kiện”] ORDER BY “biểu thức” [ ASC | DESC ]; Tên các biến và giá trị biến Biểu thức – cột hoặc giá trị tính toán bạn muốn lấy. Bảng – bảng mà bạn muốn dùng để lấy bản ghi. Phải có ít nhất 1 bảng trong mệnh đề FROM. WHERE “điều kiện” – tùy chọn. Các điều kiện phải được đáp ứng thì bản ghi mới được chọn. ASC – tùy chọn. Lọc kết quả theo thứ tự tăng dần của biểu thức (mặc định nếu không chỉ định rõ). DESC – tùy chọn. Lọc kết quả theo thứ tự giảm dần của biểu thức. |
Lưu ý:
Nếu không chọn cụ thể ASC hay DESC trong mệnh đề ORDER BY; thì kết quả sẽ mặc định được sắp xếp theo thứ tự tăng dần. Tương đương với ORDER BY “biểu thức” ASC.
Mệnh đề GROUP BY trong SQL Server cho phép bạn sắp xếp các hàng của truy vấn theo nhóm. Các nhóm được xác định bởi các cột mà bạn chỉ định trong mệnh đề GROUP BY. Thông thường; GROUP BY được sử dụng để tính tổng theo điều kiện; đếm bản ghi thỏa mãn điều kiện nào đó hoặc tìm dữ liệu MIN; MAX.
Cú pháp mệnh đề GROUP BY trong SQL Server
SELECT bieu_thuc1, bieu_thuc2,… bieu_thuc_n, ham_tong_hop (bieu_thuc) FROM ten_bang [WHERE dieukien] GROUP BY bieu_thuc1, bieu_thuc2,…; Tên biến hoặc giá trị biến:
|
Hàm COUNT trong SQL Server dùng để đếm số lượng bản ghi (dữ liệu; hàng) có trong một bảng dữ liệu. Những giá trị NULL bỏ qua không tính.
Cú pháp hàm COUNT SQL Server
Để sử dụng hàm COUNT trong SQL Server; ta dùng cú pháp như sau: SELECT COUNT(cot) FROM bang [WHERE dieukien]; Tham số:
|
Lưu ý:
Mệnh đề HAVING được dùng kết hợp với mệnh đề GROUP BY trong SQL Server (Transact-SQL): để giới hạn nhóm các hàng trả về; chỉ khi điều kiện được được đáp ứng là TRUE.
Cú pháp mệnh đề HAVING trong SQL Server
SELECT bieuthuc1, bieuthuc2, … bieuthuc_n, ham_tong (bieuthuc) FROM bang [WHERE dieukien] GROUP BY bieuthuc1, bieuthuc2, … bieuthuc_n HAVING dieukien_having; Tên biến hoặc giá trị biến ham_tong Có thể là các hàm như SUM, COUNT, MIN, MAX hoặc AVG. bieuthuc1, bieuthuc2, … bieuthuc_n Biểu thức không nằm bên trong hàm tổng và phải nằm trong mệnh đề GROUP BY. WHERE dieukien Tùy chọn. Các điều kiện mà bản ghi phải đáp ứng để được chọn. HAVING dieukien_having Đây là điều kiện thêm chỉ áp dụng với kết quả tổng để giới hạn các nhóm của những hàng được trả về. Chỉ các nhóm mà điều kiện được đánh giá là TRUE mới nằm trong bộ kết quả. |
Lệnh CREATE TABLE trong SQL dùng để tạo một bảng mới. Việc tạo bảng mới cơ bản liên quan đến việc đặt tên cho bảng; xác định các cột của nó & kiểu dữ liệu của mỗi cột.
Cú pháp lệnh CREATE TABLE
Câu lệnh SQL CREATE TABLE có cú pháp như sau: CREATE TABLE ten_bang( cot1 kieu_du_kieu, cot2 kieu_du_kieu, cot3 kieu_du_kieu, ….. cotN kieu_du_kieu, PRIMARY KEY( mot hoac nhieu cot ) ); |
Trong SQL; lệnh DROP TABLE được dùng để xóa định nghĩa bảng và tất cả các dữ liệu; chỉ mục; ràng buộc; thông số của bảng.
Trước khi sử dụng lệnh DROP TABLE bạn phải xem xét; cân nhắc cẩn thận. Vì khi lệnh này được thực hiện; toàn bộ dữ liệu trong bảng sẽ bị xóa vĩnh viễn.
Cú pháp của lệnh DROP TABLE:
DROP TABLE ten_bang; |
Câu lệnh CREATE INDEX được sử dụng để tạo chỉ mục trong bảng.
Các chỉ mục được sử dụng để lấy dữ liệu từ cơ sở dữ liệu nhanh hơn so với cách khác. Người dùng không thể nhìn thấy các chỉ mục; chúng chỉ được sử dụng để tăng tốc độ tìm kiếm / truy vấn.
Cú pháp CREATE INDEX
Tạo chỉ mục trên bảng. Các giá trị trùng lặp được phép: CREATE INDEX index_name ON table_name (column1, column2, …); |
Cú pháp DROP INDEX
DROP INDEX ten_index; |
Bạn nên cẩn thận trong khi xóa một chỉ mục. Vì khi đó hiệu suất có thể chậm hơn hoặc không được cải thiện.
Lệnh TRUNCATE TABLE được dùng để xóa tất cả bản ghi từ 1 bảng trong SQL Server. Lệnh này hoạt động tương tự như lệnh DELETE nhưng không có mệnh đề WHERE.
Cú pháp lệnh TRUNCATE TABLE trong SQL Server
TRUNCATE TABLE [ten_CSDL.] [ten_schema.] ten_bang [ WITH (PARTITIONS (so_phanvung | so _phanvung TO so _phanvung ) ] ; Tên biến hoặc giá trị biến ten_CSDL Tùy chọn. Nếu được chỉ định thì đây là tên của cơ sở dữ liệu. ten_scheme Tùy chọn. Đây là tên của schema (tạm dịch là lược đồ hay không gian tên) mà bảng đó thuộc về. ten_bang Bảng mà bạn muốn xóa bản ghi. WITH (PARTITIONS (so_phanvung | so _phanvung TO so _phanvung ) Tùy chọn và chỉ có thể dùng với bảng phân vùng (partition). Nếu được chỉ định, so_phanvung là số của vùng mà bạn muốn xóa trong bảng này. Để xóa nhiều vùng; dùng dấu phẩy phân tách các giá trị hoặc khoảng giá trị số phân vùng. Nếu dùng mệnh đề này với bảng không phân vùng thì SQL Server sẽ báo lỗi. Tính năng này không có trong tất cả các phiên bản của SQL Server. |
Lưu ý
Trong SQL Server, lệnh ALTER TABLE được dùng để thêm cột; chỉnh sửa cột; xóa cột; đổi tên cột hoặc đổi tên bảng.
Cú pháp
ALTER TABLE ten_bang ADD ten_cot dinh_nghia_cot; |
Có thể dùng lệnh ALTER TABLE để đổi tên cột trong bảng. Có thể dùng sp_rename nhưng Microsoft khuyến khích xóa & tạo lại bảng; để kịch bản & các quy trình lưu trữ không bị hỏng.
Cú pháp
sp_rename ‘ten_bang.ten_cot_cu’, ‘ten_cot_moi’, ‘COLUMN’; |
Cú pháp của lệnh INSERT INTO:
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 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. |
Trong SQL Server (Transact-SQL); lệnh UPDATE được dùng để cập nhật các bản ghi hiện có trên một bảng trong cơ sở dữ liệu của SQL Server. Có 3 cú pháp cho lệnh UPDATE. Phụ thuộc vào việc bạn cập nhật theo kiểu truyền thống hay cập nhật một bảng bằng dữ liệu từ 1 bảng khác.
Cú pháp lệnh UPDATE
UPDATE bang SET cot1 = bieuthuc1, cot2 = bieuthuc2, … [WHERE dieu_kien] ; Cú pháp cập nhật 1 bảng bằng dữ liệu từ 1 bảng khác trong SQL Server, kết hợp lệnh SELECT. UPDATE bang1 SET cot1 = (SELECT bieuthuc1 FROM bang2 WHERE dieu_kien) [WHERE dieu_kien]; Hoặc cú pháp khác để cập nhật một bảng bằng dữ liệu từ 1 bảng khác UPDATE bang1 SET bang1.cot = bang2.bieuthuc1 FROM bang1 INNER JOIN bang2 ON (bang1.cot1 = bang2.cot1) [WHERE dieu_kien]; Tên biến hoặc giá trị biến cot1, cot2 Cột cần cập nhật. bieuthuc1, bieuthuc2 Giá trị mới cần chỉ định cho cot1, cot2. Cot1 sẽ gán giá trị của bieuthuc1, cot2 gán giá trị của bieuthuc2… WHERE dieu_kien Tùy chọn. Điều kiện phải đáp ứng để bản ghi được cập nhật. |
Lệnh DELETE trong SQL Server (Transact-SQL) được dùng để xóa một hoặc nhiều bản ghi (hàng) từ một bảng trong SQL Server.
Bạn có thể xóa những bản ghi thỏa mãn điều kiện nhất định hoặc xóa toàn bộ bản ghi trong bảng một cách dễ dàng với DELETE.
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 ý:
* Lưu ý mệnh đề WHERE trong câu lệnh DELETE. Mệnh đề WHERE chỉ định (các) bản ghi nào nên được xóa. Nếu bạn bỏ qua mệnh đề WHERE; tất cả các bản ghi trong bảng sẽ bị xóa!
* 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.
Cú pháp của lệnh CREATE DATABASE
CREATE DATABASE ten_co_so_du_lieu; |
Lưu ý: Trong một RDBMS thì ten_co_so_du_lieu luôn luôn là duy nhất.
Cú pháp của lệnh DROP DATABASE trong SQL
DROP DATABASE ten_co_so_du_lieu; ten_co_so_du_lieu luôn là duy nhất trong RDBMS. |
Khi có nhiều cơ sở dữ liệu trong SQL Schema; để bắt đầu một hành động nào đó bạn cần chọn cơ sở dữ liệu để thực thi những hành động đó.
Lệnh USE trong SQL được sử dụng để chọn bất kỳ cơ sở dữ liệu nào đã có trong SQL Schema.
Cú pháp của lệnh USE trong SQL
USE ten_co_so_du_lieu; ten_co_so_du_lieu luôn phải là duy nhất trong RDBMS. |
Transaction kết thúc với một trong hai câu lệnh COMMIT hoặc ROLLBACK.
Khi một Transaction hoàn chỉnh được hoàn thành thì lệnh COMMIT phải được gọi ra. Lệnh này sẽ giúp lưu những thay đổi tới cơ sở dữ liệu
Cú pháp cơ bản của lệnh COMMIT:
COMMIT; |
Lệnh ROLLBACK là lệnh điều khiển Transaction được sử dụng để trao trả Transaction về trạng thái trước khi có các thay đổi mà chưa được lưu tới Database. Lệnh ROLLBACK chỉ có thể được sử dụng để undo các Transaction trước khi xác nhận bằng lệnh Commit hay Rollback cuối cùng.
Cú pháp cơ bản của lệnh ROLLBACK:
ROLLBACK; |
Ngoài 26 câu lệnh sql bên trên, các bạn cũng có thể tìm hiểu một số mệnh đề khác và thông tin lịch sử của ngôn ngữ sql đa-zi năng này nhé.
Cảm nhận học viên
Câu chuyện doanh nghiệp