Kumpulan Perintah Manipulasi Data SQL

Kumpulan Manipulasi Data SQL
Kumpulan Manipulasi Data SQL

MANIPULASI DATA DENGAN BANYAK KONDISI

Untuk menampilkan data dengan banyak kondisi dapat menggunakan operator logika yaitu: NOT, AND, OR, BETWEEN, LIKE, IN, SOME, ANY dan ALL. Untuk operator NOT, AND dan OR mempunyai kondisi logika dengan aturan baku. Pelajari selengkapnya bahasa SQL sebagai DML pada postingan ini.

Untuk memudahkan Anda dalam belajar dan praktek (Learn by Doing), maka saya asumsikan Anda telah mengimport database northwind. Tapi jika belum, silakan download DI SINI terlebih dahulu.

AND

Berikut adalah perintah SQL untuk menampilkan record pada tabel products yang memiliki CategoryID=2 dan SupplierID=2.
SELECT * FROM Products WHERE CategoryID=2 AND SupplierID=2;

SQL AND
SQL AND

OR

Berikut adalah perintah SQL untuk menampilkan record pada tabel products yang memiliki CategoryID=2 atau SupplierID=2.
SELECT * FROM Products WHERE CategoryID=2 OR SupplierID=2;

SQL OR
SQL OR

BETWEEN

Berikut adalah perintah SQL untuk menampilkan record pada tabel products yang memiliki UnitsInStock antara 20 sampai 50. Diluar batasan itu tidak ditampilkan.
SELECT * FROM Products WHERE UnitsInStock BETWEEN 20 AND 50;

SQL BETWEEN
SQL BETWEEN

Mengetahui Jumlah Omzet
SELECT
p.ProductName, SUM(od.Quantity) Terjual
FROM
products AS p JOIN order_details AS od
ON p.productID=od.productID
JOIN orders AS o
ON od.orderID=o.orderID
WHERE YEAR(o.OrderDate) BETWEEN 1996 AND 1997
GROUP BY 1

Query Mengetahui Jumlah Omzet
Query Mengetahui Jumlah Omzet

IN

Berikut adalah perintah SQL untuk menampilkan record pada suatu tabel, dengan cara menggunakan salah satu record sebagai referensi.

Contoh, saya pilih ProductID sebagai referensi SupplierID dan CategoryID untuk menampilkan data terkait. Sebenarnya contoh ini kurang pas, namun masih bisa untuk menjelaskan cara kerja perintah IN.
SELECT * FROM products WHERE ProductID IN (SupplierID,CategoryID);

SQL IN
SQL IN

MENGURUTKAN DATA (ORDER BY)

Mengurutkan record menggunakan perintah ORDER BY [ASC | DESC]. Pengurutan berlaku untuk tipe data string dan integer/numeric. Jika dalam pengurutan tidak disebutkan jenis pengurutannya maka decara default diset urut naik. Jika ada klausa WHERE maka order by diletakkan setelah WHERE.

1. Mengurutkan Secara Ascending (Naik)
SELECT * FROM products ORDER BY ProductName;

Secara default pengurutan (ORDER) SQL adalah ASCENDING. Meskipun sebenarnya dengan penulisan seperti ini juga bisa:
SELECT * FROM products ORDER BY ProductName ASC;

SQL Default Order ProductName (ASCENDING)
SQL Default Order ProductName (ASCENDING)

2. Mengurutkan Secara Descending (Turun)
SELECT * FROM products ORDER BY ProductName DESC;

SQL Order ProductName (DESCENDING)
SQL Order ProductName (DESCENDING)

3. Mengurutkan Dengan Prioritas Acuan
Contoh ini menggunakan SupplierID sebagai prioritas acuan, sehingga penempatannya harus paling kiri diantara acuan yang lain. Sedangkan CategoryID akan kami gunakan sebagai Acuan minoritas.
SELECT * FROM products ORDER BY SupplierID, CategoryID;

SQL Priority Order
SQL Priority Order 

4. Mengurutkan Dengan Descending dan Ascending
SELECT * FROM products ORDER BY SupplierID DESC, CategoryID;

SQL Order Descending - Ascending
SQL Order Descending - Ascending

