Belajar MySQL: Perintah SQL SELECT

posted in: Tutorial Pemrograman | 0

SQL SELECT Statement

Pernyataan SELECT digunakan untuk memilih data dari database.

SQL SELECT Sintaks

SELECT column_name,column_name FROM table_name;

dan

SELECT * FROM table_name;

Contoh SELECT Kolom
Pernyataan SQL berikut memilih kolom title dan description dari table film:


SELECT title, description FROM `film`;

Contoh SELECT *
Pernyataan SQL berikut memilih semua kolom dari table Customers:


SELECT * FROM film;

SQL SELECT DISTINCT Statement

Dalam table, kolom mungkin berisi banyak nilai ganda; dan kadang-kadang Anda hanya ingin menampilkan daftar nilai yang berbeda saja.  Untuk menampilkan kolom secara unik (hanya yang berbeda saja) dari nilai kolom yang memiliki nilai ganda.

SQL SELECT DISTINCT Sintaks
SELECT DISTINCT column_name,column_name
FROM table_name;

Contoh SELECT DISTINCT
Pernyataan SQL berikut dipakai untuk memilih kategori yang unik (hanya ditampilkan sekali) dari table film list:


SELECT DISTINCT category FROM film_list;

SQL WHERE Clause

Klausa WHERE digunakan untuk menampilkan record yang memenuhi kriteria tertentu saja.

Sintaks SQL WHERE
SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;

Contoh WHERE
Pernyataan SQL berikut memilih film yang termasuk dalam kategori Horror


SELECT * FROM film_list WHERE category="Horror"

SELECT * FROM film_list WHERE id=1

Text Fields vs. Numeric Fields

SQL memerlukan tanda kutip tunggal/ganda untuk nilai teks. Sedangkan untuk nilai angka, tidak perlu tanda kutip.

 

Operator WHERE

Operator berikut digunakan dalam klausa WHERE:

Operator Deskripsi
= Sama
<> Tidak Sama.
> Lebih Besar dari
< Kurang dari
>= Lebih Besar dari atau Sama
<= Kurang dari atau Sama
BETWEEN Antara rentang inklusif
LIKE Mencari Pola
IN Untuk menentukan beberapa nilai yang mungkin untuk kolom

Operator SQL AND & OR

Operator AND menampilkan record jika kedua kondisi pertama dan kondisi kedua adalah benar.
Operator OR menampilkan record jika salah satu kondisi pertama ATAU kondisi kedua benar.

Contoh Operator AND
Pernyataan SQL berikut memilih film dengan kategori Horror dengan Rating G


SELECT * FROM film_list

WHERE category="Horror" AND rating="G"

Contoh Operator OR
Pernyataan SQL berikut memilih semua film dari kategori Komedi sekaligus Family


SELECT * FROM film_list

WHERE category="Comedy" OR "Family"

Kombinasi AND & OR
Anda juga dapat menggabungkan AND dan OR dengan menggunakan kurung untuk membentuk ekspresi kompleks.

SELECT * FROM film_list

WHERE (category="Comedy" OR "Family") AND rating="G"

SQL ORDER BY Keyword

Kata kunci ORDER BY yang digunakan untuk menyortir hasil query berdasarkan satu kolom atau lebih.
Secara default, ORDER BY akan mengurutkan hasil secara naik (Ascending)

Untuk mengurut secara turun (Descending), gunakan kata kunci DESC

SQL ORDER BY Syntax
SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC|DESC;

 

Contoh ORDER BY
Pernyataan SQL berikut memilih semua diurut berdasarkan title


SELECT * FROM film_list ORDER BY title

Contoh ORDER BY DESC
Pernyataan SQL berikut memilih semua diurut berdasarkan title dengan urutan terbalik (mulai dari huruf “z”)


SELECT * FROM film_list ORDER BY title DESC

Contoh ORDER BY Beberapa Kolom


SELECT * FROM film_list ORDER BY title, rating DESC

SQL SELECT LIMIT

SELECT LIMIT digunakan untuk menentukan jumlah record yang tampil pada hasil.
SQL SELECT LIMIT Syntax

SELECT column_name(s)
FROM table_name
LIMIT [offset,] row_count

 

Contoh SELECT LIMIT
Query berikut akan menampilkan 5 hasil teratas

 

 SELECT * FROM film
 LIMIT 5;

Contoh SELECT LIMIT dengan OFFSET
Query berikut akan menampilkan 5 hasil teratas dimulai dari baris ke 10

 SELECT * FROM film
 LIMIT 10, 5;

SQL LIKE Operator

Operator LIKE digunakan untuk mencari pola dalam kolom sesuai dengan yang ditentukan.

Sintak SQL LIKE
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;

 

Contoh Operator SQL LIKE
Pernyataan SQL berikut memilih semua film dengan title mulai dari huruf “s”:


