Lewati ke konten utama

Operator SQL OR: Panduan dengan Contoh

Operator SQL OR memungkinkan Anda memfilter data dengan menggabungkan beberapa kondisi, mengembalikan baris ketika setidaknya satu kondisi bernilai benar. Pelajari cara menggunakan OR dengan pernyataan INSERT, UPDATE, dan DELETE untuk memodifikasi catatan dalam tabel.
· 8 mnt Baca

Jelajahi bersama AI

Operator logika OR dalam SQL digunakan dalam kueri untuk memfilter data berdasarkan beberapa kondisi. Operator OR biasanya digunakan pada klausa WHERE untuk mengembalikan hasil yang memenuhi kondisi yang diberikan. Fungsionalitas ini menjadikan operator OR alat penting untuk pengambilan data yang fleksibel.

Dalam tutorial ini, saya akan menunjukkan, menggunakan contoh praktis, berbagai kasus penggunaan operator OR dalam kueri SQL. Jika Anda seorang calon analis data atau baru mulai belajar SQL, saya merekomendasikan kursus Introduction to SQL dari DataCamp untuk mempelajari dasar-dasar SQL. SQL Basics Cheat Sheet juga akan membantu Anda merujuk operator dan fungsi umum untuk mengkueri tabel, memfilter, dan mengagregasi data.

Apa itu Operator SQL OR?

Operator OR dalam SQL biasanya digunakan dengan klausa WHERE untuk memfilter data. Saat digunakan dalam kueri, operator OR akan memfilter data untuk menyertakan baris yang setidaknya salah satu kondisinya bernilai benar.

Kueri berikut akan mengembalikan semua catatan dari tabel employees yang berada di departemen HR atau dengan gaji di atas $60.000. Jika sebuah baris memenuhi salah satu atau kedua kondisi tersebut, baris itu akan disertakan dalam hasil kueri.

-- Select rows where the department is either 'HR' OR salary greater than 60,000
SELECT *
FROM employees
WHERE department = 'HR'
OR salary > 60000;

Contoh keluaran tabel yang difilter menggunakan operator SQL OR

Contoh keluaran tabel yang difilter menggunakan operator SQL OR. Gambar oleh Penulis.

Lihat kursus Intermediate SQL dari DataCamp untuk mempelajari lebih lanjut tentang operator OR dan operator lainnya yang digunakan untuk pemfilteran data bersyarat.

Sintaks Operator SQL OR

Operator OR mudah digunakan dan diintegrasikan dalam kueri SQL. Di bawah ini adalah sintaks dasar saat digunakan dalam pernyataan SELECT.

SELECT column1, column2, ...
FROM table_name
WHERE condition1
OR condition2
OR condition3;

Perhatikan bahwa Anda dapat menggunakan lebih dari satu kondisi OR dalam klausa WHERE.

Penggunaan dasar dalam pernyataan SELECT

Operator OR digunakan dalam pernyataan SELECT untuk mengembalikan catatan yang memenuhi salah satu dari kondisi yang diberikan. Hal ini membuat operator OR berguna saat mengambil catatan tanpa menulis banyak kueri yang kompleks.

Pada contoh di bawah, operator OR memfilter semua catatan karyawan untuk mereka yang berada di "New York" atau "Los Angeles."

-- Select employeees from New York or Los Angeles city
SELECT first_name, last_name, city
FROM employees
WHERE city = 'New York'
OR city = 'Los Angeles';

Menggabungkan OR dengan AND dalam SQL

Operator OR dapat digabungkan dengan operator AND untuk membentuk kondisi yang lebih kompleks dalam kueri SQL. Saat menggunakan operator OR dan AND bersama-sama, kita menggunakan tanda kurung untuk mengendalikan urutan operasi.

Pertimbangkan kueri berikut: Kita ingin memilih semua karyawan di departemen TI dan yang tinggal di "New York" (sebagai satu kondisi), atau yang berpenghasilan lebih dari $70.000. Tanda kurung mengelompokkan kondisi AND untuk dievaluasi sebagai satu kesatuan sebelum menerapkan operator OR.

