Bahasa dalam Model Relational Bahasa Query adalah bahasa yang digunakan untuk model relasional Bahasa Query merupakan 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. 11/06/2014 1
Bahasa Prosedural dan Non Prosedural 1. 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. Yang termasuk bahasa non-prosedural : 1. Kalkulus relasional tupel 2. Kalkulus relasional domain 11/06/2014 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. 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. 11/06/2014 3
Operasi Dasar Aljabar Relasional 1. Select Operasi select dapat didefiniskan sebagai Kumpulan semua tuple-tuple/record-record dalam suatu tabel yang memenuhi kondisi seleksi tertentu. Operasi select berfungsi untuk menyeleksi tuple-tuple yang memenuhi predikat yang diberikan dari sebuah tabel relasi. Simbol sigma σ digunakan untuk menunjukkan operasi select. Argumen diberikan dalam tanda kurung yang mengikuti σ dan berisi tabel relasi yang dimaksud. 11/06/2014 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 Kd_mk Nama_mk Sks MPK1 PKN 2 MKB3 BDT 3 MKB4 ASD 3 MKB2 SBD 2 MKB5 PTI 4 Tabel Mengajar NIP Kd_mk Kelas 95002 MKB3 A 95002 MKB4 A 95003 MPK1 A 95003 MPK1 B 95004 MKB4 B 11/06/2014 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 Nama_dosen Jenis_kelamin Alamat Kota 95001 Bambang Pria Jl. Mawar Jakarta Selatan 95004 Dimas Pria Jl. Kemuning 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 11/06/2014 6
Contoh penggunaan operasi select Contoh 1. Tampilkan daftar matakuliah yg sksnya lebih dari atau sama dengan 3 2. Aljabar relasional : σ(sks>=3)(matakuliah) Hasil: Kd_mk Nama_mk Sks MKB3 BDT 3 MKB4 ASD 3 MKB5 PTI 4 11/06/2014 7
Operasi Dasar Aljabar Relasional 2. Project Operasi project berfungsi untuk memilih nilai atribut-atribut tertentu saja dari sebuah tabel relasi. Simbol phi π digunakan untuk menunjukkan operasi projection. Predikat muncul sebagai subscript dari π dan hanya nama atribut yang diinginkan yang ditulis dalam predikat. Argumen diberikan dalam tanda kurung yang mengikuti π dan berisi tabel relasi yang dimaksud.
Contoh penggunaan operasi project 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 dosendosen yang bertempat tinggal di kota Jakarta Selatan. Aljabar relasional : π NIP,Nama_dosen,Kota (σ Kota=Jakarta Selatan (Dosen) Hasil IP Nama_dosen Jenis_kelamin Kota 95001 Bambang Pria Jakarta Selatan 95002 Asri Wanita 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 digunakan untuk menunjukkan operasi union. 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 Kd_mk Kelas 95002 MKB3 A 95002 MKB4 A 95003 MPK1 A 95003 MPK1 B 95004 MKB4 B Hasil 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 - digunakan untuk menunjukkan perasi set difference.
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 Tabel Mengajar NIP Kd_mk Kelas 95002 MKB3 A 95002 MKB4 A 95003 MPK1 A 95003 MPK1 B 95004 MKB4 B Hasil 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 digunakan untuk menunjukkan operasi cartesian product. 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 Kd_mk Nama_mk Sks MPK1 PKN 2 MKB3 BDT 3 MKB4 ASD 3 MKB2 SBD 2 MKB5 PTI 4 Tabel Mengajar NIP Kd_mk Kelas 95002 MKB3 A 95002 MKB4 A 95003 MPK1 A 95003 MPK1 B 95004 MKB4 B hasil Kd_mk Nama_mk Sks Kelas MPK1 PKN 2 A MKB3 BDT 3 A MKB4 ASD 3 A
6. Intersection 6. Intersection 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 ) Operasi set intersection berfungsi untuk mendapatkan nilai yang ada dalam sebuah tabel relasi dan juga ada dalam tabel relasi lainnya. Simbol digunakan untuk menunjukkan operasi set intersection.
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 NIP 95002 95003 95004 Tabel Mengajar NIP Kd_mk Kelas 95002 MKB3 A 95002 MKB4 A 95003 MPK1 A 95003 MPK1 B 95004 MKB4 B
7. Natural Join Operasi natural join berfungsi untuk menggabungkan operasi selection dan cartesian product menjadi 1 operasi saja. Simbol digunakan untuk menunjukkan operasi natural join. Operasi natural join hanya menghasilkan tupel yang mempunyai nilai yang sama pada 2 atribut yang bernama sama pada 2 tabel relasi yang berbeda.
7. Natural Join 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 NIP Kd_mk Kelas 95002 MKB3 A 95002 MKB4 A 95003 MPK1 A 95003 MPK1 B 95004 MKB4 B Tabel Matakuliah Kd_mk Nama_mk Sks MPK1 PKN 2 MKB3 BDT 3 MKB4 ASD 3 MKB2 SBD 2 MKB5 PTI 4 hasil Kd_mk Nama_mk Sks NIP Kelas MKB3 BDT 3 95002 A MKB4 ASD 3 95002 A MPK1 PKN 2 95003 A MPK1 PKN 2 95003 B MKB4 ASD 3 95004 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.
7. Theta 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 NIP Kd_mk Kelas 95002 MKB3 A 95002 MKB4 A 95003 MPK1 A 95003 MPK1 B 95004 MKB4 B Tabel Matakuliah Kd_mk Nama_mk Sks MPK1 PKN 2 MKB3 BDT 3 MKB4 ASD 3 MKB2 SBD 2 MKB5 PTI 4 Kd_mk Nama_mk Sks NIP Kd_mk Kelas MKB3 BDT 3 95002 MKB3 A MKB4 ASD 3 95002 MKB4 A MPK1 PKN 2 95003 MPK1 A MPK1 PKN 2 95003 MPK1 B MKB4 ASD 3 95004 MKB4 B
Bahasa Non-Prosedural Bahasa query non-prosedural : user menentukan query berdasarkan APA yang diingingkan (Relational Algebra : user menentukan query berdasarkan Bagaimana melakukannya) 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 detil untuk mendapatkan informasi tersebut. Konsep dasar kalkulus relasional tupel adalah konsep variable tupel. Variable ini merepresentasikan tupel tupel pada relasi dan digunakan untuk untuk mengekstrak data dari relasi. Komponen - komponen lain rumus kalkulus tupel adalah kualifikasi data dengan membatasi nilai nilai dari atribut atribut yang dispesifikasikan.
1. Kalkulus Relasional Tupel 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.
Kalkulus Relasional 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.
Kalkulus Relasional Menampilkan atribut tertentu yaitu nid, nama_d, gajipokok. Dengan demikian Dosen.nid,Dosen.gajipokok adalah variabel-variabel tupel. Bentuk umum dari kalkulus relasional tuple adalah: TupleVariabel1 operator[tuplevariabel2 constant] SQL dikembangkan berbasis kalkulus relasional tuple.
Kalkulus Relasional Domain 2. Kalkulus Relasional Domain Kalkulus relasional domain juga 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.
Kalkulus Relasional Domain 1. Sebuah ekspresi dalam kalkulus relasional domain adalah berbentuk : 2. { < x 1, x 2,..., x n > P(x 1, x 2,..., x n ) } dimana x 1, x 2,..., x n merepresentasikan variabelvariabel / konstanta domain. 3. P merepresentasikan sebuah formula/rumus2 yang terdiri dari atom-atom. 4. Sebuah atom dalam kalkulus relasional domain dapat berupa salah satu dari bentuk berikut ini :
Kalkulus Relasional Domain - 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.
Kalkulus Relasional Domain Contoh : tampilkan nip,nama_d,gajipokok daridosen, 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) }
Kalkulus Relasional Domain 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 ( )).
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.
SQL 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.
SQL Bagi seorang programmer, menguasai SQL adalah sebuah kewajiban, karena program jaman sekarang pasti menggunakan database untuk menyimpan datanya.
SQL 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.
SQL Dengan PL/SQL, diperbolehkan membuat prosedur, fungsi, trigger, dan konstruksi standar prosedural lainnya sehingga pengolahan data dapat dilakukan secara dinamis.
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.
SQL 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.
SQL Di akhir tahun 1970-an, muncul perusahaan bernama Oracle yang membuat server basis data populer yang bernama sama dengan nama perusahaannya. Naiknya kepopuleran Oracle, maka SQL juga ikut populer sehingga saat ini menjadi standar de facto bahasa dalam manajemen basis data.
SQL 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 dua 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 CREATE digunakan untuk membuat basis data maupun objek-objek basis data. SQL yang umum digunakan adalah: CREATE DATABASE <nama_basis_data> CREATE DATABASE digunakan membuat sebuah basis data baru.
CREATE CREATE TABLE <nama_tabel> CREATE TABLE digunakan untuk 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.
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; 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; 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; 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 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. Contoh: Tampilkan username pengguna yang memiliki jumlah transaksi terbesar
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';