Introduction to Access 2003 SQL - PowerPoint PPT Presentation

About This Presentation
Title:

Introduction to Access 2003 SQL

Description:

... Fungsi Single-Row Input fungsi dari satu baris/record, ... dosen AS d2 Contoh Perintah SQL Melihat seluruh isi suatu tabel SELECT * FROM siswa; ... – PowerPoint PPT presentation

Number of Views:144
Avg rating:3.0/5.0
Slides: 94
Provided by: dig134
Category:

less

Transcript and Presenter's Notes

Title: Introduction to Access 2003 SQL


1
Introduction to Access 2003SQL
  • Oleh EruP
  • 2007
  • PENS

2
Perjanjian
  • ACCESS tidak membedakan huruf besar atau kecil
    (case insensitive)
  • Semua sama SELECT, select, Select
  • Termasuk Nama Object SISWA, siswa, Siswa
    dianggap sama
  • kecuali
  • LITERAL menggunakan tanda , tergantung
    penulisan Ini, INI,ini dianggap berbeda

3
Perjanjian
  • String adalah sesuatu yang berada dalam/diapit
    tanda petik ganda atau tunggal
  • Nama obyek tidak boleh mengandung spasi
  • Jika terpaksa menggunakan spasi, maka dapat
    menggunakan tanda kurung persegi ...
  • Contoh Nama Depan, Dosen Pembimbing
  • Dalam contoh program, key word (ditulis sesuai
    dengan yang tertulis) dicetak dalam huruf besar
    (boleh ditulis huruf kecil)
  • Contoh SELECT kolom FROM tabel WHERE ab

4
Perjanjian
  • String, bilangan dapat digabung dengan tanda
    gabung ampersand ()
  • Nama nama umur umur
  • Setiap perintah SQL harus diakhiri dengan tanda
    titik koma ()
  • Kecuali yang dituliskan sebagai string parameter
    pada suatu bahasa pemrograman tertentu, tidak
    diperlukan tanda titik koma
  • ACCESS 2003 juga tidak memerlukan tanda titik koma

5
Tabel - Database
  • Pada percobaan-percobaan berikut akan menggunakan
    DBMS ACCESS 2003
  • Nama Database Siswa.mdb
  • Nama-nama Tabel
  • Siswa ? Data Master
  • Dosen ? Data Master
  • TA ? Data Transaksi
  • Jurusan ? Data Master
  • Dual ? Dummy Table

6
Konsep ERD
Sekjur
1
1
Jurusan
Kode
1
Kajur
1
Jurusan
1
1
Jurusan Siswa
Jurusan Dosen
NIP
Nama
N
Alamat
Nama
N
Perwalian
NRP
WALI
SISWA
Dosen
Siswa
1
N
Gaji
N
M
Kelas
TA
PEMBIMBING
BIMBINGAN
N
Umur
Lahir
Alamat
Atasan
1
Judul
7
Implementasi Tabel
8
Pendahuluan
  • SQL - Standard Database Relasi
  • SQL ? Structured Query Language
  • SEQUEL ? Structured English QUEry Language
  • Perintah untuk operasi Database dalam bentuk
  • Berupa satu perintah tunggal untuk satu operasi
    yang ditulis dalam satu baris (biasanya) perintah

9
Sejarah SQL
  • Pertama kali dibuat oleh IBM, dan digunakan dalam
    DB2
  • Pertama kali distandardisasi oleh ANSI tahun 1986
    (ANSI SQL 1986)
  • Diperbaiki dalam standard SQL 92 kemudian SQL99
  • Terakhir ???
  • ACCESS 2003 menggunakan stadard SQL 92

10
DBMS
  • DBMS - Database Management System
  • Software untuk manajemen database
  • Software yang disertakan pembuat database/pihak
    lain untuk menjalankan sistem database
  • Secara umum, kalau mengatakan DBMS, artinya
  • File Database
  • Database Engine/Server Database
  • Perintah-perintah Database (SQL atau lainnya)
  • Administrasi Database
  • Dan sebagainya

11
DBMS dan SQL
  • SQL dalam DBMS tertentu tidak dapat murni
    mengikuti standard SQL karena
  • Tergantung DBMS
  • Tergantung Kemampuan
  • Tergantung Riwayat/Sejarah
  • Akibatnya, secara umum
  • Sebagian SQL akan standard/sama untuk semua DBMS
  • Sebagian SQL akan berbeda untuk semua DBMS
  • Diperlukan pengetahuan tertendiri untuk
    masing-masing DBMS

