Upload
gloria
View
115
Download
3
Embed Size (px)
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
Citation preview
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
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
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