Anda di halaman 1dari 41

Mahasiswa

memahami penggunaan DML dan macam-macamnya Mahasiswa mampu mengaplikasikan operasioperasi INSERT, UPDATE, DELETE Mahasiswa mampu mengaplikasikan operasi SELECT

DML

(Data Manipulation Language ) bahasa SQL yang digunakan untuk memanipulasi data di dalam suatu tabel. Perintah DML meliputi:
1. INSERT INTO Menyisipkan/menambah data baru ke dalam tabel di database 2. UPDATE Mengupdate data dalam tabel di database 3. DELETE Menghapus data dari tabel di database 4. SELECT Mengekstrak/menampilkan data dari tabel-tabel di database

Memasukkan, Mengupdate dan Menghapus data

Sintaks INSERT [INTO] nama_tabel [kolom_1,,kolom_2] VALUES (value_kolom_,,value_kolom_n) Keterangan

bagian yang berada di dalam kurung siku bersifat optional nama_tabel merupakan nama tabel yang datanya akan dimanipulasi kolom_1,kolom_2, dst merupakan nama kolom dari tabel yang bersangkutan Jika data akan diisikan ke dalam semua kolom (field) suatu tabel maka tidak perlu disebutkan nama kolomnya namun pengisianya harus urut. Jika data hanya akan diisikan ke kolom (field) tertentu maka nama kolomnya harus disebutkan.

Terdapat table mahasiswa dengan struktur sbb:

Contoh data:

Jika data mahasiswa ingin di tambah maka: INSERT INTO MAHASISWA VALUES ('5100100002','123','BUDI','SURABAYA')

Data mahasiswa akan ditambah tetapi datanya tidak lengkap INSERT INTO MAHASISWA (NRP,NIP,MHS_NAMA) VALUES ('5100100103','123','TOMI')

Terkadang terdapat kesalahan dalam pengetikan data atau terjadi perubahan data karena suatu hal. Data tersebut dapat diperbaiki dengan menggunakan perintah UPDATE.
UPDATE nama_tabel SET nama_kolom = value [WHERE syarat]

Sintaks

Keterangan

Nama_tabel berisi nama tabel di mana data yang akan dirubah berada. Nama_kolom berisi nama kolom dimana kolom dari data berada. Value merupakan nilai data pengganti yang akan dimasukkan Syarat merupakan kondisi data yang akan di rubah.

Terkadang

data yang tersimpan dalam tabel atau view tidak diperlukan kembali, sehingga memenuhi ruang penyimpanan. Untuk itu data harus dihapus dengan perintah DELETE.
Sintaks

DELETE FROM nama_tabel [WHERE syarat]

Keterangan

Nama_tabel berisi nama tabel di mana data yang akan dihapus berada. Syarat merupakan kondisi data yang akan di rubah.

Mendapatkan Informasi dari Database

SELECT [DISTINCT] select_list


FROM table_source [WHERE search_condition] [GROUP BY group_by_expression] [HAVING search_condition] [ORDER BY order_expression [ASC | DESC] ]

Pernyataan SELECT digunakan untuk menyeleksi (memilih) data dari satu atau beberapa tabel. Hasil tabulasi disimpan dalam tabel hasil (disebut sebagai result-set). Syntax :

SELECT column_name(s) FROM table_name


SELECT [*] [<kolom1>, <kolom2>, . . ., <kolomN>] [<alias.kolom1>, <alias.kolom2>, . . . , <alias.kolomN>] FROM <nama_tabel>

Basis Data Teknik Informatika FTIf - ITS

Soal : Dapatkan Informasi NIP , Nama Depan, Alamat dan Gaji Pegawai Syntax :
SELECT NIP, NmDepan, Alamat, Gaji From Pegawai

Hasil:

Basis Data Teknik Informatika FTIf - ITS

WHERE

digunakan jika informasi yang ditampilkan (pernyataan SELECT) memiliki kriteria tertentu. Syntax:
SELECT column FROM table WHERE column operator value

Basis Data Teknik Informatika FTIf - ITS

Operator
Operator = <> > <

yang dapat digunakan dalam klausa WHERE adalah:


Description Equal (sama dengan) Not equal (tidak sama dengan) Greater than (Lebih dari) Less than (kurang dari)

>=
<= BETWEEN

Greater than or equal (lebih dari sama dengan)


Less than or equal (kurang dari sama dengan) Between an inclusive range Search for a pattern (pencarian dengan pola tertentu)

LIKE

Basis Data Teknik Informatika FTIf - ITS

Soal: Dapatkan Informasi NIP, Nama Depan, Alamat dan Gaji Pegawai yang gajinya lebih dari 25000 Syntax:

SELECT NIP, NmDepan, Alamat, Gaji From Pegawai Where Gaji>25000

Hasil:

Basis Data Teknik Informatika FTIf - ITS

Klausa

ini biasanya digunakan untuk:

1.Filter (penyaringan) data. 2.Merelasikan/menghubungkan query yang disusun lebih dari satu tabel.
o

Penerapannya adalah dengan memasukkan suatu ekspresi kondisi setelah klausa WHERE: WHERE <kondisi> Jika <kondisi> lebih dari satu, maka bisa ditambahkan dengan AND atau OR (sesuai dengan kebutuhan).

Jika

kita mengambil informasi dari lebih dari sebuah tabel, maka kita perlu menambahkan kondisi untuk relasi antara kedua tabel tersebut. Pada dasarnya mirip dengan filter, tapi fungsinya digunakan untuk merelasikan antara tabel-tabel yang diambil informasinya

Menampilkan Judul_VCD, Kategori_VCD, tgl_harusKembali

Judul_VCD dan KategoriVCD bisa diambil dari tabel VCD, tetapi tgl_harusKembali tidak ada pada tabel VCD sehingga haris diambil dari tabel Penyewaan_detail. Kedua tabel tersebut berelasi pada Kode_VCD. Sehingga querynya: SELECT Judul_VCD, Kategori_VCD, tgl_harusKembali FROM VCD, Penyewaan_detail WHERE VCD.KodeVCD=Penyewaan_detail.KodeVCD

Jika ada nama field yang sama dari tabel yang disertakan, maka sebelum nama field, berikan nama tabel diikuti sebuah titik (.) Misal untuk query sebelumnya dengan ditambah menampilkan KodeVCD:

SELECT VCD.KodeVCD, VCD.Judul_VCD, VCD.Kategori_VCD, Penyewaan_detail.tgl_harusKembali FROM VCD, Penyewaan_detail WHERE VCD.KodeVCD=Penyewaan_detail.KodeVCD

Atau untuk mempersingkat query menggunakan alias SELECT V.KodeVCD, V.Judul_VCD, V.Kategori_VCD, P.tgl_harusKembali FROM VCD V, Penyewaan_detail P WHERE V.KodeVCD=P.KodeVCD

Contoh
Menampilkan KodeVCD,Judul_VCD, tgl_harusKembali untuk VCD dengan kategori kartun diurutkan berdasarkan JudulVCD
SELECT V.KodeVCD, V.Judul_VCD, P.tgl_harusKembali FROM VCD V, Penyewaan_detail P WHERE V.KodeVCD=P.KodeVCD AND V.Kategori_VCD=kartun ORDER BY V.Judul_VCD

Where untuk filter atau pencarian data di dalam SQL Server bisa dalam beberapa bentuk ekspresi, yakni:

operasi pembandingan operasi pendekatan pola operasi pembandingan dengan sekumpulan nilai

Operasi:
= < <= >= > <> is

Khusus untuk pembanding IS, nilai yang diisikan adalah null, yakni sebuah nilai yang belum berisi nilai. nilai null tidak sama dengan nilai 0 pada tipe numerik ataupun string kosong pada tipe string

Basis Data Jurusan Teknik Informatika ITS

Contoh
menampilkan pegawai yang berjenis kelamin laki-laki: SELECT * FROM Employee WHERE Sex=M menampilkan Pegawai yang tahun kelahirannya lebih dari 1965 SELECT * FROM Employee WHERE year(Bdate) > 1965
menampilkan Pegawai wanita yang lahir di bulan Juli:

SELECT * FROM Employee WHERE Sex=F AND month(Bdate)=6


menampilkan idKoleksi yang belum dikembalikan (TglKembali belum terisi)

SELECT * FROM Peminjaman WHERE TglKembali IS NULL

Basis Data Jurusan Teknik Informatika ITS

Operasi

ini, hanya untuk pembandingan nilai bertipe string Digunakan untuk mengenali string-string yang memiliki pola tertentu. Di dalam operasi ini, digunakan simbol-simbol berikut: simbol % (Oracle) atau *(ms. Access) artinya mewakili 0 s/d tak terhingga dari sembarang karakter simbol _ artinya mewakili 1 sembarang karakter

Basis Data Jurusan Teknik Informatika ITS

Contoh
Menampilkan pegawai yang tinggal di Houston SELECT * FROM Employee WHERE Address LIKE "*houston*" menampilkan Pegawai yang huruf ketiga namanya adalah m: SELECT SSN, Fname FROM Employee WHERE FName LIKE ??d*"
? dan _ mewakili satu karakter ? : access _ : oracle

Basis Data Jurusan Teknik Informatika ITS

Ekspresi