-- Select columns
SELECT first_name, last_name, department, city, salary
FROM employees
 -- Grouping IT department in New York
WHERE (department = 'IT' AND city = 'New York')
-- Employees with salary over 70,000
OR salary > 70000;

Contoh keluaran tabel yang difilter dengan menggabungkan operator OR dan AND.

Contoh keluaran tabel yang difilter dengan menggabungkan operator OR dan AND. Gambar oleh Penulis.

Kueri di atas mengevaluasi dan mengembalikan catatan:

  • Karyawan yang bekerja di departemen TI dan tinggal di New York.

  • Atau karyawan mana pun yang berpenghasilan lebih dari $70.000, terlepas dari departemen atau kota.

Saat menggabungkan operator OR dengan operator AND, Anda harus mengelompokkan kondisi dengan benar menggunakan tanda kurung. Kesalahan ini dapat menyebabkan kekeliruan logika dan menghasilkan keluaran yang tidak diinginkan.

Jika tanda kurung tidak digunakan dalam kueri, kondisi AND akan dievaluasi sebelum kondisi OR. Dengan demikian, menggunakan tanda kurung dengan benar akan secara eksplisit mengelompokkan kondisi dan memastikan urutan evaluasi yang dimaksud diikuti.

Contoh Operator SQL OR dalam Praktik

Operator OR dapat digunakan dalam berbagai kueri SQL untuk mengambil catatan atau memanipulasi data basis data. Berikut adalah contoh kasus penggunaan operator OR.

Memfilter data dengan beberapa kondisi

Operator OR terutama digunakan untuk memfilter catatan berdasarkan dua atau lebih kondisi. Metode ini penting saat memperluas kriteria pencarian basis data. Contoh berikut akan memfilter dan mengembalikan catatan yang menunjukkan karyawan dari New York City atau yang berpenghasilan lebih dari $80.000.

-- Select columns
SELECT first_name, last_name, department, city, salary
FROM employees
 -- Employees in New York City
WHERE city = 'New York'
-- Employees with salary over 80,000
OR salary > 80000;

Menggunakan operator OR dalam pernyataan INSERT

Anda dapat menggunakan operator OR dengan pernyataan INSERT untuk menyisipkan catatan baru ke tabel jika memenuhi kondisi yang ditentukan. Pada contoh di bawah, kueri akan menyisipkan catatan baru ke tabel employees jika karyawan berada di departemen HR atau jika karyawan tersebut berpenghasilan lebih dari $60.000. Kueri di bawah ini konsisten untuk basis data SQL Server, MySQL, dan PostgreSQL.

-- Insert a new record into the 'employees' table
INSERT INTO employees (employee_id, first_name, last_name, department, salary, city)
SELECT 49, 'Anna', 'Johnson', 'HR', 62000, 'New York'
 -- First condition: department is 'HR'
WHERE 'HR' = 'HR' 
 -- Second condition: salary is greater than $60,000
   OR 62000 > 60000;

Di basis data Oracle, pernyataan INSERT berbeda dan memerlukan klausa FROM menggunakan tabel dual, yaitu tabel khusus satu baris, satu kolom yang tersedia di basis data. Ikuti kursus Introduction to SQL Server kami jika Anda akan bekerja khusus dengan SQL Server.  

-- Insert a new record into the 'employees' table
INSERT INTO employees (employee_id, first_name, last_name, department, salary, city)
SELECT 49, 'Anna', 'Johnson', 'HR', 62000, 'New York'
FROM dual
WHERE 'HR' = 'HR'  -- First condition: department is 'HR'
   OR 62000 > 60000;  -- Second condition: salary is greater than $60,000

Menggunakan operator OR dalam pernyataan UPDATE

Pernyataan UPDATE digunakan dalam SQL untuk memodifikasi catatan yang sudah ada di tabel. Anda dapat menggunakan operator OR dalam pernyataan UPDATE untuk memodifikasi catatan tersebut menurut beberapa kondisi, sehingga hanya yang memenuhi kondisi yang diubah.