12
Apakah tidak bisa mengoperasikan database tanpa
SQL ?
  • Cara umum untuk menjalankan database tanpa
    perintah SQL adalah dengan menggunakan cara
    Navigasi Database atau RecordSet
  • Membuka Tabel
  • Menentukan Filter
  • Mencari
  • Mengubah/Menghapus/Menambah data
  • Bergeser/berpindah/navigasi pointer/cursor naik
    atau turun
  • Mendeteksi awal atau akhir record (baris)
  • Menutup tabel
  • Sering juga dikenal dengan nama Cursor

13
Mengapa Harus SQL ?Apa kelebihan SQL ?
  • SQL adalah perintah yang berbentuk satu perintah
    untuk satu proses/operasi database
  • Lebih mudah memberikan perintah dibandingkan
    harus mengoperasikan database (misalkan dengan
    cara navigasi)
  • Memiliki variasi perintah yang cukup banyak
  • Memungkinkan melakukan operasi yang sangat
    beragam
  • Standard, mudah mengoperasikan SQL pada berbagai
    jenis DBMS (seharusnya)
  • Saat ini, kompatibilitasnya masih terbatas

14
Pembagian Perintah SQL
  • Data Retrieval ? Digunakan untuk
    mengambil/membaca Database
  • SELECT
  • DDL (Data Definition Language) ? Digunakan untuk
    menyatakan suatu Database
  • CREATE, ALTER, DROP, RENAME, TRUNCATE
  • DML (Data Manipulation Language) ? Digunakan
    untuk pengubahan Database
  • INSERT, UPDATE, DELETE, MERGE
  • Transaction Control ? Digunakan untuk
    mengendalikan Transaksi
  • COMMIT, ROLLBACK, SAVEPOINT
  • DCL (Data Control Language) ? Digunakan untuk
    mengendalikan Database
  • GRANT, REVOKE

15
Penulisan SQL SELECT Dasar
  • Pembagian/Kemampuan perintah SELECT
  • Proyeksi Memilih Kolom
  • dinyatakan dalam klausa SELECT
  • Seleksi Memilih Baris
  • dinyatakan dalam klausa WHERE
  • Join Penggabungan tabel
  • dinyatakan klausa FROM
  • Format
  • SELECT DISTINCT kolomekspresi AS alias,
    FROM tabel AS alias

16
Proyeksi Seleksi Join
Cari NAMA dan ALAMAT dari SISWA yang JURUSAN ELKA
Proyeksi
SISWA
JURUSAN
NRP NAMA ALAMAT KELAS JURUSAN




123 Eko Malang 3 1
124 Dian Blitar 2 1

KODE JURUSAN KAJUR SEKJUR
1 ELKA 222 333


Seleksi
JOIN
17
Klausa SELECT - Proyeksi
  • SELECT artinya memilih kolom mana yang akan
    ditampilkan (proyeksi)
  • Dapat terdiri dari
  • List Kolom
  • List Semua Kolom ()
  • Ekspresi (operasi aritmatika)
  • Fungsi (memanggil fungsi)
  • Alias (AS Nama atau AS Nama Alias)
  • Distinct

18
Menjalankan Perintah SQL pada MSACCESS 2003
Klik Dua Kali
Pilih
Tekan
19
Editor Query
Klik
Ketik perintah SQL di sini
20
Memasukkan Perintah SQL
Klik untuk Menjalankan Perintah SQL
Ketik perintah SQL di sini
21
Hasil Query
Klik pada Panah untuk kembali ke Mode Perintah SQL
Klik SQL View
Hasil Menjalankan Perintah SQL
22
Contoh Klausa SELECT
  • List Kolom
  • SELECT nama, alamat FROM siswa
  • SELECT siswa.nama, dosen.nama FROM siswa,dosen
  • List Semua Kolom ()
  • SELECT FROM siswa
  • SELECT siswa., dosen.nama FROM siswa,dosen
  • Ekspresi (operasi aritmatika)
  • SELECT gaji0.15000 FROM dosen

23
Contoh Klausa SELECT (lanj.)
  • Fungsi (memanggil fungsi)
  • SELECT ucase(nama), format(lahir,DD-MM-YYYY)
    FROM siswa
  • SELECT cint((now-lahir)/365.25) FROM siswa
  • Alias (AS Nama atau AS Nama Alias)
  • SELECT nama AS Mahasiswa FROM siswa
  • SELECT gaji0.1 AS bonus FROM dosen
  • SELECT nama AS Dosen Pembimbing FROM dosen
  • Distinct menampilkan satu untuk yang sama
  • SELECT DISTINCT kelas FROM siswa

