data manipulation language (dml)

29
Data Manipulation Language (DML) Basisdata 2 T.Informatika UTM Ganjil 2012/2013 Fika Hastarita Rachman

Upload: gloria

Post on 23-Jan-2016

106 views

Category:

Documents


3 download

DESCRIPTION

Data Manipulation Language (DML). Basisdata 2 T.Informatika UTM Ganjil 2012/2013. Pengantar DML. DML adalah perintah SQL yang digunakan untuk memanipulasi data Meliputi: SELECT (pengambilan informasi dari data tabel) INSERT (menambah data baru dalam tabel) - PowerPoint PPT Presentation

TRANSCRIPT

Fika Hastarita Rachman

Data Manipulation Language (DML)

Basisdata 2T.Informatika UTM Ganjil 2012/2013

Fika Hastarita Rachman

Pengantar DMLDML adalah perintah SQL yang digunakan

untuk memanipulasi data

Meliputi:SELECT (pengambilan informasi dari data

tabel)INSERT (menambah data baru dalam tabel)UPDATE (mengubah data yang sudah ada

dalam tabel)DELETE (menghapus data yang sudah ada

dalam tabel)

Fika Hastarita Rachman

Perintah SELECTMemiliki beberapa klausa:

FROM : mengidentifikasi tabel yang diperlukanWHERE : kondisi yang ditentukanGROUP BY : menyusun baris berdasar kolom dgn nilai

yang samaHAVING : memilih susunan baris dari hasil GROUP BY

yang memenuhi kondisiSELECT : memilih kolom yang ingin ditampilkan sebagai

hasil ORDER BY : mengurutkan baris sebelum ditampilkan

sebagai hasilDISTINC

Fika Hastarita Rachman

Basisdata Tennis

Fika Hastarita Rachman

Penggunaan SELECTPerintah SQL: SELECT * FROM PENALTIES;

Tidak ada seleksi kolom mana saja yang ingin ditampilkan (ekspresi yang diberikan setelah select, simbol *)

Isi dari seluruh kolom dalam tabel PENALTIES ditampilkan

Hasil :PAYMENTNO PLAYERNO PAYMENT_DATE AMOUNT

12345678

644271044484427

1980-12-081981-05-051983-09-101984-12-081980-12-081980-12-081982-12-301984-11-12

100.0075.00100.0050.0025.0025.0030.0075.00

Fika Hastarita Rachman

SELECT pemilihan kolomTampilkan nomor pembayaran, nomor

pemain dan jumlah dari masing-masing penalti

SELECT PAYMENTNO,PLAYERNO,AMOUNT

FROM PENALTIES;

Hasil :

PAYMENTNO PLAYERNO AMOUNT12345678

644271044484427

100.0075.00

100.0050.0025.0025.0030.0075.00

Fika Hastarita Rachman

Perintah ASKolom hasil perintah SQL dapat diberi nama

baru untuk memudahkan user menganalisa data

Perintah SQL :SELECT PLAYERNO, NAME,

JOINED AS JOIN_AGE FROM PLAYERS;

Hasil: PLAYERNO NAME JOIN_AGE2 Everett 276 Parmenter 137 Wise 188 Newcastle 18

Fika Hastarita Rachman

Klausa WHEREUntuk memilih atau menyeleksi baris yang

memenuhi kondisi yang ditentukanDapatkan nomor, nama, jenis kelamin dan

tanggal lahir dari masing-masing pemain pria yang lahir setelah tahun 1970

Perintah SQL :SELECT PLAYERNO, NAME, SEX, BIRTH_DATE FROM PLAYERSWHERE SEX = ‘M’ AND YEAR(BIRTH_DATE) > 1970;

Hasil :PLAYERNO NAME SEX BIRTH_DATE57 Brown M 1971-08-17

Fika Hastarita Rachman

Perintah IS NOT NULLSELECT PLAYERNO, LEAGUENO FROM PLAYERSWHERE LEAGUENO IS NOT NULL;  

