13 câu lệnh cơ bản trong SQL mà Programmer nên biết

7332 lượt xem

Hiện nay cơ sở dữ liệu (CSDL) là một thứ không thể thiếu trong các website hiện đại ngày nay. Đặc biệt với sự thông dụng của SQL thì việc không chỉ các lập trình viên hay những Marketer, quản trị web,.. đều cần nên nắm rõ. Bài viết này tôi sẽ hướng dẫn 13 câu lệnh được sử dụng thường xuyên trong SQL Server.

Đầu tiên, ở mỗi câu lệnh sẽ có một ví dụ và các ví dụ đó sẽ được tôi sử dụng từ các bảng sau:

Bảng Khách Hàng

Ten tuoi
Chi 28
Tiến 30
Nhi 32

Bảng Height (chiều cao)

ten height
Chi 165
Tiến 164
Nhi 160

Bảng Nhân Viên

ten tuoi
Chi 21
Tiến 21
Nhi 25

Bảng People

ten tuoi
Chi 15
Tiến 19
Nhi 17

Ok bắt đầu thôi nào

1. Lệnh SELECT

Lệnh SELECT chắc chắn là câu lệnh nhập môn khi sử dụng SQL. Bởi vì bạn sẽ thường xuyên sử dụng lệnh này để tương tác với các lệnh khác. Đây cũng chính là một trong các câu lệnh cơ bản trong sql.

Mẹo: Bạn cũng nên cố gắng viết các câu lệnh bằng cách viết hoa để dễ dàng phân biệt hơn nhé.

SELECT nghĩa là chọn, do đó sử dụng lệnh SELECT khi bạn muốn chọn dữ liệu từ các CSDL.

SELECT * FROM table;

  • SELECT * hay SELECT star nghĩa là bạn chọn tất cả dữ liệu trong bảng
  • FROM table là bạn sẽ lấy dữ liệu từ bảng nào thì điển tên bảng đó thay table

Sử dụng lệnh star giúp bạn thao tác khá nhanh nhưng cũng có trường hợp ai đó thêm cột trên bảng bạn chọn sẽ khiến bạn khó có thể kiểm soát dữ liệu trích xuất.

Do đó bạn có thể viết như sau

SELECT ten , tuoi FROM khach_hang

Lúc này bạn sẽ lấy toàn bộ dữ liệu trong 2 cột tên và tuổi của bảng khách hàng. Nếu như ai thêm cột địa chỉ đi chẳng hạn dữ liệu trả về vẫn k bị thay đổi.

2. Lệnh WHERE

WHERE cũng chính là các lệnh cơ bản trong sql server. SELECT để chọn nhưng chọn lọc kỹ hơn sẽ cần WHERE.

SELECT ten, tuoi FROM people WHERE age > 15 ;

Lúc này kết quả sẽ trả về bảng

ten tuoi
Tiến 19
Nhi 17

Ngoài ra bạn cũng có thể kết hợp các biến khá như

SELECT ten, tuoi FROM people WHERE age > 15 AND age < 19 ;

ten tuoi
Nhi 17

Bạn cũng có thể kết hợp các biến khác để trả về kết quả mong muốn. Tìm hiểu rõ hơn ở bài viết chi tiết của tôi ở từng lệnh nhé.

3. Lệnh ORDER

Lệnh này để sắp xếp các kết quả trả về theo cách bạn muốn chẳng hạn tăng dần, giảm dần. Cho đẹp mắt và dễ tinh chỉnh hơn thôi.

SELECT ten, tuoi FROM people ORDER BY tuoi ASC;

ten tuoi
Chi 15
Nhi 17
Tiến 19

Trên tôi sử dụng biến ASC là tăng dần, muốn giảm dần thì sử dụng DESC. Bạn có thể chọn cột theo ý mình.

4. Lệnh JOIN

Lệnh JOIN được sử dụng để kết hợp các dữ liệu liên quan nhau và được giữ trong một hoặc nhiều bảng. Bạn có thể nối hai bảng với nhau, và chỉ định cách dữ liệu được kết nối. Ví dụ:

SELECT tuoi, ten, height FROM people LEFT JOIN heights USING (ten);

Lệnh này nghĩa là bạn sẽ ghép 2 bảng people và height lại và có dữ liệu chung là ten. Tuy nhiên nếu các cột của bạn không đồng nhất tên với nhau, bạn có thể sử dụng biến “ON” thay vì “USING”

SELECT ten, tuoi, height FROM people LEFT JOIN heights ON (tena = tenb);

tuoi ten height
15 Chi 165
19 Tiến 164
17 Nhi 160

Có khá nhiều kiểu nối khác nhau. Tôi cũng đã có một bài chi tiết cho lệnh JOIN này.

5. Lệnh ALIAS

