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

Apa itu Operator Perbandingan?

Operator perbandingan adalah bagian penting dari sebagian besar bahasa pemrograman.

Operator perbandingan digunakan untuk membandingkan dua ekspresi. Hasilnya adalah true atau false . Bisa juga tidak diketahui. Ini juga dapat diwakili oleh 1 , 0 , atau NULL , tergantung bahasanya. Ini biasanya dikenal sebagai "ekspresi Boolean".

Saat digunakan dengan database, operator perbandingan dapat digunakan di dalam kueri SQL Anda untuk memfilter data ke kriteria tertentu.

Operator Perbandingan Umum

Sebagian besar bahasa pemrograman mendukung operator perbandingan berikut dalam satu atau lain bentuk:

OPERATOR MAKNA
= sama dengan
> Lebih besar dari
< Kurang dari
>= Lebih besar dari atau sama dengan
<= Kurang dari atau sama dengan
< Tidak sama dengan

SQL menggunakan sintaks yang sama seperti yang tercantum dalam tabel di atas.

Beberapa bahasa menggunakan sintaks yang berbeda untuk menghindari kebingungan dengan operator penugasan. Misalnya, Python dan JavaScript menggunakan == bukannya = . ColdFusion di sisi lain, menggunakan eq .

Tipe Data Berbeda

Beberapa bahasa memiliki operator khusus untuk menentukan bahwa kedua nilai harus bertipe data yang sama.

Misalnya, JavaScript juga menyertakan === operator yang menetapkan bahwa kedua nilai sama dan bahwa mereka harus dari tipe data yang sama. Tetapi jika tipe datanya tidak relevan, gunakan == sebagai gantinya.

Contoh

Lebih Besar dari Operator

Berikut adalah contoh penggunaan operator Greater Than dalam kueri T-SQL.

SELECT Name, Population
FROM country
WHERE Population > 100000000
ORDER BY Population DESC;

Hasil:

+--------------------+--------------+
| Name               | Population   |
|--------------------+--------------|
| China              | 1277558000   |
| India              | 1013662000   |
| United States      | 278357000    |
| Indonesia          | 212107000    |
| Brazil             | 170115000    |
| Pakistan           | 156483000    |
| Russian Federation | 146934000    |
| Bangladesh         | 129155000    |
| Japan              | 126714000    |
| Nigeria            | 111506000    |
+--------------------+--------------+

Dalam contoh ini saya menggunakan operator Greater Than (> ) untuk memilih hanya negara dengan populasi lebih besar dari 100000000.

Operator Setara

Berikut contoh lain, di mana saya menggunakan operator sama dengan (= ) untuk mengembalikan data yang sama persis dengan nilai yang diberikan.

SELECT CountryCode, Name 
FROM city 
WHERE CountryCode = 'AFG'

Hasil:

+---------------+----------------+
| CountryCode   | Name           |
|---------------+----------------|
| AFG           | Kabul          |
| AFG           | Qandahar       |
| AFG           | Herat          |
| AFG           | Mazar-e-Sharif |
+---------------+----------------+

Dalam hal ini saya hanya mengembalikan kota-kota yang kode negaranya sama dengan AFG .

Ini menunjukkan bahwa operator perbandingan tidak hanya terbatas pada tipe data numerik.

Tanggal

Anda juga dapat menggunakan operator perbandingan pada tanggal, misalnya:

SELECT * FROM Artists
WHERE ActiveFrom > '1990-01-01';

Hasil:

+------------+----------------+--------------+
| ArtistId   | ArtistName     | ActiveFrom   |
|------------+----------------+--------------|
| 5          | Devin Townsend | 1993-01-01   |
| 8          | Maroon 5       | 1994-01-01   |
| 9          | The Script     | 2001-01-01   |
| 14         | Karnivool      | 1997-01-01   |
| 15         | Birds of Tokyo | 2004-01-01   |
+------------+----------------+--------------+

Seperti yang Anda lihat, satu-satunya hasil yang dikembalikan adalah yang lebih besar dari (setelah) tanggal yang ditentukan.

Lebih Besar dari atau Sama Dengan Operator

Saya dapat menggunakan operator Lebih Besar Dari atau Sama Dengan untuk memasukkan tanggal yang ditentukan dalam hasil.

SELECT * FROM Artists
WHERE ActiveFrom >= '1990-01-01';

Hasil:

