sql

50
SQL

Upload: hammer

Post on 15-Jan-2016

38 views

Category:

Documents


2 download

DESCRIPTION

SQL. 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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: SQL

SQL

Page 2: SQL

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).

MANIPULASI DATA

Page 3: SQL

Instruksi SQL untuk melakukan penambahan data adalah menggunakan syntax:

Penambahan Data

INSERT INTO <namaTabel> [(field1, field2, …)] VALUES (field1 [,field2, …]) | SQL-SELECTKeterangan <namaTabel> nama tabel yang akan ditambahkan datanya [(field1, field2, …)] field-field di dalam tabel yang akan diisikan nilainya VALUES (nilai1 [,nilai2, …]) | SQL-SELECT nilai yang diisikan

Jika mengisikan sebuah data tunggal saja yang tidak diambil dari tabel lain, gunakan:

VALUES (nilai1 [,nilai2, …])

Page 4: SQL

Contoh

Penambahan Data

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 [(field1, field2, …)], sehingga pengisiannya harus seluruh field dan urutannya harus benar sesuai dengan urutan field pada struktur tabel.

Page 5: SQL

Contoh

Penambahan Data

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.

Untuk mengisikan data pada tabel penerbit:

Page 6: SQL

Instruksi SQL untuk melakukan perubahan data adalah menggunakan syntax:

Mengubah Data

UPDATE <namaTabel> SET <field1>=<nilai1> [ , <field2> = <nilai2>, …][WHERE <kondisi>]

Keterangan <namaTabel> nama tabel yang akan diubah datanya SET <field1>=<nilai1> [,<field2>=<nilai2>,... ] nilai baru yang akan diisikan pada field tertentu [WHERE <kondisi>] filter yang berlaku untuk menentukan data mana saja yang diupdate

Page 7: SQL

Untuk melakukan update massal (berlaku untuk seluruh field), yakni menaikkan seluruh harga sebesar 110% pada koleksi:

Mengubah Data

Contoh

UPDATE koleksi SET KL_Harga=KL_Harga*1.1

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

Page 8: SQL

Instruksi SQL untuk menghapus data adalah menggunakan syntax:

Menghapus Data

DELETE FROM <namaTabel>[WHERE <kondisi>]

Keterangan <namaTabel> nama tabel yang akan dihapus datanya [WHERE <kondisi>] filter yang berlaku untuk menentukan data mana saja yang dihapus

Page 9: SQL

Untuk menghapus seluruh data peminjaman:

Menghapus Data

Contoh

DELETE FROM Peminjaman Untuk menghapus seluruh koleksi yang

berjenis buku TA (idJenisKoleksi=4)

DELETE FROM koleksi WHERE KL_TK_ID=4

Page 10: SQL

Berikut adalah syntax dari SQL-SELECT

SELECT [DISTINCT] select_listFROM table_source[WHERE search_condition][GROUP BY group_by_expression][HAVING search_condition][ORDER BY order_expression [ASC | DESC] ]

SQL Query

Page 11: SQL

SELECT, INTO, FROM, WHERE, GROUP BY, HAVING DAN ORDER BY kata kunci (keyword) yang harus disertakan jika kita membutuhkannya di dalam pengolahan data

SQL Query

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

Page 12: SQL

adalah kolom-kolom yang didefinisikan sebagai hasil dari proses query

select_list

a. Menampilkan keseluruhan fieldUntuk menampilkan keseluruhan field dari tabel-tabel yang didefinisikan, digunakan *. Misalnya, untuk menampilkan seluruh field dari tabel Anggota, perintahnya:

SELECT * FROM Anggota

Page 13: SQL

select_list

b. Menampilkan kolom-kolom tertentuKolom-kolom yang dipilih berupa

ekspresi, yang mana ekspresi tersebutbisa berupa:

field tabel (biasanya) konstanta operasi dan fungsi

Antara kolom satu dengan lainnya dipisahkan dengan tanda koma (,). Jika merupakan field tabel, maka judul kolom adalah nama field tersebut.

Page 14: SQL

Contoh

select_list

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

Page 15: SQL

select_list

c. Mengubah judul kolom

Kolom-kolom yang dipilih bisa diberi judul tertentu sesuai dengan keinginan kita.

Menggunakan syntax: ekspresi AS judul_kolom Ini merupakan cara standar yang dipakai

pada banyak sistem database.

Page 16: SQL

ContohBeberapa query pada point b sebelumnya, diberi judul kolom sbb:

select_list

menampilkan nama dan alamat Anggota SELECT nama AS NamaAnggota, alamat AS AlamatAnggota FROM Anggota

Page 17: SQL

select_list

d. Menyertakan nama tabel atau alias

