300 likes | 519 Views
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)
E N D
Data Manipulation Language (DML) Basisdata 2 T.Informatika UTM Ganjil 2012/2013 Fika Hastarita Rachman
Pengantar DML • DML 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 SELECT • Memiliki beberapa klausa: • FROM : mengidentifikasi tabel yang diperlukan • WHERE : kondisi yang ditentukan • GROUP BY : menyusun baris berdasar kolom dgn nilai yang sama • HAVING : memilih susunan baris dari hasil GROUP BY yang memenuhi kondisi • SELECT : memilih kolom yang ingin ditampilkan sebagai hasil • ORDER BY : mengurutkan baris sebelum ditampilkan sebagai hasil • DISTINC Fika Hastarita Rachman
Basisdata Tennis Fika Hastarita Rachman
Penggunaan SELECT Perintah SQL: SELECT* FROMPENALTIES; • Tidak ada seleksi kolom mana saja yang ingin ditampilkan (ekspresi yang diberikan setelah select, simbol *) • Isi dari seluruh kolom dalam tabel PENALTIES ditampilkan • Hasil : Fika Hastarita Rachman
SELECT pemilihan kolom • Tampilkannomorpembayaran, nomorpemaindanjumlahdarimasing-masingpenalti SELECTPAYMENTNO,PLAYERNO,AMOUNT FROM PENALTIES; • Hasil : Fika Hastarita Rachman
Perintah AS • Kolom hasil perintah SQL dapat diberi nama baru untuk memudahkan user menganalisa data • Perintah SQL : SELECT PLAYERNO, NAME, JOINED AS JOIN_AGE FROM PLAYERS; Hasil: Fika Hastarita Rachman
Klausa WHERE • Untuk memilih atau menyeleksi baris yang memenuhi kondisi yang ditentukan • Dapatkannomor, nama, jeniskelamindantanggallahirdarimasing-masingpemainpria yang lahirsetelahtahun 1970 • Perintah SQL : SELECTPLAYERNO, NAME, SEX, BIRTH_DATE FROM PLAYERS WHERESEX = ‘M’ ANDYEAR(BIRTH_DATE) >1970; Hasil : Fika Hastarita Rachman
Perintah IS NOT NULL SELECTPLAYERNO, LEAGUENO FROM PLAYERS WHERE LEAGUENO IS NOT NULL; • Hasilperintah SQL: Fika Hastarita Rachman
Klausa ORDER BY • digunakanuntukmengurutkanbaris-barissebelumditampilkansebagaihasilperintah SQL • Espresi: • ASC(ASCENDING : urut naik (kecil ke besar) • DESC (DESCENDING : urut turun (besar ke kecil) • Tak ditentukan --- otomatis ASC • Contoh: SELECT PAYMENTNO, PLAYERNO FROM PENALTIES ORDER BY PLAYERNO, PAYMENTNO; atauORDER BY 2, 1; Fika Hastarita Rachman
Seluruh klausa dalam satu SELECT • hasilperintah SQL diperolehberdasarkanurutanpelaksanaaneksekusidariklausa FROM – WHERE – GROUP BY – HAVING – SELECT – ORDER BY • Carinomorpemain yang telahmelakukansetidaknyadua kali penalti yang jumlahnyalebihdari $25! Urutkanhasilberdasarkannomorpemainnya! Fika Hastarita Rachman
Perintah SQL: • SELECT PLAYERNOFROM PENALTIESWHERE AMOUNT > 25GROUP BY PLAYERNOHAVING COUNT (*) > 1ORDER BY PLAYERNO; Fika Hastarita Rachman
Alur Kerja Klausa Fika Hastarita Rachman
Hasil Eksekusi per klausa Fika Hastarita Rachman
SELECT untuk lebih dari satu tabel • Cartesian product Fika Hastarita Rachman
Menampilkan data dari tabel TEAMS dan tabel PLAYERS SELECT TEAMNO, NAME FROM TEAMS, PLAYERS WHERE 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: SELECTPAYMENTNO, PENALTIES.PLAYERNO, AMOUNT, NAME, INITIALS FROM PENALTIES, PLAYERS WHERE PENALTIES.PLAYERNO = PLAYERS.PLAYERNO; Fika Hastarita Rachman
Nama alias untuk nama tabel • Carinamadaninisialpemain yang telahbermaindidalampertandingan minimal sebanyak 1 kali! • Penyelesaianberikutmenggunakan alias (P untuk PLAYERNO dan M untuk MATCHES) untukmeringkasperintah SQL Perintah SQL: SELECT DISTINCT P.NAME, P.INITIALS FROM PLAYERS AS P, MATCHES AS M WHERE P.PLAYERNO = M.PLAYERNO; Fika Hastarita Rachman
Penggunaan operator logika dalam WHERE • Carinomor-nomorpemain yang usianyalebihtuadari R. Parmenter! • Perintah SQL: SELECT P.PLAYERNO FROM PLAYERS AS P, PLAYERS AS PAR WHERE PAR.NAME = 'PARMENTER' AND PAR.INITIALS = 'R' AND P.BIRTH_DATE < PAR.BIRTH_DATE; Fika Hastarita Rachman
Carinomordannamapemain yang tinggaldikota yang samadenganpemainnomor 27! Perintah SQL: SELECT P.PLAYERNO, P.NAME FROM PLAYERS AS P, PLAYERS AS P27 WHERE P.TOWN = P27.TOWN AND P27.PLAYERNO = 27 AND P.PLAYERNO <> 27; Fika Hastarita Rachman
INSERT data ke tabel • Sintaks SQL untukmenambahkan data per baris : INSERT INTO <table specification> [<column list>] VALUES (<expression> [{,<expression>}. . . ]); • Sintaks SQL untukmenambahkandenganmengambil data daritabel lain: INSERT INTO <table specification> [<column list>] <select clause> <from clause> [ <where clause> ] [ <group by clause> ] [ <having clause> ]; Fika Hastarita Rachman
Contoh INSERT data • Sebuahtimbarudenganpemainnomor 100 sebagaikaptennyatelahbergabungdidalamliga. Tim ketigainiakanbermaindidalamdivisiketiga. Perintah SQL: INSERT INTO TEAMS (TEAMNO, PLAYERNO, DIVISION) VALUES (3,100,'third'); • Atautanpadenganmenyebutkannama-namakolom yang akandiisinilai: INSERT INTO TEAMS VALUES (3,100,'third'); Fika Hastarita Rachman
Buatlahsuatutabelbaru yang mencatatnomorpemain, nama, kotadannomortelepondarimasing-masingpemain yang tidakmemilikinomorliga (pemain yang tidakpernahbermaindidalamliga)! • Perintah SQL untukmembuattabelbaru: 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 untukmenambahkan data ketabel RECR_PLAYERS daritabel PLAYERS: INSERT INTO RECR_PLAYERS SELECT PLAYERNO, NAME, TOWN, PHONENO FROM PLAYERS WHERE LEAGUENO IS NULL; Fika Hastarita Rachman
UPDATE data dalam tabel • Sintaks SQL UPDATE <table specification> SET <column name = expression> [ WHERE <condition> ]; Fika Hastarita Rachman
KeluargaParmentertelahpindahrumah. Sekarangmerekatinggaldi Palmer Street nomor 83, kota Inglewood, kode pos 1234UU. Nomorteleponmereka yang barubelumdiketahui. Perbaharui data keluargaParmenterberdasarkaninformasitersebut! • Perintah SQL: UPDATE PLAYERS SET STREET = 'Palmer Street', HOUSENO = '83', TOWN = 'Inglewood', POSTCODE = '1234UU', PHONENO = NULL WHERENAME = 'Parmenter'; Fika Hastarita Rachman
Naikkanjumlahpenaltisebanyak 5%! • Perintah SQL: UPDATE PENALTIES SET AMOUNT = AMOUNT * 1.05; Fika Hastarita Rachman
DELETE data dalam tabel • Sintaks SQL DELETE FROM <table specification> [ WHERE <condition> ] Fika Hastarita Rachman
Hapusseluruh data penalti yang dilakukanolehpemainnomor 44 padatahun 1980! • Perintah SQL: DELETE FROM PENALTIES WHERE PLAYERNO = 44 AND YEAR(PAYMENT_DATE) = 1980; Fika Hastarita Rachman
Evaluasi 1 • Tampilkan playerno dan nama pemain, yang bertempat tinggal di malang • Tampilkan kota yang dimiliki oleh lebih satu pemain • Tampilkan semua kolom, untuk pemain cowok yang bergabung diatas tahun 1975 • Tampilkan semua kolom yang house numbernya null • Tampilkan semua kolom di tabel penalties yang amountnya genap • Tampilkan semua data yang inisialnya ‘R’ dan ketika dia bergabung usianya 27 tahun Fika Hastarita Rachman