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

Pernyataan SQL WHERE

Pernyataan SQL WHERE Pengantar

  • Klausa WHERE digunakan untuk menyertakan kondisi saat mengambil data dari tabel.
  • Bila Anda harus menentukan kondisi yang harus dipatuhi saat data ditarik dari tabel, dalam hal ini klausa digunakan.
  • Klausa where digunakan untuk memfilter record yang Anda ambil dari pernyataan pilih sehingga Anda mendapatkan subset data yang lebih kecil.
  • klausa Where juga digunakan untuk melakukan operasi gabungan.
  • klausa Where hanya mengembalikan record-record dari tabel yang memenuhi kondisi yang ditentukan dengannya.
  • Klausa ini tidak hanya digunakan dengan Query SELECT, tetapi juga dapat digunakan dengan Query UPDATE dan DELETE.
  1. Menggunakan klausa where dengan kueri SELECT
  • klausa Where dengan query SELECT untuk mengambil semua kolom dari sebuah tabel.
  • Untuk mengambil semua catatan dari tabel, tanda bintang (*) simbol yang digunakan.

Sintaks:

          SELECT *FROM TABLE_NAME WHERE condition;

Contoh:

Pertama, kita akan membuat database dengan nama “bookdb”. Kemudian pada database tersebut kita akan membuat tabel “buku” dan memasukkan record ke dalam tabel tersebut. Kami akan mempertimbangkan database yang sama dan juga tabel yang sama untuk contoh selanjutnya.

Sekarang, kita akan menerapkan klausa where dengan query SELECT untuk mengambil semua kolom dari tabel di mana harga buku sama dengan 200.

 mysql> CREATE DATABASE bookdb;
 Query OK, 1 row affected (0.07 sec)
 mysql> USE bookdb;
 Database changed
 mysql> CREATE TABLE book(Book_ID INT NOT NULL AUTO_INCREMENT, Book_Name VARCHAR(100) NOT NULL, Book_Author VARCHAR(40) NOT NULL, Book_Price INT NOT NULL, PRIMARY KEY(Book_ID));
 Query OK, 0 rows affected (0.24 sec)
 mysql> INSERT INTO book(Book_Name,Book_Author,Book_Price) VALUES ("Learn MySQL","Abdul S", 180);
 Query OK, 1 row affected (0.07 sec)
 mysql> INSERT INTO book(Book_Name,Book_Author,Book_Price) VALUES ("MySQL Explained","Andrew Comeau", 150);
 Query OK, 1 row affected (0.04 sec)
 mysql> INSERT INTO book(Book_Name,Book_Author,Book_Price) VALUES ("MySQL Cookbook","Paul DuBois", 250);
 Query OK, 1 row affected (0.08 sec)
 mysql> INSERT INTO book(Book_Name,Book_Author,Book_Price) VALUES ("murach's MySQL","Joel Murach", 200);
 Query OK, 1 row affected (0.07 sec)
 mysql> INSERT INTO book(Book_Name,Book_Author,Book_Price) VALUES ("Head First SQL","Lynn Beighley", 300);
 Query OK, 1 row affected (0.07 sec)
 mysql> SELECT *FROM book;
 +---------+-----------------------------+--------------------+------------+
 | Book_ID | Book_Name                   | Book_Author        | Book_Price |
 +---------+-----------------------------+--------------------+------------+
 |       1 | Learn MySQL                 | Abdul S            |        180 |
 |       2 | MySQL Explained             | Andrew Comeau      |        150 |
 |       3 | Database Management Systems | Raghu Ramakrishnan |        250 |
 |       4 | murach's MySQL              | Joel Murach        |        200 |
 +---------+-----------------------------+--------------------+------------+
 4 rows in set (0.00 sec)
 mysql> SELECT *FROM book WHERE Book_Price=200;
 +---------+----------------+-------------+------------+
 | Book_ID | Book_Name      | Book_Author | Book_Price |
 +---------+----------------+-------------+------------+
 |       4 | murach's MySQL | Joel Murach |        200 |
 +---------+----------------+-------------+------------+
 1 row in set (0.00 sec) 

