290 likes | 440 Views
SQL (Structured Query Language). Pendahuluan SQL. Sistem basis data komersial menghendaki adanya sebuah bahasa query yang lebih user-friendly . Oleh karena itu dikenal SQL sebagai bahasa query yang marketable . SQL menggunakan kombinasi aljabar relasional & kalkulus relasional.
E N D
Pendahuluan SQL • Sistem basis data komersialmenghendakiadanyasebuahbahasaquery yang lebihuser-friendly. • Olehkarenaitudikenal SQL sebagaibahasaquery yang marketable. • SQL menggunakankombinasialjabarrelasional & kalkulusrelasional.
StrukturDasar SQL Sebuahekspresi SQL dasarterdiriatas 3 klausayaitu : - SELECT - FROM - WHERE
Klausaselectdigunakanuntukmenetapkandaftaratribut (field) yang diinginkansebagaihasil query • KlausaFROM digunakanuntukmenetapkanrelasi/tabelataugabungantabel yang akanditelusuriselama query data dilakukan • Klausawhere digunakansebagaipredikat (kriteria) yang harusdipenuhidalammemperolehhasil query Sifatklausa where opsional
Sintaks (format penulisan) dariekspresi SQL dasardengan 3 klausatersebutadalah : select A1 [, A2, …, An] FROM t1 [, t2, …, tm] [ where P ]
Keterangan : A1, A2, …, An merupakandaftaratribut t1, t2, …, tm merupakandaftartabelataurelasi P merupakanpredikat [ ] merupakantandaopsional (bolehdigunakan, bolehtidakdigunakan) tergantungkebutuhan
KlausaSELECT KlausainiberasosiasidenganoperasiProjeksidalamAljabarRelasional Contoh : Jikainginmenampilkan NPM danNamaMahasiswaditabelMahasiswamakaperintahnya SELECTNPM, nama FROMMahasiswa
Jikainginmelakukan query terhadapsemuaatributdapatdilakkandenganmenuliskansemuaatributsatu per satuataudenganmenggunakannotasi * SELECT * FROM mahasiswa
Perludiperhatikanuntukmelakukan query terhadap 2 tabelataulebihtabel-tabel yang menjadisumber query harusmemilikiketerhubungan yang diwakilidengankesamaannilai
Klausa FROM Klausainiberasosiasidenganoperasi Cartesian Product dalamAljabarRelasional Contoh : SELECT * FROM Mahasiswa, Jurusan WHERE Mahasiswa.KodeJurusan = Jurusan.KodeJurusan
Kita dapatmenggunakannama alias untuktabel-tabelpadaklausaFROM untukmenyederhanakanpenulisan Ekspresidiatasdapat pula dinyatakandengan : SELECT * FROM Mahasiswa M, Jurusan J WHERE M.KodeJurusan = J.KodeJurusan
Contoh Kasus: Tampilkantanggallahirdanalamatdaripegawai yang bernama “John” B Smith” SELECT BDATE, ADDRESS FROM EMPLOYEE WHERE FNAME = ‘John’ TampilkanNamadepandanalamatdarisemuapegawai yang bekerjauntuk dep. “Research” SELECT FNAME, ADDRESS FROM EMPLOYEE, DEPARTEMEN WHERE DNAME = 'Research' and EMPLOYEE.DNO = DEPARTMENT.DNO
TampilkanNomorproyek, nomor Departemen,Namaakhirpegawai, alamatdantanggallahirdarimanajer Depertemen yang membawahi Project yang berlokasi di “Stafford” SELECT PNO, DNO, LNAME, ADDRESS, BDATE FROM EMPLOYEE, PROJECT WHERE PLOCATION = 'Stafford' AND EMPLOYEE.DNO = PROJECT.DNO
Ambiquity 14
Ambiquity dari Atribut • Nama atribut boleh sama pada beberapa relation tabel, untuk menghindari dua arti dari atribut itu sendiri maka harus ditegaskan atribut tersebut dari relasi tabel apa, untuk itu penulisannya didahului dengan nama relasi dan diikuti dengan titik nama atributnya.
TampilkanNomorproyek, nomor Departemen,Namaakhirpegawai, alamatdantanggallahirdarimanajer Depertemen yang membawahi Project yang berlokasi di “Stafford” SELECT PNO, DNO, LNAME, ADDRESS, BDATE FROM EMPLOYEE, PROJECT WHERE PLOCATION = 'Stafford' AND EMPLOYEE.DNO = PROJECT.DNO
Ambiquity juga dapat terjadi pada query yang memanggil tabel relasi yang sama sebanyak dua kali, dalam kasus ini diberi nama Alias.
Contoh : Tampilkansetiapnamapegawaidan namasupervisinya SELECT E.FNAME, E.MINIT, E.LNAME, S.FNAME, S.MINIT, S.LNAME FROM EMPLOYEE E, EMPLOYEE S WHERE S.ESSN = E.SUPERSSN
Alias dapatjugadigunakanuntukmempersingkatpenulisannamarelasi • Contoh : Tampilkannamasetiappegawai yang mempunyaitanggungandengan sex yang sama. SELECT E.FNAME, E.MINIT, E. LNAME FROM EMPLOYEE E, DEPENDENT D WHERE E.ESSN = D.ESSN AND E.SEX = D.SEX
KlausaFROM SELECT customer-name, borrower.loan-number FROM borrower, loan WHERE borrower.loan-number = loan.loan.number
KlausaWHERE KlausainiberasosiasidenganoperasiSeleksidalamAljabarRelasional Klausainibolehtidakdigunakan yang artinya query dilakukanuntuksemua record didalamtabel yang disebutkanpadaklausaFROM SQL menggunakankonektivitaslogikaAND, OR danNOT dalamklausaWHERE.
Operator yang dapatdigunakan : = menyatakankesamaan < > menyatakanketidaksamaan < = menyatakanlebihkecilatausama > = menyatakanlebihbesaratausama < menyatakanlebihkecil > menyatakanlebihbesar Operator Logika yang dapatdigunakan (and, or)
KlausaWHERE • Contoh : jikainginmenemukanHOURS yang jam kerjanyaantara 10.0 dan 30.0, ditulissebagaiberikut : SELECT HOURS FROM Works_On WHERE HOURS between '10.0' and '30.0'
Pemakaian * 24
Pemakaian ‘*’ • Untukmenampilkansemuanilai field (atribut) darirekord yang dipilih, jaditidakperlumenuliskansatupersatunamafieldnya, tetapicukupdigantidenganmenuliskan ‘*’ (asterisk) padaklausa SELECT. • Contoh : Tampilkansemuanilaiatribut (field) dariRekord EMPLOYEE yang bekerjapada DNO nya 5. SELECT * FROM EMPLOYEE WHERE DNO = 5
Contoh lain • Tampilkansemuanilaiatribut (field) dariSemuakombinasi field yang mungkin (CARTESIAN PRODUCT) dari File Employee dan file Departement. SELECT * FROM EMPLOYEE, DEPARTEMENT
Distinct 27
Pemakaian DISTINCT • Ketikaakandimunculkansetiap field untuksemua record, SQL tidakdapatmembedakanadanyanilai field yang sama, yang jelassemuaakanditampilkan, untukmencegahtampilnyanilai field yang sama (duplikasi) makapadapenulisan SQL ditambahkandengan DISTINCT. Contoh : • Tampilkangajisemuapegawai. SELECT SALARY FROM EMPLOYEE
Contoh lain • Tampilkangajisemuapegawai, tetapigaji yang samahanyaditampilkansatu kali. SELECT DISTINCT(SALARY) FROM EMPLOYEE Hasil yang ditampilkanhanyagaji yang berbeda.