24
Klausa FROM Tabel/Join
  • FROM menunjukkan nama Tabel yang akan
    ditampilkan/dioperasikan
  • Dapat berupa
  • Tabel tunggal
  • Join
  • Query
  • Inline view
  • Alias

25
Contoh Klausa FROM
  • Tabel tunggal
  • SELECT FROM siswa
  • SELECT FROM dosen
  • Join
  • SELECT FROM siswa, dosen
  • Query
  • SELECT FROM qsiswa
  • Inline view
  • SELECT FROM (SELECT FROM siswa)
  • Alias
  • SELECT FROM dosen AS d1, dosen AS d2

26
Contoh Perintah SQL
  • Melihat seluruh isi suatu tabel
  • SELECT FROM siswa
  • Melihat hanya sebagian kolom dari suatu tabel
  • SELECT nama,alamat FROM siswa
  • Melihat sekaligus melakukan operasi pada suatu
    kolom dan memberikan alias pada suatu kolom
  • SELECT nama AS Dosen,gaji,gaji0.10 AS Bonus FROM
    dosen
  • Melakukan penggabungan dengan suatu literal dan
    kolom
  • SELECT Nama nama FROM siswa
  • Mengambil hanya nilai-nilai yang
    berbeda/membatasi hasil yang muncul (semua siswa
    bekerja pada jurusan apa saja)
  • SELECT DISTINCT jurusan FROM siswa

27
Soal/Tugas
  • Tampilkan gaji semua dosen dalam bentuk rupiah
  • Contoh
  • Nama Gaji
  • ANDI Rp. 5000000
  • Daftar gaji pada tabel dalam dollar
  • Tampilkan Kemungkinan nilai nominal gaji berapa
    saja yang dibayarkan

28
(No Transcript)
29
Klausa WHERE - Seleksi
  • Memilih baris data mana saja yang akan
    ditampilkan (seleksi)
  • Format
  • SELECT DISTINCT kolomekspresi AS alias,
    FROM table WHERE kondisi
  • WHERE menyatakan batasan apa saja yang diberikan
  • Kondisi
  • Perbandingan - , ltgt, gt, lt. lt, gt
  • Range - IN(), BETWEEN AND
  • Boolean - AND, OR, NOT
  • NULL - IS NULL, IS NOT NULL
  • Kemiripan Like ? Untuk satu huruf, untuk
    semua/segala

30
Contoh Klausa WHERE
  • Perbandingan - , ltgt, gt, lt. lt, gt
  • SELECT FROM dosen WHERE namaJoko
  • SELECT FROM dosen WHERE gajigt200
  • Range - IN(), BETWEEN AND
  • SELECT FROM siswa WHERE kelas BETWEEN 2 AND 3
  • Boolean - AND, OR, NOT
  • SELECT FROM data WHERE a10 AND b20

31
Contoh Klausa WHERE (lanj.)
  • NULL - IS NULL, IS NOT NULL
  • SELECT FROM dosen WHERE atasan IS NULL
  • Kemiripan LIKE ? Untuk satu huruf, untuk
    semua/segala
  • SELECT FROM siswa WHERE nama LIKE "?ntok
    Maringis"
  • SELECT FROM siswa WHERE nama LIKE B
  • SELECT FROM siswa WHERE nama LIKE ?A

32
Soal/Tugas
  • Tampilkan daftar siswa kelas 2 dan 3
  • Cari daftar mahasiswa yang memiliki kata wati
    pada namanya dan tampilkan hanya nama dan
    alamatnya

33
Klausa ORDER BY
  • Menyatakan hasil akan diurutkan menurut kolom
    mana (bisa lebih dari satu kolom)
  • ASC (atau tidak disebutkan/default) menyatakan
    urutan naik
  • DESC menyatakan urutan turun
  • Format
  • SELECT DISTINCT kolomekspresi AS alias,
    FROM table WHERE kondisi ORDER BY kolom
    ASCDESC

