1 Bab 3 Structured Query Language (SQL) Basis Data Sistem Basis Data : Perancangan, Implementasi dan Manajemen
Basis Data 1 Pengenalan SQL SQL Berfungsi sebagai bahasa query interaktif sekaligus juga sebagai bahasa pemrograman basis data. SQL meliputi: Definisi data Manipulasi data SQL relatif mudah untuk dipelajari SQL standar bentuk penulisannya mengikuti aturan ANSI.
3 Tipe Data SQL Tipe Data Format Basis Data Numeric NUMBER(Panjang,Des) INTEGER SMALLINT DECIMAL(Panjang,Des) Character CHAR(Panjang) VARCHAR(Panjang) Date DATE
Gambar 3.1. Relasi antara WALI dan MAHASISWA Basis Data 3 Perintah Definisi Data Model Basis Data. Contoh basis data sederhana - Nama basis data PERWALIAN, terdiri dari dua buah tabel yaitu WALI dan MAHASISWA. Setiap mahasiswa dibimbing oleh seorang dosen wali. Seorang dosen wali memiliki beberapa orang mahasiswa bimbingan. 1 M WALI Membimbing MAHASISWA Gambar 3.1. Relasi antara WALI dan MAHASISWA Gambar 3.1.
Perintah Definisi Data Basis Data 3 Perintah Definisi Data Tabel WALI berisi data: Kode wali nama wali Nomor induk pegawai Pangkat / jabatan fungsional Tabel MAHASISWA berisi data: Nomor mahasiswa Nama mahasiswa SKS yang ditempuh Indeks Prestasi Kumulatif (IPK)
Perintah Definisi Data Basis Data 3 Perintah Definisi Data Tabel 3.1. Kamus Data untuk Basis Data PERWALIAN
Perintah Definisi Data Basis Data 3 Perintah Definisi Data Membuat Struktur Basis Data CREATE SCHEMA AUTORIZATION <creator>; Contoh: CREATE SCHEMA AUTORIZATION RONALD; CREATE DATABASE <nama database>; CREATE DATABASE PERWALIAN;
Perintah Definisi Data Basis Data 3 Perintah Definisi Data Membuat Struktur Tabel CREATE TABEL <nama tabel>( <nama atribut1 dan karakteristik atribut1, nama atribut2 dan karakteristik atribut2, nama atribut3 dan karakteristik atribut3, primary key, foreign key>);
Perintah Definisi Data Basis Data 3 Perintah Definisi Data Contoh: CREATE TABEL WALI (KD_WALI INTEGER(2) NOT NULL UNIQUE, NIP CHAR(9) NOT NULL, NAMA VARCHAR(24) NOT NULL, JBT_FNG VARCHAR(15) PRIMARY KEY (KD_WALI));
Perintah Definisi Data Basis Data 3 Perintah Definisi Data Contoh: CREATE TABEL MAHASISWA (NOMHS CHAR(9) NOT NULL UNIQUE, NAMA VARCHAR(22) NOT NULL, SKS INTEGER(2) NOT NULL, IPK DECIMAL(4,2) NOT NULL, KD_WALI INTEGER(2) NOT NULL, PRIMARY KEY (NOMHS), FOREIGN KEY KD_WALI (KD_WALI) REFERENCES WALI ON DELETE RESTRICT ON UPDATE CASCADE);
Perintah Definisi Data Basis Data 3 Perintah Definisi Data Batasan Integritas SQL Integritas Entitas PRIMARY KEY (Kunci Utama) NOT NULL and UNIQUE Integritas Referensial FOREIGN KEY ON DELETE ON UPDATE
Basis Data 3 Perintah SQL Tabel 3.2. Cakupan Perintah SQL
3 Manajemen Data Dasar Pemasukan Data Basis Data INSERT INTO <nama tabel> VALUES(harga atribut1, harga atribut2, . . . . dan seterusnya); Contoh: INSERT INTO WALI VALUES (5, ‘095065123’, ’ Ir. Satriyo Madya, MSc.’, ’Lektor Kepala’); INSERT INTO MAHASISWA VALUES (‘111900555’, ’ Siswanto’, 18, 2.48, 5);
Gambar 3.1. Form input data wali Basis Data 3 Form Input Data Wali Gambar 3.1. Form input data wali Gambar 3.1.
3 Manajemen Data Dasar Menyimpan Isi Tabel Menampilkan Isi Tabel Basis Data 3 Manajemen Data Dasar Menyimpan Isi Tabel COMMIT <nama tabel>; Contoh: COMMIT WALI; Menampilkan Isi Tabel SELECT <daftar atribut> FROM <nama tabel> WHERE <kondisi>; SELECT * FROM WALI;
3 Manajemen Data Dasar Mengedit Isi Tabel Mengembalikan Isi Tabel Basis Data 3 Manajemen Data Dasar Mengedit Isi Tabel UPDATE <nama tabel> SET <atribut> = <harga baru> WHERE <kondisi>; Contoh: UPDATE WALI SET KD_WALI=7 WHERE KD_WALI=5; Mengembalikan Isi Tabel ROLLBACK;
3 Manajemen Data Dasar Menghapus Record (Baris Tabel) Basis Data DELETE FROM <nama tabel> WHERE <kondisi>; Contoh: DELETE FROM WALI WHERE KD_WALI=2; DELETE FROM WALI WHERE FUNGSIONAL=‘Lektor’; DELETE FROM WALI WHERE NIP=‘095067120’; DELETE FROM MAHASISWA WHERE IPK<2.00;
3 QUERIES Menampilkan Sebagian Isi Tabel Basis Data SELECT <daftar atribut> FROM <nama tabel> WHERE <kondisi>; Contoh: SELECT NIP, NAMA FROM WALI WHERE JBT_FNG=‘Lektor’; SELECT KD_WALI, NIP FROM WALI WHERE JBT_FNG=‘Asisten Ahli’;
Basis Data 3 QUERIES Mathematical Operators
3 QUERIES Basis Data Contoh: SELECT KD_WALI, NIP, NAMA FROM WALI WHERE JBT_FNG<>‘Lektor’; SELECT NIP, NAMA, JBT_FNG FROM WALI WHERE KD_WALI>5; SELECT NOMHS, NAMA, SKS FROM MAHASISWA WHERE IPK>2.5; SELECT NOMHS, NAMA, IPK FROM MAHASISWA WHERE SKS<18;
3 QUERIES Basis Data Contoh: SELECT NOMHS, NAMA, SKS FROM MAHASISWA WHERE IPK>3.00 AND SKS>20; SELECT NOMHS, NAMA, IPK FROM MAHASISWA WHERE SKS<18 OR IPK<2.00;
3 QUERIES Basis Data Special Operators BETWEEN - used to define range limits. IS NULL - used to check whether an attribute value is null LIKE - used to check for similar character strings. IN - used to check whether an attribute value matches a value contained within a (sub)set of listed values. EXISTS - used to check whether an attribute has a value. In effect, EXISTS is the opposite of IS NULL.
3 QUERIES Basis Data BETWEEN digunakan untuk menentukan range nilai Contoh: SELECT * FROM MAHASISWA WHERE IPK BETWEEN 2.00 AND 3.00; WHERE IPK>=2.00 AND IPK<= 3.00;
Basis Data 3 QUERIES IS NULL digunakan untuk mengecek apakah suatu atribut bernilai kosong (NULL) Contoh: SELECT * FROM WALI WHERE JBT_FNG IS NULL; FROM MAHASISWA WHERE ALAMAT IS NULL;
Basis Data 3 QUERIES LIKE digunakan untuk mengecek apakah suatu atribut mengandung string/ karaker yang mirip Contoh: SELECT * FROM WALI WHERE NAMA LIKE ‘%SANTO%’; FROM MAHASISWA WHERE ALAMAT LIKE ‘KOMPLEK%;
Basis Data 3 QUERIES IN digunakan untuk mengecek apakah suatu nilai suatu atribut terdapat dalam suatu daftar himpunan nilai Contoh: SELECT * FROM WALI WHERE JBT_FNG IN (‘ASISTEN AHLI’, ‘LEKTOR’); FROM MAHASISWA WHERE IPK IN (2.00, 2.50, 3.00, 3.50);
Basis Data 3 QUERIES EXIST digunakan untuk mengecek apakah suatu atribut memiliki nilai. Contoh: SELECT * FROM WALI WHERE JBT_FNG EXIST; FROM MAHASISWA WHERE ALAMAT EXIST;
Basis Data 3 QUERIES DISTINCT digunakan untuk menghilangkan duplikasi pada saat menampilkan data. Contoh: SELECT DISTINCT JBT_FNG FROM WALI SELECT DISTINCT NILAI FROM NILAIMHS TOP n digunakan untuk menampilkan data sebanyak n baris pertama. SELECT TOP 10 NAMA, NIP FROM WALI SELECT TOP 10 NOMHS, NAMA, IPK FROM MAHASISWA
Basis Data 3 QUERIES GROUP BY digunakan untuk mengelompokkan data berdasarkan item tertentu. Contoh: SELECT KD_BARANG, SUM(STOCK) FROM BARANG GROUP BY KD_BARANG SELECT KD_BARANG, HARGA, SUM(STOCK) FROM BARANG WHERE HARGA<=5000 GROUP BY KD_BARANG, HARGA HAVING digunakan untuk memfilter baris-baris hasil dari pengelompokkan. FROM BARANG GROUP BY KD_BARANG, HARGA HAVING SUM(STOCK)<=10
3 QUERIES Fungsi-fungsi aggregate yang biasa digunakan: Basis Data SUM() AVG() COUNT(*) MAX() MIN()
Contoh tabel keterhubungan (1) MHS NPM Nama Alamat 10296832 Nurhayati Jakarta 10296126 Astuti 31296500 Budi Depok 41296525 Prananingrum Bogor 50096487 Pipit Bekasi 21196353 Quraish Basis Data Relasional
Contoh tabel keterhubungan (2) MKUL KDMK MTKULIAH SKS KK021 P. Basis Data 2 KD132 SIM 3 KU122 Pancasila Basis Data Relasional
Contoh tabel keterhubungan (3) NILAI NPM KDMK MID FINAL 10296832 KK021 60 75 10296126 KD132 70 90 31296500 55 40 41296525 KU122 80 21196353 50095487 30 Basis Data Relasional
3 LATIHAN Basis Data Bagaimana Perintah SQL untuk : Membuat tabel MHS Memasukkan data pada tabel MKUL Menampilkan data mahasiswa yang tinggal di Jakarta Menampilkan data mahasiswa yang nama mahasiswa berawalan huruf B Menampilkan data mata kuliah yang mempunyai sks = 3 Menampilkan data mata kuliah yang nama mata kuliah berawalan huruf P
Basis Data 3 QUERIES