Skip to content

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 products dan tags

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 UPDATE digunakan untuk mengubah data dalam tabel product_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 menjadi Elektronik.
  • Klausa WHERE digunakan untuk menentukan kondisi di mana perubahan akan diterapkan. Dalam contoh ini, kita hanya mengubah kategori dengan ID 1. materi WHERE lebih 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 FROM digunakan untuk menghapus data dari tabel product_categories.
  • Klausa WHERE digunakan untuk menentukan kondisi di mana perubahan akan dihapus. Dalam contoh ini, kita hanya mengubah kategori dengan ID 1. materi WHERE lebih 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 klausa WHERE.
  • Operator logika seperti AND, OR, dan NOT dapat 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;