Structured Query Language - unsri.ac.id fileMahasiswa diharapkan : Memahami kegunaan DML. Mampu...
Transcript of Structured Query Language - unsri.ac.id fileMahasiswa diharapkan : Memahami kegunaan DML. Mampu...
31 Mei 2006 © 2006, M. Ramadhan 1
Structured Query Language
DML (Data Manipulation Language)
31 Mei 2006 © 2006, M. Ramadhan 2
Pendahuluan
Yang akan dibahas:Data Manipulation Language (DML)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
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 4
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 5
DML: Pernyataan SQL
Select Me-retrieve baris dataInsert Menambah baris dataUpdate Mengubah dataDelete Menghapus baris data
31 Mei 2006 © 2006, M. Ramadhan 6
Pernyataan Select (1)
Select daftar-kolomFrom daftar-tabelWhere kriteriaGroup By daftar-kolomHaving kriteriaOrder By daftar-kolom
Syntax
31 Mei 2006 © 2006, M. Ramadhan 7
Pernyataan Select (2)
Memilih semua kolom, contoh:Select *From Buku
Memilih kolom tertentu, misalnya :Select ISBN,
Judul,ThTerbit
From Buku
Memilih Kolom
31 Mei 2006 © 2006, M. Ramadhan 8
Memilih Baris
Memilih baris berdasarkan kriteria tertentu.Misalnya menemukan kembali data buku daritabel Buku yang terbit tahun 2005 ke atas:
Select *
From Buku
Where (ThTerbit >= 2005)
Pernyataan Select (3)
31 Mei 2006 © 2006, M. Ramadhan 9
Memilih Baris dan Kolom
Memilih kolom tertentu dan baris berdasarkankriteria.Misalnya menemukan kembali data kolomJudul dan ThTerbit dari tabel Buku yang terbitpada tahun 2005 :
Select Judul,
ThTerbit
From Buku
Where (ThTerbit = 2005)
Pernyataan Select (4)
31 Mei 2006 © 2006, M. Ramadhan 10
Pernyataan Select (5)
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)
Retrieve Data dari View
31 Mei 2006 © 2006, M. Ramadhan 11
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, tambahkankata Distinct setelah pernyataan Select
Select Distinct ThTerbitFrom Buku
Pernyataan Select (6)
31 Mei 2006 © 2006, M. Ramadhan 12
Pernyataan Select, selain nama kolom, dapatjuga 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
Konstanta, Ekspresi, FungsiPernyataan Select (7)
31 Mei 2006 © 2006, M. Ramadhan 13
Ekspresi dapat berupa:konstanta, kolom, atau fungsi.kombinasi dari konstanta dan atau kolom danatau fungsi, dengan operator.
Operator yang digunakan:Operator aritmetik: +, −, *, /, %, untuk numerikOperator string: + untuk menggabungkan stringOperator perbandingan: <, <=, >, >=, <>, = danatau operator logika: Not, And, Or, In, Between, Like, untuk ekspresi boolean
EkspresiPernyataan Select (8)
31 Mei 2006 © 2006, M. Ramadhan 14
Fungsi bekerja berdasarkan harga dari satubaris untuk satu waktu.Fungsi skalar yg ada dalam MS SQL Server :
Fungsi konversi tipe data 6 buahFungsi string 22 buahFungsi matematik 23 buahFungsi tanggal dan waktu 11 buahFungsi user 10 buahFungsi tambahan lainnya 82 buah
Fungsi SkalarPernyataan Select (9)
31 Mei 2006 © 2006, M. Ramadhan 15
Fungsi bekerja berdasarkan harga darisekumpulan baris untuk satu waktu.Misalnya menghitung jumlah pegawai, rata-rata gaji, total gaji seluruh pegawai, dari tabelPegawai, pernyataan SQL-nya adalah:
Select Count(*),
Avg(Gaji),
Sum(Gaji)
From Pegawai
Fungsi Agregasi (1)Pernyataan Select (10)
31 Mei 2006 © 2006, M. Ramadhan 16
Fungsi DeskripsiAvg (ekspresi) menghitung rata-rata harga
ekspresi yang tidak NULLCount (*) menghitung jumlah barisCount_Big (*) identik dg Count tetapi harga
yang diberikan bertipe BigIntCount (ekspresi) menghitung jumlah harga
ekspresi yang tidak NULLCount_Big(ekspresi) identik dg Count(ekspresi)
tetapi harga yang diberikanbertipe BigInt
Fungsi Agregasi (2)Pernyataan Select (11)
31 Mei 2006 © 2006, M. Ramadhan 17
Fungsi DeskripsiCount (Distinct ekspresi) menghitung jumlah
harga ekspresi tidakNULL yg unik
Count_Big (Distinct ekspresi) identik dengan fungsiCount(Distinct ekspresi)
tetapi harga yang dibe-rikan bertipe BigInt
Sum (ekspresi) menghitung total hargaekspresi tidak NULL
Fungsi Agregasi (3)Pernyataan Select (12)
31 Mei 2006 © 2006, M. Ramadhan 18
Fungsi DeskripsiMax (ekspresi) menghitung harga maksimum
ekspresi yang tidak NULLMin (ekspresi) menghitung harga minimum
ekspresi yang tidak NULLStdDev (ekspresi) menghitung deviasi standar
ekspresi yang tidak NULLStdDevP (ekspresi) identik dg StdDev ttp dari populasiVar (ekspresi) menghitung varian ekspresi yang
tidak NULLVarP (ekspresi) identik dg Var ttp dari populasi
Fungsi Agregasi (4)Pernyataan Select (13)
31 Mei 2006 © 2006, M. Ramadhan 19
Digunakan untuk mengelompokkan barisMisalnya menghitung jumlah pegawai, rata-rata gaji, total gaji untuk setiap kelompokgolongan pegawai :
Select Count(*),
Avg(Gaji),
Sum(Gaji)
From Pegawai
Group By Golongan
Klausa GroupPernyataan Select (14)
31 Mei 2006 © 2006, M. Ramadhan 20
Digunakan untuk membatasi baris yang dihasilkan fungsi agregasi pada group baris.Contoh, menghitung gaji rata2 dan total gajisetiap kelompok golongan pegawai, tetapidibatasi u/ golongan yg rata2 gaji > 1000000Select Avg(Gaji),
Sum(Gaji)
From Pegawai
Group By Golongan
Having Avg(Gaji) > 1000000
Klausa HavingPernyataan Select (15)
31 Mei 2006 © 2006, M. Ramadhan 21
Klausa Having mirip dengan klausa WhereSelect Avg(Gaji), Sum(Gaji)
From PegawaiGroup By GolonganHaving Golongan In (1,3,4)
Memberikan hasil yang sama dengan :Select Avg(Gaji), Sum(Gaji)
From PegawaiWhere Golongan In (1,3,4)Group By Golongan
Klausa Having vs Klausa WherePernyataan Select (16)
31 Mei 2006 © 2006, M. Ramadhan 22
Digunakan untuk mengurutkan barisberdasarkan sebuah kolom atau lebih.Secara default, data diurutkan secara menaikMisalnya mengurutkan data pegawai secaramenaik berdasarkan Nama pegawai:
Select *
From Pegawai
Order By Nama
Klausa Order ByPernyataan Select (17)
31 Mei 2006 © 2006, M. Ramadhan 23
Untuk mengurutkan secara menurun, tambahkan Desc setelah nama kolom.
Misalnya mengurutkan data pegawai secaramenurun berdasarkan Nama pegawai:
Select *
From Pegawai
Order By Nama Desc
Klausa Order By (2)Pernyataan Select (18)
31 Mei 2006 © 2006, M. Ramadhan 24
Bila diperlukan, pengurutan dapat dilakukanberdasarkan beberapa kolom.Pada contoh sebelumnya, boleh jadi adanama pegawai yang sama. Misalnya, untuknama yang sama diurutkan lagi berdasarkanGolongan secara menurun:
Select *From PegawaiOrder By Nama,
Golongan Desc
Klausa Order By (3)Pernyataan Select (19)
31 Mei 2006 © 2006, M. Ramadhan 25
Memodifikasi Data Tabel
Tiga pernyataan SQL u/ memodifikasi data tabel:Insert menambah baris baru ke dalam tabelUpdate mengubah data baris tertentuDelete menghapus baris dari dalam tabel
Ketiga pernyataan dapat memodifikasi sebuahatau sekumpulan baris dalam sebuah tabel.Memodifikasi lebih dari satu tabel dalam satupernyataan tunggal tidak dapat dilakukanModifikasi data dapat juga melalui view.
31 Mei 2006 © 2006, M. Ramadhan 26
Pernyataan Insert (1)
Digunakan untuk menambah baris baruSyntax:
Insert Into NamaTabelAtauView
(Kolom1,
Kolom2,
...)
Values (Nilai1,
Nilai2,
...)
31 Mei 2006 © 2006, M. Ramadhan 27
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 28
Pernyataan Insert (3)
Nilai yang diberikan boleh berupa ekspresiatau NULL.
Insert Into Pegawai
(NRP, Nama,
TglLahir,
Gaji, Tunjangan)
Values (‘0764575368’,’Fulan’
NULL,
1275000, 0.25*1275000)
31 Mei 2006 © 2006, M. Ramadhan 29
Pernyataan Insert (4)
Penambahan data dapat diambil dari tabel lain.Meng-copy semua baris data dari tabel Bukuke dalam tabel BukuBaru dengan tambahankolom baru Penerbit.
Insert Into BukuBaru
(ISBN,Judul,Penerbit,ThTerbit)
Select ISBN, Judul,’ ‘,ThTerbit
From Buku
31 Mei 2006 © 2006, M. Ramadhan 30
Pernyataan Insert (5)
Meng-copy semua baris data buku yang terbit pada tahun 2005 atau 2006 dari tabelBuku ke dalam tabel BukuBaru dengantambahan 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 31
Pernyataan Update (1)
Digunakan untuk mengubah satu baris atausekelompok baris.Syntax:
Update NamaTabelSet NamaKolom1 = Ekspresi1,
NamaKolom2 = Ekspresi2,...
Where kriteria
31 Mei 2006 © 2006, M. Ramadhan 32
Pernyataan Update (2)
Mengubah suatu baris berdasarkan hargaatribut primary keyMisalnya mengubah Judul dan ThTerbitbuku yang ISBN-nya ‘0764575368’
Update Buku
Set Judul = ‘Professional MSVB 2005’,
ThTerbit = 2006
Where ISBN =‘0764575368’
31 Mei 2006 © 2006, M. Ramadhan 33
Pernyataan Update (3)
Mengubah sekelompok baris berdasarkankriteria tertentuMisalnya menaikkan TunjTransport sebesar50% 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 34
Pernyataan Update (4)
Mengubah semua baris dalam sebuah tabeltanpa kecuali.Misalnya menaikkan TunjTransportsebesar 50% untuk semua Pegawai.
Update Pegawai
Set TunjTransport = 1.5* TunjTransport
31 Mei 2006 © 2006, M. Ramadhan 35
Pernyataan Update (5)
Mengosongkan (memberi harga Null) kolomtertentu.Misalnya mengosongkan nilai kolom ThTerbityang ThTerbit di atas tahun 2006:
Update Buku
Set ThTerbit = Null
Where ThTerbit > 2006
31 Mei 2006 © 2006, M. Ramadhan 36
Pernyataan Delete (1)
Digunakan untuk menghapus:satu baris berdasarkan harga primary keysekelompok baris berdasarkan kriteria tertentusemua baris dari sebuah tabel
Syntax:
Delete
From NamaTabel
Where kriteria
31 Mei 2006 © 2006, M. Ramadhan 37
Pernyataan Delete (2)
Menghapus suatu baris berdasarkan hargaatribut primary keyMisalnya menghapus satu baris data Bukuyang ISBN-nya ‘0764575368’
Delete
From Buku
Where ISBN =‘0764575368’
31 Mei 2006 © 2006, M. Ramadhan 38
Pernyataan Delete (3)
Menghapus sekelompok baris berdasarkankriteria tertentuMisalnya menghapus semua baris dari tabelBuku yang ThTerbit di atas tahun 2006:
Delete
From Buku
Where ThTerbit > 2006
31 Mei 2006 © 2006, M. Ramadhan 39
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 40
Yang Sudah Dipelajari
Bahasa basis data: DMLPernyataan SQL:
Select Me-retrieve baris dataInsert Menambah baris dataUpdate Mengubah dataDelete Menghapus baris data
31 Mei 2006 © 2006, M. Ramadhan 41
Daftar Pustaka
Connolly, Thomas., et.al., 2002. DatabaseSystem. Wokingham England, Addison-Wesley 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 42
TAMAT
© 2006, M. Ramadhan