Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

SQL ANTARA Operator untuk Pemula

Dalam SQL, BETWEEN operator memungkinkan Anda untuk memeriksa nilai yang berada dalam rentang tertentu.

BETWEEN operator menentukan rentang yang akan diuji, dan mengembalikan TRUE ketika operan berada dalam kisaran perbandingan.

Tabel Sumber

Tabel berikut digunakan untuk contoh di halaman ini.

SELECT * FROM Pets;

Hasil:

+---------+-------------+-----------+-----------+------------+
| PetId   | PetTypeId   | OwnerId   | PetName   | DOB        |
|---------+-------------+-----------+-----------+------------|
| 1       | 2           | 3         | Fluffy    | 2020-11-20 |
| 2       | 3           | 3         | Fetch     | 2019-08-16 |
| 3       | 2           | 2         | Scratch   | 2018-10-01 |
| 4       | 3           | 3         | Wag       | 2020-03-15 |
| 5       | 1           | 1         | Tweet     | 2020-11-28 |
| 6       | 3           | 4         | Fluffy    | 2020-09-17 |
| 7       | 3           | 2         | Bark      | NULL       |
| 8       | 2           | 4         | Meow      | NULL       |
+---------+-------------+-----------+-----------+------------+
(8 rows affected)

Contoh

Berikut adalah contoh sederhana untuk mendemonstrasikan BETWEEN operator.

SELECT * FROM Pets 
WHERE DOB BETWEEN '2018-10-01' AND '2020-09-17';

Hasil:

+---------+-------------+-----------+-----------+------------+
| PetId   | PetTypeId   | OwnerId   | PetName   | DOB        |
|---------+-------------+-----------+-----------+------------|
| 2       | 3           | 3         | Fetch     | 2019-08-16 |
| 3       | 2           | 2         | Scratch   | 2018-10-01 |
| 4       | 3           | 3         | Wag       | 2020-03-15 |
| 6       | 3           | 4         | Fluffy    | 2020-09-17 |
+---------+-------------+-----------+-----------+------------+

Dalam contoh ini, kami mengembalikan semua baris di mana DOB kolom berada di antara 2018-10-01 dan 2020-09-17 .

Dalam hal ini, empat baris cocok dengan kriteria itu, dan oleh karena itu, empat baris dikembalikan.

ANTARA bersifat Inklusif

BETWEEN operator. inklusif. Artinya, ini mencakup nilai-nilai di setiap akhir rentang. Jika Anda melihat hasil pada contoh sebelumnya, Anda akan melihat bahwa ada nilai di kedua ujungnya yang sama persis dengan tanggal yang kami berikan.

Ini sama dengan menggunakan operator yang lebih besar atau sama dengan (>= ) dikombinasikan dengan kurang dari atau sama dengan operator (<= ).

SELECT * FROM Pets 
WHERE DOB >= '2018-10-01' AND DOB <= '2020-09-17';

Hasil:

+---------+-------------+-----------+-----------+------------+
| PetId   | PetTypeId   | OwnerId   | PetName   | DOB        |
|---------+-------------+-----------+-----------+------------|
| 2       | 3           | 3         | Fetch     | 2019-08-16 |
| 3       | 2           | 2         | Scratch   | 2018-10-01 |
| 4       | 3           | 3         | Wag       | 2020-03-15 |
| 6       | 3           | 4         | Fluffy    | 2020-09-17 |
+---------+-------------+-----------+-----------+------------+

Untuk menjadikannya rentang eksklusif, gunakan lebih besar dari (> ) operator dan kurang dari (< ) operator.

SELECT * FROM Pets 
WHERE DOB > '2018-10-01' AND DOB < '2020-09-17';

Hasil:

+---------+-------------+-----------+-----------+------------+
| PetId   | PetTypeId   | OwnerId   | PetName   | DOB        |
|---------+-------------+-----------+-----------+------------|
| 2       | 3           | 3         | Fetch     | 2019-08-16 |
| 4       | 3           | 3         | Wag       | 2020-03-15 |
+---------+-------------+-----------+-----------+------------+

Jika Anda harus menggunakan BETWEEN operator, Anda harus mempersempit jangkauannya.

Seperti ini:

SELECT * FROM Pets 
WHERE DOB BETWEEN '2018-10-02' AND '2020-09-16';

Hasil:

+---------+-------------+-----------+-----------+------------+
| PetId   | PetTypeId   | OwnerId   | PetName   | DOB        |
|---------+-------------+-----------+-----------+------------|
| 2       | 3           | 3         | Fetch     | 2019-08-16 |
| 4       | 3           | 3         | Wag       | 2020-03-15 |
+---------+-------------+-----------+-----------+------------+

Menggunakan Nilai Numerik

Contoh sebelumnya menggunakan tanggal, tetapi Anda tidak terbatas hanya pada tanggal. Berikut adalah contoh yang menggunakan nilai numerik.

SELECT * FROM Pets 
WHERE OwnerId BETWEEN 2 AND 3;

Hasil:

+---------+-------------+-----------+-----------+------------+
| PetId   | PetTypeId   | OwnerId   | PetName   | DOB        |
|---------+-------------+-----------+-----------+------------|
| 1       | 2           | 3         | Fluffy    | 2020-11-20 |
| 2       | 3           | 3         | Fetch     | 2019-08-16 |
| 3       | 2           | 2         | Scratch   | 2018-10-01 |
| 4       | 3           | 3         | Wag       | 2020-03-15 |
| 7       | 3           | 2         | Bark      | NULL       |
+---------+-------------+-----------+-----------+------------+

Menggunakan Nilai String

Kita bisa melangkah lebih jauh dan menggunakan BETWEEN untuk membandingkan dua kolom string.

SELECT * FROM Pets 
WHERE PetName BETWEEN 'Meow' AND 'Wag'
ORDER BY PetName;

Hasil:

+---------+-------------+-----------+-----------+------------+
| PetId   | PetTypeId   | OwnerId   | PetName   | DOB        |
|---------+-------------+-----------+-----------+------------|
| 8       | 2           | 4         | Meow      | NULL       |
| 3       | 2           | 2         | Scratch   | 2018-10-01 |
| 5       | 1           | 1         | Tweet     | 2020-11-28 |
| 4       | 3           | 3         | Wag       | 2020-03-15 |
+---------+-------------+-----------+-----------+------------+

Anda perlu berhati-hati sekalipun. Anda mungkin berpikir bahwa kami hanya bisa menggunakan huruf awal, seperti ini:

SELECT * FROM Pets 
WHERE PetName BETWEEN 'M' AND 'W'
ORDER BY PetName;

Tapi itu akan menghasilkan ini:

+---------+-------------+-----------+-----------+------------+
| PetId   | PetTypeId   | OwnerId   | PetName   | DOB        |
|---------+-------------+-----------+-----------+------------|
| 8       | 2           | 4         | Meow      | NULL       |
| 3       | 2           | 2         | Scratch   | 2018-10-01 |
| 5       | 1           | 1         | Tweet     | 2020-11-28 |
+---------+-------------+-----------+-----------+------------+

Itu tidak termasuk Wag seperti yang dilakukan kueri sebelumnya. Itu karena BETWEEN melihat seluruh string. Dalam hal ini, Wag lebih besar dari W , sehingga tidak disertakan dalam hasil.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pembuatan Profil Basis Data di Meja Kerja IRI

  2. Sepuluh Ancaman Umum terhadap Kualitas Rencana Eksekusi

  3. Cara Mendapatkan Catatan dari 30 Hari Terakhir

  4. Apa itu Basis Data? Dan DBMS?

  5. Pulihkan salinan database Anda