SQL-DML

advertisement
Structured Query Language
DML (Data Manipulation Language)
31 Mei 2006
© 2006, M. Ramadhan
1
Pendahuluan
Yang akan dibahas:
„ Data Manipulation Language (DML)
„ Pernyataan SQL untuk:
•
•
•
•
31 Mei 2006
Menemukan kembali data dalam basis data
Menyisipkan data baru ke dalam basis data
Memodifikasi data dalam basis data
Menghapus data dari dalam basis data
© 2006, M. Ramadhan
2
Tujuan
Mahasiswa diharapkan :
„ Memahami kegunaan DML.
„ Mampu menuliskan pernyataan SQL untuk :
•
•
•
•
Menemukan kembali data dalam basis data
Menyisipkan data baru ke dalam basis data
Memodifikasi data dalam basis data
Menghapus data dari dalam basis data
31 Mei 2006
© 2006, M. Ramadhan
3
DML (Data Manipulation Language)
„ Bahasa untuk memanipulasi data, yaitu
untuk:
•
•
•
•
Menemukan kembali data dalam basisdata
Menyisipkan data baru ke dalam basisdata
Memodifikasi data dalam basisdata
Menghapus data dari dalam basisdata
„ Ada dua jenis DML, yaitu:
• DML prosedural
• DML non-prosedural
31 Mei 2006
© 2006, M. Ramadhan
4
DML: Pernyataan SQL
„ Select
„ Insert
„ Update
„ Delete
31 Mei 2006
Me-retrieve baris data
Menambah baris data
Mengubah data
Menghapus baris data
© 2006, M. Ramadhan
5
Pernyataan Select (1)
Syntax
Select
From
Where
Group By
Having
Order By
31 Mei 2006
daftar-kolom
daftar-tabel
kriteria
daftar-kolom
kriteria
daftar-kolom
© 2006, M. Ramadhan
6
Pernyataan Select (2)
Memilih Kolom
„ Memilih semua kolom, contoh:
Select *
From Buku
„ Memilih kolom tertentu, misalnya :
Select ISBN,
Judul,
ThTerbit
From Buku
31 Mei 2006
© 2006, M. Ramadhan
7
Pernyataan Select (3)
Memilih Baris
„ Memilih baris berdasarkan kriteria tertentu.
„ Misalnya menemukan kembali data buku dari
tabel Buku yang terbit tahun 2005 ke atas:
Select *
From Buku
Where (ThTerbit >= 2005)
31 Mei 2006
© 2006, M. Ramadhan
8
Pernyataan Select (4)
Memilih Baris dan Kolom
„ Memilih kolom tertentu dan baris berdasarkan
kriteria.
„ Misalnya menemukan kembali data kolom
Judul dan ThTerbit dari tabel Buku yang terbit
pada tahun 2005 :
Select Judul,
ThTerbit
From Buku
Where (ThTerbit = 2005)
31 Mei 2006
© 2006, M. Ramadhan
9
Pernyataan Select (5)
Retrieve Data dari View
„ Menemukan kembali data dapat dilakukan pa-
da view yang telah didefinisikan sebelumnya.
„ Misalnya menemukan kembali data buku yang
terbit pada tahun 2005 dari view JudulTh :
Select *
From JudulTh
Where (ThTerbit = 2005)
31 Mei 2006
© 2006, M. Ramadhan
10
Pernyataan Select (6)
Mencegah Duplikasi Data
„ Bila kolom primary key tidak diikutsertakan,
boleh jadi menghasilkan duplikasi data.
„ Pernyataan berikut boleh jadi memberikan data
ThTerbit yang harganya sama berkali-kali :
Select ThTerbit
From Buku
„ Untuk mencegah duplikasi data, tambahkan
kata Distinct setelah pernyataan Select
Select Distinct ThTerbit
From Buku
31 Mei 2006
© 2006, M. Ramadhan
11
Pernyataan Select (7)
Konstanta, Ekspresi, Fungsi
„ Pernyataan Select, selain nama kolom, dapat
juga diikuti dengan konstanta, ekspresi, fungsi.
„ Contoh berikut, menghasilkan Nama, GajiPokok,
teks ‘Rp’ dan tunjangan sebesar 25%xGajiPokok
Select Nama, ‘ Rp ‘, GajiPokok,
‘ Rp ‘, 0.25*GajiPokok
From Pegawai
31 Mei 2006
© 2006, M. Ramadhan
12
Pernyataan Select (8)
Ekspresi
„ Ekspresi dapat berupa:
„ konstanta, kolom, atau fungsi.
„ kombinasi dari konstanta dan atau kolom dan
atau fungsi, dengan operator.
„ Operator yang digunakan:
„ Operator aritmetik: +, −, *, /, %, untuk numerik
„ Operator string: + untuk menggabungkan string
„ Operator perbandingan: <, <=, >, >=, <>, = dan
atau operator logika: Not, And, Or, In, Between,
Like, untuk ekspresi boolean
31 Mei 2006
© 2006, M. Ramadhan
13
Pernyataan Select (9)
Fungsi Skalar
„ Fungsi bekerja berdasarkan harga dari satu
baris untuk satu waktu.
„ Fungsi skalar yg ada dalam MS SQL Server :
Fungsi konversi tipe data
„ Fungsi string
„ Fungsi matematik
„ Fungsi tanggal dan waktu
„ Fungsi user
„ Fungsi tambahan lainnya
„
31 Mei 2006
© 2006, M. Ramadhan
6 buah
22 buah
23 buah
11 buah
10 buah
82 buah
14
Pernyataan Select (10)
Fungsi Agregasi (1)
„ Fungsi bekerja berdasarkan harga dari
sekumpulan baris untuk satu waktu.
„ Misalnya menghitung jumlah pegawai, ratarata gaji, total gaji seluruh pegawai, dari tabel
Pegawai, pernyataan SQL-nya adalah:
Select Count(*),
Avg(Gaji),
Sum(Gaji)
From Pegawai
31 Mei 2006
© 2006, M. Ramadhan
15
Pernyataan Select (11)
Fungsi Agregasi (2)
Fungsi
Deskripsi
Avg (ekspresi)
menghitung rata-rata harga
ekspresi yang tidak NULL
menghitung jumlah baris
identik dg Count tetapi harga
yang diberikan bertipe BigInt
menghitung jumlah harga
ekspresi yang tidak NULL
identik dg Count(ekspresi)
tetapi harga yang diberikan
bertipe BigInt
Count (*)
Count_Big (*)
Count (ekspresi)
Count_Big(ekspresi)
31 Mei 2006
© 2006, M. Ramadhan
16
Pernyataan Select (12)
Fungsi Agregasi (3)
Fungsi
Deskripsi
Count (Distinct ekspresi)
menghitung jumlah
harga ekspresi tidak
NULL yg unik
identik dengan fungsi
Count_Big (Distinct ekspresi)
Count(Distinct ekspresi)
Sum (ekspresi)
31 Mei 2006
tetapi harga yang diberikan bertipe BigInt
menghitung total harga
ekspresi tidak NULL
© 2006, M. Ramadhan
17
Pernyataan Select (13)
Fungsi Agregasi (4)
Fungsi
Deskripsi
menghitung harga maksimum
ekspresi yang tidak NULL
Min (ekspresi)
menghitung harga minimum
ekspresi yang tidak NULL
StdDev (ekspresi) menghitung deviasi standar
ekspresi yang tidak NULL
StdDevP (ekspresi) identik dg StdDev ttp dari populasi
Var (ekspresi)
menghitung varian ekspresi yang
tidak NULL
VarP (ekspresi)
identik dg Var ttp dari populasi
Max (ekspresi)
31 Mei 2006
© 2006, M. Ramadhan
18
Pernyataan Select (14)
Klausa Group
„ Digunakan untuk mengelompokkan baris
„ Misalnya menghitung jumlah pegawai, rata-
rata gaji, total gaji untuk setiap kelompok
golongan pegawai :
Select Count(*),
Avg(Gaji),
Sum(Gaji)
From Pegawai
Group By Golongan
31 Mei 2006
© 2006, M. Ramadhan
19
Pernyataan Select (15)
Klausa Having
„ Digunakan untuk membatasi baris yang
dihasilkan fungsi agregasi pada group baris.
„ Contoh, menghitung gaji rata2 dan total gaji
setiap kelompok golongan pegawai, tetapi
dibatasi u/ golongan yg rata2 gaji > 1000000
Select Avg(Gaji),
Sum(Gaji)
From Pegawai
Group By Golongan
Having Avg(Gaji) > 1000000
31 Mei 2006
© 2006, M. Ramadhan
20
Pernyataan Select (16)
Klausa Having vs Klausa Where
Klausa Having mirip dengan klausa Where
Select Avg(Gaji), Sum(Gaji)
From Pegawai
Group By Golongan
Having Golongan In (1,3,4)
Memberikan hasil yang sama dengan :
Select Avg(Gaji), Sum(Gaji)
From Pegawai
Where Golongan In (1,3,4)
Group By Golongan
31 Mei 2006
© 2006, M. Ramadhan
21
Pernyataan Select (17)
Klausa Order By
„ Digunakan untuk mengurutkan baris
berdasarkan sebuah kolom atau lebih.
„ Secara default, data diurutkan secara menaik
„ Misalnya mengurutkan data pegawai secara
menaik berdasarkan Nama pegawai:
Select *
From Pegawai
Order By Nama
31 Mei 2006
© 2006, M. Ramadhan
22
Pernyataan Select (18)
Klausa Order By (2)
„ Untuk mengurutkan secara menurun,
tambahkan Desc setelah nama kolom.
„ Misalnya mengurutkan data pegawai secara
menurun berdasarkan Nama pegawai:
Select *
From Pegawai
Order By Nama Desc
31 Mei 2006
© 2006, M. Ramadhan
23
Pernyataan Select (19)
Klausa Order By (3)
„ Bila diperlukan, pengurutan dapat dilakukan
berdasarkan beberapa kolom.
„ Pada contoh sebelumnya, boleh jadi ada
nama pegawai yang sama. Misalnya, untuk
nama yang sama diurutkan lagi berdasarkan
Golongan secara menurun:
Select *
From Pegawai
Order By Nama,
Golongan Desc
31 Mei 2006
© 2006, M. Ramadhan
24
Memodifikasi Data Tabel
„ Tiga pernyataan SQL u/ memodifikasi data tabel:
„
Insert
„
Update
„
Delete
menambah baris baru ke dalam tabel
mengubah data baris tertentu
menghapus baris dari dalam tabel
„ Ketiga pernyataan dapat memodifikasi sebuah
atau sekumpulan baris dalam sebuah tabel.
„ Memodifikasi lebih dari satu tabel dalam satu
pernyataan tunggal tidak dapat dilakukan
„ Modifikasi data dapat juga melalui view.
31 Mei 2006
© 2006, M. Ramadhan
25
Pernyataan Insert (1)
„ Digunakan untuk menambah baris baru
„ Syntax:
Insert Into NamaTabelAtauView
(Kolom1,
Kolom2,
...)
Values (Nilai1,
Nilai2,
...)
31 Mei 2006
© 2006, M. Ramadhan
26
Pernyataan Insert (2)
„ Misalnya menambah baris ke dalam tabel Buku:
Insert Into Buku
(ISBN,
Judul,
ThTerbit)
Values (‘0764575368’,
‘Professional VB 2005’,
2005)
31 Mei 2006
© 2006, M. Ramadhan
27
Pernyataan Insert (3)
„ Nilai yang diberikan boleh berupa ekspresi
atau NULL.
Insert Into Pegawai
(NRP, Nama,
TglLahir,
Gaji, Tunjangan)
Values (‘0764575368’,’Fulan’
NULL,
1275000, 0.25*1275000)
31 Mei 2006
© 2006, M. Ramadhan
28
Pernyataan Insert (4)
„ Penambahan data dapat diambil dari tabel lain.
„ Meng-copy semua baris data dari tabel Buku
ke dalam tabel BukuBaru dengan tambahan
kolom baru Penerbit.
Insert Into BukuBaru
(ISBN,Judul,Penerbit,ThTerbit)
Select ISBN, Judul,’ ‘,ThTerbit
From Buku
31 Mei 2006
© 2006, M. Ramadhan
29
Pernyataan Insert (5)
„ Meng-copy semua baris data buku yang
terbit pada tahun 2005 atau 2006 dari tabel
Buku ke dalam tabel BukuBaru dengan
tambahan kolom baru Penerbit.
Insert Into BukuBaru
(ISBN,Judul,Penerbit,ThTerbit)
Select ISBN, Judul, ’ ‘,ThTerbit
From Buku
Where (ThTerbit in (2005,2006))
31 Mei 2006
© 2006, M. Ramadhan
30
Pernyataan Update (1)
„ Digunakan untuk mengubah satu baris atau
sekelompok baris.
„ Syntax:
Update NamaTabel
Set NamaKolom1 = Ekspresi1,
NamaKolom2 = Ekspresi2,
...
Where kriteria
31 Mei 2006
© 2006, M. Ramadhan
31
Pernyataan Update (2)
„ Mengubah suatu baris berdasarkan harga
atribut primary key
„ Misalnya mengubah Judul dan ThTerbit
buku yang ISBN-nya ‘0764575368’
Update Buku
Set Judul = ‘Professional MSVB 2005’,
ThTerbit = 2006
Where ISBN =‘0764575368’
31 Mei 2006
© 2006, M. Ramadhan
32
Pernyataan Update (3)
„ Mengubah sekelompok baris berdasarkan
kriteria tertentu
„ Misalnya menaikkan TunjTransport sebesar
50% untuk semua Pegawai Golongan 1 dan 2
Update Pegawai
Set TunjTransport = 1.5* TunjTransport
Where Golongan in (1,2)
31 Mei 2006
© 2006, M. Ramadhan
33
Pernyataan Update (4)
„ Mengubah semua baris dalam sebuah tabel
tanpa kecuali.
„ Misalnya menaikkan TunjTransport
sebesar 50% untuk semua Pegawai.
Update Pegawai
Set TunjTransport = 1.5* TunjTransport
31 Mei 2006
© 2006, M. Ramadhan
34
Pernyataan Update (5)
„ Mengosongkan (memberi harga Null) kolom
tertentu.
„ Misalnya mengosongkan nilai kolom ThTerbit
yang ThTerbit di atas tahun 2006:
Update Buku
Set ThTerbit = Null
Where ThTerbit > 2006
31 Mei 2006
© 2006, M. Ramadhan
35
Pernyataan Delete (1)
„ Digunakan untuk menghapus:
„
„
„
satu baris berdasarkan harga primary key
sekelompok baris berdasarkan kriteria tertentu
semua baris dari sebuah tabel
„ Syntax:
Delete
From NamaTabel
Where kriteria
31 Mei 2006
© 2006, M. Ramadhan
36
Pernyataan Delete (2)
„ Menghapus suatu baris berdasarkan harga
atribut primary key
„ Misalnya menghapus satu baris data Buku
yang ISBN-nya ‘0764575368’
Delete
From Buku
Where ISBN =‘0764575368’
31 Mei 2006
© 2006, M. Ramadhan
37
Pernyataan Delete (3)
„ Menghapus sekelompok baris berdasarkan
kriteria tertentu
„ Misalnya menghapus semua baris dari tabel
Buku yang ThTerbit di atas tahun 2006:
Delete
From Buku
Where ThTerbit > 2006
31 Mei 2006
© 2006, M. Ramadhan
38
Pernyataan Delete (4)
„ Menghapus semua baris (mengosongkan)
sebuah tabel.
„ Misalnya mengosongkan tabel Buku:
Delete
From Buku
„ Atau gunakan pernyataan:
Truncate Table Buku
31 Mei 2006
© 2006, M. Ramadhan
39
Yang Sudah Dipelajari
„ Bahasa basis data: DML
„ Pernyataan SQL:
Select
Insert
Update
Delete
31 Mei 2006
Me-retrieve baris data
Menambah baris data
Mengubah data
Menghapus baris data
© 2006, M. Ramadhan
40
Daftar Pustaka
Connolly, Thomas., et.al., 2002. Database
System. Wokingham England, AddisonWesley Publishing Company.
Vieira, Robert, 2006. Beginning SQL Server
2005 Programming. Indianapolis, Wiley
Publishing, Inc.
Otey, Michael dan Conte, Paul, 2001. SQL
Server Developer's Guide, Berkeley,
Osborne / McGraw-Hill.
31 Mei 2006
© 2006, M. Ramadhan
41
TAMAT
© 2006, M. Ramadhan
31 Mei 2006
© 2006, M. Ramadhan
42
Download