Pada contoh di bawah, kita menggunakan operator OR untuk memperbarui gaji karyawan jika mereka berada di departemen Keuangan atau tinggal di Chicago.

-- Update the salary for the employee
UPDATE employees
-- Increase salary by 10%
SET salary = salary * 1.1  
-- First condition: department is 'Finance'
WHERE department = 'Finance' 
 -- Second condition: employees in Chicago City
OR city = 'Chicago';

Menggunakan operator OR dalam pernyataan DELETE

Demikian pula, pernyataan DELETE dalam SQL digunakan untuk menghapus catatan yang ada dari sebuah tabel. Anda dapat menggunakan operator OR dengan pernyataan DELETE untuk menghapus catatan dari tabel sesuai kondisi tertentu.

Kueri di bawah akan menghapus catatan dari tabel employees jika karyawan berasal dari Chicago atau berpenghasilan $60.000.

-- Delete records from the 'employees' table
DELETE FROM employees
-- First condition: employees from Chicago
WHERE city = 'Chicago'
-- Second condition: employees earning 60000
OR salary = 60000;

Pertimbangan Kinerja untuk Kueri SQL OR

Saat bekerja dengan kumpulan data besar, Anda mungkin mengalami masalah kinerja dengan operator OR. Masalah ini dapat mengakibatkan operasi melambat saat memfilter catatan dari kumpulan data besar. Berikut adalah masalah kinerja umum dan cara menguranginya.

Pemindaian tabel penuh

Saat menggunakan operator OR pada kumpulan data besar, eksekusi dapat melakukan pemindaian tabel penuh, terutama ketika tidak ada pengindeksan yang memadai. Masalah ini dapat memperlambat waktu eksekusi kueri karena kueri mengevaluasi tabel per baris. Untuk menghindari masalah ini, Anda harus mengindeks kolom yang diperlukan agar mesin basis data dapat menemukan kolom tersebut untuk pemindaian tabel yang lebih mudah dan cepat.

Evaluasi kondisi yang kompleks

Saat menggunakan operator OR untuk mengevaluasi beberapa kondisi dalam sebuah tabel, kueri dapat menjadi jauh lebih lambat, terutama ketika tidak diindeks dengan benar. Saat menggunakan kondisi OR yang kompleks, merestrukturisasi kueri menjadi bagian-bagian yang lebih kecil, seperti menggunakan subkueri, dapat membantu meningkatkan kinerja kueri.

Kondisi yang redundan

Menyertakan kondisi OR yang tidak perlu dapat memperlambat kinerja kueri karena harus mengevaluasi semua kondisi. Menggunakan hanya kondisi OR yang diperlukan dan yang kemungkinan bernilai benar akan membantu menyederhanakan dan meningkatkan kinerja kueri.

Alternatif untuk operator OR

Saat menghadapi masalah kinerja dengan operator OR, Anda dapat mempertimbangkan alternatif berikut untuk memfilter data berdasarkan beberapa kondisi.

Menggunakan operator UNION

Operator UNION terutama digunakan untuk menggabungkan hasil dari dua atau lebih pernyataan SELECT saat pengindeksan yang berbeda diperlukan. Pada kueri di bawah, operator UNION menggabungkan operasi untuk memfilter dan mengembalikan catatan employees dari department TI di city New York. Baca tutorial kami, UNION vs UNION ALL in SQL jika Anda belum familiar dengan UNION. 

-- Use UNION instead of OR for better performance
SELECT first_name, last_name, department, city
FROM employees
-- First condition
WHERE department = 'IT'  
UNION
SELECT first_name, last_name, department, city
FROM employees
-- Second condition
WHERE city = 'New York'; 

Menggunakan pernyataan CASE

