SQL DASAR BASIS DATA Rajif Agung Yunmar, S.Kom., M.Cs.
PRETEST Sebutkan apa yang disebut dengan SQL? Jelaskan! Apakah yang disebut sebagai batasan integritas (integrity constraint)? Sebutkan jenis-jenis integritas? Jelaskan! Apakah yang disebut dengan index? Jelaskan aturan penentuan dari sebuah index?
TUJUAN PERKULIAHAN Mahasiswa memahami prinsip pengolahan data pada perangkat lunak basis data yang ditentukan. Mahasiswa dapat menggunakan operasi SQL untuk untuk pengolahan data.
POKOK BAHASAN 1. SQL Dasar INSERT SELECT UPDATE DELETE 2. SELECT dengan Kriteria Operator Perbandingan Operator Logika Operator LIKE IN dan NOT IN BEETWEEN IS NULL 3. Studi Kasus
SQL SQL (Structure Query Language) adalah sebuah bahasa pemrograman aras tinggi yang menjadi standar untuk pengolahan data pada sebagian besar DBMS. Secara umum, terdapat dua kelompok penggunaan perintah SQL : Data Definition Language (DDL) Data Manipulation Language (DML)
DML Data Manipulation Language adalah perintah SQL yang digunakan untuk melakukan manipulasi terhadap objekobjek basis data. Contoh : SELECT, INSERT, UPDATE dan DELETE.
CONTOH KASUS SKEMA ERD kd_barang nama_barang stok tgl_kadaluarsa harga_jual Barang Memiliki Menyediakan buatlah format data, dan implementasikan dalam SQL! Kategori Pemasok kd_kategori nama_kategori kd_pemasok nama_pemasok alamat
CONTOH KASUS FORMAT DATA Tabel Barang Kolom Tipe Data Kunci kd_barang CHAR(3) Kunci Primer nama_barang VARCHAR(25) stok INT harga_jual FLOAT tgl_kadaluarsa DATE kd_pemasok CHAR(3) Kunci Tamu kd_kategori CHAR(3) Kunci Tamu Tabel Pemasok Kolom Tipe Data Kunci kd_pemasok CHAR(3) Kunci Primer nama_pemasok VARCHAR(25) kota VARCHAR(25) Tabel Kategori Kolom Tipe Data Kunci kd_kategori CHAR(3) Kunci Primer nama_kategori VARCHAR(25)
CONTOH KASUS SQL DDL CREATE TABLE pemasok ( kd_pemasok CHAR(3) NOT NULL, nama_pemasok VARCHAR(25) NOT NULL, kota VARCHAR(25) NULL, PRIMARY KEY(kd_pemasok) ) Engine=InnoDB; CREATE TABLE kategori ( kd_kategori CHAR(3) NOT NULL, nama_kategori VARCHAR(25) NOT NULL, PRIMARY KEY(kd_kategori) ) Engine=InnoDB;
CONTOH KASUS SQL DDL CREATE TABLE barang ( kd_barang CHAR(4) NOT NULL, nama_barang VARCHAR(25) NOT NULL, stok INT NOT NULL, harga_jual FLOAT NOT NULL, tgl_kadaluarsa DATE NOT NULL, kd_pemasok CHAR(3) NOT NULL, kd_kategori CHAR(3) NOT NULL, PRIMARY KEY (kd_barang), FOREIGN KEY (kd_pemasok) REFERENCES pemasok(kd_pemasok) ON UPDATE CASCADE ON DELETE RESTRICT, FOREIGN KEY (kd_kategori) REFERENCES kategori(kd_kategori) ON UPDATE CASCADE ON DELETE RESTRICT ) Engine=InnoDB;
SQL DML DASAR INSERT (menginput data) SELECT (menampilkan data) UPDATE (mengubah data) DELETE (menghapus data)
SQL DASAR INSERT Menginputkan data tertentu pada sebuah tabel. Format perintah: INSERT INTO <nama_tabel> (nama_kolom_1,...,nama_kolom_n) VALUES (nilai_1,...,nilai_n); Atau INSERT INTO <nama_tabel> (nama_kolom_1,...,nama_kolom_n) VALUES (nilai_a,...,nilai_n), (nilai_b,...,nilai_n), (nilai_c,...,nilai_n);
SQL DASAR INSERT Tabel Pemasok kd_pemasok nama_pemasok kota P22 PT Citra Jaya Bogor P33 PT Kartika Yogya P11 PT Amerta Bandung P44 PT Nidya Tangerang Tabel Kategori kd_kategori nama_kategori K01 Kue Basah K02 Kue Kering K03 Minuman K04 Snack Inputkan data tersebut diatas kedalam tabel!
SQL DASAR INSERT Tabel Barang kd_barang nama_barang stok harga_jual tgl_kadaluarsa kd_pemasok kd_kategori B001 Kacang Garuda 250 mg 75 18.000 22 Nov 2017 P22 K04 B002 Aqua 1500 ml 50 5.000 14 Sep 2017 P33 K03 B003 Sari Roti Coklat 14 12.500 05 Apr 2017 P11 K01 B004 Biskuat 100 mg 32 2.000 23 Jan 2018 P33 K02 B005 Fanta 600 ml 27 6.000 28 Ags 2017 P44 K03 B006 Mizone 600 ml 16 6.500 12 Ags 2017 P33 K03 B007 Tao Kae Noi 5 15.000 02 Feb 2018 P11 K04 Inputkan data tersebut diatas kedalam tabel!
SQL DASAR SELECT Menampilkan data tertentu dari sebuah (atau beberapa) tabel. Format perintah: SELECT nama_kolom_1,...,nama_kolom_n FROM <nama_tabel>
SQL DASAR SELECT Contoh : menampilkan semua data pada tabel pemasok. SELECT kd_pemasok,nama_pemasok,kota FROM pemasok Atau dapat juga: SELECT * FROM pemasok
SQL DASAR SELECT Contoh : menampilkan sebagian/beberapa kolom pada tabel pemasok. SELECT nama_pemasok,kota AS 'Kota Asal' FROM pemasok hasil nama_pemasok PT Citra Jaya PT Kartika PT Amerta PT Nidya Kota Asal Bogor Yogya Bandung Tangerang
SQL DASAR UPDATE Digunakan untuk mengubah data. Format: UPDATE <nama_tabel> SET nama_kolom_1='...',nama_kolom_2='...',...,nama_kolom_n='...' WHERE <klausa>; PERHATIAN: klausa WHERE harap selalu ditulis dengan jelas! Tanpa klausa WHERE, maka semua data akan terkena dampak pengubahan.
SQL DASAR UPDATE Ubahlah salah satu baris pada tabel Pemasok dan Kategori!
SQL DASAR DELETE Digunakan untuk menghapus data. Format: DELETE FROM <nama_tabel> WHERE <klausa>; PERHATIAN: klausa WHERE harap selalu ditulis dengan jelas! Tanpa klausa WHERE, maka semua data akan terkena dampak penghapusan.
SQL DASAR DELETE Hapuslah salah satu baris pada tabel Pemasok dan Kategori!
SQL DASAR SELECT DENGAN KRITERIA Menampilkan data tertentu berdasarkan kriteria yang ditentukan. Format perintah: SELECT nama_kolom_1,...,nama_kolom_n FROM <nama_tabel> WHERE <kriteria> Kriteria (disebut juga kondisi), pada klausa WHERE diatas dapat menggunakan operator logika maupun operator yang lain.
SELECT DENGAN KRITERIA Operator Perbandingan Operator Logika Operator LIKE IN dan NOT IN BEETWEEN IS NULL
OPERATOR PERBANDINGAN Seringkali disebut dengan operator relasional, banyak digunakan dalam klausa WHERE sebagai parameter dalam menampilkan data tertentu. Dapat juga digunakan untuk keperluan lain, misalnya percabangan, triger, prosedur, maupun fungsi.
OPERATOR PERBANDINGAN Jenis Operator Perbandingan Operator Keterangan = Sama denga > Lebih dari < Kurang dari >= Lebih besar atau sama dengan <= Lebih kecil atau sama dengan <> Tidak sama dengan Dari contoh data yang ada, berikan contoh kasus penggunaan operator perbandingan.
OPERATOR PERBANDINGAN Contoh: tampilkan data barang yang kd_pemasoknya adalah P33. SELECT * FROM barang WHERE kd_pemasok='p33'; Contoh: tampilkan data barang yang harga jualnya diatas 5.000. SELECT * FROM barang WHERE harga_jual > 5000;
OPERATOR BOOLEAN Digunakan untuk menghubungkan antara dua buah kriteria. Sedangkan operator NOT digunakan untuk pembalik keadaan kebenaran dari suatu kondisi. Jenis Operator Boolean Operator AND OR NOT Keterangan Menampilkan data-data yang memenuhi kedua kriteria yang diberikan. Menampilkan data-data yang memenuhi salah satu, atau kedua kriteria yang diberikan. Menampilkan data yang merupakan kebalikan dari kondisi yang diberikan.
OPERATOR BOOLEAN Dari contoh data yang ada, berikan contoh kasus penggunaan operator boolean.
OPERATOR LIKE Apabila diperlukan, sebuah informasi dapat ditampikan berdasarkan kemiripan kolom tertentu dengan sebuah string. Menggunakan operator LIKE.
OPERATOR LIKE Format umum: SELECT * FROM <nama_tabel> WHERE <nama_kolom> LIKE %sesuatu%'; Contoh: SELECT * FROM barang WHERE nama_barang LIKE %600ml%';
OPERATOR IN DAN NOT IN Menampilkan data tertentu dengan kolom yang mempunya nilai seperti yang tercantum pada operator IN dan NOT IN. Format umum: SELECT * FROM <nama_tabel> WHERE <nama_kolom> <IN NOT IN> (nilai_1,nilai_2);
OPERATOR IN DAN NOT IN Contoh: menampilkan mahasiswa dari provinsi tertentu SELECT * FROM mahasiswa WHERE asal_provnsi IN ('Bengkulu','Aceh','Riau','Jambi');
OPERATOR BEETWEEN Menampilkan data tertentu dengan kolom yang bernilai pada rentang tertentu. Format umum: SELECT * FROM <nama_tabel> WHERE <nama_kolom> BETWEEN <nilai_1> AND <nilai_2>; Contoh: SELECT * FROM barang WHERE harga_jual BETWEEN 5000 AND 10000;
OPERATOR IS NULL Menampilkan data tertentu dengan kolom bernilai NULL (atau tidak NULL). Format umum: SELECT * FROM <nama_tabel> WHERE <nama_kolom> <IS NULL IS NOT NULL>;
OPERATOR IS NULL Dalam memeriksa nilai sebuah kolom, kenapa tidak menggunakan Operator Perbandingan =??? SELECT * FROM mahasiswa WHERE no_telp IS NULL;
MENGURUTKAN DATA Pengurutkan data dengan kriteria yang dikehendaki. Pengurutan dapat dilakukan secara urut naik (ascending), maupun menurun (descending). Pengurutan dapat dilakukan berdasarkan satu, atau beberapa kolom. Menggunakan klausa ORDER BY.
MENGURUTKAN DATA Format umum: SELECT * FROM <nama_tabel> ORDER BY <nama_kolom> <ASC DESC>; Atau SELECT * FROM <nama_tabel> ORDER BY nama_kolom_1,...,nama_kolom_n <ASC DESC>; Pengurutan dilakukan pada nama_kolom_1, pengurutan pada nama_kolom_2 berdasarkan pada nama_kolom_1
STUDI KASUS kd_pemasok nama_barang tgl_kadaluarsa harga_jual Barang Memiliki Menyediakan buatlah format data, dan implementasikan dalam SQL! Kategori Pemasok kd_kategori nama_kategori kd_pemasok nama_pemasok alamat
STUDI KASUS Carilah beberapa persoalan atau pertanyaan yang mungkin muncul dari ERD yang diberikan. Presentasikan solusi dalam bentuk SQL secara bergantian! Mahasiswa dari kelompok lain dapat memberikan pertanyaan, kelompok presentasi menjawabnya dengan SQL.
TERIMA KASIH
PR Masukkan semua data riil pada tugas anda ke dalam basis data. Fikirkan beberapa persoalan atau pertanyaan yang mungkin muncul dalam kasus tugas anda. Buatlah solusinya menggunakan SQL. Susun dalam sebuah laporan beserta screenshotnya, dan presentasikan!