SELECT * FROM film
WHERE title LIKE 's%';

Tip: Tanda “%” digunakan untuk mendefinisikan wildcard (huruf hilang). Wildcard dapat digunakan sebelum dan sesudah pola.

Pernyataan SQL berikut memilih semua film diakhiri dengan huruf “s”:


SELECT * FROM film
WHERE title LIKE '%s';

Pernyataan SQL berikut memilih semua film yang title-nya berisi pola “land”:


SELECT * FROM film
WHERE title LIKE '%land%';

Kata kunci “NOT” digunakan untuk untuk memilih record yang TIDAK sesuai pola.

Pernyataan SQL berikut memilih semua film dengan title yang  tidak mengandung pola “land”:


SELECT * FROM film
WHERE title NOT LIKE '%land%';

SQL Wildcards

Sebuah karakter wildcard dapat digunakan untuk menggantikan karakter lain (s) dalam sebuah string.

 

Karakter SQL Wildcards

Dalam SQL, karakter wildcard digunakan dengan operator SQL LIKE.
SQL Wildcard digunakan untuk mencari data dalam table.
Berikut adalah daftar wildcard dalam SQL adalah:

Wildcard Deskripsi
% Sebuah pengganti nol atau lebih karakter
_ Sebuah pengganti satu karakter
[charlist] Sets dan ranges karakter untuk mencocokkan
[^charlist] or
[!charlist]
Pertandingan hanya karakter tidak ditentukan dalam kurung

Contoh Penggunaan SQL % Wildcard
Pernyataan SQL berikut memilih semua film dengan title dimulai kata “ber”:


SELECT * FROM film
WHERE title LIKE 'ber%';

Pernyataan SQL berikut memilih semua film dengan title mengandung pola “es”:


SELECT * FROM film
WHERE title LIKE '%es%';

Menggunakan SQL _ Wildcard

Pernyataan SQL berikut memilih semua film dengan title dimulai dengan karakter apapun, diikuti dengan ” ictory “:


SELECT * FROM city
WHERE City LIKE '_ictory';

 

Berikut adalah contoh lainnya

Memilih film dengan pola yang mengandung huruf L o on


SELECT * FROM film
WHERE title LIKE 'L_n_on';

Pernyataan SQL berikut memilih semua film dengan title dimulai dengan “b”, “s”, atau “p”:


SELECT * FROM film
WHERE title LIKE '[bsp]%';

Pernyataan SQL berikut memilih semua film dengan title dimulai dengan “a”, “b”, atau “c”:


SELECT * FROM film
WHERE title LIKE '[a-c]%';

Pernyataan SQL berikut memilih semua film dengan title TIDAK dimulai dengan “b”, “s”, atau “p”:


SELECT * FROM film
WHERE title LIKE '[!bsp]%';

atau


SELECT * FROM film
WHERE title NOT LIKE '[bsp]%';

Operator SQL IN

Operator IN memungkinkan Anda menentukan beberapa nilai sekaligus dalam klausa WHERE.

Nilai yang dimasukan dalam klausa WHERE dipisahkan dengan KOMA

Sintak SQL IN
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,…);

 

Contoh Operator IN
Pernyataan SQL berikut memilih semua film dengan rating PG dan G:


SELECT * FROM `film_list`

WHERE rating IN ('PG', 'G')

Operator SQL BETWEEN

Operator BETWEEN yang digunakan untuk memilih nilai-nilai dalam jangkauan BETWEEN. Nilai-nilai tersebut dapat berupa: angka, teks, atau tanggal.

Sintak SQL BETWEEN
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

Contoh Operator BETWEEN
Pernyataan SQL berikut memilih semua film dengan harga sewa antar 2 samai 3 (dollar):


SELECT * FROM `film_list`

WHERE price BETWEEN 2 AND 3

Contoh Operator NOT BETWEEN
Untuk menampilkan produk di luar jangkauan contoh sebelumnya, gunakan NOT BETWEEN:


SELECT * FROM `film_list`

WHERE price NOT BETWEEN 2 AND 3

Pernyataan SQL berikut memilih semua pembayaran dengan payment_date antara  1 Juni 2005 sampai denagn 30 Juni 2005:


SELECT * FROM `payment`

WHERE payment_date BETWEEN '2005-05-01' AND '2005-05-30'

SQL Alias

Alias ​​SQL digunakan untuk memberikan nama sementara pada table database atau kolom.
Tujuannya agar mudah dibaca, terutama untuk kolom-kolom yang berasal dari rumus/fungsi.

Sintak SQL Alias untuk Kolom
SELECT column_name AS alias_name
FROM table_name;

 

Sintak SQL Alias untuk Tabel
SELECT column_name(s)
FROM table_name AS alias_name;

 