34
Contoh Perintah SQL
  • Membaca data semua siswa dengan kelas 3
  • SELECT FROM siswa WHERE kelas3
  • Membaca data lengkap siswa dengan nama Dimas
    Ananto
  • SELECT FROM siswa WHERE nama"Dimas Ananto"
  • Membaca dosen yang memiliki gaji gt 200 dollar
  • SELECT FROM dosen WHERE gajigt200
  • Membaca data dosen memiliki gaji dari 100 sampai
    200 dollar
  • SELECT FROM dosen WHERE gaji BETWEEN 100 AND
    200
  • Membaca data siswa yang memiliki huruf kedua dari
    nama adalah D, dan urutkan berdasarkan nama
    dengan urutan menurun
  • SELECT FROM siswa WHERE nama like "?D ORDER
    BY nama DESC

35
Fungsi Single-Row
  • Input fungsi dari satu baris/record, dan
    menghasilkan satu per baris
  • Input banyak baris, menghasilkan banyak baris
    yang sama
  • Mengolah data items
  • Dapat menerima argumen dan menghasilkan satu
    nilai
  • Mengeluarkan nilai untuk setiap baris data
  • Dapat mengubah tipe data
  • Dapat dalam bentuk bersarang (nested)
  • Dapat menerima argumen berupa data kolom atau
    suatu ekspresi

36
Contoh Fungsi Single-row
  • Karakter (lcase, ucase, initcap, concat, instr)
  • SELECT lcase(nama) FROM dosen
  • Bilangan (cint, int, mod)
  • SELECT gaji,cint(gaji/100) FROM dosen
  • Tanggal (now, date, time, add_months, round,
    trunc)
  • SELECT now,now1 AS besok FROM dual
  • Konversi implisit, atau eksplisit (val, cdate,
    cstr)
  • SELECT format(date,"dd-mm-yyyy") FROM dual

37
Soal/Tugas
  • Tampilkan tanggal 1 minggu kemudian
  • Tampilkan Nama dan Tanggal Lahir dengan format
    DD-MM-YYYY dari siswa yang tidak memiliki dosen
    wali

38
Fungsi Multi-Row
  • Melakukan operasi pada sekelompok baris data
    untuk menghasilkan sebuah data
  • Input fungsi dari banyak baris, menghasilkan satu
    atau banyak baris (Gouping, Fungsi Agregat)

39
Contoh Fungsi Multi-row
  • count()
  • count(nama_kolom)
  • Sum(nama_kolom)
  • Min(nama_kolom)
  • max(nama_kolom)
  • avg(nama_kolom)

40
Soal/Tugas
  • Hitung jumlah seluruh siswa
  • Hitung jumlah pegawai yang tidak memiliki atasan
  • Hitung total gaji dosen dalam rupiah
  • Berapa gaji terendah, gaji tertinggi dan
    rata-rata gaji dosen
  • Hitung jumlah siswa tiap jurusan
  • Hitung total gaji dosen tiap jurusan

41
Menggabungkan Tabel (Join)
  • Alasan
  • Sering diperlukan melakukan beberapa operasi
    database untuk mendapatkan suatu informasi yang
    diinginkan
  • Perintah SQL dibatasi hanya berupa satu
    perintah/operasi saja untuk mendapatkan suatu
    hasil yang diinginkan
  • Tidak dapat menggunakan beberapa perintah/operasi
    sekaligus
  • Diperlukan cara untuk menggabungkan beberapa
    perintah/operasi menjadi satu perintah/operasi
    tunggal

42
Contoh Alasan Join
  • Pertanyaan
  • Siapa nama dosen wali dari siswa yang namanya
    Yuliwati
  • Jawab
  • Cari Dosen Wali Yuliwati dari tabel Siswa
  • SELECT dosen wali FROM siswa WHERE nama
    Yuliwati
  • Ternyata informasi Dosen Wali dari tabel Siswa
    masih dalam bentuk Kode NIP1235
  • Cari mama Dosen Wali pada tabel Dosen menggunakan
    kunci pencarian NIP
  • SELECT nama FROM dosen WHERE NIP1235

43
Contoh Alasan Join (lanj.)
  • Dengan menggunakan join, pertanyaan sebelumnya
    dapat dicari dengan sekali perintah/proses saja
  • Cari nama dosen wali siswa dari tabel siswa
    sekaligus tabel dosen, yang nama siswaYuliwati
    dan kode dosen wali siswa kode NIP dari dosen
  • SELECT s.Nama as Siswa, d.Nama as Wali FROM siswa
    as s, dosen as d WHERE s.namaYuliwati AND
    s.walid.nip

