SQL MANIPULASI DATA Data Manipulation Language DML merupakan

  • Slides: 50
Download presentation
SQL

SQL

MANIPULASI DATA � Data Manipulation Language (DML) merupakan bahasa basis data yang berguna untuk

MANIPULASI DATA � Data Manipulation Language (DML) merupakan bahasa basis data yang berguna untuk melakukan modifikasi dan pengambilan data pada suatu basis data � Modifikasi data terdiri dari: penambahan (insert), pembaruan (update) dan penghapusan (delete).

Penambahan Data � Instruksi SQL untuk melakukan penambahan data adalah menggunakan syntax: INSERT INTO

Penambahan Data � Instruksi SQL untuk melakukan penambahan data adalah menggunakan syntax: INSERT INTO <nama. Tabel> [(field 1, field 2, …)] VALUES (field 1 [, field 2, …]) | SQL-SELECT Keterangan v <nama. Tabel> nama tabel yang akan ditambahkan datanya v [(field 1, field 2, …)] field-field di dalam tabel yang akan diisikan nilainya v VALUES (nilai 1 [, nilai 2, …]) | SQL-SELECT nilai yang diisikan Jika mengisikan sebuah data tunggal saja yang tidak diambil dari tabel lain, gunakan: VALUES (nilai 1 [, nilai 2, …])

