Select * from mahasiswa where nim

advertisement
bahasa Query
basis data
bab 8
Dosen : Yayu Sri Rahayu, M Kom.
STMIK EL RAHMA
JOGJAKARTA 2015
Bahasa Query merupakan bahasa yang termasuk dalam
kategori bahasa tingkat tinggi (high level language) yang
digunakan user untuk mendapatkan informasi/data dari
basis data.
Bahasa Query formal
Bahasa Query formal yang sering digunakan secara umum
adalah Aljabar Relasional yang merupakan bahasa
Query yang Prosedural.
Terdapat dua jenis bahasa query relasional formal yang
utama, yaitu:
1. Aljabar relasional.
2. Kalkulus relasional.
BAHASA QUERY FORMAL
• Bahasa query formal basis data relasional adalah
bahasa untuk meminta informasi dari basis data.
• Bahasa query relasional formal merupakan
bahasa antara yang digunakan basis data, yaitu
SQL dikonversi menjadi bahasa rlasional formal
sehingga dapa diterapkan sekumpulan informasi
untuk memperoleh query paling efisien
ALJABAR RELATIONAL
• Relational Algebra (aljabar relasional) merupakan
kumpulan operasi terhadap relasi dimana setiap
operasi menggunakan satu atau lebih relasi untuk
menghasilkan satu relasi yang baru dan termasuk
kategori prosedural dan juga menyediakan
seperangkat operator untuk memanipulasi data.
ALJABAR RELATIONAL
• Terdapat lima operasi dasar dalam aljabar
relasional, yaitu:
1. Selection (  )
2. Projection (  )
3. Cartesian – product ( X, juga disebut sebagai cross
product )
4. Union (  )
5. Set – difference ( - )
6. Rename (  )
ALJABAR RELATIONAL
• Operasi – operasi turunan dari operasi – operasi
dasar tersebut adalah:
1. Set intersection (  )
2. Theta join (  )
3. Natural-join (
)
4. Outer-join (
)
5. Division (  )
OPERASI SELEKSI (
SELECT )
• Selection / Select ( ), adalah operasi untuk
menyeleksi tupel – tupel yang memenuhi suatu
predikat, kita dapat menggunakan operator
perbandingan (<,>,>=,<=,=,#) pada predikat.
Beberapa predikat dapat dikombinasikan menjadi
predikat manjemuk menggunakan penghubung
AND (  ) dan OR (  ).
OPERASI SELEKSI (
SELECT )
• Sintaks yang digunakan untuk menyatakan operasi
adalah :
p (E1)
• Contoh :
Tampilkan data mahasiswa yang tempat tinggalnya
di Bogor.
kota = ‘Bogor’ (mahasiswa)
OPERASI SELEKSI (
SELECT )
• Tampilkan daftar dosen yang tempat lahirnya di ‘Bekasi
tempat_lhr=’Bekasi’ (Dosen)
• Tampilkan daftar dosen yang tempat lahirnya di ‘Jakarta’
atau ‘Bogor’
tempat_lhr=’Jakarta’  tempat_lhr=’Bogor’ (Dosen)
• Tampilkan daftar dosen yang tempat lahirnya di
‘Bogor’ dan jenis kelaminnya ‘Pria’
tempat_lhr=’Bogor’  jkelamin=’Pria’ (Dosen)
OPERASI PROJECTION
(PROJECT)
• Projection / Project (  ), adalah operasi untuk
memperoleh kolom – kolom tertentu.
• Operasi project adalah operasi unary yang
mengirim relasi argumen dengan kolom – kolom
tertentu.
• Sintaks yang digunakan dalam operasi proyeksi ini
adalah sebagai berikut :
•
 colum1,…,column ( tabel)
CONTOH OPERASI
PROJECTION (PROJECT)
• Tampilkan nid,nama_d,alamat,kota dari relasi
Dosen
 nid,nama_d,alamat,kota(Dosen)
• Tampilkan nid,nama_d,alamat,kota,gajipokok dari
relasi Dosen, dimana gaji pokoknya lebih besar
dari Rp.1200000
 id,nama_d,alamat,kota,gajipokok(
(Dosen))
gajipokok>1200000
OPERASI CARTESIAN
PRODUCT
• Cartesian-product ( X ), adalah operasi untuk
menghasilkan table hasil perkalian kartesian.
• Sintaks yang digunakan dalam operasi proyeksi ini
adalah sebagai berikut :
R X S = {(x,y) | xR dan yS}
OPERASI CARTESIAN
PRODUCT
• Operasi cartesian-product memungkinkan kita
mengkombinasikan informasi beberapa relasi,
operasi ini adalah operasi biner. Sebagaimana
telah dinyatakan bahwa relasi adalah subset hasil
cartesian-product dan himpunan domain relasi –
relasi tersebut. Kita harus memilih atribut – atribut
untuk relasi yang dihasilkan dari cartesian-product.
CONTOH OPERASI
CARTESIAN PRODUCT
• Tampilkan nid,nama_d (dari relasi Dosen), nama_mk (dari
relasi Matakuliah),
thn_akademik,smt,hari,jam_ke,waktu,kelas (dari relasi
Mengajar) dimana semester mengajar adalah pada
semester ‘1’.
 nid,nama_d,nama_mk,
thn_akademik,smt,hari,jam_ke,waktu,kelas (
 smt=1  Dosen.nid=Mengajar.nid 
Mengajar.kdmk=Matakuliah.kdmk(DosenxMatakuli
ahxMengajar))
CONTOH OPERASI
CARTESIAN PRODUCT
• Tampilkan nama_d (dari relasi Dosen), nama_mk,sks
(dari relasi Matakuliah), hari,jam_ke,waktu (dari relasi
Mengajar) dimana sks matakuliah >3 atau hari mengajar
= ‘Jumat’.
nama_d,nama_mk,sks,hari,jam_ke,waktu ( 
sks>3  hari=’Jumat’ 
Mengajar.nid=Dosen.nid 
Mengajar.kdmk=Matakuliah.kdmk(MengajarxDosen
xMatakuliah))
OPERASI UNION
• Union (  ), adalah operasi untuk menghasilkan
gabungan table degan syarat kedua table memiliki
atribut yangsama, yaitu domain atribut ke-i masing
– masing table harus sama.
• Sintaks yang digunakan dalam operasi union ini
adalah sebagai berikut :
R  S = {x | xR atau X S}
OPERASI UNION
• Operasi ini dapat dilaksanakan apabila R dan S mempunyai
atribut yang sama sehingga jumlah komponennya sama.
• Tabel Mahasiswa
NIM
NAMA_MHS
ALAMAT_MHS
KOTA
TGL_LHR
980001
Ali Akbar
Jl. Merdeka
Bogor
02-01-1979
980002
Budi Haryanto
Jl. Gajah Mada
Jakarta
06-10-1978
• Tabel Dosen
KODE_DOS NAMA_DOS
ALAMAT_DOS
KOTA
SY
Syamsudin, S.Si
Jl. Suci
Bekasi
FS
Farida Syarif, Ir
Jl. Tenteram
Jakarta
CONTOH OPERASI UNION
• Jila dilakukan operasi union :
 kota (mahasiswa)  kota (Dosen)
• Maka hasilnya :
KOTA
Bogor
Jakarta
Bekasi
Jakarta
OPERASI SET
DIFFERENCE
• Set-difference ( -- ), adalah operasi untuk
mendapatkan table pada suatu relasi, tapi tidak
ada pada relasi yang lainnya.
• Sintaks yang digunakan dalam operasi union ini
adalah sebagai berikut :
R – S = { x | xR dan X  S}
• Operasi ini dapat dilaksanakan apabila R dan S
mempunyai atribut yang tidak sama yang akan
ditampilkan, artinya adalah atribut R yang tidak ada
di S akan ditampilkan, sedangkan atribut yang
sama tidak ditampilkan.
CONTOH OPERASI SET
DIFFERENCE
• Jika tabel Kuliah_S1 dan Tabel Kuliah_D3 berisi
data sebagai berikut :
• Tabel Kuliah_S1
Kode_kul
Nama_kul
Sks
semester
IF-110
Pemrograman I
3
1
IF-221
Struktur Data
3
2
IF-310
Basis Data
4
3
IF-320
Pemrograman II
3
3
IF-411
Sistem Basis Sata
3
4
IF-423
Sistem Pakar
2
4
CONTOH OPERASI SET
DIFFERENCE
• Tabel Kuliah_D3
Kode_kul
Nama_kul
Sks semester
IF-110
Pemrograman I
3
1
IF-120
Aplikasi Akuntansi
2
1
IF-221
Struktur Data
3
2
IF-310
Basis Data
4
3
CONTOH OPERASI SET
DIFFERENCE
• Maka hasil operasi :
– nama_kul (Kuliah_S1) - nama_kul (Kuliah_D3)
Nama_kul
Pemrograman II
Sistem Basis Data
Sistem Pakar
OPERASI RENAME
CONTOH OPERASI
RENAME
• Salinlah table baru dengan nama DosenNew
dari table Dosen, dimana jenis kelaminnya
adalah ‘Pria’.
 DosenNew (  jkelamin=’Pria’) (Dosen))
