Khái niệm, định nghĩa BETWEEN trong SQL là gì?

BETWEEN trong SQL là mệnh đề để xác định dữ liệu trong một khoảng nào đó khi mà ta đã biết giá trị Max và giá trị Min.

Cú pháp:

field_name BETWEEN begin AND end

Ví dụ:

SELECT * FROM HOTGIRL
WHERE NamSinh BETWEEN 1970 AND 1990

Select ngoài khoảng với BETWEEN trong MySql

Ngoài cú pháp sử dụng select trong khoảng thì BETWEEN còn có một cách sử dụng là select ngoài khoảng.

Cú pháp như sau:

1
field_name NOT BETWEEN begin AND end

Sự khác nhau giữa trong khoang và ngoài khoảng là thêm chữ NOT đằng trước chữ BETWEEN.

Quay lại bài trên bây giờ cần lấy danh sách sinh viên có năm sinh không nằm trong khoảng 1970 và 1990 thì ta sẽ làm hai cách như sau:

Cách 1: Sử dụng toán tử OR

1
2
SELECT * FROM SINHVIEN
WHERE NamSinh < 1970 OR NamSinh > 1990

Cách 2: Sử dụng NOT BETWEEN

1
2
SELECT * FROM SINHVIEN
WHERE NamSinh NOT BETWEEN 1970 AND 1990

Sử dụng BETWEEN với các kiểu dữ liệu khác

BETWEEN thường sử dụng với dữ liệu kiểu INT, tuy nhiên bạn vẫn sử dụng được với các kiểu dữ liệu khác như:

  • CHARACTER: Tuân theo thứ tự trong bảng mã ASCII
  • DATE: Bạn nên sử dụng thêm hàm CASE chuyển dữ liệu sang dạng DATE để có kết quả chính xác nhất.

Ví dụ 1: Lấy danh sách sinh viên có tên gồm các ký tự trong khoảng ‘A’ đến ‘B’

1
2
SELECT * FROM SINHVIEN
WHERE TenSV BETWEEN 'A' AND 'B'<br>

Ví dụ 2: Giả sử bảng sinh viên thêm cột ngày nhập học. Bây giờ viết câu truy vấn lấy danh sách sinh viên nhập học từ ngày 01/01/2003 đến ngày 01/01/2014 thì ta làm như sau:

1
2
SELECT * FROM SINHVIEN
WHERE NgayNhapHoc BETWEEN CAST('2003-01-01' AS DATE) AND CAST('2014-01-01' AS DATE)