Hasil perintah SQL:PLAYERNO LEAGUENO2 2411 6 84678 2983 27 251344 112457 6409 83 1608100 6524104 7060 112 1319

Fika Hastarita Rachman

Klausa ORDER BYdigunakan untuk mengurutkan baris-baris

sebelum ditampilkan sebagai hasil perintah SQLEspresi:

ASC(ASCENDING : urut naik (kecil ke besar)DESC (DESCENDING : urut turun (besar ke

kecil)Tak ditentukan --- otomatis ASC

Contoh:SELECT PAYMENTNO, PLAYERNO FROM PENALTIESORDER BY PLAYERNO, PAYMENTNO;

atau ORDER BY 2, 1;

Fika Hastarita Rachman

Seluruh klausa dalam satu SELECThasil perintah SQL diperoleh berdasarkan

urutan pelaksanaan eksekusi dari klausa FROM – WHERE – GROUP BY – HAVING – SELECT – ORDER BY

Cari nomor pemain yang telah melakukan setidaknya dua kali penalti yang jumlahnya lebih dari $25! Urutkan hasil berdasarkan nomor pemainnya!

Fika Hastarita Rachman

Perintah SQL:SELECT PLAYERNOFROM PENALTIESWHERE AMOUNT > 25GROUP BY PLAYERNOHAVING COUNT (*) > 1ORDER BY PLAYERNO;

Fika Hastarita Rachman

Alur Kerja Klausa

FROM (mengidentifikasi tabel yang diperlukan)

WHERE(memilih baris yang memenuhi kondisi yang

ditentukan)

GROUP BY(menyusun baris berdasarkan nilai kolom

yang sama)

HAVING(memilih susunan baris dari hasil GROUP BY

yang memenuhi kondisi yang ditentukan)

SELECT(menentukan kolom yang ingin ditampilkan)

ORDER BY(mengurutkan baris)

HASIL

Fika Hastarita Rachman

Hasil Eksekusi per klausa

Fika Hastarita Rachman

SELECT untuk lebih dari satu tabelCartesian product

Fika Hastarita Rachman

Menampilkan data dari tabel TEAMS dan tabel PLAYERSSELECT TEAMNO, NAME

FROM TEAMS, PLAYERSWHERE TEAMS.PLAYERNO = PLAYERS.PLAYERNO;

Ambigu pada perintah SQL terjadi bila pada perintah SELECT dieksekusi kolom yang dimiliki oleh dua tabel dengan nama kolom sama

Penyelesaian:SELECT PAYMENTNO, PENALTIES.PLAYERNO, AMOUNT,

NAME, INITIALSFROM PENALTIES, PLAYERSWHERE PENALTIES.PLAYERNO = PLAYERS.PLAYERNO;

Fika Hastarita Rachman

Nama alias untuk nama tabelCari nama dan inisial pemain yang telah

bermain di dalam pertandingan minimal sebanyak 1 kali!

Penyelesaian berikut menggunakan alias (P untuk PLAYERNO dan M untuk MATCHES) untuk meringkas perintah SQL

Perintah SQL:SELECT DISTINCT P.NAME, P.INITIALSFROM PLAYERS AS P, MATCHES AS MWHERE P.PLAYERNO = M.PLAYERNO;

Fika Hastarita Rachman

Penggunaan operator logika dalam WHERECari nomor-nomor pemain yang usianya lebih

tua dari R. Parmenter!Perintah SQL:SELECT P.PLAYERNOFROM PLAYERS AS P, PLAYERS AS PARWHERE PAR.NAME = 'PARMENTER'

AND PAR.INITIALS = 'R' AND P.BIRTH_DATE < PAR.BIRTH_DATE;

Fika Hastarita Rachman

Cari nomor dan nama pemain yang tinggal di kota yang sama dengan pemain nomor 27!

Perintah SQL:SELECT P.PLAYERNO, P.NAMEFROM PLAYERS AS P, PLAYERS AS P27WHERE P.TOWN = P27.TOWN

AND P27.PLAYERNO = 27 AND P.PLAYERNO <> 27;

Fika Hastarita Rachman

INSERT data ke tabelSintaks SQL untuk menambahkan data per baris :INSERT INTO <table specification>

[<column list>]VALUES (<expression> [{,<expression>}. . . ]);

Sintaks SQL untuk menambahkan dengan mengambil data dari tabel lain:INSERT INTO <table specification>

[<column list>]<select clause><from clause>

[ <where clause> ] [ <group by clause> ] [ <having clause> ];

Fika Hastarita Rachman

Contoh INSERT dataSebuah tim baru dengan pemain nomor 100

sebagai kaptennya telah bergabung di dalam liga. Tim ketiga ini akan bermain di dalam divisi ketiga.

Perintah SQL:INSERT INTO TEAMS (TEAMNO, PLAYERNO, DIVISION)VALUES (3,100,'third');

 Atau tanpa dengan menyebutkan nama-nama

kolom yang akan diisi nilai:INSERT INTO TEAMS VALUES (3,100,'third');

Fika Hastarita Rachman

Buatlah suatu tabel baru yang mencatat nomor pemain, nama, kota dan nomor telepon dari masing-masing pemain yang tidak memiliki nomor liga (pemain yang tidak pernah bermain di dalam liga)!

Perintah SQL untuk membuat tabel baru:CREATE TABLE RECR_PLAYERS(PLAYERNO SMALLINT NOT NULL,

NAME CHAR(15) NOT NULL, TOWN CHAR(10) NOT NULL, PHONENO CHAR(10) , PRIMARY KEY (PLAYERNO));

Fika Hastarita Rachman

Perintah SQL untuk menambahkan data ke tabel RECR_PLAYERS dari tabel PLAYERS:

INSERT INTO RECR_PLAYERSSELECT PLAYERNO, NAME, TOWN, PHONENOFROM PLAYERSWHERE LEAGUENO IS NULL;

Fika Hastarita Rachman

UPDATE data dalam tabelSintaks SQL

UPDATE <table specification>SET <column name = expression>[ WHERE <condition> ];

Fika Hastarita Rachman

Keluarga Parmenter telah pindah rumah. Sekarang mereka tinggal di Palmer Street nomor 83, kota Inglewood, kode pos 1234UU. Nomor telepon mereka yang baru belum diketahui. Perbaharui data keluarga Parmenter berdasarkan informasi tersebut!

Perintah SQL:UPDATE PLAYERSSET STREET = 'Palmer Street', HOUSENO = '83',

TOWN = 'Inglewood', POSTCODE = '1234UU',PHONENO = NULL

WHERE NAME = 'Parmenter';

Fika Hastarita Rachman

Naikkan jumlah penalti sebanyak 5%!

Perintah SQL:UPDATE PENALTIESSET AMOUNT = AMOUNT * 1.05;

Fika Hastarita Rachman

DELETE data dalam tabelSintaks SQLDELETEFROM <table specification>[ WHERE <condition> ]

Fika Hastarita Rachman

Hapus seluruh data penalti yang dilakukan oleh pemain nomor 44 pada tahun 1980!

Perintah SQL:DELETEFROM PENALTIESWHERE PLAYERNO = 44

AND YEAR(PAYMENT_DATE) = 1980;

Fika Hastarita Rachman

Evaluasi 1Tampilkan playerno dan nama pemain, yang

bertempat tinggal di malangTampilkan kota yang dimiliki oleh lebih satu pemainTampilkan semua kolom, untuk pemain cowok yang

bergabung diatas tahun 1975Tampilkan semua kolom yang house numbernya

nullTampilkan semua kolom di tabel penalties yang

amountnya genapTampilkan semua data yang inisialnya ‘R’ dan

ketika dia bergabung usianya 27 tahun