Contoh Alias untuk Kolom Tabel
Berikut adalah contoh untuk membuat alias alamat bagi untuk daftar alamat customer_list, dengan menggabungkan data address, city, dan country.


SELECT CONCAT(address,", ",city,", ",country) as alamat FROM `customer_list`;

SQL Joins

Klausa  JOIN digunakan untuk menggabungkan record yang berasal dari dua atau lebih table, berdasarkan field yang sama diantara mereka.
Jenis yang paling umum dari bergabung adalah: SQL JOIN (INNER JOIN).

Sebuah SQL JOIN menghasilkan semua baris dari beberapa table di mana kondisi JOIN terpenuhi.

 

TIPE SQL JOINs

Ada beberapa jenis SQL JOIN berdasarkan record keluarannya:

  • INNER JOIN: Menghasilkan semua baris ketika ada setidaknya satu kecocokan di KEDUA table
  • LEFT JOIN: Menghasilkan semua baris dari table kiri, dan baris yang cocok dari table kanan
  • RIGHT JOIN: Menghasilkan semua baris dari table kanan, dan baris yang cocok dari table kiri
  • FULL JOIN: Menghasilkan semua baris ketika ada kecocokan dalam SATU dari table

 SQL INNER JOIN

INNER JOIN kata kunci memilih semua baris dari kedua table selama ada kecocokan antara kolom di kedua table

Syntak SQL INNER JOIN
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;

Atau :

SELECT column_name(s)
FROM table1
JOIN table2
ON table1.column_name=table2.column_name;

Catatan.  INNER JOIN adalah sama dengan JOIN.

belajar mysql innerjoin

Misalnya ada 2 table,yaitu City dan Country

belajar mysql innerjoin table city

Table City

belajar mysql innerjoin table country

Table Country

Kita dapat menjalanka perintah SQL JOIN untuk menampilkan nama kota dan negara sekaligus.

Perintahnya adalah sebagai berikut:

SELECT city, country FROM city

INNER JOIN country ON city.country_id=country.country_id

maka hasilnya adalah sebagai berikut:

belajar mysql innerjoin hasil

Catatan:

Kata kunci INNER JOIN hanya menampilkan baris yang memiliki kecocokan antar kolom. Baris lainnya akan disembunyikan.

SQL LEFT JOIN

Berbeda dengan INNER JOIN, SQL LEFT JOIN akan menampilkan semua baris dari table yang kiri, tapi hanya menampilkan yang sama saja dari table kanan. Tabel kanan yang tidak mempunyai pasangan dengan table kiri akan ditampilkan dengan nilai NULL.

Syntak SQL LEFT JOIN
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;

belajar mysql left join

Contoh SQL LEFT JOIN
Pernyataan SQL berikut akan menghasilkan semua pelanggan di table kiri dan pembayaran oleh pelanggan tersebut. Beberapa pelanggan yang  tidak pernah melakukan pembayaran, pada payment_date akan tampil sebagai NULL:

SELECT customer.customer_id, first_name, last_name, payment_date FROM customer

LEFT JOIN  payment ON payment.customer_id=customer.customer_id

ORDER BY payment_date

belajar mysql left join select

Catatan:

LEFT JOIN kata kunci menghasilkan semua baris dari table kiri (Customers), bahkan jika tidak ada kecocokan di table kanan (Pesanan).

SQL RIGHT JOIN

Pernyataan SQL RIGHT JOIN akan menampilkan semua baris dari table kanan, dan hanya yang cocok di tabel kiri. Baris table kiri yang tidak cocok/tidak ada, akan ditampilkan sebagai NULL.

Sintak SQL RIGHT JOIN
SELECT customer.customer_id, first_name, last_name, payment_date FROM payment

LEFT JOIN  customer ON payment.customer_id=customer.customer_id

ORDER BY payment_date

belajar mysql right join

Demo Database
Berikut adalah table Customers dari Northwind

OrderID CustomersID EmployeeID OrderDate ShipperID
10308 2 7 1996-09-18 3
10309 37 3 1996-09-19 1
10310 77 8 1996-09-20 2

Dan pilihan dari table “Karyawan”:

EmployeeID LastName FirstName BirthDate Photo Notes
1 Davolio Nancy 12/8/1968 EmpID1.pic Education includes a BA in psychology…..
2 Fuller Andrew 2/19/1952 EmpID2.pic Andrew received his BTS commercial and….
3 Leverling Janet 8/30/1963 EmpID3.pic Janet has a BS degree in chemistry….

Contoh SQL RIGHT JOIN
Pernyataan SQL berikut akan menghasilkan data semua rental, termasuk yang tidak ada paymentnya, ditandai oleh payment_date NULL


SELECT payment_date, rental.* FROM `payment`

RIGHT JOIN rental ON rental.rental_id=payment.rental_id

ORDER BY amount

 

Leave a Reply