Anda di halaman 1dari 34

SQL DML

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

DML (Data Manipulation Language)

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:

INSERT INTO [ 1 , 2 , , ] VALUES (1 , 2 , , )


dimana: : nama relasi (tabel) yang akan dilakukan penambahan tupel. 1 , 2 , , : nama-nama atribut yang akan diisi nilainya. 1 , 2 , , : nilai-nilai yang akan diisikan pada atribut-atribut.

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:

INSERT INTO SUPPLIER VELUE (S6,YOSHINTA,20,Semarang)


Hasil query perintah SQL diatas adalah: Tuple baru
SCODE S1 S2 SNAME ARIS EKO STATUS CITY 20 10 Semarang Jakarta

S3
S4 S5

BETA
KOLIK SHINTA

30
20 30

Surabaya
Medan Yogyakarta

yang ditambahkan pada tabel SUPPLIER

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.

Misalkan, perintah SQL sebagai berikut:


INSERT INTO SUPPLIER (SCODE, SNAME, STATUS) VALUE (S7,MIRANTHI,20)

Hasil query perintah SQL diatas adalah:


SCODE S1 S2 S3 S4 S5 SNAME ARIS EKO BETA KOLIK SHINTA STATUS 20 10 30 20 30 CITY Semarang Jakarta Surabaya Medan Yogyakarta

Nilai NULL atribut CITY yang ditambahkan pada tabel SUPPLIER

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:

DELETE FROM [ WHERE ]


dimana: : nama relasi (tabel) yang akan dilakukan penghapusan tupel. : merupakan predikat untuk tuple yang akan dihapus. Jika klausa WHERE tidak digunaka, maka penghapusan akan dilakukan pada semua tuple pada tabel t.

Misalkan untuk menghapus SUPPLIER dengan nama YOSHINTA : Perintah SQL-nya adalah:

DELETE FROM SUPPLIER WHERE SNAME = YOSHINTA


Hasil query perintah SQL diatas adalah : tuple dengan SNAME = YOSHINTA telah dihapus dari tabel SUPPLIER. Sedangkan untuk menghapus semua tuple pada SUPPLIER dapat dilakukan dengan perintah SQL :

DELETE FROM SUPPLIER

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;

CITY Semarang Jakarta

SELECT

HASIL QUERY
Contoh 3: Menampilkan data color, dan weight * 10 dari tabel PARTS, perintah SQLnya:
SELECT COLOR, WEIGHT*10 FROM PARTS;

COLOR Merah Hijau

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

Hasil query perintah SQL diatas adalah :

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

Dapat diganti dengan menggunakan operator IN, sebagai berikut:


Select NoMhs, NamaMhs, Kota From Mahasiswa Where Kota IN (Bandung,Jakarta,Medan,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 _ _ _ _ _ _ _ _ %_ _

Operator IN dengan sub-query


Contoh: SELECT NoMhs, NamaMhs FROM Mahasiswa WHERE Kota IN (SELECT Kota FROM Mahasiswa WHERE NoMhs IN (2946, 5280))

SELECT NoMhs, NamaMhs FROM Mahasiswa WHERE NoMhs IN (SELECT NoMhs FROM Transkrip WHERE NoMk = MSM100)

Operator ANY dan ALL


Jika Y1,Y2,Y3,...., dan Yn nilai-nilai yang dihasilkan subquery S, maka:
NamaKolom < ALL (s) (NamaKolom < Y1) AND (NamaKolom < Y2) AND .............. (NamaKolom < Yn) Contoh: Select NoMhs, NamaMhs From Mahasiswa Where Year(TglLahir) <= ALL (Select Year(TglLahir) from Mahasiswa)

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

Select NoMhs From Transkrip Group by NoMhs

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(*) from Mahasiswa

Select COUNT(distinct NoMhs) From transkrip Where nilai >= 80 Select NoMhs, AVG(Nilai) From(transkrip) Group by NoMhs Having AVG(Nilai) > 80

TERIMAKASIH

Anda mungkin juga menyukai