SQL Server: SELECT với WHERE


Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên

Câu lệnh SELECT với WHERE được dùng để thiết lập truy vấn có điều kiện. Loại câu lệnh này được xem là phổ biến và phức tạp nhất trong các truy vấn SQL. Cú pháp cơ bản của câu lệnh này được thể hiện như sau:

SELECT Các_cột FROM Các_bảng_liên_kết WHERE Điều_kiện;

, trong đó, để thiết lập Điều_kiện được dễ dàng hơn SQL đưa ra một số quy cách sau đây:

Các phép toán so sánh

= : So sánh bằng

<> hoặc != : So sánh khác

> : So sánh lớn hơn

>= : So sánh lớn hơn hoặc bằng

< : So sánh nhỏ hơn

<= : So sánh nhỏ hơn hoặc bằng

is : So sánh với NULL

Ví dụ:

Tìm những sinh viên có họ và tên là 'Nguyễn Văn A' :

SELECT * FROM Student WHERE studentname = N'Nguyễn Văn A';

Tìm những sinh viên có họ và tên không phải là 'Nguyễn Văn A' :

SELECT * FROM Student WHERE studentname <> N'Nguyễn Văn A';

NOT

NOT được dùng trong trường hợp bạn muốn tìm những dữ liệu ngược với điều kiện. Cú pháp:

SELECT Các_cột FROM Các_bảng_liên_kết WHERE NOT Điều_kiện;

Ví dụ, nếu bạn muốn tìm những bạn sinh viên có mã  từ 4 trở xuống thì bạn có thể làm như sau:

SELECT * FROM Student WHERE NOT studentid>=5;

Còn đây là ví dụ tìm những sinh viên có họ và tên không phải là 'Nguyễn Văn A':

SELECT * FROM Student WHERE NOT studentname = N'Nguyễn Văn A';

LIKE và NOT LIKE

LIKE được dùng trong trường hợp bạn muốn tìm dữ liệu tương tự hay gần giống với yêu cầu đề ra. Chẳng hạn nếu bạn muốn tìm những Sinh viên có tên là 'Anh' thì bạn sẽ cần dùng đến LIKE.

SQL đưa ra một số ký tự dạng đặc biệt sau đây khi áp dụng LIKE:

% : tương đương với một chuỗi bất kỳ.

_ : (dấu gạch dưới) tương đương với một ký tự bất kỳ.

[] : tương đương với một ký tự bất kỳ nằm trong cặp []. Ví dụ, [abc] tương đương với a hoặc b hoặc c.

[^] : tương đương với một ký tự bất kỳ không nằm trong cặp []. Ví dụ, [^abc] tương đương với một ký tự bất kỳ mà không phải a hay b hay c.

Ví dụ dưới đây sẽ tìm những sinh viên có họ là 'Hoàng':

SELECT * FROM Student WHERE studentname LIKE N'Hoàng %';

Tìm những sinh viên có tên là 'Anh':

SELECT * FROM Student WHERE studentname LIKE N'% Anh';

Tìm những sinh viên có tên gồm 3 ký tự:

SELECT * FROM Student WHERE studentname LIKE N'% ___'; -- 3 dấu gạch dưới

Tìm những sinh viên có tên có ký tự cuối là 'A' hoặc 'C':

SELECT * FROM Student WHERE studentname LIKE N'%[AC]';

Tìm những sinh viên có tên có ký tự cuối không phải là 'A' hoặc 'C':

SELECT * FROM Student WHERE studentname LIKE N'%[^AC]';

NOT LIKE lại có tác dụng ngược với LIKE, tức là nó được dùng trong trường hợp bạn không muốn tìm dữ liệu tương tự hay gần giống với yêu cầu đề ra. Chẳng hạn nếu bạn không muốn tìm những Sinh viên có tên là 'Anh' thì bạn sẽ dùng NOT LIKE.

Tìm những Sinh viên có họ không phải là 'Hoàng':

SELECT * FROM Student WHERE studentname NOT LIKE N'Hoàng %';

Tìm những Sinh viên có tên không phải là 'Anh':

SELECT * FROM Student WHERE studentname NOT LIKE N'% Anh';

BETWEEN và NOT BETWEEN:

BETWEEN được dùng trong trường hợp bạn muốn truy xuất những dữ liệu với điều kiện dữ liệu nằm trong một đoạn (range) nào đó.

Cú pháp của BETWEEN:

BETWEEN Giá_trị1 AND Giá_trị2

Ví dụ cho BETWEEN:

Nếu bạn muốn lấy những Sinh viên có mã từ 2 đến 9 bạn làm như sau:

SELECT * FROM Student WHERE studentid BETWEEN 2 AND 9;

NOT BETWEEN có tác dụng ngược với BETWEEN, nghĩa là sẽ lấy dữ liệu với điều kiện dữ liệu không nằm trong đoạn nào đó.

Cú pháp NOT BETWEEN:

NOT BETWEEN Giá_trị1 AND Giá_trị2

Ví dụ NOT BETWEEN:

Nếu bạn muốn lấy những Sinh viên có mã không nằm trong đoạn từ 2 đến 9 bạn làm như sau:

SELECT * FROM Student WHERE studentid NOT BETWEEN 2 AND 9;

IN() và NOT IN():

IN() được dùng trong trường hợp bạn muốn truy xuất những dữ liệu với điều kiện dữ liệu bao gồm các giá trị cụ thể nào đó.

Cú pháp IN():

IN(Giá_trị1, Giá_trị2, Giá_trị3, ...)

Ví dụ IN():

Nếu bạn muốn xem thông tin của những Sinh viên có mã 3, 5, 7 và 9 bạn làm như sau:

SELECT * FROM Student WHERE studentid IN(3, 5, 7, 9);

NOT IN() được dùng trong trường hợp bạn muốn truy xuất những dữ liệu với điều kiện dữ liệu không bao gồm các giá trị cụ thể nào đó.

Cú pháp NOT IN():

NOT IN(Giá_trị1, Giá_trị2, Giá_trị3, ...)

Ví dụ NOT IN():

Nếu bạn muốn xem thông tin của những Sinh viên có mã không phải là 3, 5, 7 hay 9 bạn làm như sau:

SELECT * FROM Student WHERE studentid NOT IN(3, 5, 7, 9);
» Tiếp: DISTINCT
« Trước: SELECT với INTO
Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên
Copied !!!