Hanya ada satu record dengan Book_ID =4, yang harganya sama dengan 200. Oleh karena itu, semua kolom dari record tersebut akan ditampilkan.

  • klausa Where dengan query SELECT untuk mengambil satu atau lebih dari satu kolom tertentu dari sebuah tabel.
  • Untuk mengambil kolom tertentu dari tabel, nama semua kolom yang akan diambil harus ditentukan dalam kueri itu sendiri.
  • Nama kolom tertentu yang akan diambil akan dipisahkan dengan koma.

Sintaks:

SELECT COLUMN_NAME1,….,COLUMN_NAMEn FROM TABLE_NAME WHERE condition;

Contoh:

Kami akan menerapkan klausa where dengan kueri SELECT untuk mengambil kolom tertentu (Book_ID, Book_Price) dari buku tabel di mana harga buku sama dengan 200.

 mysql> SELECT * FROM book;
 +---------+-----------------------------+--------------------+------------+
 | Book_ID | Book_Name                   | Book_Author        | Book_Price |
 +---------+-----------------------------+--------------------+------------+
 |       1 | Learn MySQL                 | Abdul S            |        180 |
 |       2 | MySQL Explained             | Andrew Comeau      |        150 |
 |       3 | Database Management Systems | Raghu Ramakrishnan |        250 |
 |       4 | murach's MySQL              | Joel Murach        |        200 |
 +---------+-----------------------------+--------------------+------------+
 4 rows in set (0.00 sec)
 mysql> SELECT Book_ID,Book_Price FROM book where Book_Price=200;
 +---------+------------+
 | Book_ID | Book_Price |
 +---------+------------+
 |       4 |        200 |
 +---------+------------+
 1 row in set (0.00 sec) 

Hanya ada satu record dengan Book_ID =4, yang harganya sama dengan 200. Oleh karena itu, Book_ID dan Book_Price dari record tersebut ditampilkan.

  • Menggunakan klausa where dengan kueri UPDATE

Sintaks:

UPDATE TABLE_NAME SET column_name = newvalue WHERE column_name1 = value1;

Contoh:

Kami akan menerapkan klausa where dengan kueri UPDATE pada tabel buku untuk memperbarui Book_Name dan Book_Author dari catatan tertentu dengan menetapkan Book_ID sebagai kondisi di mana klausa.

 mysql> SELECT *FROM book;
 +---------+-----------------+---------------+------------+
 | Book_ID | Book_Name       | Book_Author   | Book_Price |
 +---------+-----------------+---------------+------------+
 |       1 | Learn MySQL     | Abdul S       |        180 |
 |       2 | MySQL Explained | Andrew Comeau |        150 |
 |       3 | MySQL Cookbook  | Paul DuBois   |        250 |
 |       4 | murach's MySQL  | Joel Murach   |        200 |
 |       5 | Head First SQL  | Lynn Beighley |        300 |
 +---------+-----------------+---------------+------------+
 5 rows in set (0.00 sec)
 mysql> UPDATE book SET Book_name="Database Management Systems", Book_Author="Raghu Ramakrishnan" WHERE Book_ID=3;
 Query OK, 1 row affected (0.19 sec)
 Rows matched: 1  Changed: 1  Warnings: 0
 mysql> SELECT *FROM book;
 +---------+-----------------------------+--------------------+------------+
 | Book_ID | Book_Name                   | Book_Author        | Book_Price |
 +---------+-----------------------------+--------------------+------------+
 |       1 | Learn MySQL                 | Abdul S            |        180 |
 |       2 | MySQL Explained             | Andrew Comeau      |        150 |
 |       3 | Database Management Systems | Raghu Ramakrishnan |        250 |
 |       4 | murach's MySQL              | Joel Murach        |        200 |
 |       5 | Head First SQL              | Lynn Beighley      |        300 |
 +---------+-----------------------------+--------------------+------------+
 5 rows in set (0.00 sec) 

Hanya ada satu record dengan Book_ID =3, kami telah mengubah Book_name dan Book_Author dari record tersebut. Oleh karena itu, tabel yang diperbarui ditampilkan.

  • Menggunakan klausa where dengan kueri DELETE

Sintaks:

DELETE FROM TABLE_NAME WHERE column_name1 = value1;

Contoh:

Kami akan menerapkan klausa where dengan kueri DELETE pada tabel buku ke

