Basis Data
Structured Query Language (SQL)
Basis Data
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.
Basis Data
Tipe Data SQL Tipe Data
Format
Numeric
NUMBER(Panjang,Des) INTEGER SMALLINT DECIMAL(Panjang,Des)
Character
CHAR(Panjang) VARCHAR(Panjang)
Date
DATE
Basis Data
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
WALI
M
Membimbing
MAHASISWA
Gambar 3.1. Relasi antara WALI dan MAHASISWA
Basis Data
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) Kode wali
Basis Data
Perintah Definisi Data Tabel 3.1. Kamus Data untuk Basis Data PERWALIAN Nama Tabel
Nama Atribut
Mahasiswa Nomhs Nama SKS IPK Kd_Wali Wali
Kd_Wali NIP Nama Jbt_Fng
Uraian
Tipe
Format
Nomor mhs Nama mhs Jumlah SKS IP.Kumulatif Kode wali
Char(9) Varchar(22) Byte Number(4,2) Number(2)
999999999 Xxxxxxxxx 99 9.99 99
Kode wali No. Pegawai Nama wali Fungsional
Number(2) Char(9) Varchar(24) Varchar(15)
99 999999999 Xxxxxxxxx Xxxxxxxxx
Range PK/ Tabel FK Ref. PK 12-24 0.00-4.00 1-99
FK
1-99
PK
Wali
Basis Data
Perintah Definisi Data Membuat Struktur Basis Data CREATE SCHEMA AUTORIZATION
; • Contoh: CREATE SCHEMA AUTORIZATION RONALD;
CREATE DATABASE ; • Contoh: CREATE DATABASE PERWALIAN;
Basis Data
Perintah Definisi Data Membuat Struktur Tabel CREATE TABEL ( );
Basis Data
Perintah Definisi Data •
Contoh:
CREATE TABEL WALI (KD_WALI NIP NAMA
INTEGER(2) CHAR(9) VARCHAR(24)
JBT_FNG VARCHAR(15) PRIMARY KEY (KD_WALI));
NOT NULL NOT NULL, NOT NULL,
UNIQUE,
Basis Data
Perintah Definisi Data •
Contoh:
CREATE TABEL MAHASISWA (NOMHS CHAR(9) NAMA VARCHAR(22) SKS INTEGER(2) IPK DECIMAL(4,2) KD_WALI INTEGER(2) PRIMARY KEY (NOMHS),
NOT NULL NOT NULL, NOT NULL, NOT NULL, NOT NULL,
FOREIGN KEY KD_WALI (KD_WALI)
UNIQUE,
Basis Data
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
Perintah SQL Tabel 3.2. Cakupan Perintah SQL Perintah INSERT SELECT COMMIT
Penjelasan 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).
UPDATE
Berfungsi untuk melakukan perubahan data.
DELETE
Berfungsi untuk menghapus satu atau beberapa baris isi tabel. Berfungsi untuk mengembalikan isi tabel basis data ke bentuk aslinya, berdasarkan perintah COMMIT yang terakhir kali dilakukan.
ROLLBACK
Basis Data
Manajemen Data Dasar Pemasukan Data INSERT INTO VALUES(harga atribut1, harga atribut2, . . . . dan seterusnya); • Contoh: INSERT INTO WALI VALUES (5, ‘095065123’, ’ Ir. Satriyo Madya, MSc.’, ’Lektor Kepala’);
• Contoh: INSERT INTO MAHASISWA VALUES (‘111900555’, ’ Siswanto’, 18, 2.48, 5);
Basis Data Form Input Data Wali
Gambar 3.1. Form input data wali
Basis Data
Manajemen Data Dasar Menyimpan Isi Tabel COMMIT ; • Contoh: COMMIT WALI;
Menampilkan Isi Tabel SELECT FROM WHERE ; • Contoh: SELECT * FROM WALI;
Basis Data
Manajemen Data Dasar Mengedit Isi Tabel UPDATE SET = WHERE ; • Contoh: UPDATE WALI SET KD_WALI=7 WHERE KD_WALI=5;
Mengembalikan Isi Tabel ROLLBACK;
Basis Data
Manajemen Data Dasar Menghapus Record (Baris Tabel) DELETE FROM WHERE ; • 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;
Basis Data
QUERIES Menampilkan Sebagian Isi Tabel SELECT FROM WHERE ; • Contoh: 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 • 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;
Basis Data
QUERIES • 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;
Basis Data
QUERIES BETWEEN digunakan untuk menentukan range nilai • Contoh: 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) • Contoh: 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 • Contoh: 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 • Contoh: 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. • Contoh: SELECT * FROM WALI WHERE JBT_FNG EXIST; SELECT * FROM MAHASISWA WHERE ALAMAT EXIST;
Basis Data
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. • Contoh: 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. • 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. SELECT KD_BARANG, HARGA, SUM(STOCK) FROM BARANG GROUP BY KD_BARANG, HARGA HAVING SUM(STOCK)<=10