Bahasa dalam Model Relational Bahasa yang digunakan pada
Bahasa dalam Model Relational • Bahasa yang digunakan pada model relasional disebut bahasa query. • Bahasa Query adalah suatu bahasa yang menyediakan fasilitas bagi user untuk mengakses informasi dari basis data. • Pada umumnya level bahasa ini lebih tinggi dari bahasa pemrograman standar. • Bahasa query dapat dikategorikan menjadi 2 : 1. Prosedural 2. Non-Prosedural. 26/10/2020 tiosetyo@yahoo. com setyoinator@gmail. com www. cerdas-pintar. blogspot. com 1
Bahasa Prosedural dan Non Prosedural 1. Bahasa Prosedural -> dalam bahasa Prosedural user menginstruksikan ke sistem agar membentuk serangkaian operasi dalam basis data untuk mengeluarkan hasil yang diinginkan. Ø Yg termasuk bahasa query prosedural : 1. Aljabar Relasional 2. Bahasa Non-Prosedural -> user mendeskripsikan informasi yang diinginkan tanpa memberikan prosedur detail untuk menghasilkan informasi tersebut. Ø Yang termasuk bahasa non-prosedural : 1. Kalkulus relasional tupel 2. Kalkulus relasional domain 26/10/2020 2
Bahasa Prosedural 1. Aljabar Relasional adalah sebuah bahasa query prosedural yang terdiri dari sekumpulan operasi dimana masukkannya adalah satu atau dua relasi dan keluarannya adalah sebuah relasi baru sebagai hasil dari operasi tersebut. 2. Operasi-operasi dasar dalam aljabar relasional adalah : 1. Select 2. Projection 3. Union 4. Set difference 5. Cartesian product, selain itu ada beberapa operasi tambahan Yaitu set intersection, natural join, division dan theta join. 26/10/2020 tiosetyo@yahoo. com setyoinator@gmail. com www. cerdas-pintar. blogspot. com 3
Operasi Dasar Aljabar Relasional 1. Select • Operasi select adalah kumpulan semua tuple-tuple/record dalam suatu tabel yang mgemenuhi kondisi seleksi tertentu. • Operasi select berfungsi untuk menyeleksi tuple-tuple yang memenuhi predikat yang diberikan dari sebuah tabel relasi. • Simbol sigma “σ”. • Argumen diberikan dalam tanda kurung yang mengikuti σ dan berisi tabel relasi yang dimaksud. σ Sintaks : p (E) p = predikat selection pada atribut-atribut E E = ekspresi aljabar relasional (tabel/hasil query) 26/10/2020 tiosetyo@yahoo. com setyoinator@gmail. com www. cerdas-pintar. blogspot. com 4
Contoh penggunaan operasi select Misalkan ada 3 tabel, yaitu tabel dosen, tabel matakuliah dan tabel mengajar seperti berikut: Tabel Dosen NIP Nama_dosen Jenis_kelamin Alamat Kota 95001 Bambang Pria Jl. Mawar Jakarta Selatan 95002 Asri Wanita Jl. Anggrek Jakarta Selatan 95003 Hesti Wanita Jl. Bungur Jakarta Timur 95004 Dimas Pria Jl. Kemuning Cikarang Tabel Matakuliah Tabel Mengajar Kd_mk MPK 1 MKB 3 MKB 4 Nama_mk PKN BDT ASD Sks 2 3 3 MKB 2 MKB 5 SBD PTI 2 4 26/10/2020 NIP 95002 95003 95004 Kd_mk MKB 3 MKB 4 MPK 1 MKB 4 Kelas A A A B B 5
Contoh penggunaan operasi select Contoh 1. Tampilkan daftar dosen yang berjenis kelamin pria dari tabel Dosen. Aljabar relasional : σJenis_kelamin=Pria(Dosen) Hasil: NIP 95001 95004 Nama_dosen Bambang Dimas Jenis_kelamin Pria Alamat Jl. Mawar Jl. Kemuning Kota Jakarta Selatan Cikarang 2. Tampilkan daftar dosen yang kota asalnya Jakarta Selatan Aljabar relasional : σkota=Jakarta Selatan(Dosen) NIP Nama_dosen Jenis_kelamin Alamat Kota 95001 Bambang Pria Jl. Mawar Jakarta Selatan 95002 Asri Wanita Jl. Anggrek Jakarta Selatan 26/10/2020 6
Contoh penggunaan operasi select 3. Tampilkan daftar matakuliah yg sksnya lebih dari atau sama dengan 3. Aljabar relasional : σ(sks>=3)(Matakuliah) Hasil: Kd_mk MKB 3 MKB 4 MKB 5 26/10/2020 Nama_mk BDT ASD PTI Sks 3 3 4 7
Operasi Dasar Aljabar Relasional 2. Projection • Operasi projection berfungsi untuk memilih nilai atribut tertentu dari sebuah tabel relasi. • Simbol phi “π” • Argumen diberikan dalam tanda kurung yang mengikuti π dan berisi tabel relasi yang dimaksud.
Contoh penggunaan operasi projection 1. Tampilkan NIP dan Nama_dosen dari tabel Dosen Aljabar relasional : πNIP, Nama_dosen(Dosen) NIP 95001 95002 95003 95004 Nama_dosen Bambang Asri Hesti Dimas 2. Tampilkan NIP, Nama_dosen, dan kota dari tabel Dosen, dari dosen yang bertempat tinggal di kota Jakarta Selatan. Aljabar relasional : πNIP, Nama_dosen, Jenis_Kelamin, Kota(σKota=Jakarta Selatan(Dosen) Hasil NIP 95001 95002 Nama_dosen Bambang Asri Jenis_kelamin Pria Wanita Kota Jakarta Selatan
Operasi Dasar Aljabar Relasional 3. Union • Operasi union berfungsi untuk mendapatkan gabungan nilai atribut dari sebuah tabel relasi dengan nilai atribut dari tabel relasi lainnya. • Simbol “∪” • Operasi union bernilai benar bila terpenuhi 2 kondisi, yaitu : Derajat dari 2 tabel relasi yang dioperasikan harus sama dan domain dari atribut yang dioperasikan juga harus sama
Operasi Dasar Aljabar Relasional Contoh penggunaan operasi union : • Tampilkan NIP( dari relasi Dosen) Union dari NIP (dari tabel Mengajar) Aljabar Relasional: πNIP (Dosen) ∪ NIP (Mengajar) Tabel dosen NIP Nama_dosen Jenis_kelamin Alamat Kota 95001 Bambang Pria Jl. Mawar Jakarta Selatan 95002 Asri Wanita Jl. Anggrek Jakarta Selatan 95003 Hesti Wanita Jl. Bungur Jakarta Timur 95004 Dimas Pria Jl. Kemuning Cikarang Tabel mengajar NIP 95002 95003 95004 Kd_mk MKB 3 MKB 4 MPK 1 MKB 4 Hasil Kelas A A A B B NIP 95002 95003 95004
Bahasa dalam Model Relational 4. Set Difference • Operasi set difference berfungsi untuk mendapatkan nilai yang ada disebuah tabel relasi, tapi tidak ada dalam tabel relasi lainnya. • Simbol “-“
Contoh penggunaan operasi set difference Tampilkan NIP (dari tabel Dosen) Set-difference dari NIP (dari tabel Mengajar). Aljabar relasional: πNIP (Dosen) - NIP (Mengajar) Tabel Dosen NIP Nama_dosen Jenis_kelamin Alamat Kota 95001 Bambang Pria Jl. Mawar Jakarta Selatan 95002 Asri Wanita Jl. Anggrek Jakarta Selatan 95003 Hesti Wanita Jl. Bungur Jakarta Timur 95004 Dimas Pria Jl. Kemuning Cikarang Hasil Tabel Mengajar NIP 95002 95003 95004 Kd_mk MKB 3 MKB 4 MPK 1 MKB 4 Kelas A A A B B NIP 95001
5. Cartesian Product • Operasi cartesian product berfungsi untuk mengkombinasikan informasi yang ada dalam 2 tabel relasi dan menghasilkan sebuah tabel relasi yang baru. • Simbol “x“ Contoh penggunaan operasi cartesian product : Tampilkan Kode_mk, Nama_mk, Sks (dari tabel Matakuliah), Kelas (dari tabel Mengajar) dimana kelas yang diajar adalah kelas A. Aljabar relasional: πKode_mk, Nama_mk, Sks, Kelas (σKelas=A ^ Mengajar. Kode_mk=Matakuliah. Kode_mk(Mengajar x Matakuliah)) atau σMengajar. Kode_mk=Matakuliah. Kode_mk ˄ Kelas=A ((πKode_mk, Nama_mk, Sks (Matakuliah)) x πKelas(Mengajar))
Contoh penggunaan operasi cartesian product Tabel Matakuliah Tabel Mengajar Kd_mk MPK 1 MKB 3 MKB 4 Nama_mk PKN BDT ASD Sks 2 3 3 MKB 2 MKB 5 SBD PTI 2 4 NID 95002 95003 95004 Kd_mk MKB 3 MKB 4 MPK 1 MKB 4 hasil Kd_mk Nama_mk Sks Kelas MPK 1 PKN 2 A MKB 3 BDT 3 A MKB 4 ASD 3 A Kelas A A A B B
6. Intersection • Operasi set intersection berfungsi untuk mendapatkan nilai yang ada dalam sebuah tabel relasi dan juga ada dalam tabel relasi lainnya. • Set intersection / Intersection (∩) termasuk ke dalam operator tambahan, karena operator ini dapat diderivikasi dari operator dasar seperti berikut: • A ∩ B = A - ( A – B ), atau A ∩ B = B - ( B – A ) • Simbol “∩“
Contoh penggunaan operasi set intersection Tampilkan NIP (dari tabel Dosen) Set Intersection dengan NIP (dari tabel Mengajar). Aljabar relasional: πNIP (Dosen) ∩ πNIP (Mengajar) Tabel Dosen NIP Nama_dosen Jenis_kelamin Alamat Kota 95001 Bambang Pria Jl. Mawar Jakarta Selatan 95002 Asri Wanita Jl. Anggrek Jakarta Selatan 95003 Hesti Wanita Jl. Bungur Jakarta Timur 95004 Dimas Pria Jl. Kemuning Cikarang Hasil Tabel Mengajar NIP 95002 95003 95004 Kd_mk MKB 3 MKB 4 MPK 1 MKB 4 Kelas A A A B B NIP 95002 95003 95004
7. Natural Join • Operasi natural join berfungsi untuk menggabungkan operasi selection dan cartesian product menjadi 1 operasi saja. • Simbol “⋈“ • Operasi natural join hanya menghasilkan tupel yang mempunyai nilai yang sama pada 2 atribut yang bernama sama pada 2 tabel relasi yang berbeda.
• Contoh penggunaan operasi natural join Tampilkan seluruh data yang ada pada tabel Matakuliah dan tabel Mengajar. Aljabar relasional : Matakuliah ⋈ Mengajar. Kode_mk=Matakuliah. Kode_mk Mengajar Tabel Matakuliah Tabel Mengajar NIP 95002 95003 95004 hasil Kd_mk MKB 3 MKB 4 MPK 1 MKB 4 Kelas A A A B B Nama_mk BDT ASD PKN ASD Sks 3 3 2 2 3 Kd_mk MPK 1 MKB 3 MKB 4 Nama_mk PKN BDT ASD Sks 2 3 3 MKB 2 MKB 5 SBD PTI 2 4 NIP 95002 95003 95004 Kelas A A A B B
7. Theta Join • Operasi theta join berfungsi untuk mengkombinasikan tupel dari 2 tabel relasi dimana kondisi dari kombinasi tersebut tidak hanya nilai dari 2 atribut bernama sama, tetapi kondisi yang diinginkan juga bisa menggunakan operator relasional (≤, <, =, >, ≥). • Operasi theta join merupakan ekstensi dari natural join.
Contoh penggunaan operasi theta join: Tampilkan seluruh data yang ada pada tabel Matakuliah dan tabel Mengajar. Aljabar relasional : Matakuliah ⋈ Mengajar. Kode_mk=Matakuliah. Kode_mk Mengajar Tabel Matakuliah Tabel Mengajar NIP 95002 95003 95004 Kd_mk MKB 3 MKB 4 MPK 1 MKB 4 Kelas A A A B B Kd_mk MKB 3 MKB 4 MPK 1 MKB 4 Kd_mk MPK 1 MKB 3 MKB 4 Nama_mk PKN BDT ASD Sks 2 3 3 MKB 2 MKB 5 SBD PTI 2 4 Nama_mk BDT ASD PKN ASD Sks 3 3 2 2 3 NIP 95002 95003 95004 Kd_mk MKB 3 MKB 4 MPK 1 MKB 4 Kelas A A A B B
Bahasa Non-Prosedural Bahasa query non-prosedural : user menentukan query berdasarkan apa yang diingingkan. Kalkulus relasional dibagi menjadi dua, yaitu: 1. Kalkulus Relasional Tupel ( Tuple Relational Calculus) 2. Kalkulus Relasional Domain (Domain Relational Calculus)
1. Kalkulus Relasional Tupel • Bahasa ini mendeskripsikan informasi yang diinginkan tanpa memberi prosedur/cara secara detail untuk mendapatkan informasi tersebut. • Konsep dasar kalkulus relasional tupel adalah konsep variable tupel.
Lanjut. . • Kalkulus relasional tupel merupakan basis untuk bahasa query QUEL. Sintaks { t | P(t) } artinya, semua tuple t sedemikian sehingga predikat P adalah benar untuk t. T : tuple variables P(t) : formula
Lanjut. . • Dalam kalkulus relasional ada 2 notasi yang penting 1. “terdapat beberapa (there exists)” yang ditulis : ∃ t ∈ r ( Q(t) ), artinya ->terdapat beberapa tuple t anggota relasi r sedemikian sehingga bahwa predikat Q(t) adalah benar. 2. “untuk seluruh (for all)” yang ditulis : ∀ t ∈ r (Q(t)), artinya, untuk seluruh tupel t anggota relasi r sedemikian sehingga bahwa predikat Q(t) adalah benar.
Lanjut. . . Ciri-ciri relasi kalkulus : – First order calculus menggunakan simbol-simbol predikat dan simbol-simbol fungsi. Untuk kaitannya dengan basis data : simbol fungsi tidak diperlukan dan predikat diinterprestasikan sebagai relasi. – Formula pada first order calculus dapat dibedakan ke dalam dua kelas : 1. Open formula (free variable) Didefinisikan sebagai himpunan tuples elemen dari kondisi secara keseluruhan, yang dapat menghasilkan formula “TRUE”.
Lanjut. . . 2. Closed Formula atau Sentences yang memiliki variable terbatas. • Karena kalkulus dipergunakan sebagai bahasa query dan basis data bertujuan untuk instant maupun relasi lainnya, maka closed formulas tidak diperhatikan. • Dalam kalkulus relasional tupel digunakan variabel dari tupelnya. • Variabel dari suatu tupel adalah daerah yang terdefinisi sebagai nama dari suatu relasi.
Lanjut. . Berikut ini contoh kalkulus relasional tuple yang diterapkan pada SQL. SELECT Dosen. nid, dosen. nama_d, Dosen. gajipokok FROM Dosen WHERE Dosen. jkelamin=‘Pria’ AND Dosen. gajipokok>1000000 Pada query di atas menyatakan dua hal : - Mengambil atau mengekstra tupel-tupel pada relasi Dosen yang mempunyai atribut jkelamin ‘Pria’ dan memiliki atribut gajipokok adalah lebih besar dari 1000000.
Lanjut. . • Menampilkan atribut tertentu yaitu nid, nama_d, gajipokok. Dengan demikian Dosen. nid, Dosen. gajipokok adalah variabel-variabel tupel.
2. Kalkulus Relasional Domain • Kalkulus relasional domain adalah bahasa query yang non prosedural dan karenanya berhubungan dekat dengan kalkulus relasional tupel. • Berbeda dengan kalkulus relasional tupel, bahasa ini menggunakan variabel domain yang mengambil nilai dari domain atribut, bukan dari nilai seluruh tupel. • Kalkulus relasional domain merupakan basis untuk bahasa query QBE.
Lanjut. . 1. Sebuah ekspresi dalam kalkulus relasional domain adalah berbentuk : 2. { < x 1, x 2, . . . , xn > | P(x 1, x 2, . . . , xn) } dimana x 1, x 2, . . . , xn merepresentasikan variabel / konstanta domain. 3. P merepresentasikan sebuah formula/rumus 2 yang terdiri dari atom-atom.
Lanjut. . 4. Sebuah atom dalam kalkulus relasional domain dapat berupa salah satu dari bentuk berikut ini : - x ϴ y, dimana x dan y adalah variabel domain dan ϴ adalah operator relasional (≤, <, =, ≠, >, ≥). Kita membutuhkan atribut x dan y mempunyai domain yang bisa diperbandingkan dengan ϴ. - x Θ c, dimana x dalah variable domain. Θ adalah operator pembandingan (<, <=, =, >=, ≠) dan c adalah konstanta.
Lanjut • Contoh : Tampilkan nip, nama_d, gajipokok dari dosen, dimana jenis kelaminnya adalah Pria dan gaji pokoknya lebih besar 1200000 { nip | ∃ nam_d | ∃ gajipokok (Dosen(nid, nama_d, gajipokok) AND jkelamin=’Pria’ AND gajipokok > 1200000) }
Lanjut. . • Simbol yang muncul pada formula terdiri dari : konstan (elemen domain D), variabel (elemen-elemen dari himpunan berhingga V yang dihubungkan dengan domain D), nama relasi (tabel) dan atribut (berdasarkan skema basis data), operator perbandingan (=, ≠, >=, <=), penghubung logika (Λ ( dan / konjugsi), (V atau/disjungsi), ⌐ (not/negasi), ada/beberapa( ), dan semua ( )).
3. Structured Query Language (SQL) • Structured Query Language (SQL) merupakan bahasa yang banyak digunakan dalam berbagai produk database. • Penggunaan SQL pada beberapa bahasa pemrograman secara umum relatif sama. • Pertama kali dikembangkan sebagai bahasa di produk database DB 2 yang sampai saat ini merupakan produk database andalan IBM. SQL sering di lafalkan dengan “sequel”.
Lanjut. . • Saat ini organisasi standar America (ANSI) menetapkan standar bahasa SQL yaitu ANSI-92 standard. • Masing-masing vendor database memiliki dialeknya sendiri sebagaian besar spesifikasinya mengacu pada • standar ANSI tersebut dengan berbagai ekstensi tambahan. SQL Server menggunakan bahasa Transact-SQL dalam produknya, sedangkan Oracle menggunakan PL/SQL.
Lanjut. . • Bagi seorang programmer, menguasai SQL adalah sebuah kewajiban, karena program jaman sekarang pasti menggunakan database untuk menyimpan datanya.
Lanjut. . • SQL menyediakan sekumpulan statemen untuk melakukan proses penyimpanan, modifikasi, dan pengambilan dat di dalam database. • Sedangkan PL/SQL (kependekan dari: Procedural Language extensions to SQL) merupakan teknologi tambahan yang hanya terdapat di dalam Oracle dan digunakan untuk meningkatkan kapabilitas SQL agar dapat diperlakukan sebagaimana layaknya bahasa prosedural.
Lanjut. . • Dengan PL/SQL, kita diizinkan untuk membuat prosedur, fungsi, trigger, dan konstruksi standar prosedural lainnya sehingga pengolahan data dapat dilakukan secara dinamis.
SQL • Sejarah SQL dimulai dari artikel seorang peneliti dari IBM bernama EF Codd yang membahas tentang ide pembuatan basis data relasional pada bulan Juni 1970.
Lanjut. . • Bahasa tersebut kemudian diberi nama SEQUEL (Structured English Query Language). • Setelah terbitnya artikel tersebut, IBM mengadakan proyek pembuatan basis data relasional berbasis bahasa SEQUEL • Akan tetapi, karena permasalahan hukum mengenai penamaan SEQUEL, IBM pun mengubahnya menjadi SQL. Implementasi basis data relasional dikenal dengan System/R.
Lanjut. . • Di akhir tahun 1970 -an, muncul perusahaan bernama Oracle yang membuat server basis data populer yang bernama sama dengan nama perusahaannya. • Dengan naiknya kepopuleran Oracle, maka SQL juga ikut populer sehingga saat ini menjadi standar de facto bahasa dalammanajemen basis data.
Lanjut. . • Standarisasi SQL dimulai pada tahun 1986, ditandai dengan dikeluarkannya standar SQL oleh ANSI. • Standar ini sering disebut dengan SQL 86. • Standar tersebut kemudian diperbaiki pada tahun 1989 kemudian diperbaiki lagi pada tahun 1992.
Pemakaian Dasar Secara umum, SQL terdiri dari tiga bahasa : 1. Data Definition Language (DDL) 2. Data Manipulation Language (DML). 3. Data Control Language(DCL)
1. Data Definition Language (DDL) 1. CREATE (untuk membentuk basis data, table atau index) 2. DROP (untuk mengubah struktur table) 3. ALTER (untuk menghapus basis data, table atau index)
CREATE digunakan untuk membuat basis data maupun objek-objek basis data. SQL yang umum digunakan adalah: CREATE DATABASE nama_basis_data CREATE DATABASE membuat sebuah basis data baru.
CREATE TABLE nama_tabel CREATE TABLE membuat tabel baru pada basis data yang sedang aktif. Secara umum, perintah ini memiliki bentuk CREATE TABLE [nama_tabel] ( nama_field 1 tipe_data [constraints][, nama_field 2 tipe_data, . . . ] )
CREATE atau CREATE TABLE [nama_tabel] ( nama_field 1 tipe_data [, nama_field 2 tipe_data, . . . ] [CONSTRAINT nama_field constraints] )
CREATE • nama_field adalah nama kolom (field) yang akan dibuat. • Beberapa sistem manajemen basis data mengizinkan penggunaan spasi dan karakter nonhuruf pada nama kolom. • Tipe_data tergantung implementasi sistem manajemen basis data. • Misalnya, pada My. SQL, tipe data dapat berupa VARCHAR, TEXT, BLOB, ENUM, dan sebagainya. Constraints
CREATE • Constarints adalah batasan-batasan yang diberikan untuk tiap kolom. • Tergantung implementasi sistem manajemen basis data, misalnya NOT NULL, UNIQUE, dan sebagainya. • Ini dapat digunakan untuk mendefinisikan kunci primer (primary key) dan kunci asing (foreign key). • Satu tabel boleh tidak memiliki kunci primer sama sekali, namun sangat disarankan mendefinisikan paling tidak satu kolom sebagai kunci primer.
CREATE • Contoh: CREATE TABLE user ( username VARCHAR(30) CONSTRAINT PRIMARY KEY, passwd VARCHAR(20) NOT NULL, tanggal_lahir DATETIME ); akan membuat tabel user seperti berikut: username Passwd tanggal_lahir
ALTER TABEL NAMATABEL MODIFY FILED TYPE PANJANGBARU;
CONTOH Sintaks untuk menambahkan kolom ALTER TABLE table_name ADD column_name datatype; Untuk Contoh: Untuk menambahkan kolom "pengalaman" ke meja karyawan, query akan seperti ALTER TABLE employee ADD experience number(3); Sintaks untuk menjatuhkan kolom ALTER TABLE table_name DROP column_name; Untuk Contoh: Untuk menjatuhkan kolom "lokasi" dari tabel karyawan, query akan seperti ALTER TABLE employee DROP location; Sintaks untuk memodifikasi kolom ALTER TABLE table_name MODIFY column_name datatype; Untuk Contoh: Untuk mengubah gaji kolom dalam tabel karyawan, query akan seperti ALTER TABLE employee MODIFY salary number(15, 2);
DROP 1. Drop table DROP TABLE NAMA_TABLE; 2. Drop database DROP DATABASE NAMA_DATABASE; • DROP TABLE mhs; • DROP DATABASE AKADEMIK;
2. Data Manipulation Language DML digunakan untuk memanipulasi data yang ada dalam suatu tabel. Perintah yang umum dilakukan adalah: • SELECT untuk menampilkan data • INSERT untuk menambahkan data baru • UPDATE untuk mengubah data yang sudah ada • DELETE untuk menghapus data
SELECT ü SELECT adalah perintah yang paling sering digunakan pada SQL, sehingga kadang-kadang istilah query dirujukkan pada perintah SELECT. ü SELECT digunakan untuk menampilkan data dari satu atau lebih tabel, biasanya dalam sebuah basis data yang sama. ü Secara umum, perintah SELECT memiliki bentuk lengkap: ( QUERY BUDIN ) Cilegon.
SELECT [nama_tabel|alias. ]nama_field 1 [AS alias 1] [, nama_field 2, . . . ] FROM nama_tabel 1 [AS alias 1] [INNER|LEFT|RIGHT JOIN tabel 2 ON kondisi_penghubung] [, nama_tabel 3 [AS alias 3], . . . ] [WHERE kondisi] [ORDER BY nama_field 1 [ASC|DESC][, nama_field 2 [ASC|DESC], . . . ]] [GROUP BY nama_field 1[, nama_field 2, . . . ]] [HAVING kondisi_aggregat]
SELECT keterangan • kondisi adalah syarat yang harus dipenuhi suatu data agar ditampilkan. • kondisi_aggregat adalah syarat khusus untuk fungsi aggregat. • Kondisi dapat dihubungkan dengan operator logika, misalnya AND, OR, dan sebagainya.
Tabel username Aris Budi Charlie Daniel Erik Password 6487 AD 5 EF 97 AD 4 er. D 548794654 FLKH 947 HF 94 RER 54 tgllahir 09 -09 -1987 01 -01 -1994 06 -12 -1965 24 -04 -1980 17 -08 -1945 trasaksi total transaksi 6 10. 000 0 0 24 312. 150 3 0 34 50. 000
SELECT Contoh 1: Tampilkan seluruh data. SELECT * FROM user Contoh 2: Tampilkan pengguna yang tidak pernah bertransaksi. SELECT * FROM user WHERE total_transaksi = 0 Contoh 3: Tampilkan username pengguna yang bertransaksi kurang dari 10 dan nilainya lebih dari 1. 000. SELECT username FROM user WHERE jml_transakai < 10 AND total_transaksi > 1000
SELECT Contoh 4: Tampilkan total nominal transaksi yang sudah terjadi. SELECT SUM(total_transaksi) AS total_nominal_transaksi FROM user Contoh 5: Tampilkan seluruh data diurutkan berdasarkan jumlah transaksi terbesar ke terkecil. SELECT * FROM user ORDER BY jml_transaksi DESC
UPDATE Untuk mengubah data Sintaks: UPDATE [NAMA_TABLE] SET [NAMA_KOLOM]=[NILAI] WHERE [KONDISI] Contoh: UPDATE user set password="123456" where username=" Budi "
DELETE Delete digunakan untuk menghapus data sintaks: DELETE FROM [NAMA_TABLE] [KONDISI] CONTOH : Hapus record atau data yg total transaksi=0 DELETE FROM USER WHERE total_transaksi_=0;
Fungsi aggregate Beberapa SMBD memiliki fungsi aggregat, yaitu fungsi-fungsi khusus yang melibatkan sekelompok data (aggregat). Secara umum fungsi aggregat adalah: • SUM untuk menghitung total nominal data • COUNT untuk menghitung jumlah kemunculan data • AVG untuk menghitung rata-rata sekelompok data • MAX dan MIN untuk mendapatkan nilai maksimum/minimum dari sekelompok data. Fungsi aggregat digunakan pada bagian SELECT. Syarat untuk fungsi aggregat diletakkan pada bagian HAVING, bukan WHERE. Subquery Ada kalanya query dapat menjadi kompleks, terutama jika melibatkan lebih dari satu tabel dan/atau fungsi aggregat. Beberapa SMBD mengizinkan penggunaan subquery. Contoh: Tampilkan username pengguna yang memiliki jumlah transaksi terbesar.
Lanjut. . JENIS JOIN SQL : 1. INNER JOIN : hanya akan menampilkan baris untuk data yang memiliki nilai yang sama pada field kunci dengan tabel yang berelasi 2. LEFT JOIN : hanya menampilkan data dengan mengacu pada tabel yang ada disebelah kiri. 3. RIGHT JOIN : hanya menampilkan data dengan mengacu pada tabel yang ada disebelah kanan 4. FULL JOIN : merupakan gabungan dari LEFT JOIN dan RIGHT JOIN.
3. Data Control Language(DCL) DCL merupakan perintah SQL yang berhubungan dengan pengaturan hak akses user My. SQL, baik terhadap server, database, tabel maupun field. Perintah SQL yang termasuk dalam DCL antara lain :
GRANT : Perintah ini digunakan untuk memberikan hak / izin akses oleh administrator (pemilik utama) server kepada user (pengguna biasa). Hak akses tersebut berupa hak membuat (CREATE), mengambil (SELECT), menghapsu (DELETE), mengubah (UPDATE) dan hak khusus berkenaan dengan sistem databasenya. Sintaks : GRANT privileges ON tbname TO user CONTOH : grant select, update, insert, delete on perpustakaan. buku to 'ali'@'localhost';
REVOKE : perintah ini memiliki kegunaan terbalik dengan GRAND, yaitu untuk menghilangkan atau mencabut hak akses yang telah diberikan kepada user oleh administrator. Sintak : REVOKE privileges ON tbname FROM user CONTOH : revoke select, update, insert, delete on perpustakaan. buku from 'ali'@'localhost';
- Slides: 68