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

SQL Setara (=) Operator untuk Pemula

Operator sama dengan (= ) mungkin adalah operator yang paling umum digunakan dalam SQL. Ini membandingkan kesetaraan dua ekspresi. Bahkan jika Anda baru saja memulai perjalanan SQL, Anda mungkin mengenal operator ini.

Tabel Sumber

Bayangkan database kami berisi tabel berikut. Ini adalah tabel yang akan kita gunakan 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

Jika kita ingin mendapatkan semua hewan peliharaan dengan pemilik tertentu, kita bisa melakukan ini:

SELECT *
FROM Pets
WHERE OwnerId = 3;

Hasil:

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

Kueri kami menggunakan operator yang sama (= ) untuk membandingkan kesetaraan nilai OwnerId kolom dan 3 .

Dalam hal ini, pemilik nomor 3 memiliki 3 hewan peliharaan.

String

Saat membandingkan dengan nilai string, gunakan tanda kutip di sekitar string. Misalnya, jika kita ingin mendapatkan informasi tentang semua hewan peliharaan bernama Fluffy, kita dapat melakukan hal berikut:

SELECT *
FROM Pets
WHERE PetName = 'Fluffy';

Hasil:

+---------+-------------+-----------+-----------+------------+
| PetId   | PetTypeId   | OwnerId   | PetName   | DOB        |
|---------+-------------+-----------+-----------+------------|
| 1       | 2           | 3         | Fluffy    | 2020-11-20 |
| 6       | 3           | 4         | Fluffy    | 2020-09-17 |
+---------+-------------+-----------+-----------+------------+

Kueri kami menggunakan operator yang sama (= ) untuk membandingkan kesetaraan nilai PetName kolom dan string Fluffy .

Dalam kasus kami, kami dapat melihat bahwa hotel hewan peliharaan saat ini memiliki dua hewan peliharaan bernama Fluffy.

Beberapa Kondisi

Jika Anda memiliki beberapa kondisi, Anda dapat menggunakan beberapa operator yang sama.

Seperti ini:

SELECT * FROM Pets 
WHERE PetName = 'Fluffy' OR PetName = 'Tweet';

Hasil:

+---------+-------------+-----------+-----------+------------+
| PetId   | PetTypeId   | OwnerId   | PetName   | DOB        |
|---------+-------------+-----------+-----------+------------|
| 1       | 2           | 3         | Fluffy    | 2020-11-20 |
| 5       | 1           | 1         | Tweet     | 2020-11-28 |
| 6       | 3           | 4         | Fluffy    | 2020-09-17 |
+---------+-------------+-----------+-----------+------------+

Kita dapat melihat bahwa ia mengembalikan baris di mana PetName kolom adalah Fluffy atau Tweet .

Meniadakan Kondisi

Anda dapat menggunakan NOT operator untuk meniadakan kondisi yang disediakan oleh operator yang sama. Ini contohnya:

SELECT *
FROM Pets
WHERE NOT PetName = 'Fluffy';

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 |
| 5       | 1           | 1         | Tweet     | 2020-11-28 |
| 7       | 3           | 2         | Bark      | NULL       |
| 8       | 2           | 4         | Meow      | NULL       |
+---------+-------------+-----------+-----------+------------+

Cara alternatif untuk melakukan ini adalah dengan menggunakan operator yang tidak sama dengan, yaitu <> atau != (atau keduanya) tergantung pada DBMS Anda.

Nilai NULL

Anda mungkin telah memperhatikan bahwa tabel sampel asli kami berisi beberapa NULL nilai di kolom DOB.

Kolom yang berisi NULL berarti tidak ada nilainya. Ini berbeda dengan 0 atau false , atau bahkan string kosong.

Anda tidak dapat menggunakan operator yang sama untuk membandingkan dengan NULL . Sebenarnya, ini mungkin tergantung pada DBMS Anda dan konfigurasinya. Tapi untuk sekarang, mari kita lihat apa yang terjadi jika saya mencoba membandingkan kolom DOB dengan NULL .

SELECT * FROM Pets 
WHERE DOB = NULL;

Hasil:

(0 rows affected)

Cara menguji NULL adalah menggunakan IS .

Oleh karena itu, kita perlu menulis ulang pernyataan di atas sebagai berikut.

SELECT * FROM Pets 
WHERE DOB IS NULL;

Hasil:

+---------+-------------+-----------+-----------+-------+
| PetId   | PetTypeId   | OwnerId   | PetName   | DOB   |
|---------+-------------+-----------+-----------+-------|
| 7       | 3           | 2         | Bark      | NULL  |
| 8       | 2           | 4         | Meow      | NULL  |
+---------+-------------+-----------+-----------+-------+

NULL nilai bisa menjadi hal yang sulit bagi pemula untuk memahaminya. Sebenarnya, mereka bisa menjadi hal yang sulit bagi pengembang berpengalaman untuk memahaminya! Dalam SQL, NULL memiliki arti yang sedikit berbeda dengan NULL di sebagian besar bahasa pemrograman lainnya.

Tetapi yang penting untuk diingat adalah, dalam SQL, NULL berarti tidak adanya nilai. Tidak ada nilai. Oleh karena itu, kita tidak bisa mengatakan bahwa itu sama atau tidak sama dengan sesuatu yang lain, karena tidak ada nilai untuk memulainya.

Jika Anda tertarik, lihat SQL Server ANSI_NULLS Explained untuk melihat bagaimana Anda dapat mengubah cara NULL nilai diperlakukan di SQL Server.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Semua yang perlu Anda ketahui tentang standar pengkodean untuk kueri SQL

  2. Memuat Data Besar Lebih Cepat

  3. Fitur usang untuk dikeluarkan dari kotak peralatan Anda – Bagian 2

  4. Mengoptimalkan Kueri Pembaruan

  5. Bagaimana Cara Menggunakan Ubah Pernyataan Tabel Dalam SQL?