44
Join (lanjutan)
  • Kegunaan
  • Digunakan untuk menampilkan dari banyak tabel
  • Mengkombinasikan seluruh kemungkinan data antar
    banyak tabel
  • Mendapatkan informasi yang tersimpan pada tabel
    lain (melakukan relasi antara satu tabel dengan
    tabel lainnya)

45
Jenis Join
  • Cross/kartesian join
  • inner/equi join
  • natural join
  • join using
  • non equi join
  • outer join
  • left outer join
  • right outer join
  • full outer join
  • ACCESS 2003 tidak memiliki Full Outer Join
  • self join

46
Kartesian/Cross Join
  • Digunakan untuk mendapatkan berbagai kemungkinan
    kombinasi
  • Hasil Join
  • Kolom berupakan gabungan dari semua tabel yang
    di-join
  • Baris merupakan semua kombinasi (jumlah
    perkalian) dari semua baris yang di-join
  • Contoh
  • SELECT FROM siswa, dosen

47
Contoh Cross Join
  • SELECT FROM A, B
  • Kolom dijadikan satu antara A dan B
  • Baris data dikombinasikan (4x416)

48
Inner/Equi Join
  • Digunakan untuk mendapatkan informasi dari
    beberapa tabel berdasar relasi yang sesuai
  • Inner artinya informasi relasi ada pada setiap
    tabel
  • SELECT FROM siswa INNER JOIN dosen ON
    siswa.walidosen.nip
  • Equi artinya relasi dinyatakan dengan bentuk
    persamaan (sama dengan, )
  • SELECT FROM siswa, dosen WHERE walinip

49
Contoh Inner/Equi Join
  • SELECT FROM A INNER JOIN B ON A.XB.V
  • SELECT FROM A, B WHERE A.XB.V
  • Hasil baris, nilai X yang sama dengan V

50
Inner/Non Equi Join
  • Sama dengan Inner/Equi Join, hanya menggunakan
    bentuk pertidak samaan, atau sering dalam bentuk
    range
  • Inner Join
  • SELECT FROM siswa INNER JOIN dosen ON siswa.
    waligtdosen.nip
  • Non Equi Join artinya relasi dinyatakan dengan
    bentuk pertidaksamaan (gt, lt, ltgt, gt,lt)
  • SELECT FROM nilai,konversi WHERE nagtmin AND
    naltmax
  • SELECT FROM nilai,konversi WHERE na BETWEEN min
    AND max

51
Natural Join
  • none

52
Join Using
  • none

53
Outer Join
  • Digunakan untuk mendapatkan informasi dari suatu
    tabel yang data-nya sesuai dan tidak sesuai

54
Left Outer Join
  • Mencari informasi yang relasi ada pada ke dua
    sisi tabel dan yang relasi tabel yang data pada
    sisi kiri tidak dijumpai pada sisi kanan
  • Tampilkan data siswa yang memiliki dosen wali
    sekaligus yang tidak
  • SELECT FROM siswa LEFT JOIN dosen ON
    siswa.walidosen.nip

55
Contoh Left Outer Join
  • SELECT FROM A LEFT JOIN B ON A.XB.V
  • Seluruh data A ditampilkan dan data B yang sesuai
    dengan relasi XV
  • Yang tidak sesuai, kosongkan

56
Right Outer Join
  • Mencari informasi yang relasi ada pada ke dua
    sisi tabel dan yang relasi tabel yang data pada
    sisi kanan tidak dijumpai pada sisi kiri
  • Tampilkan data dosen yang sebagai dosen wali dan
    yang tidak
  • SELECT FROM siswa RIGHT JOIN dosen ON
    siswa.walidosen.nip

57
Contoh Right Outer Join
  • SELECT FROM A RIGHT JOIN B ON A.XB.V
  • Seluruh data B ditampilkan dan data A yang sesuai
    dengan relasi XV
  • Yang tidak sesuai, kosongkan

58
Full Outer Join
  • none

59
Self Join
  • Sama dengan join lainnya, hanya melibatkan tabel
    yang sama
  • SELECT d.nama as Dosen, a.nama as Atasan FROM
    dosen as d, dosen as a WHERE d.atasana.nip

