SQL DML Basis Data Pertemuan 06 Tujuan dari
SQL: DML Basis Data Pertemuan 06
Tujuan dari SQL l Idealnya, database language dapat memungkinkan user untuk: ¡ ¡ ¡ l l Membuat struktur relasi dan database; Melakukan operasi penyisipan (insertion), perubahan (modification) dan penghapusan (deletion) data dari relasion; Melakukan query sederhana dan rumit. Database language harus melaksanakan operasi tersebut dengan usaha minimal yang dilakukan user dan sintaks/struktur instruksi harus mudah dipahami/dipelajari. Harus portable sehingga memungkinkan untuk pindah dari satu DBMS ke DBMS lainnya.
2 komponen SQL l l DDL untuk definisi struktur database. DML untuk pengambilan (retrieving) dan perubahan (updating) data. SQL cukup mudah dipelajari, karena: ¡ ¡ Merupakan bahasa non-procedural – cukup menspesifikasikan informasi apa yang dibutuhkan daripada bagaimana mendapatkannya. Pada dasarnya mempunyai format yang bebas.
Sejarah SQL(1) l l l Tahun 1974, D. Chamberlin (IBM San Jose Laboratory) mendefinisikan bahasa yang disebut ‘Structured English Query Language’ (SEQUEL). Versi yang telah diperbaiki, SEQUEL/2, ditemukan tahun 1976 tetapi namanya diubah menjadi SQL untuk alasan hukum. Sampai saat ini masih banyak yang menyebut ‘seequel’, walaupun ejaan sesungguhnya adalah ‘S-Q-L’. IBM secara berturut-turut memproduksi prototype DBMS yang disebut System R, berdasarkan pada SEQUEL/2. Akar dari SQL, adalah SQUARE (Specifying Queries as Relational Expressions), dimana mendahului proyek System R.
Sejarah SQL(2) l l l Diakhir 70 -an, ORACLE muncul dan mungkin merupakan RDBMS komersil pertama yang berbasis SQL. Pada tahun 1987, ANSI dan ISO mempublikasikan standar awal untuk SQL. Pada tahun 1989, ISO mempublikasikan tambahan yang mendefinisikan ‘Integrity Enhancement Feature’. tahun 1992, revisi utama yang pertama dilakukan pada standar ISO, dikenal sebagai SQL 2 atau SQL/92. Tahun 1999, SQL 3 dikeluarkan dengan dukungan untuk manajemen data berorientasi objek (object-oriented data management).
Penulisan perintah SQL l Statemen SQL terdiri dari reserved word dan user-defined word. ¡ ¡ l Reserved word adalah bagian yang telah ditetapkan pada SQL dan penulisannya harus sesuai dan tidak bisa dipisah-pisahkan. User-defined word dibuat oleh user dan merepresentasikan nama-nama berbagai objek database seperti relasi, kolom dan view. Kebanyakan komponen dari perintah SQL bersifat case insensitive, kecuali untuk data literal karakter.
Penulisan perintah SQL(2) l Mudah dibaca dengan pengaturan baris dan spasi : ¡ ¡ ¡ l Setiap clause dimulai pada baris baru. Awal dari suatu clause harus berurut dengan clause lainnya. Jika clause mempunyai beberapa bagian, harus ditampilkan pada baris yang berbeda dan diberi spasi pada awal clause. Menggunakan bentuk notasi Backus Naur Form (BNF)
Literal merupakan konstanta yang digunakan dalam statemen SQL. l Semua literal non-numerik dituliskan diantara kutip tunggal (co : ‘London’). l Semua literal numerik literals tidak dituliskan diantara kutip (co : 650. 00). l
Dreamhome Database
Dreamhome Database
Dreamhome Database
Dreamhome Database
Dreamhome Database
Perintah SELECT Bentuk umum : SELECT [DISTINCT | ALL] {* | [column. Expression [AS new. Name]] [, . . . ] } FROM Table. Name [alias] [, . . . ] [WHERE condition] [GROUP BY column. List] [HAVING condition] [ORDER BY column. List]
Perintah SELECT Dimana FROM WHERE GROUP BY HAVING SELECT ORDER BY l Catatan ¡ ¡ : Menspesifikasikan tabel-tabel yang digunakan. : Baris filter (kondisi yang harus dipenuhi). : Bentuk pengelompokkan baris dengan nilai kolom yang sama. : Menyeleksi subjek grup untuk beberapa kondisi. : Menspesifikasikan kolom mana yang akan ditampilkan. : Menspesifikasikan order pada output. : Perintah pada clause tidak dapat diubah. Perintah yang harus ada hanya SELECT dan FROM, lainnya bersifat optional.
Contoh : Semua Baris dan kolom Tampilkan seluruh detail staff SELECT staff. No, f. Name, l. Name, position, sex, DOB, salary, branch. No FROM Staff; Dapat menggunakan * sebagai singkatan dari ‘semua kolom’: SELECT * FROM Staff;
Contoh : Seluruh baris, kolom tertentu. Buatlah daftar gaji seluruh staff yang menampilkan nomor staff, nama awal dan akhir, dan gaji. SELECT staff. No, f. Name, l. Name, salary FROM Staff;
Kegunaan DISTINCT Menggunakan DISTINCT untuk menghilangkan duplikasi l Tampilkan nomor properti dari seluruh properti yang pernah dilihat/dikunjungi. l SELECT property. No FROM Viewing; SELECT DISTINCT property. No FROM Viewing;
Contoh : Field yang dihasilkan l Tampilkan daftar gaji/bulan untuk seluruh staff, dengam menampilkan nomor staff, nama awal dan akhir dan detail gaji. SELECT staff. No, f. Name, l. Name, salary/12 FROM Staff;
Memberi nama kolom, menggunakan clause AS : SELECT staff. No, f. Name, l. Name, salary/12 AS monthly. Salary FROM Staff;
Contoh : Kondisi pencarian dengan perbandingan l Tampilkan seluruh staff yang mempunyai gaji lebih dari 10, 000. SELECT staff. No, f. Name, l. Name, position, salary FROM Staff WHERE salary > 10000;
Contoh : Kondisi pencarian dengan perbandingan gabungan l Tampilkan detail seluruh kantor cabang yang beralamat di London atau Glasgow. SELECT * FROM Branch WHERE city = “London” OR city = “Glasgow”;
Contoh : Kondisi pencarian dengan batas (range) l Tampilkan seluruh staff yang berpenghasilan antara 20, 000 dan 30, 000. SELECT staff. No, f. Name, l. Name, position, salary FROM Staff WHERE salary BETWEEN 20000 AND 30000;
Kondisi pencarian dengan batas (range) BETWEEN menyertakan angka terakhir dari range. l Terdapat juga versi negasi NOT BETWEEN. l BETWEEN bukan merupakan tambahan yang berarti, karena dapat dituliskan : l SELECT staff. No, f. Name, l. Name, position, salary FROM Staff WHERE salary >=20000 AND salary <= 30000; l Bermanfaat untuk nilai dengan range tertentu.
Contoh : Himpunan Anggota (Set Membership) l Tampilkan seluruh manager dan supervisor. SELECT staff. No, f. Name, l. Name, position FROM Staff WHERE position IN (‘Manager’, ‘Supervisor’);
Himpunan Anggota (Set Membership) l Terdapat versi negasi (NOT IN). l IN bukan merupakan tambahan berarti, karena dapat dituliskan : SELECT staff. No, f. Name, l. Name, position FROM Staff WHERE position=‘Manager’ OR position = ‘Supervisor’; l IN lebih efisien jika himpunan (set) berisi beberapa nilai.
Penyesuaian bentuk (Pattern Matching) l Tampilkan detail seluruh pemilik dengan kata ‘Glasgow’ pada alamatnya. SELECT Owner. No, f. Name, l. Name, address, tel. No FROM Private. Owner WHERE address LIKE ‘%Glasgow%’;
Simbol Pattern l SQL mempunyai dua simbol pattern matching : ¡ ¡ l %: rangkaian dari nol atau lebih karakter. _ (garis bawah): satu karakter tunggal. LIKE ‘%Glasgow%’ berarti rangkaian karakter yang mengandung kata ‘Glasgow’, panjang string tidak ditentukan.
Contoh : Kondisi pencarian NULL l l l Tampilkan detail seluruh all viewing pada properti PG 4 dimana tidak terdapat komentar. Terdapat 2 viewing untuk properti PG 4, satu terdapat komentar dan lainnya tidak. Dilakukan test nilai null secara tegas dengan keyword IS NULL: SELECT client. No, view. Date FROM Viewing WHERE property. No = ‘PG 4’ AND comment IS NULL; l Versi negasi (IS NOT NULL) dapat menguji nilai nonnull.
Ordering kolom tunggal l Tampilkan daftar gaji seluruh staf, disusun secara descending berdasarkan salary. SELECT staff. No, f. Name, l. Name, salary FROM Staff ORDER BY salary DESC;
Ordering multiple kolom l Tampilkan daftar ringkasan properti berdasarkan tipe properti. SELECT property. No, type, rooms, rent FROM Property. For. Rent ORDER BY type;
minor order l Dari contoh diatas terdapat empat field. Untuk menyusun properti berdasarkan rent maka harus dispesifikasikan minor order sbb : SELECT property. No, type, rooms, rent FROM Property. For. Rent ORDER BY type, rent DESC;
minor order
- Slides: 33