Top Banner

of 13

Modul 4 Basdat 2015

Jul 07, 2018

Download

Documents

Udienz
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 8/18/2019 Modul 4 Basdat 2015

    1/13

    MODUL V

    DML (DATA MANIPULATION LANGUAGE)

    Dasar Teori

    Perintah SELECT adalah perintah untuk menampilkan data yang ada didalam suatu tabel, yang mana dalam pengembangannya perintah ini akan menjadi

    sebuah perintah yang sangat penting dan berpengaruh hingga saat pemrograman di

    stored procedures dan triggers. Selain perintah-perintah SELECT yang dibahas

    dalam modul V dan V, masih ada banyak perintah-perintah SELECT lain yang

    lebih luas lagi dalam penggunaan perintah SELECT.

    Praktikum

    Coba semua contoh operasi !"L di ba#ah ini $

    1. JOIN dan UN!ITerkadang kita harus memilih data dari dua tabel atau lebih untuk 

    mendapatkan hasil yang komplit. %leh karena itu, kita harus melakukan sebuah

    &%'. &oin merupakan operasi yang digunakan untuk menggabungkan dua tabel

    atau lebih dengan hasil berupa gabungan dari kolom-kolom yang berasal dari tabel-

    tabel tersebut. Pada join sederhana, tabel-tabel digabungkan dan didasarkan pada

     pencocokan antara kolom pada tabel yang berbeda.

    Tabel-tabel dalam sebuah basisdata dapat dihubungkan satu sama lain

    menggunakan kunci. (unci utama adalah sebuah kolom dengan nilai unik untuk 

    masing-masing baris. Tujuannya adalah menggabungkan data antartabel tanpamengulangi semua data pada setiap tabel.

    "isalnya kita memilih data dari dua tabel )tabel "ahasis#a dan &urusan* dengan

    mengacu pada kedua tabel sebagai berikut $

    SELECT "++SS+.'ama!epan, &/S+'.'ama&urusan

    0/%" "++SS+, &/S+'

    E/E "++SS+.(ode&urusan 1 &/S+'.(ode&urusan

    ntuk mengetahui siapa yang mengambil jurusan Teknik ndustri, gunakan

     pernyataan S2L berikut $

    SELECT "++SS+.'ama!epan

    3

    Tu"uan #

    Praktikan dapat memahami dan memanipulasi data dalam database dengan

    lebih luas lagi.

  • 8/18/2019 Modul 4 Basdat 2015

    2/13

    0/%" "++SS+, &/S+'

    E/E "++SS+.(ode&urusan 1 &/S+'.(ode&urusan

    +'! &/S+'.'ama&urusan 1 4Teknik ndustri4

    (ita pun bisa menggunakan kata kunci &%' untuk memilih data. +da tiga macam

    kunci &%', yaitu ''E/ &%', LE0T &%', dan /5T &%'.

    INNE$ JOIN

    nner join digunakan untuk menampilkan data dari dua tabel yang

     berisi data sesuai dengan syarat di belakang on )tidak boleh null*, dengan kata lain

    semua data dari tabel kiri mendapat pasangan data dari tabel sebelah kanan.

    Sintaks untuk ''E/ &%' $

    SELECT 6ield3, 6ield7, 8

    0/%" tabel3 ''E/ &%' tabel7

    %' tabel3.kunci9utama 1 tabel7.kunci9asing"isalnya, untuk mengetahui siapa yang telah mengambil jurusan dan jurusan apa

    yang diambil, kita dapat menggunakan pernyataan berikut $

    SELECT "++SS+.'ama!epan, &/S+'.'ama&urusan

    0/%" "++SS+ ''E/ &%' &/S+'

    %' "++SS+.(ode&urusan 1 &/S+'.(ode&urusan

    ''E/ &%' akan memunculkan semua baris kedua tabel jika ada pasangannya.

    &ika ada baris pada Tabel "ahasis#a yang tidak memiliki pasangan, maka baris

    tidak akan dimunculkan pada Tabel &urusan.

    LE%T JOIN

    Le6t join digunakan untuk menampilkan semua data dari tabel sebelah kiri

     perintah le6t join beserta pasangannya dari tabel sebelah kanan. "eskipun terdapat

    data dari sebelah kiri tidak memiliki pasangan, tetap akan ditampilkan dengan

     pasangannya berupa nilai 'LL.

    Sintaks untuk LE0T &%' $

    SELECT 6ield3, 6ield7, 8

    0/%" tabel3 LE0T &%' tabel7

    %' tabel3.kunci9utama 1 tabel7.kunci9asing"isalkan, kita ingin menampilkan semua mahasis#a dan jurusan yang diambil,

     jika ada. (ita dapat menggunakan pernyataan berikut $

    SELECT "++SS+.'ama!epan, &/S+'.'ama&urusan

    0/%" "++SS+ LE0T &%' &/S+'

    %' "++SS+.(ode&urusan 1 &/S+'.(ode&urusan

    LE0T &%' akan memunculkan semua baris tabel pertama )"ahasis#a*, bahkan

     jika tidak ada pasangannya di tabel kedua )&urusan*. &ika ada baris pada tabel

    "ahasis#a yang tidak ada pasangannya pada tabel &urusan, maka ia pun akan

    dimunculkan.

    7

  • 8/18/2019 Modul 4 Basdat 2015

    3/13

    $IG&T JOIN

    /ight join digunakan untuk menampilkan semua data dari tabel sebelah kanan

     perintah right join beserta pasangannya dari tabel sebelah kiri. "eskipun terdapat

    data dari sebelah kanan tidak memiliki pasangan, tetap akan ditampilkan dengan

     pasangannya berupa nilai 'LL.

    Sintaks untuk /5T &%' $

    SELECT 6ield3, 6ield7, 8

    0/%" tabel3 /5T &%' tabel7

    %' tabel3.kunci9utama 1 tabel7.kunci9asing

    "isalkan, kita ingin menampilkan semua nama dari tabel "ahasis#a dan &urusan

    yang diambil, jika ada. (ita dapat menggunakan pernyataan berikut $

    SELECT "++SS+.'ama!epan, &/S+'.'ama&urusan

    0/%" "++SS+ /5T &%' &/S+'

    %' "++SS+.(ode&urusan 1 &/S+'.(ode&urusan/5T &%' akan memunculkan semua baris tabel kedua )&urusan*, bahkan jika

    tidak ada pasangannya di tabel pertama )"ahasis#a*. &ika ada baris pada tabel

    &urusan yang tidak ada pasangannya pada tabel "ahasis#a, maka ia pun akan

    dimunculkan.

    ntuk mengetahui siapa yang mengambil jurusan Teknik ndustri, kita

    menggunakan pernyataan berikut $

    SELECT "++SS+.'ama!epan

    0/%" "++SS+ ''E/ &%' &/S+'%' "++SS+.(ode&urusan 1 &/S+'.(ode&urusan

    E/E &/S+'.'ama&urusan 1 :Teknik ndustri;

    '. UNION dan UNION ALL

    UNION

    Perintah '%' digunakan untuk memilih in6ormasi yang berhubungan dari

    dua tabel, mirip dengan perintah &%'. 'amun, ketika menggunakan perintah

    '%', tipe data semua kolom yang dipilih harus sama. '%' hanya

    memunculkan nilai unik.Sintaks $

    Pernyataan 3

    '%'

    Pernyataan 7

    "isalkan, kita mempunyai tabel baru bernama "ahasis#a7 dimana 6ield-6ieldnya

    adalah sama dengan 6ield di tabel "ahasis#a yaitu '/P, 'ama!epan,

     'ama

  • 8/18/2019 Modul 4 Basdat 2015

    4/13

    '%'

    SELECT 'ama!epan 0/%" "++SS+7

    Perintah tidak dapat digunakan untuk menampilkan semua mahasis#a pada tabel

    "ahasis#a dan "ahasis#a7. Pada contoh, kita mempunyai dua mahasis#a dengan

    nama sama )yaitu asan "artono* dan dua mahasis#a dengan nama depan sama

    )yaitu (iki*, maka hanya satu yang dimunculkan karena perintah '%' hanya

    memilih nilai unik.

    UNION ALL

    Perintah '%' +LL sama dengan perintah '%', kecuali bah#a '%'

    +LL memilih semua nilai.

    Sintaks $

    Pernyataan 3

    '%' +LLPernyataan 7

    !engan menggunakan tabel "ahasis#a dan "ahasis#a7, kita dapat menggunakan

     pernyataan berikut untuk menampilkan semua mahasis#a dari dua tabel $

    SELECT 'ama!epan 0/%" "++SS+

    '%' +LL

    SELECT 'ama!epan 0/%" "++SS+7

    . Pernataan *ELE!T INTO

    Pernyataan SELECT 'T% digunakan untuk membuat backup suatu tabel.Sintaks $

    SELECT nama9kolom 'T% nama9tabel9baru

    ' basisdata9baru 0/%" Sumber 

    Contoh berikut adalah membuat backup Tabel "ahasis#a.

    SELECT > 'T% "ahasis#a9

  • 8/18/2019 Modul 4 Basdat 2015

    5/13

    E/E Tempat9Lahir 1 :?ogyakarta;

    (ita pun dapat memilih data lebih dari satu tabel.

    Contoh berikut adalah membuat tabel baru "ahasis#a9&urusan9

  • 8/18/2019 Modul 4 Basdat 2015

    6/13

    '%'

    SELECT 'ama!epan, Tempat9Lahir 

    0/%" "ahasis#a

    E/E Tempat9Lahir 1 4Surabaya4

    Perintah di atas identik dengan $

    SELECT 'ama!epan, Tempat9Lahir 

    0/%" "ahasis#a

    E/E Tempat9Lahir 1 D?ogyakarta %/ Tempat9Lahir 1 DSurabaya

     'amun tidak semua penggabungan dapat dilakukan dengan %/, yaitu jika bekerja

     pada dua tabel atau lebih.

    INTE$*E!T

    'TE/SECT merupakan operator yang digunakan untuk memperoleh data

    dari dua buah query dimana data yang ditampilkan adalah yang memenuhi keduaquery tersebut dengan ketentuan jumlah, nama dan tipe kolom dari masing-masing

    tabel yang akan ditampilkan datanya harus sama.

    SyntaF $

    SELECT > 0/%" namatabel3

    'TE/SECT

    SELECT > 0/%" namatabel7

    Pada "yS2L tidak terdapat operator 'TE/SECT namun sebagai gantinya dapat

    menggunakan operator ' yang bisa diperdalam di bagian 'ested 2ueries.

    E!EPT 2 *et Di33eren-e

    EGCEPT merupakan operator yang digunakan untuk memperoleh data dari

    dua buah query dimana data yang ditampilkan adalah data yang ada pada hasil

    query 3 dan tidak terdapat pada data dari hasil query 7 dengan ketentuan jumlah,

    nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya

    harus sama.

    SyntaF $

    SELECT > 0/%" namatabel3

    EGCEPTSELECT > 0/%" namatabel7

    Pada "yS2L tidak terdapat operator EGCEPT namun sebagai gantinya dapat

    menggunakan operator '%T ' yang bisa diperdalam di bagian 'ested 2ueries.

    H

  • 8/18/2019 Modul 4 Basdat 2015

    7/13

    Modu4 VII

    VIE5 1

    1. Teori

    Vie6

    Vie# adalah Iuery SELECT yang disimpan dalam database untuk menampilkan

    data dari satu atau beberapa table. Vie# juga disebut sebagai table Jirtual yang

    digunakan untuk membungkus suatu Iuery SELECT yang kompleks menjadi lebih

    sederhana. !ata-data yang termasuk kategori rahasia dapat diamankan dengan

    menggunakan Jie#.

    (egunaan Jie# antara lain$3. 0okus pada data atau tabel tertentu

    7. Penyederhanaan manipulasi data

    =. "enyesuaikan data dengan kebutuhan user 

    @. EFport dan impor data

    B. "engkombinasikan data terpartisi

    Sebelum Iuery SELECT yang akan disimpan ke dalam Jie#. Penamaan Jie#

    memiliki aturan yang sama dengan penamaan table. 'ama Jie# harus unik artinya

    nama Jie# tidak diperkenankan sama dengan nama Jie# yang sudah ada

    sebelumnya.

    3

    Tu"uan #

    "embuat Vie# untuk menampilkan data dari satu atau beberapa table dengan

    membungkus suatu Iuery SELECT yang kompleks menjadi lebih sederhana.

    SyntaF

    C/E+TE VE Jie#9name +S select9statement

  • 8/18/2019 Modul 4 Basdat 2015

    8/13

    Pesan di atas akan tampil jika terjadi pembuatan Jie# dengan menggunakan nama

    yang sama dengan nama Jie# yang lain.

     'ama kolom dari base table bisa diubah menjadi nama lain saat disimpan ke dalam

    Jie# dengan menggunakan C%L"' +L+S

    '. e7iatan Praktikum

     Buat tabel-tabel berikut ini  :

    3. Tabel +rtikel dengan struktur

    7. Tabel guestbook dengan struktur

    =. Tabel "ateri dengan struktur

    7

  • 8/18/2019 Modul 4 Basdat 2015

    9/13

    @. nsert data pada masing-masing tabel

    B. Tampilkan data judulartikel, author dan tanggal dari tabel artikel

    H.

  • 8/18/2019 Modul 4 Basdat 2015

    10/13

    tidak mungkin diselesaikan dengan cara biasa, Jie# dapat digunakan untuk

    menyimpan data rahasia karena tidak muncul pada database a#al.

    .

  • 8/18/2019 Modul 4 Basdat 2015

    11/13

    MODUL VIII

    Vie6 '

    I. Teori1.1 Vie6

    Vie# dalam sIl juga merupakan suatu table yang diturunkan dari table

    yang lain. Table ini bias berupa table dasar dari yang dide6inisikan

    sebelumnya.suatu Jie# yang tidak perlu dalam bentuk 6isiknya, bias berupa table

     bayangan )Jirtual table*, sehingga table dasar yang mempunyai tupel-tupel pada

    dasarnya tersimpan dalam database. Pembatasan ini memungkinkan untuk 

    mengupdate operasi yang bias digunakan dalam Jie#, tetapi tidak membatasi

    dalam Jie# Iueri.

    1.'. Men78a,us Vie6

    2ueri yang sama juga bias didapatkan dengan menentukan dua hubungan

    yang telah ada dalam relasi dasarnya, keuntungan utama Jie# tersebut adalah

    untuk menyederhanakan ketentuan tentang Iueri yang diperlukan, dan juga bias

    digunakan untuk perangkat keamanan data.

    Suatu Jie# dari Iueri selalu menampilkan data yang terbaru, sebagai contoh bila

    kita memodi6ikasi sebagaian tupel dalam table dasarnya dimana Jie# tersebutdide6inisikan, maka secara otomatis akan berpengaruh pada Jie# di Iueri

    &ika tidak membutuhkan penampakan Iueri lagi, kita bisa menggunakan perintah

    !/%P VE untuk menghapusnya.

    syntaF $

    !/%P VE )nama Jie#*

    1.. Men7u,date 9ie6 dan Im,4ementasi 9ie6

    "engupdate Jie# merupakan suatu hal yang kompleks. Secara umum

    suatu update dari suatu Jie# dide6inisikan pada suatu table tunggal tanpa 6ungsi-6ungsi pendukung )aggregate* yang bias dimapping kedalam suatu table dasar 

    3

    Tu"uan #

    "embuat Vie# untuk menampilkan data dari satu atau beberapa

    table dengan membungkus suatu Iuery SELECT yang kompleks

    menjadi lebih sederhana.

  • 8/18/2019 Modul 4 Basdat 2015

    12/13

     pembentuknya dengan berbagai cara. Topic tentang update Jie# ini masih terus

    diuji coba. ntuk menggambarkan masalah yang potensial dengan mengupdate

    Jie# yang telah dide6inisikan dalam beberapa table, misal table ork9%'3 dan

    mendukung perintah untuk mengupdate attribute pname dari :john smith; dan dari

    :productG; ke :product?;. Vie# ini ditunjukkan sebagai berikut $

    pdate #ork9on3

    Set pname 1;product?;

    here Lname 1 :smith;and 0name1 :john; and

    Pname 1 :productG;

    Secara umum kita tidak dapat menjamin bah#a setiap tampilan bisa diupdate.

    Suatu tampilan yang diupdate hanya memungkinkan untuk satu kali update pada

    relasi dasarnya yang dapat menghubungkan update tersebut pada tampilannya.Sebagai kesimpulan dapat ditentukan $

    • Suatu tampilan dengan de6inisi tunggal itu dapat diupdate bila attribute

    tampilan berisi primary key atau beberapa candidate key dari relasi dasar,

    sebab inilah yang menghubungkan antara Jie# tupel dengan tupel dasar 

    tunggal.

    • Tampilanm yang dide6inisikan dengan menggunakan beberapa table yang

     berhubungan umumnya tidak dapat diupdate

    • Tampilan yang menggunakan group dan 6ungsi aggregate tidak dapat

    diupdate

    '. e7iatn ,raktikum

    3.

  • 8/18/2019 Modul 4 Basdat 2015

    13/13

    Tablepega#ai

    7.