Basisdata27

PERINTAH SQL (SELECT) UNTUK MULTI TABEL
Pada artikel ini akan diberikan beberapa contoh perintah SQL yang diimplementasikan pada multi tabel. Adapun perintah SQL untuk manipulasi data pada satu tabel, saya yakin hal ini cukup mudah bagi Anda. Dalam contoh ini akan diambil studi kasus tentang pengambilan matakuliah mahasiswa.
Tabel-tabel yang dibuat pada studi kasus ini cukup sederhana saja untuk memudahkan pemahaman. Adapun tabel-tabel tersebut adalah:
1.mhs (
2.nim varchar(3),
3.namaMhs varchar(30),
4.primary key(nim)
1.mk (
2.kodeMK varchar(3),
3.namaMK varchar(30),
4.sks integer,
5.primary key(kodeMK)
6.)
1.ambilMK (
2.nim varchar(3),
3.kodeMK varchar(3),
4.nilai integer,
5.primary key(nim, kodeMK)
6.)
Dalam hal ini, field nim dan kodeMK pada tabel ambilMK merupakan foreign key. Apabila diperhatikan, tabel mhs dengan tabel ambilMK saling berelasi karena nim dalam tabel ambilMK berasal dari nim dalam tabel mhs (master tabel).
Demikian pula antara tabel mk dengan ambilMK. Kedua tabel ini juga berelasi karena kodeMK dalam tabel ambilMK berasal dari kodeMK dalam tabel mk.
Untuk record masing-masing tabel, misalkan diberikan berikut ini:
Tabel : mhs
1.nim    namaMhs
2.001    Joko
3.002    Amir
4.003    Budi
Tabel : mk
1.kodeMK    namaMK        sks
2.A01       Kalkulus      3
3.A02       Geometri      2
4.A03       Aljabar       3
Tabel : ambilMK
1.nim    kodeMK    nilai
2.001    A01         3
3.001    A02         4
4.001    A03         2
5.002    A02         3
6.002    A03         2
7.003    A01         4
8.003    A03         3
Selanjutnya misalkan akan dicari data-data sbb:
  1. Tampilkan nim dan nama mahasiswa yang mengambil Kalkulus (kodeMK = A01)
  2. Tampilkan nim, nama mahasiswa dan jumlah SKS matakuliah yang diambil untuk setiap mahasiswa
  3. Berapakah IPK mahasiswa bernama Budi (NIM: 003)
  4. Tampilkan nim, nama mahasiswa, dan IPK setiap mahasiswa
Untuk menjawab no. 1, kita harus cari dulu tabel mana yang terkait dengan query tersebut. Apabila kita akan mencari query tersebut berdasarkan nama matakuliah ‘Kalkulus’ maka tabel yang terkait adalah mhs (untuk menampilkan nim dan nama mahasiswa), mk (karena dalam tabel ini terdapat nama matakuliah), serta tabel ambilMK (karena tabel ini berisi data pengambilan matakuliah oleh mahasiswa).
Setelah menentukan tabel mana yang terkait dengan query, selanjutnya dapat dibuat statement SQL nya, yaitu
1.SELECT mhs.nim, mhs.namaMhs
2.FROM mhs, mk, ambilMK
3.WHERE mhs.nim = ambilMK.nim AND mk.kodeMK = ambilMK.kodeMK
4.AND mk.namaMK = 'Kalkulus';
Maksud mhs.nim, maksudnya adalah menampilkan data nim yang berasal dari tabel mhs. Dapat pula Anda menuliskan SQL nya seperti ini
1.SELECT ambilMK.nim, mhs.namaMhs
2.FROM mhs, mk, ambilMK
3.WHERE mhs.nim = ambilMK.nim AND mk.kodeMK = ambilMK.kodeMK
4.AND mk.namaMK = 'Kalkulus';
Hal ini dikarenakan untuk menampilkan nim dapat pula berasal dari tabel ambilMK.
Perhatikan bagian FROM dari kedua statement SQL di atas. Nama-nama tabel yang terkait dengan query dituliskan pada bagian FROM ini.
Selanjutnya apa maksud dari perintah mhs.nim =ambilMK.nim? Perintah ini digunakan untuk merelasikan tabel mhs dan ambilMK, dimana kedua tabel direlasikan melalui field nim di kedua tabel. Hal yang sama juga berlaku untuk perintah mk.kodeMK = ambilMK.kodeMK.
Sedangkan perintah mk.namaMK = ‘Kalkulus’ digunakan sebagai syarat pencarian data (menampilkan data mahasiswa yang mengambil matakuliah Kalkulus).
Apabila pencarian data mahasiswa yang mengambil Kalkulus ini berdasarkan kode matakuliah (A01), maka Anda tidak perlu menggunakan tabel mk, tapi cukup tabel mhs dan ambilMK saja. Hal ini dikarenakan kodeMK dapat diketahui dari tabel ambilMK. Sehingga perintah SQL nya
1.SELECT mhs.nim, mhs.namaMhs
2.FROM mhs, ambilMK
3.WHERE mhs.nim = ambilMK.nim AND ambilMK.kodeMK = 'A01';
Ketiga statement SQL di atas akan menghasilkan hasil yang sama yaitu
1.NIM    namaMhs
2.001    Joko
3.003    Budi
Selanjutnya akan dijawab pertanyaan no. 2. Seperti halnya langkah penyelesaian pertanyaan no. 1, langkah pertama harus kita tentukan dulu tabel apa saja yang terkait dengan query. Dalam hal ini kita akan menggunakan tabel mhs, mk dan ambilMK. Tabel mhs untuk menampilkan nim dan nama mahasiswa. Tabel mk digunakan karena di dalamnya terdapat data SKS. Sedangkan tabel ambilMK digunakan karena berisi data yang menunjukkan pengambilan matakuliah mahasiswa.
Perintah SQL untuk pertanyaan no. 2 adalah
1.SELECT mhs.nim, mhs.namaMhs, sum(mk.sks) asjumlahSKS
2.FROM mhs, mk, ambilMK
3.WHERE mhs.nim = ambilMK.nim AND mk.kodeMK = ambilMK.kodeMK
4.GROUP BY ambilMK.nim
atau
1.SELECT mhs.nim, mhs.namaMhs, sum(mk.sks) asjumlahSKS
2.FROM mhs, mk, ambilMK
3.WHERE mhs.nim = ambilMK.nim AND mk.kodeMK = ambilMK.kodeMK
4.GROUP BY mhs.nim
Untuk mencari jumlah SKS setiap mahasiswa, kita menggunakan perintah sum(mk.sks). Supaya perintah ini bisa jalan, maka harus ditambahkan perintah GROUP BY mhs.nim atau GROUP BY ambilMK.nim. Hal ini dikarenakan proses penjumlahan sks harus dilakukan pada setiap kelompok data. Maksudnya apa ya?
Perhatikan perintah SQL berikut ini
1.SELECT mhs.nim, mhs.namaMhs, mk.sks
2.FROM mhs, mk, ambilMK
3.WHERE mhs.nim = ambilMK.nim AND mk.kodeMK = ambilMK.kodeMK
Perintah di atas akan menampilkan nim, nama mahasiswa serta sks setiap mata kuliah yang diambil. Hasilnya adalah
1.NIM    namaMhs        SKS
2.001    Joko               3
3.001    Joko               2
4.001    Joko               3
5.002    Amir               2
6.002    Amir               3
7.003    Budi               3
8.003    Budi               3
Untuk pertanyaan no. 2 ini, seharusnya akan tampil hasil berikut
1.NIM    namaMhs        jumlahSKS
2.001    Joko              8
3.002    Amir              5
4.003    Budi              6

Sehingga supaya mendapatkan hasil seperti di atas, kita akan menjumlahkan setiap SKS yang diambil mahasiswa, berdasarkan kelompok mahasiswa, dalam hal ini dikelompokkan berdasarkan NIM. Mengapa tidak dikelompokkan berdasarkan nama mahasiswa? Wah bisa gawat kalau ini terjadi, karena ada kemungkinan  nama mahasiswa yang sama. Oleh karena itu harus ada perintah GROUP BY mhs.nim




#.SQL Memanipulasi data


Tujuan

Hari ini Anda belajar tentang membuat database. Hari 9 meliputi CREATE DATABASE, CREATE TABLE, ALTER TABLE, DROP TABLE, dan DROP DATABASE laporan, yang secara bersama dikenal sebagai definisi laporan data. (Sebaliknya, SELECT, UPDATE, INSERT,dan DELETE laporan sering digambarkan sebagai manipulasi data laporan hari.) Menjelang akhir dari, Anda akan memahami dan dapat melakukan hal berikut:
  • Buat kunci bidang
  • Buat database dengan tabel yang terkait
  • Membuat, mengubah, dan drop tabel
  • Menambahkan data ke database
  • Memodifikasi data dalam database
  • Drop database
Anda sekarang tahu banyak kosakata dan telah memeriksa SQL query SQL dalam beberapa detail, dimulai dengan sintaks dasar. Pada Hari 2, “Pengantar Permintaan: Pernyataan SELECT," Anda belajar bagaimana untuk memilih data dari database. Pada Hari 8, “Memanipulasi Data,” Anda belajar bagaimana untuk memasukkan, update, dan menghapus data dari database. Sekarang, sembilan hari dalam proses belajar, Anda mungkin sudah bertanya-tanya di mana ini berasal dari database. Untuk itu demi kesederhanaan, kita telah mengabaikan proses menciptakan database dan tabel. Kita telah mengasumsikan bahwa objek-objek data yang ada saat ini pada sistem Anda. Hari ini Anda akhirnya membuat objek-objek ini.
Sintaks dari laporan CREATE bisa berkisar dari sangat sederhana sampai yang kompleks, tergantung pada pilihan sistem manajemen database (DBMS) mendukung dan bagaimana rinci Anda ingin saat membangun database.


The CREATE DATABASE Pernyataan

Langkah pertama manajemen data dalam database setiap proyek adalah untuk menciptakan database. Tugas ini dapat berkisar dari SD ke rumit, tergantung pada kebutuhan dan sistem manajemen database yang telah Anda pilih. Banyak sistem modern (termasuk Personal Oracle7) berikut perangkat grafis yang memungkinkan Anda untuk benar-benar membangun database dengan mengklik tombol mouse. Fitur ini menghemat waktu tentu saja bermanfaat, namun Anda harus memahami pernyataan SQL yang dijalankan untuk menanggapi klik mouse.
Melalui pengalaman pribadi, kita telah belajar pentingnya menciptakan baik SQL menginstal script. File ini berisi script kode SQL yang dibutuhkan untuk benar-benar membangun kembali basis data atau database; script sering kali berisi objek database seperti indeks, disimpan prosedur, dan pemicu. Anda akan melihat nilai dari script ini selama perkembangan sebagai Anda terus-menerus melakukan perubahan pada database dan pada kesempatan ingin sekali membangun kembali database dengan semua perubahan terbaru. Dengan menggunakan alat grafis setiap kali Anda perlu melakukan kembali dapat menjadi sangat waktu memakan. Selain itu, mengetahui sintaks SQL untuk prosedur ini memungkinkan Anda untuk menerapkan pengetahuan Anda ke sistem database lain.
Sintaks untuk pernyataan CREATE DATABASE khas terlihat seperti ini:
Sintaks:
 CREATE DATABASE database_name
Karena sintaks bervariasi secara luas dari sistem ke sistem, kita tidak akan memperluas pada pernyataan CREATE DATABASE sintaks. Banyak sistem bahkan tidak mendukung perintah SQL CREATE DATABASE. Namun, semua yang populer, lebih kuat, manajemen basis data relasional sistem (RDBMSs) melakukan memberikan itu. Alih-alih berfokus pada sintaks, kami akan meluangkan waktu mendiskusikan pilihan yang perlu dipertimbangkan ketika membuat database.

CREATE DATABASE Pilihan

Sintaks untuk pernyataan CREATE DATABASE dapat sangat bervariasi. Banyak SQL teks melompat menyangkut pernyataan CREATE DATABASE dan bergerak langsung ke pernyataan CREATE TABLE.Karena Anda harus membuat database sebelum Anda dapat membangun sebuah meja, bagian ini berfokus pada beberapa konsep pengembang harus dipertimbangkan ketika membangun database. Pertimbangan pertama adalah tingkat izin. Jika Anda menggunakan sistem manajemen database relasional (RDBMS) yang mendukung akses user tersebut, Anda harus yakin bahwa baik Anda memiliki izin pengaturan tingkat administrator sistem atau administrator sistem telah memberikan izin CREATE DATABASE. Lihat dokumentasi RDBMS Anda untuk informasi lebih lanjut .
Kebanyakan RDBMSs juga memungkinkan Anda untuk menentukan ukuran database default, biasanya dalam hal ruang hard disk (seperti megabyte). Anda perlu memahami bagaimana sistem database toko dan menempatkan data pada disk untuk memperkirakan secara akurat ukuran yang Anda butuhkan. Tanggung jawab untuk mengelola ruang ini jatuh terutama untuk administrator sistem, dan mungkin di lokasi database administrator akan membangun database test .
Jangan biarkan pernyataan CREATE DATABASEmengintimidasi Anda. Pada sederhana, Anda dapat membuat database bernama PEMBAYARAN dengan pernyataan berikut:
Sintaks:
 SQL>  DATABASE PEMBAYARAN;

Desain Database

Merancang database dengan benar sangat penting bagi keberhasilan aplikasi Anda,. Pengantar Materi pada Hari 1 “Pengantar SQL,” menyentuh pada topik teori database relasional dan normalisasi database.
Normalisasi adalah proses memecah data Anda menjadi komponen-komponen terpisah untuk mengurangi pengulangan data. Setiap tingkat normalisasi mengurangi pengulangan data. Normalisasi data Anda bisa menjadi proses yang sangat kompleks, dan berbagai alat desain database memungkinkan Anda untuk merencanakan proses ini dengan cara yang logis.

Komentar

Postingan populer dari blog ini

Kompetensi-3 Menerapkan Replikasi basis data

Kompetensi -01 Menerapkan pengendalian server melalui koneksi Client-Server pada RDBMS

kunjungan industri