SQL
Relasi dalam basisdata Perusahaan
Query 1 Dapatkan tanggal lahir dan alamat dari pegawai yang namanya ‘John B Smith’
Query 2 Dapatkan nama dan alamat dari semua pegawai yang bekerja pada departemen “Research”.
Query 3 Untuk setiap proyek yang berlokasi di “Stafford”, dapatkan nomor proyek, nomor departemen pengontrol dan nama akhir manager departemen, alamat dan tgl lahir.
Query 4 Dapatkan nama pegawai dan tanggal lahirnya beserta nama tanggungan dan tanggal lahirnya.
Query 5 Dapatkan semua nomor dan nama proyek yang mengandung pegawai dengan nama akhir ”Smith” sebagai pekerja proyek atau sebagai menager dari departemen yang mengontrol proyek.
SQL juga bisa terdapat query bersarang (nested). Dapatkan semua nomor dan nama proyek yang mengandung pegawai dengan nama akhir “Smith” sebagai pekerja proyek atau sebagai menager dari departemen yang mengontrol proyek.
Fungsi EXIST Fungsi EXIST dalam SQL digunakan untuk memeriksa apakah hasil dari suatu query bersarang yang berkorelasi adalah kosong (tidak ada tuple yan memenuhi) atau terdapat beberapa tuple yang memenuhi. Query 13 dapat ditulis lagi dengan fungsi EXISTS sebagai berikut Dapatkan nama dari tiap karyawan yang mempunyai tanggungan yang namanya sama deengan nama depan dari karyawan yang bersangkutan SELECT FNAME, LNAME FROM EMPLOYEE E WHERE EXIST (SELECT * FROM DEPENDENT WHERE E.SSN=ESSN AND E.FNAME=DEPENDENT_NAME)
Fungsi EXIST Query 15: Dapatkan nama dari karyawan yang tidak mempunyai tanggungan. SELECT FNAME, LNAME FROM EMPLOYEE WHERE NOT EXISTS (SELECT * FROM DEPENDENT WHERE SSN=ESSN) Dalam Query 15 query bersarang yang berkorelasi mendapatkan semua tuple dari relasi DEPENDENT yang berelasi dengan tiap tuple dari EMPLOYEE. Bila tidak ada yang exist maka tuple dipilih
Fungsi EXIST Query 16 : Dapatkan nama manager yang mempunyai paling sedikit satu tanggungan SELECT FNAME, LNAME FROM EMPLOYEE WHERE EXISTS (SELECT * FROM DEPENDENT WHERE SSN=ESSN) AND EXISTS (SELECT * FROM DEPARTMENT WHERE SSN=MGRSSN)
HIMPUNAN EKSPLISIT Dimungkinkan untuk menggunakan himpunan eksplisit dalam klausa WHERE dari pada memakai query bersarang Query 17: Dapatkan SSN dari karyawan yang bekerja pada project nomer 1,2, atau 3. SELECT DISTINCT ESSN FROM WORKS_ON WHERE PNO IN (1, 2, 3)
NULL dalam SQL SQL mengijinkan querie untuk menguji apakah nilainya NULL (hilang, tidak terdefinisi, atau tidak dapat diaplikasikan) SQL menggunakan IS atau IS NOT untuk membandingkan NULL karena tiap nilai NULL berbeda dengan nilai NULL yang lain, sehingga perbandingan kesamaan tidak cocok digunakan. Query 18: Dapatkan nama dari karyawan yang tidak mempunyai supervisor. SELECT FNAME, LNAME FROM EMPLOYEE WHERE SUPERSSN IS NULL Jika kondisi join ada, tuple dengan nilai NULL untuk atribut join tidak dimasukkan dalam hasil
Relasi Join Relasi join dapat ditentukan dalam klausa FROM Seperti relasi yang lain tetapi relasi ini adalah hasil join Pengguna dapat membuat spesifikasi tipe dari join yang diinginkan (regular "theta" JOIN, NATURAL JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN, CROSS JOIN, etc)
Relasi Join (Query 19) SELECT FNAME, LNAME, ADDRESS FROM EMPLOYEE, DEPARTMENT WHERE DNAME='Research' AND DNUMBER=DNO Dapat ditulis kembali menjadi : SELECT FNAME, LNAME, ADDRESS FROM (EMPLOYEE JOIN DEPARTMENT ON DNUMBER=DNO) WHERE DNAME='Research’ Atau menjadi: SELECT FNAME, LNAME, ADDRESS FROM (EMPLOYEE NATURAL JOIN DEPARTMENT AS DEPT(DNAME, DNO, MSSN, MSDATE) WHERE DNAME='Research’
Aggregate function Aggregate function dalam SQL adalah sebagai berikut: SUM : jumlah dari atribut MAX : nilai terbesar dari atribut MIN : nilai terkecil dari atribut AVG : rata-rata nilai dari atribut COUNT : banyaknya tuple yang memenuhi dari atribut
Contoh Hitung jumlah gaji semua pegawai, gaji minimum, gaji maksimun dan rata-rata gajinya. SELECT SUM (SALARY), MAX (SALARY), MIN (SALARY), AVG (SALARY) FROM EMPLOYEE
Contoh Untuk setiap departemen, dapatkan nomor departemen, banyaknya pegawai dalam departemen dan rata-rata gaji mereka. SELECT DNO, COUNT (*), AVG (SALARY) FROM EMPLOYEE GROUP BY DNO
Pernyataan Update pada SQL INSERT : untuk menyisipkan harga baru dalam suatu tabel. DELETE : untuk menghapus tuple tertentu dalam suatu tabel. UPDATE : untuk mengganti harga tertentu dalam suatu tabel.
Contoh INSERT INTO EMPLOYEE VALUES (‘Richard’,’K’,’Marini’,’653298653’,’30-DEC-52’,’98 Oak Forest, Katy, TX’,’M’,’37000,’987654321’,4)
View Perintah VIEW pada SQL digunakan untuk menurunkan tabel lain. View merupakan virtual tabel artinya tidak disimpan secara fisik dalam disk. Ada 2 perintah view dalam SQL yaitu: CREATE VIEW : membuat view DROP VIEW : menghapus view
Contoh CREATE VIEW bekerja pada AS SELECT FNAME, LNAME, PNAME, HOURS FROM EMPLOYEE, PROJECT, WORK_ON WHERE SSN = ESSN AND PNO = PNUMBER