Appearance
Meeting 8
pada materi meeting 6 kita sudah pernah membahas tentang SQL kali ini kita akan membahas lebih lanjut dan langsung pratik pada setiap query. pada kali ini kita akan membuat langsung tabel yang sudah kita buat desain pada pertemuan sebelumnya.
DDL (Data Definition Language)
Create Database
sql
CREATE DATABASE markplace;CREATE DATABASE markplace;Create Table
sql
CREATE TABLE product_categories(
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL
);CREATE TABLE product_categories(
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL
);sql
CREATE TABLE products(
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
product_category_id BIGINT UNSIGNED NOT NULL,
name VARCHAR(255) NOT NULL,
price BIGINT NOT NULL,
stock INT NOT NULL,
FOREIGN KEY (product_category_id) REFERENCES product_categories(id)
);CREATE TABLE products(
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
product_category_id BIGINT UNSIGNED NOT NULL,
name VARCHAR(255) NOT NULL,
price BIGINT NOT NULL,
stock INT NOT NULL,
FOREIGN KEY (product_category_id) REFERENCES product_categories(id)
);sql
CREATE TABLE tags(
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL
);CREATE TABLE tags(
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL
);sql
CREATE TABLE product_tags(
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
tag_id BIGINT UNSIGNED NOT NULL,
product_id BIGINT UNSIGNED NOT NULL,
FOREIGN KEY (tag_id) REFERENCES tags(id),
FOREIGN KEY (product_id) REFERENCES products(id)
);CREATE TABLE product_tags(
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
tag_id BIGINT UNSIGNED NOT NULL,
product_id BIGINT UNSIGNED NOT NULL,
FOREIGN KEY (tag_id) REFERENCES tags(id),
FOREIGN KEY (product_id) REFERENCES products(id)
);DML (Data Manipulation Language)
Insert
Operasi INSERT dalam SQL digunakan untuk menambahkan data baru ke dalam tabel database. Ini memungkinkan Anda untuk memasukkan satu atau beberapa baris data ke dalam tabel yang sudah ada.
sql
INSERT INTO product_categories (name) VALUES ('Electronic');INSERT INTO product_categories (name) VALUES ('Electronic');sql
INSERT INTO product_categories VALUES ('Sayuran'), ('Minuman');INSERT INTO product_categories VALUES ('Sayuran'), ('Minuman');Sebagai Latihan coba masukan data ke tabel
productsdantags
Select
Operasi SELECT dalam SQL digunakan untuk membaca atau mengambil data dari tabel database. Ini memungkinkan Anda untuk menampilkan data yang sudah ada dalam basis data.
sql
-- mengambil semua data dan semua attribute di table product_categories
SELECT * FROM product_categories;-- mengambil semua data dan semua attribute di table product_categories
SELECT * FROM product_categories;sql
-- mengambil semua data dan attribute name saja di table product_categories
SELECT name FROM product_categories;-- mengambil semua data dan attribute name saja di table product_categories
SELECT name FROM product_categories;Penjelasan Code
- Tanda
*berarti semua kolom - dapan mengambil spesific attribute atau kolom dengan mengganti
*dengan nama kolom
Update
Operasi UPDATE dalam SQL digunakan untuk memperbarui data yang sudah ada dalam sebuah tabel. Dengan operasi UPDATE, Anda dapat mengubah nilai-nilai dalam kolom-kolom tertentu untuk satu atau lebih baris data yang ada dalam tabel.
Kita coba melakukan operasi UPDATE pada tabel product_categories.
sql
UPDATE product_categories SET name = 'Elektronik' WHERE id = 1;UPDATE product_categories SET name = 'Elektronik' WHERE id = 1;Penjelasan Code
- Pernyataan
UPDATEdigunakan untuk mengubah data dalam tabelproduct_categories. - Kita menentukan tabel yang akan diperbarui, yaitu
product_categories - Dalam klausa
SET, kita menentukan kolom yang akan diperbarui dan nilai baru yang akan diberikan. Dalam contoh ini, kita mengubah nama kategori menjadiElektronik. - Klausa
WHEREdigunakan untuk menentukan kondisi di mana perubahan akan diterapkan. Dalam contoh ini, kita hanya mengubah kategori dengan ID 1. materiWHERElebih lengkap akan di bahas pada pembahasan selanjutnya.
Delete
Operasi DELETE dalam SQL digunakan untuk menghapus satu atau lebih baris data dari sebuah tabel. Dengan operasi DELETE, Anda dapat menghapus data yang tidak diperlukan atau sudah tidak relevan dalam tabel.
Kita coba melakukan operasi DELETE pada tabel product_categories.
sql
DELETE FROM product_categories WHERE id = 1;DELETE FROM product_categories WHERE id = 1;Penjelasan Code
- Pernyataan
DELETE FROMdigunakan untuk menghapus data dari tabelproduct_categories. - Klausa
WHEREdigunakan untuk menentukan kondisi di mana perubahan akan dihapus. Dalam contoh ini, kita hanya mengubah kategori dengan ID 1. materiWHERElebih lengkap akan di bahas pada pembahasan selanjutnya.
Where
Klausa WHERE dalam SQL digunakan untuk mengambil data yang memenuhi kondisi tertentu dari tabel database. Ini memungkinkan Anda untuk melakukan pemfilteran data berdasarkan nilai-nilai kolom atau kondisi tertentu.
Basic
Untuk memfilter hasil query kita bisa gunakan pernyataan WHERE, contoh:
- Mengambil Produk dengan Nama Tertentu
sql
SELECT * FROM products
WHERE name = 'Laptop';SELECT * FROM products
WHERE name = 'Laptop';- Mengambil Produk dengan Harga Lebih dari 500
sql
SELECT * FROM products
WHERE price > 500;SELECT * FROM products
WHERE price > 500;- Mengambil Produk dengan Stok Kurang dari 10
sql
SELECT * FROM products
WHERE stock < 10;SELECT * FROM products
WHERE stock < 10;Operator Logika
- AND
sql
SELECT * FROM products
WHERE price > 500 AND stock < 10;SELECT * FROM products
WHERE price > 500 AND stock < 10;- OR
sql
SELECT * FROM products
WHERE price > 1000 OR stock = 0;SELECT * FROM products
WHERE price > 1000 OR stock = 0;Detail Operator Logika
- Anda dapat menggunakan berbagai operator perbandingan seperti
=, <> (tidak sama dengan),<,>,<=,>=, dan sebagainya dalam klausaWHERE. - Operator logika seperti
AND,OR, danNOTdapat digunakan untuk menggabungkan beberapa kondisi.
LIKE
- Containt
sql
SELECT * FROM products
WHERE name LIKE '%Laptop%';SELECT * FROM products
WHERE name LIKE '%Laptop%';Penjelasan Code
Dalam contoh ini, %Laptop% adalah pola yang digunakan dalam klausa LIKE. Tanda % digunakan untuk mencocokkan teks apa pun yang mungkin muncul sebelum atau sesudah kata Laptop.
- Containt And Start From
sql
SELECT * FROM products
WHERE name LIKE 'Smart%';SELECT * FROM products
WHERE name LIKE 'Smart%';Penjelasan Code
Dalam contoh ini, Smart% adalah pola yang digunakan dalam klausa LIKE. Pola ini akan mencocokkan produk yang nama awalnya adalah Smart
- Containt And End With
sql
SELECT * FROM products
WHERE name LIKE '%Case';SELECT * FROM products
WHERE name LIKE '%Case';Penjelasan Code
Dalam contoh ini, %Case adalah pola yang digunakan dalam klausa LIKE. Pola ini akan mencocokkan produk yang nama mereka berakhir dengan kata Case
OrderBy
Klausa ORDER BY dalam SQL digunakan untuk mengurutkan hasil query berdasarkan satu atau beberapa kolom tertentu dalam tabel. Anda dapat mengurutkan data dalam urutan naik (ascending) atau turun (descending) sesuai kebutuhan.
sql
SELECT * FROM products
ORDER BY price ASC;SELECT * FROM products
ORDER BY price ASC;sql
SELECT * FROM products
ORDER BY price DESC;SELECT * FROM products
ORDER BY price DESC;sql
SELECT * FROM products
ORDER BY id DESC, price DESC;SELECT * FROM products
ORDER BY id DESC, price DESC;GroupBy
Klausa GROUP BY dalam SQL digunakan untuk mengelompokkan baris-baris data yang memiliki nilai yang sama dalam satu atau lebih kolom tertentu. Operasi ini berguna untuk menghitung atau melakukan agregasi pikada data yang telah delompokkan.
sql
SELECT name FROM products
GROUP BY name;SELECT name FROM products
GROUP BY name;Join
Klausa JOIN dalam SQL digunakan untuk menggabungkan data dari dua atau lebih tabel berdasarkan kolom-kolom yang memiliki nilai yang sama. Operasi ini memungkinkan Anda untuk mengambil data dari tabel terkait dan menggabungkannya menjadi satu hasil query.
INNER JOIN
INNER JOIN digunakan untuk menggabungkan baris-baris data dari dua tabel yang memiliki nilai yang cocok dalam kolom yang ditentukan dalam klausa ON. Hasil INNER JOIN hanya akan mencakup baris-baris yang memiliki kecocokan dalam kedua tabel.
sql
SELECT p.name, pc.name AS category
FROM products p
INNER JOIN product_categories pc ON p.product_category_id = pc.id;SELECT p.name, pc.name AS category
FROM products p
INNER JOIN product_categories pc ON p.product_category_id = pc.id;LEFT JOIN
LEFT JOIN akan menggabungkan semua produk dari tabel products dengan kategori yang sesuai dari tabel product_categories. Jika tidak ada kategori yang sesuai, kolom category akan berisi NULL
sql
SELECT p.name, pc.name AS category
FROM products p
LEFT JOIN product_categories pc ON p.product_category_id = pc.id;SELECT p.name, pc.name AS category
FROM products p
LEFT JOIN product_categories pc ON p.product_category_id = pc.id;RIGHT JOIN
RIGHT JOIN akan menggabungkan semua kategori dari tabel product_categories dengan produk yang sesuai dari tabel products. Jika tidak ada produk yang sesuai, kolom name produk akan berisi NULL.
sql
SELECT p.name, pc.name AS category
FROM products p
RIGHT JOIN product_categories pc ON p.product_category_id = pc.id;SELECT p.name, pc.name AS category
FROM products p
RIGHT JOIN product_categories pc ON p.product_category_id = pc.id;