SQL
Basis Data-1
C H A P T E R
11
SQL - Basic
Copyright © 2005 PENS-ITS
SQL
Basis Data-1
Objectives
Tujuan: Mengenal dan memahami struktur dasar perintah SQL Database
Copyright © 2005 PENS-ITS
SQL
Basis Data-1
S Q L - Pendahuluan •
•
• •
Bahasa user yang meminta pada database untuk menyediakan suatu data yang diperlukan adalah tipe bahasa khusus yang disebut dengan Structured Query Language, atau disingkat dengan SQL atau "sequel." SQL adalah bahasa fungsional, yaitu suatu bahasa yang memungkinkan user untuk menentukan tipe dari sesuatu yang ingin mereka dapatkan. Bahasa fungsional tersebut tidak sama dengan bahasa pemrograman yang lain semisal C++ atau COBOL. Bahasa-bahasa tersebut disebut sebagai bahasa ‘prosedural’ karena membutuhkan penulisan program atau prosedur untuk mendapatkan suatu informasi.
Copyright © 2005 PENS-ITS
SQL
Basis Data-1
S Q L - Pendahuluan •
•
Sebaliknya, SQL secara eksplisit mendefinisikan hasil akhir yang diinginkan, sedangkah metode untuk mendapatkan data tersebut dilakukan sendiri oleh database. Pemilihan data dapat dilakukan dengan menggunakan contoh kode seperti berikut : SELECT * FROM emp WHERE empid = 39334;
•
•
Statement SQL diatas meminta untuk menyediakan semua data dari table EMP dimana nilai yang diminta ada pada kolom EMPID yang berisi nilai 39334. Sedangkan Blok kode berikut ini adalah bahasa pemrograman prosedural yang mengilustrasikan fungsi yang sama dengan statement SQL diatas. Copyright © 2005 PENS-ITS
SQL
•
Basis Data-1
S Q L - Pendahuluan Sedangkan Blok kode berikut ini adalah bahasa pemrograman prosedural yang mengilustrasikan fungsi yang sama dengan statement SQL diatas.
Copyright © 2005 PENS-ITS
SQL
Basis Data-1
Konsep Dasar SQL Query •
• •
Bentuk SQL Query umum: SELECT [DISTINCT] < attribute-list > FROM < table-list > WHERE < condition> Attribute- list: adalah daftar nama atribut yang berada dalam table-list dan nilainya didapatkan melalui query. Table- list: adalah daftar relasi yang memiliki nama (dengan domain
variabel pada tiap nama yang diberikan) untuk memproses query. • •
Condition: adalah statemen pembandingan dalam SQL Query yang mengkombinasikan operator pembandingan AND, OR dan NOT. Sedangkan DISTINCT adalah keyword yang bersifat optional (boleh ditulis, boleh tidak) yang mengindikasikan suatu hasil query yang tidak memiliki duplikat. Secara default, didapatkan duplikasi pada hasil query (tanpa distinct). Copyright © 2005 PENS-ITS
SQL
Basis Data-1
Konsep Dasar SQL Query •
Dalam SQL, terdapat operator dasar pembanding: =, <, <=, >, >= dan <>
Berikut contoh SQL Query: 1. Tampilkan tanggal lahir dan alamat dari semua pegawai yang bernama ‘John B. Smith’. SELECT BDATE, ADDRESS FROM EMPLOYEE WHERE FNAME = ‘John’ AND MINIT = ‘B’ AND LNAME = ‘Smith’;
Sama juga pada ekspresi aljabar relasional: πBDATE,ADDRESS(σFNAME=‘John’ AND MINIT
= ‘B’ AND LNAME = ‘Smith’
(EMPLOYEE))
Copyright © 2005 PENS-ITS
SQL
Basis Data-1
Konsep Dasar SQL Query 2. Tampilkan nama dan alamat dari semua pegawai yang bekerja pada department ‘Research’. SELECT FNAME,LNAME,ADDRESS FROM EMPLOYEE,DEPARTMENT WHERE DNAME = ‘Research’ AND DNUMBER = DNO;
Sama juga pada ekspresi aljabar relasional: RESEARCH_DEPT ? σDNAME=‘Research’ (DEPATMENT) RESEARCH_EMPS ? (RESEARCH_DEPT DNUMBER=DNO (EMPLOYEEs) RESULT ? πFNAME,LNAME,ADDRESS (RESEARCH_EMPS)
Copyright © 2005 PENS-ITS
SQL
Basis Data-1
Konsep Dasar SQL Query 3. Untuk setiap project yang berlokasi di ‘Stafford’, tampilkan nomor project, nomor department yang mengontrol, last name manager department, alamat dan tgl lahir. SELECT PNUMBER, DNUM, LNAME, ADDRESS, BDATE FROM PROJECT, DEPARTMENT, EMPLOYEE WHERE DNUM = DNUMBER AND MGRSSN = SSN AND PLOCATION = ‘Stafford’;
Sama juga pada ekspresi aljabar relasional: ….ada di tugas kemarin… ;-)
Copyright © 2005 PENS-ITS
SQL
Basis Data-1
Penggunaan Alias pada SQL Query •
• •
Nama Alias diperlukan jika terdapat field dengan nama yang sama, muncul pada statemen perbandingan yang terdapat pada klausa WHERE. Penggunaan nama alias penting sekali dan hampir selalu digunakan. Berikut ini SQL Query yang menggunakan nama alias :
Menampilkan nama dan alamat dari semua pegawai yang bekerja pada department ‘Research’. SELECT FNAME,LNAME,ADDRESS FROM EMPLOYEE, DEPARTMENT WHERE DEPARTMENT.DNAME = ‘Research’ AND DEPARTMENT.DNUMBER = EMPLOYEE.DNUMBER; ATAU: SELECT FNAME,LNAME,ADDRESS FROM EMPLOYEE E, DEPARTMENT D WHERE D.DNAME = ‘Research’ AND D.DNUMBER =E.DNUMBER; Copyright © 2005 PENS-ITS
SQL
Basis Data-1
Konsep Dasar SQL Query •
Sedangkan DISTINCT adalah keyword yang bersifat optional (boleh ditulis, boleh tidak) yang mengindikasikan suatu hasil query yang tidak memiliki duplikat. Secara default, didapatkan duplikasi pada hasil query (tanpa distinct).
Copyright © 2005 PENS-ITS
SQL
Basis Data-1
Konsep Dasar SQL Query •
Bentuk SQL Query umum: SELECT [DISTINCT] < attribute-list > FROM < table-list > WHERE < condition>
Copyright © 2005 PENS-ITS
SQL
Basis Data-1
ALJABAR RELASIONAL TUGAS: (Dikumpulkan Minggu Depan) 1. Cari no pegawai, nama pegawai dan alamat untuk semua pegawai yang memiliki hubungan keluarga. 2. Cari nama dan alamat untuk semua pegawai yang bekerja pada departemen “Research”. 3. Tampilkan nomor project, nomor department, nama manager department, alamat dan tanggal lahir, untuk project yang berlokasi di “Stafford”. 4. Cari nama pegawai yang bekerja pada semua project yang dikontrol oleh nomor department 5.
Copyright © 2005 PENS-ITS