Lệnh này khó hơn đôi chút là sẽ thay đổi tên bảng mà bạn đang thao tác. Nhưng chỉ trong quá trình thao tác thôi. Ví dụ:

SELECT A.tuoi FROM people A;

Lúc này thay vì nhập tên bảng dài loằng ngoằng bạn đơn giản chỉ cần nhập tên bảng ngắn gọn đã gán là A.

Nhưng nếu bạn sử dụng nhiều bảng trong một hàm thì rất dễ bị lỗi nếu dữ liệu của các bảng giống nhau. Ví dụ:

SELECT nhan_vien.tuoi, nhan_vien.ten, khach_hang.tuoi, khach_hang.ten FROM nhan_vien, khach_hang;

Sử dụng ALIAS sẽ là

SELECT A.tuoi, A.ten, B.tuoi, B.ten FROM nhan_vien A, khach_hang B;

Nếu muốn đổi tên cột với lệnh ALIAS bạn sử dụng lệnh AS

SELECT tuoi AS person_tuoi FROM people;

Lúc này cột tuoi sẽ hiển thị là person_tuoi

6. Lệnh UNION

Với lệnh UNION bạn sẽ nối các hàng với nhau một cách đơn giản. Khác với JOIN, bạn sẽ có thể nối các hàng với dù chúng không liên quan và chỉ cần giống số lượng cột, tên cột.

SELECT tuoi, ten FROM khach_hang

UNION

SELECT tuoi, ten FROM nhan_vien;

Ten tuoi
Chi 28
Tiến 30
Nhi 32
Chi 21
Tiến 21
Nhi 25

Hoặc sử dụng UNION ALL để trả về tất cả dữ liệu dù chúng có bị trùng nhau đi chăng nữa. Một vài trường hợp bạn có thể sử dụng UNION tính Subtotal.

7. Lệnh INSERT

Các lệnh trên đều để trích xuất dữ liệu thì INSERT giúp bạn chèn các dữ liệu vào CSDL

INSERT INTO people(ten, tuoi) VALUES(‘Ngoc Anh’, 20);

Lúc này trong bảng people sẽ được chèn thêm hàng có dữ liệu là Tên = Ngọc Anh có độ tuổi là 20 tuổi.

8. Lệnh UPDATE

Khi chèn dữ liệu vào CSDL bạn sẽ cần thay đổi các hàng cụ thể, lúc này bạn sẽ cần dùng lệnh UPDATE

UPDATE people SET ten = ‘Ngoc Anh’, age = 20;

9. Lệnh UPSERT

Với UPSERT bạn có thể giải quyết được vấn đề trùng lập dữ liệu. Nếu bạn muốn xuất dữ liệu tên là Nhi nhưng chỉ muốn đúng 1 cái tên Nhi xuất hiện trong bảng. Ví dụ

INSERT INTO people(ten, tuoi)

VALUES(‘Nhi’, 17)

ON DUPLICATE KEY UPDATE tuoi = 17;

10. Lệnh DELETE

Sử dụng lệnh khi muốn xóa bảng ghi hoặc dữ liệu được trích xuất. Nhưng bạn nên cẩn thận khi sử dụng lệnh này.

DELETE FROM people;

Nếu muốn xóa dữ liệu nhất định thì nên sử dụng thêm lệnh WHERE

DELETE FROM people WHERE name = ‘Nhi’;

11. Lệnh CREATE TABLE

Tạo bảng mới trong CSDL thì sử dụng CREATE TABLE. Ví dụ

CREATE TABLE people (

ten TEXT,

tuoi, INTEGER,

PRIMARY KEY(ten)

);

12. Lệnh ALTER TABLE

Nếu bạn muốn sửa đổi cấu trúc của bảng ghi nào đó bạn có thể sử dụng lệnh ALTER TABLE. Tuy nhiên cũng sẽ có hạn chế nếu như bảng đó đang tồn tại thì sẽ dễ gây ra xung đột. Lúc này bạn cần chỉnh sửa dữ liệu trước và sửa bảng sau

ALTER TABLE people ADD height integer;

Lệnh này nghĩa là bạn sẽ thêm cột height vào bảng people với kiểu dữ liệu là số nguyên.

13. Lệnh DROP TABLE

Câu lệnh cuối tôi muốn giới thiệu trong các câu lệnh truy vấn trong sql server. Lệnh gần như DELETE nhưng thay vì xóa bản ghi lệnh này xóa toàn bộ dữ liệu trong bảng.

DROP TABLE people;

Bạn nên cân nhắc trước khi sử dụng lệnh này và chỉ sử dụng khi viết tay tránh ảnh hưởng đến toàn CSDL.

Như vậy là tôi đã giới thiệu xong 13 lệnh thông dụng trong SQL. Nếu có thắc mắc gì hãy liên hệ hoặc đọc các bài viết của tôi trên BLOG SQL này nhé.