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.
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
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.
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.
Contoh penggunaan operasi select
Misalkan ada 3 tabel, yaitu tabel dosen, tabel matakuliah dan tabel mengajar seperti berikut:
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
Kd_mk Nama_mk Sks MPK1 PKN 2 MKB3 BDT 3 MKB4 ASD 3 MKB2 SBD 2 MKB5 PTI 4 NIP Kd_mk Kelas 95002 MKB3 A 95002 MKB4 A 95003 MPK1 A 95003 MPK1 B 95004 MKB4 B Tabel Dosen
Tabel Matakuliah Tabel Mengajar
Contoh penggunaan operasi select
NIP Nama_dosen Jenis_kelamin Alamat Kota
95001 Bambang Pria Jl. Mawar Jakarta Selatan
95004 Dimas Pria Jl. Kemuning Cikarang
Hasil:
Contoh
1. Tampilkan daftar dosen yang berjenis kelamin pria dari tabel Dosen.
Aljabar relasional : σJenis_kelamin=Pria(Dosen)
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
Contoh penggunaan operasi select
Hasil:
Contoh
1. Tampilkan daftar matakuliah yg sksnya lebih dari atau sama dengan 3
2. Aljabar relasional : σ(sks>=3)(Matakuliah)
Kd_mk Nama_mk Sks
MKB3 BDT 3
MKB4 ASD 3
MKB5 PTI 4
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
dosen-dosen yang bertempat tinggal di kota Jakarta Selatan.
Aljabar relasional : πNIP,Nama_dosen,Kota(σKota=Jakarta Selatan(Dosen)
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
Operasi Dasar Aljabar Relasional NIP 95002 95003 95004 Hasil
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
NIP Kd_mk Kelas 95002 MKB3 A 95002 MKB4 A 95003 MPK1 A 95003 MPK1 B 95004 MKB4 B Tabel mengajar Tabel dosen
Contoh penggunaan operasi union :
• Tampilkan NIP( dari relasi Dosen) Union dari NIP (dari tabel Mengajar) Aljabar Relasional: πNIP (Dosen) ∪ NIP (Mengajar)
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.
Contoh penggunaan operasi set difference
NIP 95001
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 Dosen NIP Kd_mk Kelas 95002 MKB3 A 95002 MKB4 A 95003 MPK1 A 95003 MPK1 B 95004 MKB4 B Tabel Mengajar Hasil
Tampilkan NIP (dari tabel Dosen) Set-difference dari NIP (dari tabel Mengajar).
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
Contoh penggunaan operasi cartesian product
Kd_mk Nama_mk Sks Kelas MPK1 PKN 2 A MKB3 BDT 3 A MKB4 ASD 3 A hasil Kd_mk Nama_mk Sks MPK1 PKN 2 MKB3 BDT 3 MKB4 ASD 3 MKB2 SBD 2 MKB5 PTI 4 NIP Kd_mk Kelas 95002 MKB3 A 95002 MKB4 A 95003 MPK1 A 95003 MPK1 B 95004 MKB4 B6. 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
NIP 95002 95003 95004 HasilTampilkan NIP (dari tabel Dosen) Set Intersection dengan NIP (dari tabel Mengajar).
Aljabar relasional: πNIP (Dosen) ∩ πNIP (Mengajar) 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
NIP Kd_mk Kelas 95002 MKB3 A 95002 MKB4 A 95003 MPK1 A 95003 MPK1 B 95004 MKB4 B Tabel Dosen Tabel Mengajar
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
7. Natural Join
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 hasil
• 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
Kd_mk Nama_mk Sks MPK1 PKN 2 MKB3 BDT 3 MKB4 ASD 3 MKB2 SBD 2 MKB5 PTI 4 NIP Kd_mk Kelas 95002 MKB3 A 95002 MKB4 A 95003 MPK1 A 95003 MPK1 B 95004 MKB4 B Tabel Matakuliah Tabel Mengajar
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 (≤, <, =, >, ≥).
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
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 Kd_mk Nama_mk Sks MPK1 PKN 2 MKB3 BDT 3 MKB4 ASD 3 MKB2 SBD 2 MKB5 PTI 4 NIP Kd_mk Kelas 95002 MKB3 A 95002 MKB4 A 95003 MPK1 A 95003 MPK1 B 95004 MKB4 B Tabel Matakuliah Tabel Mengajar
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
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]
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
nmerepresentasikan
variabel-variabel / 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
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
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
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
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 kolomALTER 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
DROP
1. Drop table
DROP TABLE <NAMA_TABLE>;
2. Drop database
DROP DATABASE <NAMA_DATABASE>;
•
DROP TABLE mhs;
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
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.
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';