hapus buku dengan Book_ID tertentu dengan menetapkan Book_ID sebagai kondisi di mana klausa.

 mysql> SELECT *FROM book;
 +---------+-----------------------------+--------------------+------------+
 | Book_ID | Book_Name                   | Book_Author        | Book_Price |
 +---------+-----------------------------+--------------------+------------+
 |       1 | Learn MySQL                 | Abdul S            |        180 |
 |       2 | MySQL Explained             | Andrew Comeau      |        150 |
 |       3 | Database Management Systems | Raghu Ramakrishnan |        250 |
 |       4 | murach's MySQL              | Joel Murach        |        200 |
 |       5 | Head First SQL              | Lynn Beighley      |        300 |
 +---------+-----------------------------+--------------------+------------+
 5 rows in set (0.00 sec)
 mysql> DELETE FROM book WHERE Book_ID=5;
 Query OK, 1 row affected (0.23 sec)
 mysql> SELECT *FROM book;
 +---------+-----------------------------+--------------------+------------+
 | Book_ID | Book_Name                   | Book_Author        | Book_Price |
 +---------+-----------------------------+--------------------+------------+
 |       1 | Learn MySQL                 | Abdul S            |        180 |
 |       2 | MySQL Explained             | Andrew Comeau      |        150 |
 |       3 | Database Management Systems | Raghu Ramakrishnan |        250 |
 |       4 | murach's MySQL              | Joel Murach        |        200 |
 +---------+-----------------------------+--------------------+------------+
 4 rows in set (0.00 sec) 

Hanya ada satu catatan dengan Book_ID =5, kami telah menghapus seluruh catatan itu dari tabel buku. Oleh karena itu, tabel yang diperbarui ditampilkan.

Operator dengan Pernyataan WHERE

Anda dapat menggunakan operator dengan klausa where. Operator ini dapat digunakan bersama dengan klausa where dalam kueri SELECT, UPDATE, dan DELETE.

  1. Sama(=)

Saat operator equal to (=) digunakan dengan klausa where, ia akan mengambil record tersebut dari tabel di mana pun nilai nama kolom yang ada dalam tabel sama dengan nilai nama kolom yang ditentukan dalam kueri.

Contoh:

Kami akan menerapkan klausa where dengan kueri SELECT untuk mengambil catatan tersebut dari tabel di mana harga buku sama dengan 200.

 mysql> SELECT *FROM book;
 +---------+-----------------------------+--------------------+------------+
 | Book_ID | Book_Name                   | Book_Author        | Book_Price |
 +---------+-----------------------------+--------------------+------------+
 |       1 | Learn MySQL                 | Abdul S            |        180 |
 |       2 | MySQL Explained             | Andrew Comeau      |        150 |
 |       3 | Database Management Systems | Raghu Ramakrishnan |        250 |
 |       4 | murach's MySQL              | Joel Murach        |        200 |
 +---------+-----------------------------+--------------------+------------+
 4 rows in set (0.00 sec)
 mysql> SELECT *FROM book WHERE Book_Price=200;
 +---------+----------------+-------------+------------+
 | Book_ID | Book_Name      | Book_Author | Book_Price |
 +---------+----------------+-------------+------------+
 |       4 | murach's MySQL | Joel Murach |        200 |
 +---------+----------------+-------------+------------+
 1 row in set (0.00 sec) 

Hanya ada satu record dengan Book_ID =4, yang harganya sama dengan 200. Oleh karena itu, semua kolom dari record tersebut akan ditampilkan.

  • Lebih besar dari(>)

Ketika lebih besar dari (>) operator digunakan dengan klausa Where, itu akan mengambil catatan tersebut dari tabel di mana pun nilai nama kolom yang ada dalam tabel lebih besar dari nilai nama kolom yang ditentukan dalam kueri.

Contoh:

Kami akan menerapkan klausa where dengan kueri SELECT untuk mengambil catatan tersebut dari tabel di mana harga buku lebih besar dari 150.

 mysql> SELECT * FROM book;
 +---------+-----------------------------+--------------------+------------+
 | Book_ID | Book_Name                   | Book_Author        | Book_Price |
 +---------+-----------------------------+--------------------+------------+
 |       1 | Learn MySQL                 | Abdul S            |        180 |
 |       2 | MySQL Explained             | Andrew Comeau      |        150 |
 |       3 | Database Management Systems | Raghu Ramakrishnan |        250 |
 |       4 | murach's MySQL              | Joel Murach        |        200 |
 +---------+-----------------------------+--------------------+------------+
 4 rows in set (0.00 sec)
 mysql> SELECT * FROM book WHERE Book_Price > 150;
 +---------+-----------------------------+--------------------+------------+
 | Book_ID | Book_Name                   | Book_Author        | Book_Price |
 +---------+-----------------------------+--------------------+------------+
 |       1 | Learn MySQL                 | Abdul S            |        180 |
 |       3 | Database Management Systems | Raghu Ramakrishnan |        250 |
 |       4 | murach's MySQL              | Joel Murach        |        200 |
 +---------+-----------------------------+--------------------+------------+
 3 rows in set (0.00 sec) 

Ada tiga record dengan Book_ID =1, 3 dan 4 yang harganya lebih besar dari 150. Oleh karena itu, semua kolom record tersebut ditampilkan.

  • Kurang dari(<)

Saat operator less than(<) digunakan dengan klausa where, ia akan mengambil record tersebut dari tabel di mana pun nilai nama kolom yang ada dalam tabel lebih kecil dari nilai nama kolom yang ditentukan dalam kueri.

Contoh:

Kami akan menerapkan klausa where dengan kueri SELECT untuk mengambil catatan tersebut dari tabel di mana harga buku kurang dari 200.

 mysql> SELECT * FROM book;
 +---------+-----------------------------+--------------------+------------+
 | Book_ID | Book_Name                   | Book_Author        | Book_Price |
 +---------+-----------------------------+--------------------+------------+
 |       1 | Learn MySQL                 | Abdul S            |        180 |
 |       2 | MySQL Explained             | Andrew Comeau      |        150 |
 |       3 | Database Management Systems | Raghu Ramakrishnan |        250 |
 |       4 | murach's MySQL              | Joel Murach        |        200 |
 +---------+-----------------------------+--------------------+------------+
 4 rows in set (0.00 sec)
 mysql> SELECT * FROM book WHERE Book_Price < 200;
 +---------+-----------------+---------------+------------+
 | Book_ID | Book_Name       | Book_Author   | Book_Price |
 +---------+-----------------+---------------+------------+
 |       1 | Learn MySQL     | Abdul S       |        180 |
 |       2 | MySQL Explained | Andrew Comeau |        150 |
 +---------+-----------------+---------------+------------+
 2 rows in set (0.00 sec) 

Ada dua record dengan Book_ID =1 dan 2 yang harganya kurang dari 200. Oleh karena itu, semua kolom record tersebut akan ditampilkan.

  • Lebih dari atau sama dengan (>=)

Ketika lebih besar dari atau sama dengan (>=) operator digunakan dengan klausa where, itu akan mengambil catatan tersebut dari tabel di mana pun nilai nama kolom yang ada dalam tabel lebih besar dari atau sama dengan nilai nama kolom yang ditentukan dalam kueri.

Contoh:

Kami akan menerapkan klausa where dengan query SELECT untuk mengambil record tersebut dari tabel dimana harga buku lebih besar dari atau sama dengan 150.

 mysql> SELECT * FROM book;
 +---------+-----------------------------+--------------------+------------+
 | Book_ID | Book_Name                   | Book_Author        | Book_Price |
 +---------+-----------------------------+--------------------+------------+
 |       1 | Learn MySQL                 | Abdul S            |        180 |
 |       2 | MySQL Explained             | Andrew Comeau      |        150 |
 |       3 | Database Management Systems | Raghu Ramakrishnan |        250 |
 |       4 | murach's MySQL              | Joel Murach        |        200 |
 +---------+-----------------------------+--------------------+------------+
 4 rows in set (0.00 sec)
 mysql> SELECT * FROM book WHERE Book_Price >= 150;
 +---------+-----------------------------+--------------------+------------+
 | Book_ID | Book_Name                   | Book_Author        | Book_Price |
 +---------+-----------------------------+--------------------+------------+
 |       1 | Learn MySQL                 | Abdul S            |        180 |
 |       2 | MySQL Explained             | Andrew Comeau      |        150 |
 |       3 | Database Management Systems | Raghu Ramakrishnan |        250 |
 |       4 | murach's MySQL              | Joel Murach        |        200 |
 +---------+-----------------------------+--------------------+------------+
 4 rows in set (0.00 sec) 