BAHASA QUERY
TERAPAN
STRUCTURE QUERY
LANGUAGE
(SQL)
• SQL merupakan bahasa query yang
paling banyak dipilih oleh DBMS dan
Development Tools.
• Seperti pada : Visual Basic, Delphi,
PowerBuilder, Java dll.
STRUKTUR DASAR SQL
• Ekspresi dasar SQL terdiri dari 3
klausa.
1. Select
2. From
3. Where
STRUKTUR DASAR SQL
• Klausa Select digunakan untuk menetapkan daftar
atribut (field) yang diinginkan sebagai hasil query.
• Klausa From digunakan untuk menetapkan relasi
atau tabel (atau gabungan tabel) yang akan
ditelusuri selama query data dilakukan.
• Klausa Where, yang sifatnya opsional digunakan
sebagai predikat (kriteria) yang harus dipenuhi
dalam memperoleh hasil query.
STRUKTUR DASAR SQL
•
Sintaksnya adalah :
Select A1 [A2, A3….An]
From T1 [T2….Tm]
[where P]
Dimana :
A1, A2…An merupakan daftar atribut
T1, T2…Tm merupakan daftar tabel atau relasi.
P merupakan predikat Query.
[] merupakan tanda opsional (booleh digunakan, boleh tidak
digunakan), tergantung kebutuhan.
Klausa Select
• Contoh :
Jika kita ingin menampilkan NIM dan
Nama Mahasiswa yang ada di tabel
Mahasiswa, maka kita dapat
menggunakan perintah SQL sbb :
Select nim, nama_mhs
from mahasiswa
Klausa Where
• Contoh :
Menampilkan semua atribut untuk
mahasiswa dengan NIM = ‘980002’
Select *
from mahasiswa
where nim =‘980002’
Klausa Where
• Menampilkan semua matakuliah yang
diselenggarakan di semester 3 tetapi
jumlah sks-nya lebih besar dari 2.
Perintah SQL-nya :
Select *
from mahasiswa
where semester = 3 and sks > 2
Klausa From
• Klausa From digunakan untuk
menetapkan tabel yang kita jadikan
sebagai sumber (lokasi) pencarian
• Contoh :
Select *
From kuliah, dosen
Where kuliah.kode_dos =
dosen.kode_dos
Pengurutan Hasil Query
• Dengan menggunakan ekspresi dasar SQL
maka hasil query ditampilkan dengan urutan
yang sesuai dengan struktur penyimpanan
yang kita terapkan pada tabel query.
• Contoh :
Select *
from mahasiswa
order by nama_mhs
Fungsi Agresi
• Disamping menampilkan nilai-nilai
atribut yang ada di dalam tabel, sering
pula ada kebutuhan untuk
menampilkan data-data agresi seperti :
banyaknya record, total nilai suatu
atribut, rata-rata nilai atribut, nilai atribut
terbesar ataupun nilai atribut terkecil.
Fungsi Agresi
• Data Agresi dapat di peroleh dengan
menggunakan fungsi-fungsi sbb :
1. Count
2. Sum
3. Avg
4. Max
5. Min
Contoh Fungsi Agresi
• Menampilkan banyaknya record
mahasiswa
Select count *
from mahasiswa
Manipulasi Data
• DML menyediakan 4 (empat) pernyataan untuk
melakukan manipulasi data dalam database, yaitu:
• SELECT, untuk query (meminta informasi) dari
database.
• INSERT, untuk melakukan penyisipan data pada
table dalam suatu database.
• UPDATE, untuk melakukan perubahan data pada
suatu table dalam suatu database.
• DELETE, untuk melakukan penghapusan data pada
suatu
Manipulasi Data (2)
Insert
• Terdapat 2 (dua) bentuk pernyataan
kalimat INSERT, yaitu:
• Bentuk pertama INSERT, dimana
memungkinkan satu baris tunggal
disisipkan kealam table.
• Bentuk kedua INSERT, dimana
memungkinkan banyak baris
sekaligus dikopikan kesatu table atau
lebih.
Manipulasi Data
Insert
• Sintaks :
INSERT [ INTO] NAMA TABEL
[Daftar_Kolom] Value
DAFTAR_NILAI
Manipulasi Data
Insert
•
•
•
•
INSERT
:
Klausa ini menspesifikasikan nama tabel
dimana data bisa ditambahkan
VALUE
: Klausa ini menspesifikasikan nilai data yang akan
disisipkan ke dalam kolom pada tabel
Daftar_Kolom : Merupakan daftar kolom yang dipisahkan oleh tanda
koma menyatakan kolom-kolom yang akan diisi data. Jika tidak ada
kolom yang dinyatakan, berarti semua kolom di dalam akan diisi data.
Jika hanya sebagian daftar yang dinyatakan, nilai null atau nilai default
akan diisikan ke kolom yang tidak disebutkan dalam daftar kolom.
Daftar Nilai : Daftar nilai untuk kolom tabel yang akan disisipkan
sebagai sebuah baris data dalam tabel. Data yang diberikan pada
daftar nilai harus sesuai dengan daftar kolom. Banyak data harus
sama dengan banyak kolom, tipe data, presisi, dan skala dari setiap
data harus sesuai dengan kolomnya.
Manipulasi Data
Insert
• Contoh : Misalkan kita akan
menyisipkan data pada ke 5 (lima)
table pada database NilaiMahasiswa
tersebut diatas untuk masing – masing
table 1 (satu) record untuk record
pertama, maka perintahnya adalah:
Manipulasi Data
Insert
• Table Mahasiswa
INSERT INTO Mahasiswa
Values (‘I01031001’,’Dewi
Nurbaini’,’Bekasi’,’12/10/87’,
’Wanita’,’Jl. Dahlia I Blok BC
2/3’,’Bekasi Utara’, ’Hindu’,’0218791290’,’TI’)
Manipulasi Data
Update
• Kalimat UPDATE memungkinkan kita memodifikasi
satu nilai kolom atau lebih unuk data table yang
telah ada. Kita dapat menerapkan perubahan
kesemua baris di table, satu subset baris, atau satu
baris. Sintaks dari kalimat UPDATE tersebut adalah
sebagai berikut:
UPDATE table_name
SET column_1 = value_1
[,column_2 = value_2 [,…]]
WHERE condition
Contoh Perintah Update
• Table Mahasiswa
UPDATE Mahasiswa set
alm_m=’Jl.Seruni Raya No.3’,
kota_m=’Cikarang’,agama_m=’Islam’,te
lpon_m=’02-9897119’, kode_jur=’TI’
WHERE nim=’I01031002’
Manipulasi Data
Delete
• Kalimat DELETE memungkinkan kita
menghapus satu record ataulebih pada
suatu table dlam database. Sintaks dari
kalimat DELETE tersebut adalah
sebagai berikut:
DELETE FROM table_name
WHERE condition
Data Definition Data
• DDL (Data Definition Language)
memungkinkan kita membuat dan
menghancurkan objek – objek basis
data (database/schema, domain, table,
view, dan index .
• Perintah DDL seperti Create, Alter,
Drop
Data Definition Data
Create
• Sintaks :
Create Database
[Database_name]
• Contoh :
Create Database NilaiMahasiswa
Contoh Membuat Tabel
dengan perintah Create
Create Table Mahasiswa
(
nim char (9) not null,
nama_m varchar (35) not null,
tpt_lhr_m varchar(26),
tgl_lhr_m datetime,
j_kelamin varchar(10),
alm_m varchar(90),
kota_m varchar (20),
agama_m varchar(10),
telpon_m char (13),
kode_jur char (2)
)
Data Definition Data
Alter
Menambahkan kolom email dengan tipe
data varchar, panjang karakternya = 30
ALTER TABLE Mahasiswa
Add email varchar(30)
Data Definition Data
Drop
• Sintaks :
Drop Table [table_name] [RESTRICT |
CASCADE]
• Contoh :
Untuk melakukan penghapusan table
Mahasiswa berserta strukturnya, maka
perintahnya adalah:
Drop Table Mahasiswa
Download