sql dml database

34
SQL DML  Ainur Rohmah M. (4101411015) Cintya Putri P. (4101411025) Yekti Nur Arifah (4101411048) Ice Afriyanti (4101411094) Putri Rizki Amalia (4101411120)  Ari Isnaeni (4101411189)

Upload: anisanurafrida

Post on 16-Oct-2015

66 views

Category:

Documents


1 download

DESCRIPTION

data base SQL DML

TRANSCRIPT

PowerPoint Presentation

SQL DMLAinur Rohmah M.(4101411015)Cintya Putri P.(4101411025)Yekti Nur Arifah(4101411048)Ice Afriyanti(4101411094)Putri Rizki Amalia(4101411120)Ari Isnaeni(4101411189)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.

DMLProseduralYang mensyaratkan pemakai menentukan, data apa yang diinginkan serta bagaimana cara mendapatkannya.NonproseduralYang membuat pemakai dapat menentuka data apa yang diinginkan tanpa menyebutkan bagaimana cara mendapatkannya.JENIS DMLCONTOH: dBase, FoxBaseCONTOH: SQL, QBEDML (Data Manipulation Language)Operasi operasi manipulasi data terdiri dari:tambah dataupdate datahapus dataquery data

PENAMBAHAN DATAPENAMBAHAN DATANama 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:

Hasil query perintah SQL diatas adalah:

SCODESNAMESTATUSCITYS1ARIS20SemarangS2EKO10JakartaS3BETA30SurabayaS4KOLIK20MedanS5SHINTA30YogyakartaS6YOSHINTA20SemarangTuple baru yang ditambahkan pada tabel SUPPLIERINSERT INTO SUPPLIERVELUE (S6,YOSHINTA,20,Semarang)Ekspresi perintah SQL diatas, dapat juga dituliskan menggunakan eksprsi SQL :

Untuk nama atribut yang tidak disebutkan pada perintah INSERT, atribut-atribut tersebut akan diisi dengan nilai NULL.

INSERT INTO SUPPLIER (SCODE, SNAME, STATUS, CITY)VALUE (S6,YOSHNTA,20,Semarang)Misalkan, perintah SQL sebagai berikut:

Hasil query perintah SQL diatas adalah:

INSERT INTO SUPPLIER (SCODE, SNAME, STATUS)VALUE (S7,MIRANTHI,20)SCODESNAMESTATUSCITYS1ARIS20SemarangS2EKO10JakartaS3BETA30SurabayaS4KOLIK20MedanS5SHINTA30YogyakartaS6YOSHINTA20SemarangS7MIRANTHI20NULLNilai NULL atribut CITY yang ditambahkan pada tabel SUPPLIERUPDATESintak SQL untuk mengubah nilai atribut pada tuple dari sebuah tabel:UPDATE tSET 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.

Contoh :Ingin mengubah nilai atribut CITY untuk SUPPLIER dengan SCODE =S6 menjadi Purwodadi, perintah SQLnya:UPDATE SUPPLIERSET CITY = PurwodadiWHERE SCODE = S6;UPDATEHASIL QUERYCITYSemarangJakartaSCODESNAMESTATUSCITYS1ARIS20SemarangS2EKO10JakartaS3BETA30SurabayaS4KOLIK20MedanS5SHINTA30YogyakartaS6YOSHINTA20PurwodadiPENGHAPUSAN DATAMisalkan untuk menghapus SUPPLIER dengan nama YOSHINTA :Perintah SQL-nya adalah:

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 SUPPLIERWHERE SNAME = YOSHINTADELETE FROM SUPPLIERQuery adalah pernyataan yang diajukan untuk mengambil informasi di dalam suatu basis data. Query merupakan bagian dari DML yang untuk pengambilan informasi disebut Query Language.QUERY DATASecara 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]....}

ContohPCODEPNAMECOLORWEIGHTCITYP1NUTMerah12 SemarangP2BOLTHijau17JakartaP3SCREWBiru17JakartaP4SCREWMerah14SemarangP5CAMBiru12SemarangP6COGMerah19JakartaSCODESNAMESTATUSCITYS1ARIS20SemarangS2EKO10JakartaS3BETA30SurabayaS4KOLIK20MedanS5SHINTA30YogyakartaTABEL SUPPLIERTABEL PARTSSELECTContoh 1:Jika ingin menentukan nama- nama semua kota (CITY) pada tabel PARTS, perintah SQLnya:

SELECT CITYFROM PARTS;

CITYSemarangJakartaJakartaSemarangSemarangJakartaHASIL QUERYContoh 2:Hasil query pada contoh 1 masih terjadi duplikasi. Untuk menghindari duplikasi, maka perintah SQLnya:SELECT DISTINCT CITYFROM PARTS;SELECTHASIL QUERYCITYSemarangJakartaSELECTContoh 3:Menampilkan data color, dan weight * 10 dari tabel PARTS, perintah SQLnya:SELECT COLOR, WEIGHT*10FROM PARTS;HASIL QUERYCOLORWEIGHTMerah12 0Hijau170Biru170Merah140Biru120Merah190Klausa 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 > 300FROMWHEREKlausa 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 = 20Hasil query perintah SQL diatas adalah :

WHERENilai 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 = SemarangHasil query perintah SQL diatas adalah :

WHEREPredikat 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 = YogyakartaHasil 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 30Hasil query perintah SQL diatas adalah :

OPERATOR INSelect NoMhs, NamaMhs, Kota From MahasiswaWhere Kota = BandungOR Kota= JakartaOR Kota= MedanOR Kota= SurabayaDapat diganti dengan menggunakan operator IN, sebagai berikut:Select NoMhs, NamaMhs, KotaFrom MahasiswaWhere Kota IN (Bandung,Jakarta,Medan,Surabaya)

OPERATOR LIKE% : Pengganti 0, 1, atau lebih karakter_ : underscore pengganti satu karakter

Contoh:SelectNoMhsFromMahasiswaWhereNamaMhs LIKE %nOPERATOR LIKEContoh Lain:Nama mata kuliah memuat string ta --- namaMK LIKE %ta%Nama mahasiswa panjangnya 10 huruf -- name LIKE _ _ _ _ _ _ _ _ _ _Nama mahasiswa minimal panjangnya 10Select NAMA from mahasiswa where nama LIKE _ _ _ _ _ _ _ _ %_ _Operator IN dengan sub-queryContoh:SELECT NoMhs, NamaMhsFROM MahasiswaWHERE Kota IN(SELECT KotaFROM MahasiswaWHERE NoMhs IN (2946, 5280))SELECT NoMhs, NamaMhsFROM MahasiswaWHERE NoMhs IN(SELECT NoMhsFROM TranskripWHERE NoMk = MSM100)

Operator ANY dan ALLJika Y1,Y2,Y3,...., dan Yn nilai-nilai yang dihasilkan sub-query S, maka:NamaKolom < ALL (s) (NamaKolom < Y1) AND(NamaKolom < Y2) AND..............(NamaKolom < Yn) Contoh:Select NoMhs, NamaMhsFrom MahasiswaWhere Year(TglLahir) = 80Select NoMhs, AVG(Nilai)From(transkrip)Group by NoMhsHaving AVG(Nilai) > 80Contoh : TERIMAKASIH