Basis Data Structured Query Language (SQL)
Pengenalan SQL Basis Data 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.
Basis Data Tipe Data SQL Tipe Data Numeric Character Date Format NUMBER(Panjang,Des) INTEGER SMALLINT DECIMAL(Panjang,Des) CHAR(Panjang) VARCHAR(Panjang) DATE
Perintah Definisi Data ModelBasisData. 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
Perintah Definisi Data Tabel WALI berisi data: Kodewali namawali Nomor induk pegawai Pangkat/ jabatan fungsional Basis Data Tabel MAHASISWA berisi data: Nomor mahasiswa Nama mahasiswa SKS yang ditempuh Indeks Prestasi Kumulatif (IPK) Kode wali
Perintah Definisi Data Basis Data Tabel 3.1. Kamus Data untuk Basis Data PERWALIAN Nama Tabel Nama Atribut Uraian Tipe Format Range PK/ FK Tabel Ref. Mahasiswa Nomhs Nomor mhs Char(9) 999999999 PK Nama Nama mhs Varchar(22) Xxxxxxxxx SKS Jumlah SKS Byte 99 12-24 IPK IP.Kumulatif Number(4,2) 9.99 0.00-4.00 Kd_Wali Kode wali Number(2) 99 1-99 FK Wali Wali Kd_Wali Kode wali Number(2) 99 1-99 PK NIP No. Pegawai Char(9) 999999999 Nama Nama wali Varchar(24) Xxxxxxxxx Jbt_Fng Fungsional Varchar(15) Xxxxxxxxx
Perintah Definisi Data MembuatStrukturBasisData Basis Data CREATE SCHEMA AUTORIZATION <creator>; CREATE SCHEMA AUTORIZATION RONALD; CREATE DATABASE <nama database>; CREATE DATABASE PERWALIAN;
Perintah Definisi Data MembuatStrukturTabel CREATE TABEL <nama tabel>( Basis Data <nama atribut1 dan karakteristik atribut1, nama atribut2 dan karakteristik atribut2, nama atribut3 dan karakteristik atribut3, primary key, foreign key>);
CREATE TABEL WALI Perintah Definisi Data Basis Data (KD_WALI INTEGER(2) NOT NULL UNIQUE, NIP CHAR(9) NOT NULL, NAMA JBT_FNG VARCHAR(24) NOT NULL, VARCHAR(15) PRIMARY KEY(KD_WALI));
CREATE TABEL MAHASISWA Basis Data (NOMHS CHAR(9) NOT NULL UNIQUE, NAMA Perintah Definisi Data 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)
Perintah Definisi Data BatasanIntegritasSQL Integritas Entitas Basis Data PRIMARY KEY(Kunci Utama) NOTNULLandUNIQUE Integritas Referensial FOREIGN KEY ON DELETE ON UPDATE
Basis Data Perintah SQL Tabel 3.2. Cakupan Perintah SQL Perintah Penjelasan INSERT SELECT COMMIT UPDATE DELETE Berfungsi untuk memasukkan data awal pada tabel atau dapat juga untuk menambah data. Berfungsi untuk menampilkan isi satu tabel atau beberapa tabel sekaligus. Berfungsi untuk menyimpan hasil pekerjaan kedalam media penyimpan (disk). Berfungsi untuk melakukan perubahan data. Berfungsi untuk menghapus satu atau beberapa baris isi tabel. ROLLBACK Berfungsi untuk mengembalikan isi tabel basis data ke bentuk aslinya, berdasarkan perintah COMMIT yang terakhir kali dilakukan.
Manajemen Data Dasar PemasukanData Basis Data INSERT INTO <nama tabel> VALUES(harga atribut1, hargaatribut2,...danseterusnya); INSERT INTO WALI VALUES (5, 095065123, Ir. Satriyo Madya, MSc., Lektor Kepala ); INSERT INTO MAHASISWA VALUES ( 111900555, Siswanto, 18, 2.48, 5);
Form Input Data Wali Basis Data Gambar 3.1. Form input data wali
MenyimpanIsiTabel COMMIT <nama tabel>; COMMIT WALI; Manajemen Data Dasar Menampilkan Isi Tabel Basis Data SELECT <daftar atribut> FROM <nama tabel> WHERE <kondisi>; SELECT * FROM WALI;
Manajemen Data Dasar MengeditIsiTabel UPDATE<nama tabel> SET <atribut> = <harga baru> WHERE <kondisi>; Basis Data UPDATE WALI SET KD_WALI=7 WHERE KD_WALI=5; Mengembalikan Isi Tabel ROLLBACK;
Manajemen Data Dasar Basis Data MenghapusRecord(BarisTabel) DELETE FROM <nama tabel> WHERE <kondisi>; 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;
Basis Data QUERIES MenampilkanSebagianIsiTabel SELECT <daftar atribut> FROM <nama tabel> WHERE <kondisi>; SELECT NIP, NAMA FROM WALI WHERE JBT_FNG= Lektor ; SELECT KD_WALI, NIP FROM WALI WHERE JBT_FNG= Asisten Ahli ;
Basis Data QUERIES Mathematical Operators
Basis Data QUERIES 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;
Basis Data QUERIES 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;
Basis Data QUERIES BETWEEN digunakan untuk menentukan range nilai SELECT * FROM MAHASISWA WHERE IPK BETWEEN 2.00 AND 3.00; SELECT * FROM MAHASISWA WHERE IPK>=2.00 AND IPK<= 3.00;
Basis Data QUERIES IS NULL digunakan untuk mengecek apakah suatu atribut bernilai kosong (NULL) SELECT * FROM WALI WHERE JBT_FNG IS NULL; SELECT * FROM MAHASISWA WHERE ALAMAT IS NULL;
Basis Data QUERIES LIKE digunakan untuk mengecek apakah suatu atribut mengandung string/ karaker yang mirip SELECT * FROM WALI WHERE NAMA LIKE %SANTO% ; SELECT * FROM MAHASISWA WHERE ALAMAT LIKE KOMPLEK%;
Basis Data QUERIES IN digunakan untuk mengecek apakah suatu nilai suatu atribut terdapat dalam suatu daftar himpunan nilai SELECT * FROM WALI WHERE JBT_FNG IN ( ASISTEN AHLI, LEKTOR ); SELECT * FROM MAHASISWA WHERE IPK IN (2.00, 2.50, 3.00, 3.50);
Basis Data QUERIES EXIST digunakan untuk mengecek apakah suatu atribut memiliki nilai. SELECT * FROM WALI WHERE JBT_FNG EXIST; SELECT * FROM MAHASISWA WHERE ALAMAT EXIST;
Basis Data DISTINCT digunakan untuk menghilangkan duplikasi pada saat menampilkan data. QUERIES 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 QUERIES GROUP BY digunakan untuk mengelompokkan data berdasarkan item tertentu. 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. SELECT KD_BARANG, HARGA, SUM(STOCK) FROM BARANG GROUP BY KD_BARANG, HARGA HAVING SUM(STOCK)<=10