Kita bisa melihat ada empat record dengan Book_ID =1, 2, 3 dan 4 yang harganya lebih besar dari atau sama dengan 150. Maka semua kolom record tersebut akan ditampilkan.

  • Kurang dari atau sama dengan (<=)

Ketika operator kurang dari atau sama (<=) digunakan dengan klausa where, ia akan mengambil catatan tersebut dari tabel di mana pun nilai nama kolom yang ada dalam tabel lebih kecil atau sama dengan nilai nama kolom yang ditentukan dalam kueri.

Contoh:

Kami akan menerapkan klausa where dengan kueri SELECT untuk mengambil catatan tersebut dari tabel di mana harga buku kurang dari atau sama dengan 200.

 mysql> SELECT * FROM book;
 +---------+-----------------------------+--------------------+------------+
 | Book_ID | Book_Name                   | Book_Author        | Book_Price |
 +---------+-----------------------------+--------------------+------------+
 |       1 | Learn MySQL                 | Abdul S            |        180 |
 |       2 | MySQL Explained             | Andrew Comeau      |        150 |
 |       3 | Database Management Systems | Raghu Ramakrishnan |        250 |
 |       4 | murach's MySQL              | Joel Murach        |        200 |
 +---------+-----------------------------+--------------------+------------+
 4 rows in set (0.00 sec)
 mysql> SELECT * FROM book WHERE Book_Price <= 200;
 +---------+-----------------+---------------+------------+
 | Book_ID | Book_Name       | Book_Author   | Book_Price |
 +---------+-----------------+---------------+------------+
 |       1 | Learn MySQL     | Abdul S       |        180 |
 |       2 | MySQL Explained | Andrew Comeau |        150 |
 |       4 | murach's MySQL  | Joel Murach   |        200 |
 +---------+-----------------+---------------+------------+
 3 rows in set (0.00 sec) 

Ada tiga record dengan Book_ID =1, 2 dan 4 yang harganya kurang dari atau sama dengan 200. Oleh karena itu, semua kolom record tersebut ditampilkan.

  • Tidak Sama (<>)

Bila operator not equal(<>) digunakan dengan klausa where, ia akan mengambil record tersebut dari tabel di mana pun nilai nama kolom yang ditentukan dalam kueri tidak cocok dengan nilai nama kolom yang ada dalam tabel.

Contoh:

Kami akan menerapkan klausa where dengan query SELECT untuk mengambil record tersebut dari tabel dimana harga buku tidak sama dengan 250.

 mysql> SELECT * FROM book;
 +---------+-----------------------------+--------------------+------------+
 | Book_ID | Book_Name                   | Book_Author        | Book_Price |
 +---------+-----------------------------+--------------------+------------+
 |       1 | Learn MySQL                 | Abdul S            |        180 |
 |       2 | MySQL Explained             | Andrew Comeau      |        150 |
 |       3 | Database Management Systems | Raghu Ramakrishnan |        250 |
 |       4 | murach's MySQL              | Joel Murach        |        200 |
 +---------+-----------------------------+--------------------+------------+
 4 rows in set (0.00 sec)
 mysql> SELECT * FROM book WHERE Book_Price <> 250;
 +---------+-----------------+---------------+------------+
 | Book_ID | Book_Name       | Book_Author   | Book_Price |
 +---------+-----------------+---------------+------------+
 |       1 | Learn MySQL     | Abdul S       |        180 |
 |       2 | MySQL Explained | Andrew Comeau |        150 |
 |       4 | murach's MySQL  | Joel Murach   |        200 |
 +---------+-----------------+---------------+------------+
 3 rows in set (0.00 sec) 

Ada tiga record dengan Book_ID =1, 2 dan 4 yang harganya tidak sama dengan 250. Oleh karena itu, semua kolom record tersebut ditampilkan.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Model Data Pesta Anak-anak

  2. Serialisasi Penghapusan Dari Indeks Columnstore Clustered

  3. Cara Melacak Apa yang Dilakukan Pengguna

  4. Kejutan dan Asumsi Kinerja :DATEADD

  5. Apa itu Integrasi Musim Semi?