Pernyataan CASE adalah alternatif penting untuk operator OR jika Anda ingin memasukkan kondisi logis dalam kueri. Pernyataan CASE dapat meningkatkan kinerja kueri sesuai eksekusi optimalnya. Kueri di bawah menggunakan pernyataan CASE untuk mengategorikan departemen berdasarkan beberapa kondisi.

-- Select first name, last name, and a derived category based on conditions
SELECT first_name, last_name,  
-- Use CASE to determine the category based on department or city
CASE  
-- If department is 'IT', categorize as 'Tech' If city is 'New York', categorize as 'NYC'
  WHEN department = 'IT' THEN 'Tech'  
  WHEN city = 'New York' THEN 'NYC'  -- 
  ELSE 'Other'
END AS category
FROM employees; 

Lihat jalur keterampilan SQL Fundamentals kami untuk mempelajari lebih lanjut tentang operator UNION dan pernyataan CASE untuk manipulasi data.

Kesimpulan

Operator OR adalah operator SQL yang serbaguna untuk membangun kueri yang fleksibel dan kompleks. Operator OR memungkinkan Anda memfilter catatan tabel berdasarkan beberapa kondisi. Seperti yang telah kita lihat, saat digunakan dengan pernyataan lain seperti INSERT, UPDATE, dan DELETE, operator OR juga memungkinkan modifikasi catatan dalam tabel. Sebagai analis data, penting untuk memahami masalah kinerja terkait operator OR dan metode alternatif, seperti operator UNION dan pernyataan CASE WHEN. 

Saya mendorong Anda untuk berlatih menggunakan operator OR untuk memfilter catatan dengan berbagai kumpulan data agar semakin terbiasa dengan fungsionalitasnya. Untuk meningkatkan keterampilan SQL Anda, pertimbangkan jalur karier Associate Data Analyst in SQL untuk menjadi analis yang andal. Kursus Reporting in SQL juga akan membantu Anda mempelajari cara menganalisis dan menyajikan data menggunakan dasbor. Terakhir, saya merekomendasikan memperoleh SQL Associate Certification dari DataCamp untuk menunjukkan keterampilan dan kemahiran Anda dalam SQL untuk analisis data.

Allan Ouko

Penulis

Allan Ouko

Penulis teknis Data Science dengan pengalaman langsung dalam analitik data, business intelligence, dan data science. Saya menulis konten praktis berfokus industri tentang SQL, Python, Power BI, Databricks, dan rekayasa data, yang berakar pada pekerjaan analitik dunia nyata. Tulisan saya menjembatani kedalaman teknis dan dampak bisnis, membantu para profesional mengubah data menjadi keputusan yang meyakinkan.

Pertanyaan SQL yang Sering Diajukan

Apa perbedaan antara operator OR dan AND dalam SQL?

Operator OR mengembalikan hasil jika salah satu kondisi yang ditentukan bernilai benar, sedangkan operator AND mengembalikan hasil jika semua kondisi yang ditentukan bernilai benar.

Bisakah operator OR digunakan bersama operator AND dalam satu kueri?

Anda dapat menggunakan operator OR dan operator AND untuk memfilter catatan berdasarkan beberapa kondisi. Namun, Anda harus menggunakan tanda kurung untuk mengelompokkan kondisi dan menentukan urutan eksekusi kueri.

Apakah ada batasan jumlah kondisi yang difilter menggunakan operator OR dalam SQL?

Tidak ada batasan jumlah kondisi untuk difilter menggunakan operator OR, meskipun terlalu banyak kondisi dapat berdampak pada kinerja kueri.

Bisakah operator OR digunakan untuk memodifikasi data dalam tabel?

Anda dapat menggunakan operator OR dengan pernyataan INSERT, UPDATE, dan DELETE untuk memodifikasi catatan tertentu di tabel.

Apa alternatif SQL untuk operator OR?

Operator UNION dan pernyataan CASE WHEN merupakan alternatif dari operator OR yang digunakan untuk memfilter catatan berdasarkan beberapa kondisi.

Topik

Terkait

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

blogs

Tutorial Korelasi di R

blogs

Spaghetti Plot dan Jalur Badai