Jika kita memasukkan sebuah field tabel di dalam sebuahekspresi kolom, kita bisa menyertakan nama tabelSebelum nama fieldnya yang dipisah dengan tanda titik:nama_tabel.nama_fieldUntuk apa?Untuk mempermudah analisa pembuatan query 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

Page 18: SQL

select_list

Contohuntuk sebuah contoh query sebelumnya, jikadisertakan nama tabel adalah sbb: SELECT UPPER(Anggota.nama) As Nama, Anggota.alamat FROM Anggota

Page 19: SQL

Digunakan apabila kita ingin menghilangkan duplikasi dari hasil query (hasil query yang sama ditampilkan sekali)

DISTINCT

SELECT [DISTINCT] select_listFROM table_source

Page 20: SQL

NoAnggota

ID001

ID002

ID003

NoAnggota

ID001

ID002

ID001

ID003

DISTINCT

SELECT NoAnggota FROM Peminjaman

pada hasil query tersebut terdapat NoAnggota yang ditampilkan lebih dari sekali. Untuk meniadakan duplikasi, querynya adalah sbb:

Contohuntuk menampilkan nomor-nomor anggota yang sedang meminjam atau belum mengembalikan:

SELECT DISTINCT NoAnggota FROM Peminjaman

Page 21: SQL

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.

table_source

Page 22: SQL

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)

Page 23: SQL

Alias yang digunakan untuk memperpendek nama tabel:

Pemberian nama lain (alias)Contoh

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.

Page 24: SQL

Tabel SUPPLIER Tabel PARTS

Tabel

Page 25: SQL

Tabel SHIPMENT

Page 26: SQL

SELECT CITYFROM PARTS

SELECT

Page 27: SQL

SELECT DISTINCT CITYFROM PARTS

SELECT

Page 28: SQL

SELECT * FROM SUPPLIER WHERE STATUS = 20

WHERE

Page 29: SQL

SELECT * FROM SUPPLIER WHERE CITY = ‘Semarang’

WHERE

Page 30: SQL

Predikat pada klausa WHERE dapat dikombinasikan dengan operator relasi lainnya, seperti <, <=, >, >=, <>, dan operator logika, seperti AND, OR, NOT

WHERE

SELECT * FROM SUPPLIER WHERE STATUS = 30 AND CITY =

‘Yogyakarta’

Page 31: SQL

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

Page 32: SQL

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.

FROM

Page 33: SQL

Menampilkan semua SUPPLIER yang melakukan SHIPMENT dengan jumlah kuantitasnya > 300

SELECT * FROM SUPPLIER, SHIPMENT WHERE SUPPLIER.SCODE=SHIPMENT.SCODE AND SHIPMENT.QTY > 300

Page 34: SQL

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

Page 35: SQL

SELECT SU.SNAME AS NAMA_SUPPLIERFROM SUPPLIER SU, SHIPMENT SHWHERE SU.SCODE=SH.SCODE AND SH.QTY > 300

FROM(4)

Page 36: SQL

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.

Pengurutan Hasil Query

Page 37: SQL

SELECT *FROM SUPPLIERORDER BY STATUS DESC

Page 38: SQL

SELECT SNAMEFROM SUPPLIER WHERE STATUS = 30 ORDER BY SNAME DESC

Page 39: SQL

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-fungsi agregasi.

Fungsi Agregasi

Page 40: SQL

AVG Untuk memperoleh nilai rata-rata suatu atribut

yang bertipe numerik. MIN Untuk memperoleh nilai terkecil suatu atribut

yang bertipe numerik. MAX Untuk memperoleh nilai terbesar suatu atribut

yang bertipe numerik. SUM Untuk memperoleh nilai total suatu atribut yang

bertipe numerik. COUNT Untuk memperoleh nilai banyaknya tuples.

Page 41: SQL

Menghitung banyaknya tuples pada tabel SHIPMENT

Perintah SQL-nya adalah :SELECT COUNT(*) FROM SHIPMENT

Page 42: SQL

Menampilkan total berat (WEIGHT) untuk semua PARTS

Perintah SQL-nya adalah :SELECT SUM(WEIGHT) FROM PARTS

Page 43: SQL

Menghitung rata-rata kuantitas (QTY) untuk semua SHIPMENT

Perintah SQL-nya adalah :SELECT AVG(QTY) FROM SHIPMENT

Page 44: SQL

Menentukan nilai STATUS yang terbesar untuk SUPPLIER

Perintah SQL-nya adalah :SELECT MAX(STATUS) FROM SUPPLIER

Page 45: SQL

Menentukan nilai kuantitas (QTY) yang terkecil untuk SHIPMENT

Perintah SQL-nya adalah :SELECT MIN(QTY) FROM SHIPMENT

Page 46: SQL

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

Page 47: SQL

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

Page 48: SQL
Page 49: SQL

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

Nilai NULL

Page 50: SQL

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