Penambahan Data Contoh Untuk mengisikan data pada tabel penerbit: INSERT INTO penerbit VALUES (90,

Penambahan Data Contoh Untuk mengisikan data pada tabel penerbit: INSERT INTO penerbit VALUES (90, 'CV Cempaka', 'Jl Gebang Wetan 99', '59911111', 'http: //www. cempaka. co. id') Contoh di atas tidak menyertakan klausa [(field 1, field 2, …)], sehingga pengisiannya harus seluruh field dan urutannya harus benar sesuai dengan urutan field pada struktur tabel.

Penambahan Data Contoh Untuk mengisikan penerbit: data pada tabel INSERT INTO penerbit (PN_ID, PN_Nama)

Penambahan Data Contoh Untuk mengisikan penerbit: data pada tabel INSERT INTO penerbit (PN_ID, PN_Nama) VALUES (91, 'CV Angkasa') Contoh di atas menyebutkan field-field yang diisikan pada tabel penerbit, sehingga nilai-nilai yang ditulis setelah klausa VALUES juga harus mengikuti field-field tersebut.

Mengubah Data � Instruksi SQL untuk melakukan perubahan data adalah menggunakan syntax: UPDATE <nama.

Mengubah Data � Instruksi SQL untuk melakukan perubahan data adalah menggunakan syntax: UPDATE <nama. Tabel> SET <field 1>=<nilai 1> [ , <field 2> = <nilai 2>, …] [WHERE <kondisi>] Keterangan v <nama. Tabel> nama tabel yang akan diubah datanya v SET <field 1>=<nilai 1> [, <field 2>=<nilai 2>, . . . ] nilai baru yang akan diisikan pada field tertentu v [WHERE <kondisi>] filter yang berlaku untuk menentukan data mana saja yang diupdate

Mengubah Data Contoh � Untuk melakukan update massal (berlaku untuk seluruh field), yakni menaikkan

Mengubah Data Contoh � Untuk melakukan update massal (berlaku untuk seluruh field), yakni menaikkan seluruh harga sebesar 110% pada koleksi: UPDATE koleksi SET KL_Harga=KL_Harga*1. 1 n Untuk melakukan update tertentu, yakni memberikan keterangan dg isian ‘Buku TA’ untuk semua koleksi yang berjenis buku TA (KL_TK_ID=4): UPDATE koleksi SET KL_Keterangan = 'Buku TA' WHERE KL_TK_ID=4

Menghapus Data � Instruksi SQL untuk menghapus data adalah menggunakan syntax: DELETE FROM <nama.

Menghapus Data � Instruksi SQL untuk menghapus data adalah menggunakan syntax: DELETE FROM <nama. Tabel> [WHERE <kondisi>] Keterangan v <nama. Tabel> nama tabel yang akan dihapus datanya v [WHERE <kondisi>] filter yang berlaku untuk menentukan data mana saja yang dihapus

Menghapus Data Contoh � Untuk menghapus seluruh data peminjaman: DELETE FROM Peminjaman n Untuk

Menghapus Data Contoh � Untuk menghapus seluruh data peminjaman: DELETE FROM Peminjaman n Untuk menghapus seluruh koleksi yang berjenis buku TA (id. Jenis. Koleksi=4) DELETE FROM koleksi WHERE KL_TK_ID=4

SQL Query � Berikut adalah syntax dari SQL-SELECT [DISTINCT] select_list FROM table_source [WHERE search_condition]

SQL Query � Berikut adalah syntax dari SQL-SELECT [DISTINCT] select_list FROM table_source [WHERE search_condition] [GROUP BY group_by_expression] [HAVING search_condition] [ORDER BY order_expression [ASC | DESC] ]

SQL Query � l l l SELECT, INTO, FROM, WHERE, GROUP BY, HAVING DAN

SQL Query � l l l SELECT, INTO, FROM, WHERE, GROUP BY, HAVING DAN ORDER BY kata kunci (keyword) yang harus disertakan jika kita membutuhkannya di dalam pengolahan data select_list, table_source, search_condition, group_by_expression, order_expression isian yang bisa kita ubah berdasarkan kebutuhan kita Kurung kotak [ ] bagian tersebut boleh disertakan atau tidak, tergantung dari kebutuhan Urutan syntax untuk kata kunci (keyword), misalnya ORDER BY terletak di setelah GROUP BY, menunjukkan bahwa keyword harus disusun berdasarkan urutan tersebut, jika keduanya disertakan, ORDER BY tidak boleh ditulis mendahului GROUP BY

select_list adalah kolom-kolom yang didefinisikan sebagai hasil dari proses query a. Menampilkan keseluruhan field

select_list adalah kolom-kolom yang didefinisikan sebagai hasil dari proses query a. Menampilkan keseluruhan field Untuk menampilkan keseluruhan field dari tabel-tabel yang didefinisikan, digunakan *. Misalnya, untuk menampilkan seluruh field dari tabel Anggota, perintahnya: SELECT * FROM Anggota

select_list b. Menampilkan kolom-kolom tertentu Kolom-kolom yang dipilih berupa ekspresi, yang mana ekspresi tersebut

select_list b. Menampilkan kolom-kolom tertentu Kolom-kolom yang dipilih berupa ekspresi, yang mana ekspresi tersebut bisa berupa: l field tabel (biasanya) l konstanta l operasi dan fungsi Antara kolom satu dengan lainnya dipisahkan dengan tanda koma (, ). Jika merupakan field tabel, maka judul kolom adalah nama field tersebut.

select_list Contoh l l menampilkan nama dan alamat Anggota SELECT nama, alamat FROM Anggota

select_list Contoh l l menampilkan nama dan alamat Anggota SELECT nama, alamat FROM Anggota Yang terdapat ekspresi fungsi dari query sebelumnya, yakni menampilkan nama dalam bentuk huruf kapital: SELECT UPPER(nama), alamat FROM Anggota SELECT Lower(nama), alamat FROM Anggota

select_list c. Mengubah judul kolom l. Kolom-kolom yang dipilih bisa diberi judul tertentu sesuai

select_list c. Mengubah judul kolom l. Kolom-kolom yang dipilih bisa diberi judul tertentu sesuai dengan keinginan kita. l Menggunakan syntax: ekspresi AS judul_kolom Ini merupakan cara standar yang dipakai pada banyak sistem database.

select_list Contoh Beberapa query pada point b sebelumnya, diberi judul kolom sbb: l menampilkan

select_list Contoh Beberapa query pada point b sebelumnya, diberi judul kolom sbb: l menampilkan nama dan alamat Anggota SELECT nama AS Nama. Anggota, alamat AS Alamat. Anggota FROM Anggota

select_list d. Menyertakan nama tabel atau alias Jika kita memasukkan sebuah field tabel di

select_list d. Menyertakan nama tabel atau alias Jika kita memasukkan sebuah field tabel di dalam sebuah ekspresi kolom, kita bisa menyertakan nama tabel Sebelum nama fieldnya yang dipisah dengan tanda titik: Untuk apa? nama_tabel. nama_field l. Untuk mempermudah analisa pembuatan query l. Untuk membedakan kepemilikan sebuah field di dalam query yang menyertakan lebih dari satu tabel. Sebab bisa saja terjadi dua buah tabel memiliki nama field yang sama

select_list Contoh untuk sebuah contoh query sebelumnya, jika disertakan nama tabel adalah sbb: SELECT

select_list Contoh untuk sebuah contoh query sebelumnya, jika disertakan nama tabel adalah sbb: SELECT UPPER(Anggota. nama) As Nama, Anggota. alamat FROM Anggota

DISTINCT � Digunakan apabila kita ingin menghilangkan duplikasi dari hasil query (hasil query yang

DISTINCT � Digunakan apabila kita ingin menghilangkan duplikasi dari hasil query (hasil query yang sama ditampilkan sekali) SELECT [DISTINCT] select_list FROM table_source

DISTINCT Contoh untuk menampilkan nomor-nomor anggota yang sedang meminjam atau belum mengembalikan: SELECT No.

DISTINCT Contoh untuk menampilkan nomor-nomor anggota yang sedang meminjam atau belum mengembalikan: SELECT No. Anggota FROM Peminjaman pada hasil query tersebut terdapat No. Anggota yang ditampilkan lebih dari sekali. Untuk meniadakan duplikasi, querynya adalah sbb: SELECT DISTINCT No. Anggota FROM Peminjaman No. Anggota ID 001 ID 002 ID 001 ID 003 No. Anggota ID 001 ID 002 ID 003

table_source � Adalah sumber data dari query � Bisa merupakan tabel ataupun view �

table_source � Adalah sumber data dari query � Bisa merupakan tabel ataupun view � Tabel yang disertakan bisa lebih dari satu. Jika lebih dari satu, dalam penulisan dipisah dengan koma.

Pemberian nama lain (alias) � Sebuah tabel bisa diberi nama lain (alias), yang mana

Pemberian nama lain (alias) � Sebuah tabel bisa diberi nama lain (alias), yang mana hal ini digunakan untuk memperpendek nama atau untuk membedakan field jika sebuah query mengambil tabel yang sama lebih dari satu � Nama alias ditulis setelah nama tabel yang bersangkutan

Pemberian nama lain (alias) Contoh Alias yang digunakan untuk memperpendek nama tabel: SELECT UPPER(ang.

Pemberian nama lain (alias) Contoh Alias yang digunakan untuk memperpendek nama tabel: SELECT UPPER(ang. nama) AS Nama, ang. alamat FROM Anggota ang Nama tabel Anggota di atas diberi nama alias ang. Sehingga untuk menampilkan fieldnya, cukup disertakan aliasnya saja

Tabel SUPPLIER Tabel PARTS

Tabel SUPPLIER Tabel PARTS

Tabel SHIPMENT

Tabel SHIPMENT

SELECT CITY FROM PARTS

SELECT CITY FROM PARTS

SELECT DISTINCT CITY FROM PARTS

SELECT DISTINCT CITY FROM PARTS

WHERE SELECT * FROM SUPPLIER WHERE STATUS = 20

WHERE SELECT * FROM SUPPLIER WHERE STATUS = 20

WHERE SELECT * FROM SUPPLIER WHERE CITY = ‘Semarang’

WHERE SELECT * FROM SUPPLIER WHERE CITY = ‘Semarang’

WHERE Predikat pada klausa WHERE dapat dikombinasikan dengan operator relasi lainnya, seperti <, <=,

WHERE Predikat pada klausa WHERE dapat dikombinasikan dengan operator relasi lainnya, seperti <, <=, >, >=, <>, dan operator logika, seperti AND, OR, NOT SELECT * FROM SUPPLIER WHERE STATUS = 30 AND CITY = ‘Yogyakarta’

Klausa WHERE dapat digunakan untuk melakukan query dengan predikat yang berbentuk suatu range nilai

Klausa WHERE dapat digunakan untuk melakukan query dengan predikat yang berbentuk suatu range nilai tertentu, yaitu dengan menambahkan klausa BETWEEN. SELECT * FROM SUPPLIER WHERE STATUS BETWEEN 20 AND 30

FROM � Klausa FROM digunakan untuk menentukan tabel yang akan dijadikan sebagai sumber untuk

FROM � Klausa FROM digunakan untuk menentukan tabel yang akan dijadikan sebagai sumber untuk pencarian data. � Dalam melakukan query tidak hanya terbatas pada satu tabel, tetapi sering kali dibutuhkan untuk merelasikan beberapa tabel sekaligus.

� Menampilkan semua SUPPLIER yang melakukan SHIPMENT dengan jumlah kuantitasnya > 300 SELECT *

� Menampilkan semua SUPPLIER yang melakukan SHIPMENT dengan jumlah kuantitasnya > 300 SELECT * FROM SUPPLIER, SHIPMENT WHERE SUPPLIER. SCODE=SHIPMENT. SCODE AND SHIPMENT. QTY > 300

SELECT SU. SNAME FROM SUPPLIER SU, SHIPMENT SH WHERE SU. SCODE=SH. SCODE AND SH.

SELECT SU. SNAME FROM SUPPLIER SU, SHIPMENT SH WHERE SU. SCODE=SH. SCODE AND SH. QTY > 300

FROM(4) SELECT SU. SNAME AS NAMA_SUPPLIER FROM SUPPLIER SU, SHIPMENT SH WHERE SU. SCODE=SH.

FROM(4) SELECT SU. SNAME AS NAMA_SUPPLIER FROM SUPPLIER SU, SHIPMENT SH WHERE SU. SCODE=SH. SCODE AND SH. QTY > 300

Pengurutan Hasil Query � Untuk menampilkan hasil query berdasarkan urutan atribut tertentu, maka dapat

Pengurutan Hasil Query � Untuk menampilkan hasil query berdasarkan urutan atribut tertentu, maka dapat dilakukan dengan menambahkan klausa ORDER BY. � Default yang diberikan klausa ORDER BY adalah urutan secara menial (ASC), tetapi untuk merubah menjadi urutan secara menurun, dapat dilakukan dengan menambahkan klausa DESC setelah nama atribut.

SELECT * FROM SUPPLIER ORDER BY STATUS DESC

SELECT * FROM SUPPLIER ORDER BY STATUS DESC

SELECT SNAME FROM SUPPLIER WHERE STATUS = 30 ORDER BY SNAME DESC

SELECT SNAME FROM SUPPLIER WHERE STATUS = 30 ORDER BY SNAME DESC

Fungsi Agregasi � Dalam melakukan suatu query, terkadang dibutuhkan untuk melakukan perhitungan jumlah tuples,

Fungsi Agregasi � Dalam melakukan suatu query, terkadang dibutuhkan untuk melakukan perhitungan jumlah tuples, total nilai suatu atribut, nilai atribut terbesar atau terkecil, dan menentukan nilai rata-rata suatu atribut. � Untuk memenuhi kondisi-kondisi di atas, SQL sebagai bahasa query menyediakan fungsi agregasi.

� � � AVG Untuk memperoleh nilai yang bertipe numerik. MIN Untuk memperoleh nilai

� � � AVG Untuk memperoleh nilai yang bertipe numerik. MIN Untuk memperoleh nilai bertipe numerik. MAX Untuk memperoleh nilai bertipe numerik. SUM Untuk memperoleh nilai bertipe numerik. COUNT Untuk memperoleh nilai rata-rata suatu atribut terkecil suatu atribut yang terbesar suatu atribut yang total suatu atribut yang banyaknya tuples.

� Menghitung banyaknya tuples pada tabel SHIPMENT � Perintah SQL-nya adalah : SELECT COUNT(*)

� Menghitung banyaknya tuples pada tabel SHIPMENT � Perintah SQL-nya adalah : SELECT COUNT(*) FROM SHIPMENT

� Menampilkan total berat (WEIGHT) untuk semua PARTS � Perintah SQL-nya adalah : SELECT

� Menampilkan total berat (WEIGHT) untuk semua PARTS � Perintah SQL-nya adalah : SELECT SUM(WEIGHT) FROM PARTS

� Menghitung rata-rata kuantitas (QTY) untuk semua SHIPMENT � Perintah SQL-nya adalah : SELECT

� Menghitung rata-rata kuantitas (QTY) untuk semua SHIPMENT � Perintah SQL-nya adalah : SELECT AVG(QTY) FROM SHIPMENT

� Menentukan nilai STATUS yang terbesar untuk SUPPLIER � Perintah SQL-nya adalah : SELECT

� Menentukan nilai STATUS yang terbesar untuk SUPPLIER � Perintah SQL-nya adalah : SELECT MAX(STATUS) FROM SUPPLIER

� Menentukan nilai kuantitas (QTY) yang terkecil untuk SHIPMENT � Perintah SQL-nya adalah :

� Menentukan nilai kuantitas (QTY) yang terkecil untuk SHIPMENT � Perintah SQL-nya adalah : SELECT MIN(QTY) FROM SHIPMENT

� Fungsi agregasi dapat juga dikombinasikan dengan klausa GROUP BY, untuk menyatakan pengelompokan tuple

� Fungsi agregasi dapat juga dikombinasikan dengan klausa GROUP BY, untuk menyatakan pengelompokan tuple hasil query.

� Menampilkan banyaknya tuple dan kuantitas (QTY) untuk SHIPMENT yang dikelompokan berdasarkan PARTS (PCODE)

� Menampilkan banyaknya tuple dan kuantitas (QTY) untuk SHIPMENT yang dikelompokan berdasarkan PARTS (PCODE) dengan urutan secara menaik: SELECT PCODE, COUNT(*), SUM(QTY) FROM SHIPMENT GROUP BY PCODE ORDER BY PCODE

Nilai NULL � Nilai NULL pada suatu query dapat diperlakukan secara khusus, yaitu dapat

Nilai NULL � Nilai NULL pada suatu query dapat diperlakukan secara khusus, yaitu dapat juga diperlakukan untuk query menggunakan ekspresi SQL. � Misalkan, menampilkan atribut CITY dari tabel SUPPLIER yang masih kosong : SELECT DISTINCT SCODE FROM SUPPLIER WHERE CITY is NULL

SELECT COUNT(*) FROM SUPPLIER WHERE STATUS is NOT NULL

SELECT COUNT(*) FROM SUPPLIER WHERE STATUS is NOT NULL