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. tiosetyo@yahoo.com setyoinator@gmail.com www.cerdas-pintar.blogspot.com 18/11/2018
Bahasa Prosedural dan Non Prosedural 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 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 18/11/2018
Bahasa Prosedural 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. 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. tiosetyo@yahoo.com setyoinator@gmail.com www.cerdas-pintar.blogspot.com 18/11/2018
Operasi Dasar Aljabar Relasional Select Operasi select adalah kumpulan semua tuple-tuple/record-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) tiosetyo@yahoo.com setyoinator@gmail.com www.cerdas-pintar.blogspot.com 18/11/2018
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 95003 Hesti Jl. Bungur Jakarta Timur 95004 Dimas Jl. Kemuning Cikarang Tabel Matakuliah Tabel Mengajar Kd_mk Nama_mk Sks MPK1 PKN 2 MKB3 BDT 3 MKB4 ASD MKB2 SBD MKB5 PTI 4 NIP Kd_mk Kelas 95002 MKB3 A MKB4 95003 MPK1 B 95004 18/11/2018
Contoh penggunaan operasi select Tampilkan daftar dosen yang berjenis kelamin pria dari tabel Dosen. Aljabar relasional : σJenis_kelamin=Pria(Dosen) Hasil: NIP Nama_dosen Jenis_kelamin Alamat Kota 95001 Bambang Pria Jl. Mawar Jakarta Selatan 95004 Dimas Jl. Kemuning Cikarang 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 18/11/2018
Contoh penggunaan operasi select 3. Tampilkan daftar matakuliah yg sksnya lebih dari atau sama dengan 3. Aljabar relasional : σ(sks>=3)(Matakuliah) Hasil: Kd_mk Nama_mk Sks MKB3 BDT 3 MKB4 ASD MKB5 PTI 4 18/11/2018
Operasi Dasar Aljabar Relasional 2. Projection Operasi projection berfungsi untuk memilih nilai atribut-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 Nama_dosen 95001 Bambang 95002 Asri 95003 Hesti 95004 Dimas 2. Tampilkan NIP, Nama_dosen, dan kota dari tabel Dosen, dari dosen-dosen yang bertempat tinggal di kota Jakarta Selatan. Aljabar relasional : πNIP,Nama_dosen,Jenis_Kelamin,Kota(σKota=Jakarta Selatan(Dosen) Hasil NIP Nama_dosen Jenis_kelamin Kota 95001 Bambang Pria Jakarta Selatan 95002 Asri Wanita
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 95003 Hesti Jl. Bungur Jakarta Timur 95004 Dimas Jl. Kemuning Cikarang Tabel mengajar Hasil NIP 95002 95003 95004 NIP Kd_mk Kelas 95002 MKB3 A MKB4 95003 MPK1 B 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 95003 Hesti Jl. Bungur Jakarta Timur 95004 Dimas Jl. Kemuning Cikarang Tabel Mengajar Hasil NIP Kd_mk Kelas 95002 MKB3 A MKB4 95003 MPK1 B 95004 NIP 95001
5. Cartesian Product 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 Nama_mk Sks MPK1 PKN 2 MKB3 BDT 3 MKB4 ASD MKB2 SBD MKB5 PTI 4 NID Kd_mk Kelas 95002 MKB3 A MKB4 95003 MPK1 B 95004 hasil Kd_mk Nama_mk Sks Kelas MPK1 PKN 2 A MKB3 BDT 3 MKB4 ASD
6. Intersection 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 95003 Hesti Jl. Bungur Jakarta Timur 95004 Dimas Jl. Kemuning Cikarang Hasil Tabel Mengajar NIP 95002 95003 95004 NIP Kd_mk Kelas 95002 MKB3 A MKB4 95003 MPK1 B 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 Mengajar Tabel Matakuliah Kd_mk Nama_mk Sks MPK1 PKN 2 MKB3 BDT 3 MKB4 ASD MKB2 SBD MKB5 PTI 4 NIP Kd_mk Kelas 95002 MKB3 A MKB4 95003 MPK1 B 95004 hasil Kd_mk Nama_mk Sks NIP Kelas MKB3 BDT 3 95002 A MKB4 ASD MPK1 PKN 2 95003 B 95004
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 Mengajar Tabel Matakuliah Kd_mk Nama_mk Sks MPK1 PKN 2 MKB3 BDT 3 MKB4 ASD MKB2 SBD MKB5 PTI 4 NIP Kd_mk Kelas 95002 MKB3 A MKB4 95003 MPK1 B 95004 Kd_mk Nama_mk Sks NIP Kelas MKB3 BDT 3 95002 A MKB4 ASD MPK1 PKN 2 95003 B 95004
Bahasa Non-Prosedural Bahasa query non-prosedural : user menentukan query berdasarkan apa yang diingingkan. Kalkulus relasional dibagi menjadi dua, yaitu: Kalkulus Relasional Tupel ( Tuple Relational Calculus) Kalkulus Relasional Domain (Domain Relational Calculus)
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. QUEL= Query Languange dari RDBMS relasional INGRES, yang dikembangkan di University of California di Berkeley dengan menggunakan sistem operasi UNIX.
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 QUEL= Query Languange dari RDBMS relasional INGRES, yang dikembangkan di University of California di Berkeley dengan menggunakan sistem operasi UNIX.
Lanjut.. Dalam kalkulus relasional ada 2 notasi yang penting “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. “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. QBE (query by example) adalah metode query yang disediakan sistem dalam bentuk record kosong dan pengguna dapat menentukan field dan nilai tertentu yang akan digunakan dalam query.
Lanjut.. Sebuah ekspresi dalam kalkulus relasional domain adalah berbentuk : { < x1, x2, . . . , xn > | P(x1, x2, . . . , xn) } dimana x1, x2, . . . , xn merepresentasikan variabel-variabel / konstanta domain. P merepresentasikan sebuah formula/rumus2 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-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 DB2 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. Trigger adalah suatu objek dalam basisdata yang terdapat pada bagian tabel. Trigger untuk menempatkan suatu prosedure berkaitan dengan perubahan pada isi tabel. Cara kerja trigger adalah merespon berkaitan dengan perintah DML (INSERT , UPDATE, DELETE) pada tabel.
SQL Sejarah 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 Standarisasi SQL dimulai pada tahun 1986, ditandai dengan dikeluarkannya standar SQL oleh ANSI. Standar ini sering disebut dengan SQL86. Standar tersebut kemudian diperbaiki pada tahun 1989 kemudian diperbaiki lagi pada tahun 1992.
Pemakaian Dasar Secara umum, SQL terdiri dari tiga bahasa : Data Definition Language (DDL) Data Manipulation Language (DML). Data Control Language(DCL)
1. Data Definition Language (DDL) CREATE (untuk membentuk basis data, table atau index) DROP (untuk mengubah struktur table) ALTER (untuk menghapus basis data, table atau index)
CREATE 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 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_field1 tipe_data [constraints][, nama_field2 tipe_data, ...] )
CREATE atau CREATE TABLE [nama_tabel] ( nama_field1 tipe_data [, nama_field2 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 MySQL, 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 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 Drop table DROP TABLE NAMA_TABLE; 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 SELECT [nama_tabel|alias.]nama_field1 [AS alias1] [, nama_field2, ...] FROM nama_tabel1 [AS alias1] [INNER|LEFT|RIGHT JOIN tabel2 ON kondisi_penghubung] [, nama_tabel3 [AS alias3], ...] [WHERE kondisi] [ORDER BY nama_field1 [ASC|DESC][, nama_field2 [ASC|DESC], ...]] [GROUP BY nama_field1[, nama_field2, ...]] [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 user username Password tgllahir trasaksi total transaksi Aris 6487AD5EF 09-09-1987 6 10.000 Budi 97AD4erD 01-01-1994 0 0 Charlie 548794654 06-12-1965 24 312.150 Daniel FLKH947HF 24-04-1980 3 0 Erik 94RER54 17-08-1945 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 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 MySQL, baik terhadap server, database, tabel maupun field. Perintah SQL yang termasuk dalam DCL antara lain :
GRANT 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 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';