60
Contoh Join
  • Kartesian, untuk mendapatkan seluruh kombinasi
    data
  • SELECT FROM siswa, dosen
  • Inner, relasi antar tabel dengan nilai data yang
    sama tepat
  • SELECT FROM siswa INNER JOIN dosen ON
    siswa.walidosen.nip
  • Nonequijoin, untuk mencari/membandingkan nilai
    antara
  • SELECT FROM nilai,konversi WHERE nagtmin AND
    naltmax
  • outer join, relasi dengan tabel yang kemungkinan
    nilai datanya tidak ada
  • SELECT FROM siswa LEFT JOIN dosen ON
    siswa.walidosen.nip
  • self join, relasi dengan diri sendiri
  • SELECT d.nama as Dosen, a.nama as Atasan FROM
    dosen as d, dosen as a WHERE d.atasana.nip

61
Soal/Tugas
  • Tampilkan Nama siswa lengkap dengan nama Jurusan
  • Tampilkan Nama siswa pada Jurusan Elektronika
    dan Elektro Industri
  • Tampilkan Nama siswa yang ketua jusannya Mamat
    Darmawan

62
Klausa GROUP BY
  • Mengoperasikan sekelompok baris data menjadi
    bentuk group data
  • Fungsi Group (Multi-row Function)
  • AVG, COUNT, MAX, MIN, SUM,
  • Format
  • SELECT kolom, fungsi_group(kolom), FROM tabel
    WHERE kondisi GROUP BY kolom HAVING
    kondisi_group ORDER BY kolom

63
Aturan Group
  • Penggunaan Multi-row Function tidak harus
    menggunakan klausa GROUP BY
  • Contoh
  • SELECT max(kelas) FROM siswa GROUP BY jurusan
  • Boleh
  • SELECT count() FROM siswa
  • SELECT sum(gaji) AS Total Gaji, min(gaji) AS
    Gaji Terendah, max(gaji) AS Gaji Tertinggi
    FROM dosen WHERE jurusan1

64
Aturan Group (lanjutan)
  • Penggunaan Single-row Function bersama-sama
    dengan Multi-row Function harus menggunakan
    klausa GROUP BY
  • List pada GROUP BY sama dengan semua Single-row
    Function yang digunakan
  • Contoh
  • SELECT jurusan,sum(gaji) FROM dosen GROUP BY
    jurusan
  • Salah
  • SELECT kelas,count() FROM siswa

65
Aturan Group (lanjutan)
  • Penggunaan klausa GROUP BY harus menggunakan
    Multi-row Function
  • Contoh
  • SELECT count() FROM siswa GROUP BY kelas
  • Salah
  • SELECT nama FROM siswa GROUP BY jurusan

66
Aturan Group (lanjutan)
  • Penggunaan klausa GROUP BY tidak harus
    menggunakan Single-row Function
  • Contoh
  • SELECT wali, count(nama) FROM siswa GROUP BY wali
  • Boleh
  • SELECT count() FROM siswa GROUP BY kelas

67
Klausa HAVING
  • Identik dengan klausa WHERE
  • Digunakan untuk membatasi jumlah /memilih baris
    yang tampil
  • Klausa WHERE digunakan pada operasi Single-row
  • Klausa HAVING digunakan pada operasi Multi-row

68
Aturan Klausa HAVING
  • Penggunaan klausa GROUP BY tidak harus
    menggunakan klausa HAVING
  • Contoh
  • SELECT count() FROM siswa GROUP BY kelas HAVING
    count()gt10
  • Boleh
  • SELECT count() FROM siswa GROUP BY kelas

69
Aturan Klausa HAVING (lanj.)
  • Penggunaan klausa HAVING tidak harus menggunakan
    GROUP BY
  • Contoh
  • SELECT sum(gaji) FROM dosen GROUP BY jurusan
    HAVING sum(gaji)gt500
  • Boleh
  • SELECT count() FROM siswa HAVING count()gt10

70
Aturan Klausa HAVING (lanj.)
  • Seleksi Single-row harus menggunakan klausa WHERE
  • Contoh
  • SELECT sum(gaji) FROM dosen GROUP BY jurusan
    WHERE jurusan1
  • Salah
  • SELECT sum(gaji) FROM pegawai GROUP BY jurusan
    HAVING jurusan1

71
Aturan Klausa HAVING (lanj.)
  • Seleksi Multi-row harus menggunakan Klausa HAVING
  • Contoh
  • SELECT sum(gaji) FROM dosen GROUP BY jurusan
    HAVING sum(gaji)lt500
  • Salah
  • SELECT sum(gaji) FROM dosen GROUP BY jurusan
    WHERE sum(gaji)lt500