5. Mengurutkan Dengan Ascending dan Descending
SELECT * FROM products ORDER BY SupplierID, CategoryID DESC;

SQL Order Ascending - Descending
SQL Order Ascending - Descending

6. Menampilkan nama depan dan belakang
SELECT TitleOfCourtesy,FirstName,LastName
FROM employees ORDER BY FirstName ASC;
Ascending untuk menampilkan nama depan dan belakang
Ascending untuk menampilkan nama depan dan belakang

PENGELOMPOKAN RECORD

Untuk menampilkan pengelompokan record gunakan GROUP BY. Kemampuan GROUP BY akan terlihat berbeda dengan ORDER BY manakala kita memanfaatkannya untuk keperluan Agregasi secara khusus pada kolom yang belum dikelompokkan.

Contoh:
Berikut akan kami tunjukan bagaimana cara mengetahui jumlah orderan yang perlu dikirim ke setiap negara.
SELECT COUNT(OrderID), ShipCountry FROM orders GROUP BY (ShipCountry);

SQL GROUP BY
SQL GROUP BY


Mengetahui Nama Pembeli
SELECT
c.ContactName,
s.CompanyName,
COUNT(O.ShipVia)Frequensi
FROM
orders AS O JOIN shippers AS s
ON s.ShipperID=O.ShipVia
JOIN customers AS c
ON c.CustomerID=O.CustomerID
group by 1,2

Query mengetahui nama pembeli
Query mengetahui nama pembeli

LIKE

Pembahasan lebih mendetail tentang Query LIKE bisa Anda simak di SQL Pencarian String.
Sepintas akan kami berikan contoh bagaimana menampilkan employees dengan nama depan diawali dengan huruf A:
SELECT TitleOfCourtesy,FirstName,LastName
FROM employees WHERE FirstName LIKE 'A%';

SQL LIKE - Acuan Awal String
SQL LIKE - Acuan Awal String

UPDATE

Tengok terlebih dahulu data yang ingin di update (Sebelum UPDATE).
SELECT ProductName,SupplierID,UnitsInStock
FROM products WHERE
SupplierID=1;
Data Sebelum Update

Proses Update
UPDATE products SET UnitsInStock=UnitsInStock+5
WHERE SupplierID=1;

Tengok kembali datanya,
Data Sesudah DiUPDATE
Data Sesudah DiUPDATE

COUNT

Menghitung jumlah data yang tersedia dengan kondisi SupplierID=1;
SELECT count(*) FROM products WHERE SupplierID=1;
Hasil Penghitungan Jumlah Record
Hasil Penghitungan Jumlah Record

Memberikan judul laporan sebagai "Jumlah"
SELECT count(*) AS Jumlah
FROM products WHERE
SupplierID=1;
Rename Judul Laporan
Rename Judul Laporan

LIMIT

Memberikan batasan dengan hanya menampilkan max 10 record secara random
SELECT TitleOfCourtesy,FirstName,LastName
FROM employees ORDER BY RAND() LIMIT 10;
Memberikan batasan - LIMIT 10 record
Memberikan batasan - LIMIT 10 record

Memberikan batasan dengan hanya menampilkan max 5 record
SELECT TitleOfCourtesy,FirstName,LastName
FROM employees ORDER BY FirstName ASC LIMIT 5;
Memberikan batasan - LIMIT 5 record
Memberikan batasan - LIMIT 5 record




Memberikan batasan dengan parameter;
LIMIT mulai_dari, jumlah_record

Di bawah ini akan saya berikan contoh menampilkan record employees yang dimulai dengan interval 3 dari urutan ke-1, hal itu sama saja dengan menampilkan record mulai dari urutan ke-4. Kemudian maksimal record yang ingin saya tampilkan adalah 3.

Perhatikan laporan employees di atas, interval 0 (urutan ke-1) ditempati oleh Andrew, berarti interval 3 (urutan ke-4) ditempati oleh Laura. 

SELECT TitleOfCourtesy,FirstName,LastName
FROM employees ORDER BY FirstName ASC LIMIT 3,4;
LIMIT interval,row
LIMIT interval,row


Posting Komentar

Lebih baru Lebih lama

نموذج الاتصال