Kalkulus Relasional Domain

advertisement
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
Tabel Mengajar
Kd_mk
MPK1
MKB3
MKB4
Nama_mk
PKN
BDT
ASD
Sks
2
3
3
MKB2
MKB5
SBD
PTI
2
4
11/06/2014
NIP
95002
95002
95003
95003
95004
Kd_mk
MKB3
MKB4
MPK1
MPK1
MKB4
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
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
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
MKB3
MKB4
MKB5
11/06/2014
Nama_mk
BDT
ASD
PTI
Sks
3
3
4
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
95001
95002
95003
95004
Nama_dosen
Bambang
Asri
Hesti
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
95001
95002
Nama_dosen
Bambang
Asri
Jenis_kelamin
Pria
Wanita
Kota
Jakarta Selatan
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
95002
95002
95003
95003
95004
Kd_mk
MKB3
MKB4
MPK1
MPK1
MKB4
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 “-“ 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
95002
95002
95003
95003
95004
Kd_mk
MKB3
MKB4
MPK1
MPK1
MKB4
Hasil
Kelas
A
A
A
B
B
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
Tabel Mengajar
Kd_mk
MPK1
MKB3
MKB4
Nama_mk
PKN
BDT
ASD
Sks
2
3
3
MKB2
MKB5
SBD
PTI
2
4
NIP
95002
95002
95003
95003
95004
Kd_mk
MKB3
MKB4
MPK1
MPK1
MKB4
hasil
Kd_mk
Nama_mk
Sks
Kelas
MPK1
PKN
2
A
MKB3
BDT
3
A
MKB4
ASD
3
A
Kelas
A
A
A
B
B
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
95002
95002
95003
95003
95004
Kd_mk
MKB3
MKB4
MPK1
MPK1
MKB4
Kelas
A
A
A
B
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 Matakuliah
Tabel Mengajar
NIP
95002
95002
95003
95003
95004
hasil
Kd_mk
MKB3
MKB4
MPK1
MPK1
MKB4
Kd_mk
MKB3
MKB4
MPK1
MPK1
MKB4
Kelas
A
A
A
B
B
Nama_mk
BDT
ASD
PKN
PKN
ASD
Sks
3
3
2
2
3
Kd_mk
MPK1
MKB3
MKB4
Nama_mk
PKN
BDT
ASD
Sks
2
3
3
MKB2
MKB5
SBD
PTI
2
4
NIP
95002
95002
95003
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.
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 Matakuliah
Tabel Mengajar
NIP
95002
95002
95003
95003
95004
Kd_mk
MKB3
MKB4
MPK1
MPK1
MKB4
Kelas
A
A
A
B
B
Kd_mk
MKB3
MKB4
MPK1
MPK1
MKB4
Kd_mk
MPK1
MKB3
MKB4
Nama_mk
PKN
BDT
ASD
Sks
2
3
3
MKB2
MKB5
SBD
PTI
2
4
Nama_mk
BDT
ASD
PKN
PKN
ASD
Sks
3
3
2
2
3
NIP
95002
95002
95003
95003
95004
Kd_mk
MKB3
MKB4
MPK1
MPK1
MKB4
Kelas
A
A
A
B
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. { < x1, x2, . . . , xn > | P(x1, x2, . . . , xn) } dimana
x1, x2, . . . , xn 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';
Download