Tới nội dung chính
Danh mục
Hệ quản trị SQL

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

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

Tentuoi
Chi28
Tiến30
Nhi32

Bảng Height (chiều cao)

tenheight
Chi165
Tiến164
Nhi160

Bảng Nhân Viên

tentuoi
Chi21
Tiến21
Nhi25

Bảng People

tentuoi
Chi15
Tiến19
Nhi17

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

tentuoi
Tiến19
Nhi17

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 ;

tentuoi
Nhi17

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;

tentuoi
Chi15
Nhi17
Tiến19

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);

tuoitenheight
15Chi165
19Tiến164
17Nhi160

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;

Tentuoi
Chi28
Tiến30
Nhi32
Chi21
Tiến21
Nhi25

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é.

Thảo Larskanis

@Thảo Larskanis

Lĩnh vực công nghệ thông tin, đặc biệt là cấu trúc dữ liệu ngày càng quan trọng và trở nên cần thiết hơn với nhiều doanh nghiệp. Nhận thấy rõ được tầm quan trọng của SQL, Thảo Nguyễn - người đã có nhiều năm học tập và làm việc trong lĩnh vực công nghệ thông tin đã quyết định thành lập một website chia sẻ kiến thức cũng như kinh nghiệm của bản thân về lĩnh vực SQL đến cho những bạn có đam mê và muốn hiểu rõ hơn về lĩnh vực này.