Tags:

Mệnh đề WHERE trong SQL

Mệnh đề WHERE trong SQL dùng để đặt ra các điều kiện nhầm mục đích lọc ra những dữ liệu cần thiết thỏa mãn các điều kiện được đặt ra.

Mệnh đề WHERE không chỉ được sử dụng trong câu lệnh SELECT, mà nó còn được sử dụng trong câu lệnh UPDATE, DELETE.

Cách sử dụng Where trong SQL

Cú pháp

SELECT column1,column2 
FROM table_name 
WHERE column_name operator value;

column1 , column2: các cột cần lấy
table_name: tên của table
column_name: các cột được dùng trong điều kiện
operator: toán tử áp dụng trên các cột
value: Gía trị mà toán tử thỏa mãn

Chúng ta có các danh sách toán tử sau:

operator description
> Greater Than
>= Greater than or Equal to
< Less Than
<= Less than or Equal to
= Equal to
<> Not Equal to
BETWEEN In an inclusive Range
LIKE Search for a pattern
IN To specify multiple possible values for a column

Giả sử có bảng Student có dữ liệu sau

Sử dụng các toán tử toán học

Ví dụ lấy các Student có tuổi bằng 20

SELECT * FROM Student WHERE Age=20;

Output:

ROLL_NO NAME ADDRESS PHONE Age
3 SUJIT ROHTAK XXXXXXXXXX 20
3 SUJIT ROHTAK XXXXXXXXXX 20

Ví dụ lấy tên và địa chỉ của những Student có ROLL_NO lớn hơn 3

SELECT ROLL_NO,NAME,ADDRESS FROM Student WHERE ROLL_NO > 3;

Output:

ROLL_NO NAME ADDRESS
4 SURESH Delhi

Toán tử BETWEEN

Nó được sử dụng để tìm nạp dữ liệu đã lọc trong một phạm vi nhất định bao gồm hai giá trị biên dưới và biên trên.

SELECT column1,column2 
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

Ví dụ tìm các Student có ROLL_NO từ 1 đến 3.

SELECT * FROM Student WHERE ROLL_NO BETWEEN 1 AND 3;

Output

ROLL_NO NAME ADDRESS PHONE Age
1 Ram Delhi XXXXXXXXXX 18
2 RAMESH GURGAON XXXXXXXXXX 18
3 SUJIT ROHTAK XXXXXXXXXX 20
3 SUJIT ROHTAK XXXXXXXXXX 20
2 RAMESH GURGAON XXXXXXXXXX 18

Ví dụ tìm nạp NAME, ADDRESS của Student có Tuổi từ 20 đến 30.

SELECT NAME,ADDRESS FROM Student WHERE Age BETWEEN 20 AND 30;

Output:

NAME ADDRESS
SUJIT Rohtak
SUJIT Rohtak

Toán tử LIKE

Trong SQL, lệnh LIKE được dùng để so sánh một giá trị với các giá trị tương tự bằng cách sử dụng các toán tử đại diện (wildcard). Có hai ký tự đại diện được sử dụng kết hợp với LIKE:

  • Phần trăm (%)
  • Dấu gạch dưới (_)

Dấu phần trăm thể đại diện cho chuỗi kí tự với bất kì độ dài nào (bao gồm cả độ dài 0). Dấu gạch dưới đại diện cho một số hoặc một ký tự. Những ký hiệu này có thể được sử dụng kết hợp.

SELECT column1,column2 
FROM table_name 
WHERE column_name LIKE pattern;

Ví dụ tìm hồ sơ của các Student có NAME bắt đầu bằng chữ S.

SELECT * FROM Student WHERE NAME LIKE 'S%'; 

‘% ‘(Ký tự đại diện) biểu thị các ký tự sau này ở đây có thể có độ dài và giá trị bất kỳ.

Output:

ROLL_NO NAME ADDRESS PHONE Age
3 SUJIT ROHTAK XXXXXXXXXX 20
4 SURESH Delhi XXXXXXXXXX 18
3 SUJIT ROHTAK XXXXXXXXXX 20

Ví dụ tìm nạp hồ sơ của các Student trong đó NAME chứa mẫu ‘AM

SELECT * FROM Student WHERE NAME LIKE '%AM%';

Output

ROLL_NO NAME ADDRESS PHONE Age
1 Ram Delhi XXXXXXXXXX 18
2 RAMESH GURGAON XXXXXXXXXX 18
2 RAMESH GURGAON XXXXXXXXXX 18

Toán tử IN

Nó được sử dụng để tìm nạp dữ liệu đã lọc giống như được tìm nạp bởi toán tử ‘=’ chỉ khác là ở đây chúng ta có thể chỉ định nhiều giá trị thay vì một như với toán tử ‘=’.

SELECT column1,column2 
FROM table_name 
WHERE column_name IN (value1,value2,..);

Ví dụ tìm TÊN và ĐỊA CHỈ của Student có Tuổi từ 18 hoặc 20.

SELECT NAME,ADDRESS FROM Student WHERE Age IN (18,20);

Output:

NAME ADDRESS
Ram Delhi
RAMESH GURGAON
SUJIT ROHTAK
SURESH Delhi
SUJIT ROHTAK
RAMESH GURGAON

Ví dụ tìm bản ghi của các Student có ROLL_NO là 1 hoặc 4

SELECT * FROM Student WHERE ROLL_NO IN (1,4);

Nguồn tham khảo

https://www.geeksforgeeks.org/sql-where-clause/

0 0 votes
Article Rating
Subscribe
Notify of
guest
2 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
2
0
Would love your thoughts, please comment.x
()
x