72
Contoh Group
  • Menghitung jumlah dosen setiap jurusan dan
    mengurutkan hasilnya berdasar nomor jurusan
  • SELECT Jurusan,count(nip) as Jumlah FROM dosen
    GROUP BY jurusan ORDER BY jurusan
  • Menghitung total gaji pegawai dari departemen
    nomor 2, 3, dan 4, tetapi hanya menampilkan yang
    total setiap jurusannya lebih besar dari 500
    dollar
  • SELECT Jurusan,sum(sal) as Total Gaji FROM
    dosen WHERE jurusan IN(2,3,4) GROUP BY jurusan
    having sum(sal)gt500 ORDER BY jurusan

73
Soal/Tugas
  • Tampilkan total gaji dalam rupiah yang harus
    dibayarkan pada jurusan Elektronika dan Teknik
    Komputer
  • Tampilkan Jumlah siswa tiap Jurusan lengkap
    dengan nama Jurusan-nya

74
Subquery
  • Mencari sesuatu yang berasal dari hasil query
    lainnya
  • Petunjuk
  • Subquery diawali dengan kurung buka dan diakhiri
    dengan kurung tutup
  • Subquery diletakkan pada sisi kanan dari suatu
    perbandingan
  • Penggunaan order by dalam subquery tidak
    diperlukan, kecuali untuk melakukan analisa top-n
  • Gunakan operator yang sesuai dengan hasil dari
    subquery. Single-row operator dengan single-row
    subquery, multiple-row operator dengan
    multiple-row subquery

75
Contoh Subquery
  • Siapa saja pegawai yang gajinya lebih besar dari
    gaji Adam ? Untuk itu, harus dicari dulu, berapa
    gaji Adam ?
  • SELECT FROM dosen WHERE gajigt(SELECT gaji FROM
    dosen WHERE nama"Permata Sari")
  • Hasil subquery harus satu baris, menggunakan
    perbandingan
  • SELECT FROM dosen WHERE gaji(SELECT gaji FROM
    dosen WHERE nama"Permata Sari")
  • Hasil subquery boleh banyak baris, menggunakan
    range
  • SELECT FROM dosen WHERE gaji in (SELECT gaji
    FROM dosen WHERE jurusan2)
  • Salah, karena operator perbandingan digunakan
    pada subquery yang menghasilkan banyak baris
  • SELECT FROM dosen WHERE gaji(SELECT gaji FROM
    dosen WHERE jurusan2)

76
Soal/Tugas
  • Tampilkan Nama siswa yang memiliki satu jurusan
    dengan siswa yang bernama Titik Priyanti

77
Inline View
  • Digunakan untuk mengantikan list Tabel menjadi
    perintah QUERY
  • Untuk melakukan operasi yang tidak berasal dari
    tabel aslinya
  • Menyederhanakan perintah yang rumit

78
Contoh Inline View
  • Membaca data pegawai dengan nomor departemengt2,
    yang berasal dari suatu inline view
  • SELECT FROM (SELECT nama,jurusan FROM dosen)
    WHERE jurusangt2
  • Melakukan operasi join hasil dari suatu inline
    view
  • SELECT d.,j.jurusan FROM (SELECT nama,jurusan
    FROM dosen WHERE gajigt100) as d,(SELECT
    kode,jurusan FROM jurusan WHERE kodegt2) as j
    WHERE d.jurusanj.kode
  • Melakukan manipulasi data pada suatu inline view
  • UPDATE (SELECT nama,gaji FROM dosen WHERE
    jurusan2) SET gaji100 WHERE gaji110

79
Soal/Tugas
80
Parameter Value
  • Subsitusi Variabel
  • Memasukkan suatu nilai parameter tiap kali
    menjalankan perintah SQL
  • Contoh
  • SELECT FROM dosen WHERE gajigtBatasGaji
  • SELECT Nama, format(lahir,"DD-MM-YYYY") as
    Tanggal Lahir FROM siswa
  • WHERE ucase(nama) like "" ucase(Masukkan
    Nama Siswa ) ""

81
Menggunakan Operator SET UNION
  • Digunakan untuk menggabungkan hasil dari lebih
    dari satu query
  • Hasil dari setiap query harus memiliki kolom yang
    sama
  • UNION - tidak semua (yang kembar dibuang)
  • UNION ALL - semua

