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
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.
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
Keterangan
Nama_tabel berisi nama tabel di mana data yang akan dihapus berada. Syarat merupakan kondisi data yang akan di rubah.
Pernyataan SELECT digunakan untuk menyeleksi (memilih) data dari satu atau beberapa tabel. Hasil tabulasi disimpan dalam tabel hasil (disebut sebagai result-set). Syntax :
Soal : Dapatkan Informasi NIP , Nama Depan, Alamat dan Gaji Pegawai Syntax :
SELECT NIP, NmDepan, Alamat, Gaji From Pegawai
Hasil:
WHERE
digunakan jika informasi yang ditampilkan (pernyataan SELECT) memiliki kriteria tertentu. Syntax:
SELECT column FROM table WHERE column operator value
Operator
Operator = <> > <
>=
<= BETWEEN
LIKE
Soal: Dapatkan Informasi NIP, Nama Depan, Alamat dan Gaji Pegawai yang gajinya lebih dari 25000 Syntax:
Hasil:
Klausa
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
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
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:
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
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
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
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;
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
- 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
Tampilkan rata-rata harga sewa VCD koleksi kartun Tampilkan jumlah VCD
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.
34
Digunakan
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
Query
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