ini digunakan untuk membandingkan dengan sebuah kumpulan nilai Kumpulan nilai bisa berupa:

nilai-nilai yang diisikan query tunggal query yg hasilnya hanya terdapat sebuah kolom saja

Basis Data Jurusan Teknik Informatika ITS

Nilai-nilai yang diisikan, maksudnya kita sendiri yang mengisikan nilai-nilai tersebut di dalam query kita.

Contoh
Menampilkan pegawai yang terlibat dalam proyek selain nomer 3 dan 10

SELECT W.ESSN, E.Fname, W.PNO FROM Employee AS E, Works_on AS W WHERE W.PNO NOT IN (3,10) and W.ESSN=E.SSN;

Basis Data Jurusan Teknik Informatika ITS

Query tunggal, yakni nilai-nilai yang digunakan sebagai pembanding diambil dari sebuah query tunggal yang hasilnya hanya satu kolom saja

Contoh

Menampilkan data pegawai yang tidak pernah terlibat dalam proyek SELECT SSN, Fname FROM Employee WHERE SSN NOT IN (Select distinct ESSN From Works_On)
menampilkan koleksi yang sedang dipinjam: SELECT * FROM koleksi WHERE idKoleksi IN (SELECT idKoleksi FROM Peminjaman WHERE TglKembali is NULL)
Basis Data Jurusan Teknik Informatika ITS

Query yang melibatkan fungsi penghitungan. Fungsi-fungsi tersebut yakni:

- COUNT(*) mendapatkan jumlah baris - SUM(kolom) mendapatkan hasil penjumlahan kolom - MAX(kolom) mendapatkan nilai tertinggi - MIN(kolom) mendapatkan nilai terendah - AVG(kolom) mendapatkan nilai rata-rata

Basis Data Jurusan Teknik Informatika ITS

Tampilkan rata-rata harga sewa VCD koleksi kartun Tampilkan jumlah VCD

SELECT AVG (V.Biaya_Sewa) FROM VCD V WHERE V.Kategori_VCD=kartun

SELECT COUNT (*) FROM VCD V

Sintaks:

SELECT [DISTINCT] target-list FROM relation-list WHERE qualification GROUP BY grouping-list [HAVING group-qualification]

target-list terdiri dari: (a) attribute names, dan (b) terms berisikan operasi-operasi aggregasi (misal, MIN (S.age)). term adalah atribut yang mengandung fungsi agregasi. attribute name yang dituliskan dalam target-list harus juga menjadi subset dari grouping-list.

Klausa HAVING digunakan untuk menuliskan spesifikasi terhadapa GROUP

34

Digunakan

untuk pengelompokan dari fungsi-fungsi

aggregate Yang penting untuk diperhatikan, kolom-kolom yang disertakan setelah GROUP BY harus sama dengan kolom-kolom yang dipilih pada setelah klausa SELECT yg selain fungsi AGGREGATE

SELECT V.Kategori_VCD, AVG


(V.Harga_Sewa) FROM VCD V

Query

ini ilegal! (Mengapa?)


SELECT V.Kategori_VCD, AVG (V.Harga_Sewa) FROM VCD V GROUP BY V.Kategori_VCD

Jika

untuk filter query biasa kita menggunakan klause where, maka klausa having digunakan untuk filter fungsi-fungsi aggregate. Contoh
Menampilkan departemen yang jumlah pegawainya lebih dari 2. SELECT DNO, COUNT(*)as [Jumlah Pegawai] FROM Employee GROUP BY DNO HAVING COUNT(*)> 2

Perintah

order by digunakan untuk mengurutkan data Order by Asc (ascending) : pengurutan dari kecil ke besar, dari A ke Z Order by Desc (Descending): pengurutan dari besar ke kecil, dari Z ke A) Contoh: Tampilkan gaji pegawai urut dari yang terbesar
SELECT SSN, FName, Salary FROM Employee ORDER BY salary DESC;

Contoh: select NAMA,EXTRACT (YEAR FROM TO_DATE(TGL_LHR,'DD-MONRR')) AS TAHUN FROM MAHASISWA ORDER BY TAHUN ASC

http://docs.oracle.com/cd/B28359_01/serve

r.111/b28286/functions052.htm

Dari struktur tabel di atas, buat query SQL untuk: Menambah data mata kuliah berupa: 1. Kode: IF001, Nama: BASIS DATA, SKS: 3 2. Kode: IF002, Nama: PEMROGRAMAN, 3. Kode: IF003, Nama: IMK Lakukan update pada: 1. Mata kuliah basis data seharusnya jumlah sks=4 2. Mata kuliah pemrograman sksnya di isi 3 Lakukan delete pada mata kuliah yang jumlah sksnya null

Anda mungkin juga menyukai