Ainur Rohmah M. Cintya Putri P. Yekti Nur Arifah Ice Afriyanti Putri Rizki Amalia Ari Isnaeni (4101411015) (4101411025) (4101411048) (4101411094) (4101411120) (4101411189)
DML
DML berisi sekumpulan operasi manipulasi data pada basis data. DML biasa disebut bahasa query yaitu bahasa untuk meminta informasi dari basis data karena komponen paling ompleks di DML adalah operasi query. Sebenarnya DML tidak hanya berisi operasi untuk query, namun juga meliputi operasi penghapusan, pembaruan dan penyisipan. DML merupakan bahasa yang bertujuan memudahkan pemakai untuk mengakses dan sebagaimana direpresentasikan oleh model data.
JENIS DML
Nonprosedural Yang membuat pemakai dapat menentuka data apa yang diinginkan tanpa menyebutkan bagaimana cara mendapatkannya.
CONTOH: SQL, QBE
Prosedural Yang mensyaratkan pemakai menentukan, data apa yang diinginkan serta bagaimana cara mendapatkannya.
CONTOH: dBase, FoxBase
Operasi operasi manipulasi data terdiri dari: tambah data update data
hapus data
query data
PENAMBAHAN DATA
Sintak SQL untuk penambahan tuple baru ke suatu tabel adalah:
PENAMBAHAN DATA
Nama atribut-atribut pada tabel dapat tidak diisikan, jika akan mengisikan nilai ke semua atribut dengan urutan atribut sesuai dengan pendefinisian struktur yang dilakukan pada saat awal pembuatan tabel.
Tetapi, jika urutan atribut berbeda atau atribut yang akan diisikan nilainya tidak pada semua atribut, maka nama-nama atribut yang akan di isi nilainya harus dituliskan.
Misalkan, untuk menambahkan tuple pada tabel SUPPLIER : Perintah SQL-nya adalah:
S3
S4 S5
BETA
KOLIK SHINTA
30
20 30
Surabaya
Medan Yogyakarta
S6
YOSHINTA 20
Semarang
Ekspresi perintah SQL diatas, dapat juga dituliskan menggunakan eksprsi SQL :
INSERT INTO SUPPLIER (SCODE, SNAME, STATUS, CITY) VALUE (S6,YOSHNTA,20,Semarang)
Untuk nama atribut yang tidak disebutkan pada perintah INSERT, atribut-atribut tersebut akan diisi dengan nilai NULL.
S6
S7
YOSHINTA 20
MIRANTHI 20
Semarang
NULL
UPDATE
Sintak SQL untuk mengubah nilai atribut pada tuple dari sebuah tabel: UPDATE t SET assignment [WHERE P] dimana: t : nama tabel yang akan dilakukan perubahan atribut pada suatu tuple. assignment : ekspresi nilai baru untuk suatu atribut yang akan dilakukan perubahan. P: predikat untuk tuple yang akan dilakukan perubahan. Jika kalusa WHERE tidak digunakan, maka perubahan akan dilakukan pada semua tuple pada tabel t.
UPDATE
Contoh : Ingin mengubah nilai atribut CITY untuk SUPPLIER dengan SCODE =S6 menjadi Purwodadi, perintah SQLnya: UPDATE SUPPLIER SET CITY = Purwodadi WHERE SCODE = S6;
HASIL QUERY
SCODE S1 SNAME STATUS CITY ARIS 20 Semarang EKO 10 Jakarta BETA 30 KOLIK SHINTA YOSHINTA 20 30 20 CITY Semarang
S2
S3 S4 S5 S6
Jakarta
Surabaya Medan Yogyakarta Purwodadi
PENGHAPUSAN DATA
Sintak SQL untuk penghapusan tuple pada suatu tabel adalah:
Misalkan untuk menghapus SUPPLIER dengan nama YOSHINTA : Perintah SQL-nya adalah:
QUERY DATA
Query adalah pernyataan yang diajukan untuk mengambil informasi di dalam suatu basis data. Query merupakan bagian dari DML yang untuk pengambilan informasi disebut Query Language.
Secara umum tipikal query dengan menggunakan SQL memiliki bentuk sebagai berikut: SELECT {DISTINCT| ALL} [*| [Ekspresikolom]...] FROM [Nama Tabel].... {WHERE Kondisi} {GROUP By [Nama Kolom]... {HAVING Kondisi}} {ORDER By [URUTAN]....}
Contoh
SCODE S1 S2 S3 S4 S5 SNAME ARIS EKO BETA KOLIK SHINTA STATUS 20 10 30 20 30 CITY Semarang Jakarta Surabaya Medan Yogyakarta PCODE P1 PNAME NUT BOLT SCREW SCREW CAM COG COLOR Merah Hijau Biru Merah Biru Merah WEIGHT 12 17 17 14 12 19 CITY Semarang Jakarta Jakarta Semarang Semarang Jakarta
TABEL SUPPLIER
TABEL PARTS
P2 P3 P4 P5 P6
SELECT
Contoh 1: Jika ingin menentukan nama- nama semua kota (CITY) pada tabel PARTS, perintah SQLnya: SELECT CITY FROM PARTS;
HASIL QUERY
CITY Semarang Jakarta Jakarta Semarang Semarang Jakarta
SELECT
HASIL QUERY
Contoh 2: Hasil query pada contoh 1 masih terjadi duplikasi. Untuk menghindari duplikasi, maka perintah SQLnya: SELECT DISTINCT CITY FROM PARTS;
SELECT
HASIL QUERY
Contoh 3: Menampilkan data color, dan weight * 10 dari tabel PARTS, perintah SQLnya:
SELECT COLOR, WEIGHT*10 FROM PARTS;
WEIGHT 12 0 170
Biru Merah
Biru Merah
170 140
120 190
FROM
Klausa FROM digunakan untuk menentukan tabel yang akan dijadikan sebagai sumber untuk pencarian data.
Misalkan, untuk menampilkan semua SUPPLIER yang melakukan SHIPMENT dengan jumlah kuantitasnya lebih besar 300, perintah SQL-nya adalah :
SELECT * FROM SUPPLIER, SHIPMENT WHERE SUPPLIER.SCODE=SHIPMENT.SCODE AND SHIPMENT.QTY > 300
WHERE
Klausa WHERE digunakan untuk menentukan predikat atau kriteria yang harus di penuhi suatu relasi sebagai hasil query. Klausa ini bersifat opsional, yaitu dapat menggunakan klausa WHERE atau tidak. Jika tidak menggunakan klausa WHERE, maka query dilakukan untuk semua tuples pada tabel yang disebutkan pada klausa FROM. Misalkan, untuk menampilkan semua tuples SUPPLIER yang memiliki STATUS = 20. Perintah SQL-nya adalah :
SELECT * FROM SUPPLIER WHERE STATUS = 20 Hasil query perintah SQL diatas adalah :
WHERE
Nilai predikat yang terdapat klausa WHERE, untuk tipe string harus diberikan tanda petik tunggal, sedangkan untuk tipe numerik tidak menggunakan tanda petik tunggal. Misalkan, untuk menampilkan semua tuples SUPPLIER yan berada di semarang : Perintah SQL-nya adalah : SELECT * FROM SUPPLIER WHERE CITY = Semarang Hasil query perintah SQL diatas adalah :
WHERE
Predikat pada klausa WHERE dapat dikombinasikan dengan operator relasi lainnya, seperti <, <=, >, >=, <>, dan operator logika, seperti AND, OR, NOT. Misalkan, untuk menampilkan semua SUPPLIER yang memiliki STATUS = 30, tetapi berada pada kota(CITY) Yogyakarta : Perintah SQL-nya adalah :
SELECT * FROM SUPPLIER WHERE STATUS = 30 AND CITY = Yogyakarta
Klausa WHERE dapat digunakan untuk melakukan query dengan predikat yang berbentuk suatu range nilai tertentu, yaitu dengan menambahkan klausa BETWEEN.
Misalkan, untuk menampilkan SUPPLIER yang memiliki STATUS antara 10 sampai dengan 30, perintah SQL-nya adalah :
SELECT * FROM SUPPLIER WHERE STATUS BETWEEN 20 AND 30 Hasil query perintah SQL diatas adalah :
OPERATOR IN
Select NoMhs, NamaMhs, Kota From Mahasiswa Where Kota = Bandung OR Kota = Jakarta OR Kota = Medan OR Kota = Surabaya
OPERATOR LIKE
% : Pengganti 0, 1, atau lebih karakter _ : underscore pengganti satu karakter Contoh: Select NoMhs From Mahasiswa Where NamaMhs LIKE %n
OPERATOR LIKE
Contoh Lain: Nama mata kuliah memuat string ta --- namaMK LIKE %ta% Nama mahasiswa panjangnya 10 huruf -- name LIKE _ _ _ _ _ _ _ _ _ _ Nama mahasiswa minimal panjangnya 10 Select NAMA from mahasiswa where nama LIKE _ _ _ _ _ _ _ _ %_ _
SELECT NoMhs, NamaMhs FROM Mahasiswa WHERE NoMhs IN (SELECT NoMhs FROM Transkrip WHERE NoMk = MSM100)
Sedangkan NamaKolom < ANY (S) (NamaKolom < Y1) OR (NamaKolom < Y2) OR .............. (NamaKolom < Yn)
GROUP BY
Mengelompokkan rekord berdasarkan nilai suatu atribut (kolom). Contoh:
Data transkrip
NoMhs 2530 2530 2700 2700 2530 KdMk MSM100 MSM200 MSM100 MSM200 MSM300 Nilai 90 80 60 80 90
Hasil Akhir :
HAVING
1. Memilih (menyeleksi) kelompok berdasarkan karakteristik dari kelompok 2. Selalu diikuti oleh kelompok fungsi dalam SQL : a. COUNT banyaknya nilai suatu kolom banyaknya baris dalam tabel b. MIN : Nilai terkecil dalam suatu kolom c. MAX : Nilai terbesar dalam suatu kolom d. SUM : Nilai total dalam suatu kolom e. AVG : Nilai rata-rata dalam suatu kolom
COUNT(*) menghitung jumlah semua baris dalam tabel tanpa menghilangkan duplikasi.
COUNT, AVG, SUM dapat menggunakan DISTINCT untuk menghilangkan duplikasi sebelum fungsi tersebut diberlakukan.
Select COUNT(distinct NoMhs) From transkrip Where nilai >= 80 Select NoMhs, AVG(Nilai) From(transkrip) Group by NoMhs Having AVG(Nilai) > 80
TERIMAKASIH