82
Contoh
  • Menggabungkan semua hasil dari dosen yang bekerja
    pada jurusan 2 dan jurusan 3
  • Hasilnya sama dengan perintah
  • SELECT FROM dosen WHERE jurusan IN (2,3) ORDER
    BY jurusan
  • SELECT FROM dosen WHERE jurusan2
  • UNION ALL
  • SELECT FROM dosen WHERE jurusan3

83
Memanipulasi Data
  • DML - Data Manipulation Language
  • Menambah baris data baru
  • Mengubah isi suatu baris data
  • Menghapus suatu baris data
  • Transaksi adalah kumpulan dari perintah DML yang
    membentuk suatu suatu kerja tertentu

84
Contoh Operasi DML
  • INSERT INTO jurusan (kode,jurusan,kajur,sekjur)
    VALUES (8,Akutansi,1230,1237)
  • INSERT INTO jurusan VALUES (9,Perpajakan,1233,12
    39)
  • UPDATE jurusan SET jurusanKeuangan WHERE
    kode8
  • DELETE FROM jurusan WHERE kode IN (8,9)

85
Soal/Tugas
  • Tampilkan data Kelas dari siswa yang ketua
    jurusannya bernama Bromantoro Diarwanto dan
    dosen wali Guna Mardi
  • Ubah data kelas dari siswa tersebut menjadi kelas
    4

86
Membuat dan Mengatur Tabel
  • CREATE TABLE nama (
  • kolom tipe konstrain,
  • kolom tipe konstrain konstrain,
  • Nama Kolom tipe konstrain,
  • ,
  • kolom tipe konstrain,
  • CONSTRAINT namak konstrain (kolom)
  • )

87
Tipe
  • BOOLEAN
  • INTEGER, LONG, CURRENCY, SINGLE, DOUBLE atau
    NUMBER
  • CHAR, VARCHAR atau TEXT
  • DATE
  • MEMO
  • VARIANT (default)

88
Konstrain
  • NOT NULL
  • PRIMARY KEY
  • UNIQUE
  • REFERENCES tabel(kolom)

89
Pengertian Konstrain
  • Kegunaan
  • Memberikan aturan pada tingkat table
  • Membatasi Manipulasi tertentu pada Tabel
  • Menjaga Integritas Data
  • Menjaga Validitas Data
  • Jenis
  • NOT NULL
  • UNIQUE
  • PRIMARY KEY
  • FOREIGN KEY

90
Penjelasan Konstrain
  • NOT NULL
  • Suatu kolom harus memiliki nilai tertentu (tidak
    boleh kosong)
  • UNIQUE
  • Suatu kolom harus tidak boleh memiliki nilai yang
    sama (tetapi boleh null)
  • , kolom tipe NOT NULL UNIQUE,
  • , CONSTRAINT nama_konstrain UNIQUE (kolom), ...
  • PRIMARY KEY
  • Suatu kolom dinyatakan sebagai kunci utama dari
    suatu tabel
  • Otomatis dianggap UNIQUE dan NOT NULL
  • , kolom tipe NOT NULL PRIMARY KEY, ...
  • ..., CONSTRAINT nama_konstrain PRYMARY
    KEY(kolom), ...
  • FOREIGN KEY
  • Menyatakan suatu kolom harus sesuai dengan kolom
    lain dari suatu tabel
  • , kolom tipe REFERENCES tabel(kolom),
  • , CONSTRAINT nama_k FOREIGN KEY(kolom)
    REFERENCES tabel(kolom), ...

91
Perintah Lainnya
  • ALTER TABLE nama_tabel()
  • DROP TABLE nama_tabel

92
Contoh Membuat Tabel
  • CREATE TABLE dosen(
  • nip varchar(15) not null primary key,
  • nama varchar(50) not null
  • )
  • CREATE TABLE siswa(
  • nrp varchar(15) not null primary key,
  • nama varchar(50) not null,
  • wali varchar(15) references dosen(nip)
  • )
  • CREATE INDEX nama_siswa ON siswa(nama)

93
Indeks
  • Suatu tabel khusus yang berisi kolom dengan data
    yang telah diurutkan
  • Kegunaan
  • Mempercepat pencarian
  • Pengujian data unik
  • Otomatis dibuatkan saat suatu kolom dianggap
    sebagai PRIMARY KEY atau UNIQUE
  • Format
  • CREATE INDEX namaI ON tabel (kolom1, )
Write a Comment
User Comments (0)
About PowerShow.com