+------------+----------------+--------------+
| ArtistId   | ArtistName     | ActiveFrom   |
|------------+----------------+--------------|
| 5          | Devin Townsend | 1993-01-01   |
| 8          | Maroon 5       | 1994-01-01   |
| 9          | The Script     | 2001-01-01   |
| 14         | Karnivool      | 1997-01-01   |
| 15         | Birds of Tokyo | 2004-01-01   |
| 16         | Bodyjar        | 1990-01-01   |
+------------+----------------+--------------+

Dalam hal ini, satu baris tambahan dikembalikan (baris terakhir).

Kurang Dari Operator

Inilah yang terjadi jika saya mengubah kueri saya untuk menggunakan operator Less Than.

SELECT * FROM Artists
WHERE ActiveFrom < '1990-01-01';

Hasil:

+------------+------------------------+--------------+
| ArtistId   | ArtistName             | ActiveFrom   |
|------------+------------------------+--------------|
| 1          | Iron Maiden            | 1975-12-25   |
| 2          | AC/DC                  | 1973-01-11   |
| 3          | Allan Holdsworth       | 1969-01-01   |
| 4          | Buddy Rich             | 1919-01-01   |
| 6          | Jim Reeves             | 1948-01-01   |
| 7          | Tom Jones              | 1963-01-01   |
| 10         | Lit                    | 1988-06-26   |
| 11         | Black Sabbath          | 1968-01-01   |
| 12         | Michael Learns to Rock | 1988-03-15   |
| 13         | Carabao                | 1981-01-01   |
+------------+------------------------+--------------+

Saya mendapatkan semua baris yang kurang dari tanggal yang ditentukan.

Membandingkan Nilai NULL

NULL nilai dapat sedikit memperumit masalah saat menggunakan operator perbandingan. Singkatnya, Anda mungkin mendapatkan hasil yang berbeda, tergantung pada bagaimana lingkungan Anda dikonfigurasi.

Misalnya, di SQL Server, jika Anda menggunakan operator Equals (= ) atau operator Not Equal (<> ) untuk menguji terhadap NULL , hasil Anda akan bergantung pada ANSI_NULLS . Anda pengaturan (yaitu apakah itu ON atau OFF ).

Untuk menguji terhadap NULL nilai, SQL Server juga menyediakan IS NULL predikat, yang bekerja secara konsisten, terlepas dari ANSI_NULLS Anda pengaturan. Ini juga termasuk IS NOT NULL variasi untuk pengujian terhadap non-NULL nilai-nilai.

Di bawah ini adalah contoh yang menunjukkan apa yang saya maksud.

ANSI_NULLS ON

Pertama kita set ANSI_NULLS ke ON , lalu jalankan beberapa pengujian terhadap NULL .

SET ANSI_NULLS ON;

SELECT NULL
WHERE NULL = NULL;

SELECT NULL
WHERE 1 = NULL;

SELECT NULL
WHERE NULL IS NULL;

SELECT 'Not NULL'
WHERE 1 IS NOT NULL;

SELECT 'Not NULL'
WHERE 1 <> NULL;

Hasil:

(0 rows affected)
(0 rows affected)
+--------------------+
| (No column name)   |
|--------------------|
| NULL               |
+--------------------+
(1 row affected)
+--------------------+
| (No column name)   |
|--------------------|
| Not NULL           |
+--------------------+
(1 row affected)
(0 rows affected)

ANSI_NULLS OFF

Sekarang kita set ANSI_NULLS ke OFF , lalu jalankan pengujian yang sama.

SET ANSI_NULLS OFF;

SELECT NULL
WHERE NULL = NULL;

SELECT NULL
WHERE 1 = NULL;

SELECT NULL
WHERE NULL IS NULL;

SELECT 'Not NULL'
WHERE 1 IS NOT NULL;

SELECT 'Not NULL'
WHERE 1 <> NULL;

Hasil:

+--------------------+
| (No column name)   |
|--------------------|
| NULL               |
+--------------------+
(1 row affected)
(0 rows affected)
+--------------------+
| (No column name)   |
|--------------------|
| NULL               |
+--------------------+
(1 row affected)
+--------------------+
| (No column name)   |
|--------------------|
| Not NULL           |
+--------------------+
(1 row affected)
+--------------------+
| (No column name)   |
|--------------------|
| Not NULL           |
+--------------------+
(1 row affected)

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Membandingkan Objek dengan Nilai. Bagian 6:Implementasi Kesetaraan Struktur

  2. Sekunder yang Dapat Dibaca dengan Anggaran

  3. Dampak Fragmentasi pada Rencana Eksekusi

  4. Memahami flush buffer log

  5. Cara Menggunakan REPLACE di SQL