+ All Categories
Home > Documents > MODUL PRAKTIKUM

MODUL PRAKTIKUM

Date post: 19-Feb-2023
Category:
Upload: umsida
View: 0 times
Download: 0 times
Share this document with a friend
26
MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 1 MODUL PRAKTIKUM BASIS DATA STRUCTURED QUERY LANGUAGE (SQL) MENGGUNAKAN MYSQL FAKULTAS TEKNIK INFORMATIKA UNIVERSITAS MUHAMMADIYAH SIDOARJO
Transcript

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 1

MODUL PRAKTIKUM BASIS DATASTRUCTURED QUERY LANGUAGE (SQL)

MENGGUNAKAN MYSQL

FAKULTAS TEKNIK INFORMATIKAUNIVERSITAS MUHAMMADIYAH SIDOARJO

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 2

MODUL 1STRUCTURED QUERY LANGUAGE (SQL)

(Implementasi menggunakan MySQL)

MAKSUD DAN TUJUANAgar mahasiswa mengetahui cara menginstal SQLMATERIPenerapan instalasi SQL

A Pengenalan SQLSQL pertama kali diterapkan pada sistem R (sebuah proyek riset pada laboratorium riset San

Jose IBM) Kini SQL juga dijumpai pada berbagai platform dari mikrokomputer hingga mainframeSQL dapat digunakan baik secara berdiri sendiri maupun dilekatkan pada bahasa-bahasa lain sepertiC dan Delphi SQL juga telah menjadi bagian dari sejumlah DBMS seperti Oracle Sybase MySQLdan Informix

B Elemen SQLElemen dasar SQL mencakup pernyataan nama tipe data konstanta ekspresi dan fungsi

bawaan1 Pernyataan

Pernyataan adalah perintah SQL yang meminta sesuatu tindakan kepada DBMS SQL memilikikira-kira 30 pernyataan Beberapa pernyataan dasar SQL dapat dilihat pada tabel berikut

Pernyataan KeteranganALTER Mengubah struktur tabelCOMMIT Mengakhiri sebuah eksekusi transaksiCREATE Menciptakan tabel indeks atau pandanganDELETE Menghapus baris pada tabelDROP Menghapus tabel indeks atau pandanganGRANT Menugaskan hak terhadap basis data kepada pengguna atau grup

penggunaINSERT Menambahkan sebuah baris pada tabelREVOKE Membatalkan hak terhadap basis dataROLLBACK Mengembalikan ke keadaan semula sekiranya suatu transaksi gagal

dilaksanakanSELECT Memilih baris dan kolom pada tabelUPDATE Mengubah nilai pada sebuah baris

2 NamaNama digunakan sebagai identitas bagi objek-objek pada DBMS Contoh objek pada DBMSadalah tabel kolom dan pengguna

3 Tipe DataSetiap data memiliki tipe data Berikut ini adalah tipe data dalam MySQL Tipe data untuk numerik

Tipe Keterangan Range NilaiTINYINT Nilai integer yang sangat kecil Signed -128 sd 127

Unsigned 0 sd 255SMALLINT Nilai integer yang kecil Signed -32768 sd 32767

Unsigned 0 sd 65535MEDIUMINT Integer dengan nilai medium Signed -8388608 sd 8388607

Unsigned 0 sd 16777215INT Integer dengan nilai standar Signed -2147483648 sd

2147483647Unsigned 0 sd 4294967295

BIGINT Integer dengan nilai besar Signed -9223372036854775808 sd9223372036854775807Unsigned 0 sd18446744073709551615

FLOAT Bilangan desimal dengansingle-precission

minimum plusmn 1175494351e-38maksimum plusmn 3402823466e+38

DOUBLE Bilangan desimal dengandouble-precission

minimum plusmn 22205738585072014e-308maksimum plusmn17976931348623457e+308

DECIMAL(MD) Bilangan float (desimal) yang Tergantung pada nilai M dan D

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 3

dinyatakan sebagai string Madalah jumlah digit yangdisimpan dalam suatu kolomN adalah jumlah digitdibelakang koma

Keterangan Signed dan Unsigned adalah atribut untuk tipe data numerik- Signed data yang disimpan dalam suatu kolom dapat berupa data negatif dan positif- Unsigned digunakan agar data yang dimasukkan bukan data negatif (gt=0) Tipe data float

tidak dapat dinyatakan dengan unsigned

Tipe data string Tipe Keterangan Ukuran Maksimum

CHAR(n) String karakter dengan panjang yang tetapyaitu n

1 M byte

VARCHAR(n) String karakter dengan panjang yang tidaktetap maksimum n

1 M byte

TINYBLOB BLOB (Binary Large Object) yang sangat kecil 28-1 byteBLOB BLOB berukuran kecil 216-1 byteMEDIUMBLOB BLOB berukuran sedang 224-1 byteLONGBLOB BLOB berukuran besar 232-1 byteTINYTEXT String teks yang sangat kecil 28-1 byteTEXT String teks berukuran kecil 216-1 byteMEDIUMTEXT String teks berukuran medium(sedang) 224-1 byteLONGTEXT String teks berukuran besar 232-1 byteENUM Enumerasi kolom dapat diisi dengan satu

member enumerasi65535 anggota

SET Himpunan kolom dapat diisi dengan beberapanilai anggota himpunan

64 anggotahimpunan

Tipe data tanggal dan jam Tipe Range Format

DATE ldquo1000-01-01rdquo sd ldquo9999-12-31rdquo ldquo0000-00-00rdquoTIME ldquo-8325959rdquo sd ldquo8385959rdquo ldquo000000rdquoDATETIME ldquo1000-01-01 000000rdquo sd

ldquo9999-12-31 235959rdquoldquo0000-00-00 000000rdquo

4 KonstantaKonstanta menyatakan nilai yang tetap

5 EkspresiEkspresi adalah segala sesuatu yang menghasilkan nilai Ekspresi digunakan untuk menghitungnilaiContoh hargajumlah+2Simbol-simbol yang dapat digunakan pada ekspresi aritmatika

Simbol Keterangan Perkalian Pembagian+ Penjumlahan- Pengurangan

6 Aggregate Functions (Fungsi Agregat)Fungsi adalah sebuah subprogram yang menghasilkan suatu nilai jika dipanggil Fungsi agregatadalah fungsi standar di dalam SQL suatu fungsi yang digunakan untuk melakukan summaryfungsi statistik standar yang dikenakan pada suatu tabel atau querya AVG(ekspresi)

Fungsi ini digunakan untuk mencari rata-rata nilai dalam suatu kolom dari suatu tabel atauekspresi Ekspresi dalam fungsi AVG umumnya adalah nama kolom Kolom yang dicari nilairata-ratanya adalah kolom dengan tipe data numerik

b COUNT(x)Fungsi ini digunakan untuk menghitung jumlah record (baris) dari suatu kolom dari suatutabel X adalah nama kolom yang ingin dicari jumlah barisnya

c MAX(ekspresi)Fungsi ini digunakan untuk mencari nilai terbesar dari suatu kolom dari suatu tabel Kolomyang dicari nilai terbesarnya memiliki tipe data numerik

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 4

d MIN(ekspresi)Fungsi ini digunakan untuk mencari nilai terkecil dari suatu kolom dari suatu tabel Kolomyang dicari nilai terkecilnya memiliki tipe data numerik

e SUM(ekspresi)Fungsi ini digunakan untuk mendapatkan nilai total dari suatu kolom pada suatu tabel

C MySQL ( My Structured Query Language )MySQL adalah Relational Database Management System (RDBMS) yang didistribusikan secara

gratis di bawah license GPL (General Public License) Setiap orang bebas menggunakan MySQLtetapi harus bersifat open source MySQL menggunakan bahasa SQL (Structured Query Language)

Instalasi MySQL-5022-WIN32 1 Jalankan file setup mysql yaitu mysql-5022-win32exe2 Pilih tombol Next3 Pilih Custom kemudian pilih tombol Next4 klik tanda silang pada Developer Components kemudian pilih This feature will be installed on

local hard drive5 Kemudian pilih tombol Change pada folder name ubah menjadi cmysql6 Pilih OK kemudian pilih tombol Next dan pilih tombol Install maka proses instalasi dimulai7 Berikutnya muncul dialog account pilih Skip Sign-Up dan klik tombol Next8 Klik tombol Finish dan tombol Next9 Pilih Standard Configuration dan klik tombol Next10Pilih tombol Next Kemudian muncul gambar berikut ini Masukkan password yang diinginkan

pada kota isian New root password dan Confirm berikut ini untuk sekuritas misalnya umsidaKlik tombol Next

11Klik tombol Execute sebagai tahap akhir12Klik Finish

Melakukan Koneksi ke MySQL Cara 1 1 Melalui DOS Prompt masuk ke direktori utama MySQL dengan cara sebagai berikut (yang

diketik hanya yang digaris bawah) Cgtcd program filemysqlbin

2 Setelah itu ketikkan perintah berikut (yang diketik hanya yang digaris bawah) Cgtprogram filemysqlbinmysql ndashu root ndashp

maka akan diminta untuk memasukkan passoword isikan password yang digunakan pada saatinstalasi yaitu umsida

3 Selanjutnya akan ada respon dari server seperti gambar berikut

Tampilan tersebut di atas menandakan bahwa telah berhasil melakukan koneksi ke server

Cara 2

1 Dari menu Start gt All Programs gt MySQL gt MySQL Server 50 gt MySQL Command LineClient maka akan muncul tampilan seperti berikut ini

2 Masukkan password yang telah ditentukan pada saat instalasi yaitu umsida kemudian tekanenter

Merubah Prompt MySQL Rubahlah nama prompt mysql dengan nama dan nim masing-masingSintax Mysqlgt prompt prakDBnama( 3 nim terakhir ) gt (spasi) (enter)

Tugas1 Buatlah Fungsi- fungsi dalam SQL yang meliputi Fungsi Sistem Fungsi String Fungsi

Tanggal Fungsi Agregat Fungsi Aritmatika

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 5

MODUL 2

DDL (Data Definition Language)

MAKSUD DAN TUJUANAgar mahasiswa memahami cara manipulasi basis data dengan perintah DDLMATERIMembuat mengubah dan menghapus struktur dan definisi metadata dari objek-objek database

DDL merupakan kelompok perintah yang berfungsi untuk mendefinisikan atribut-atributbasis data tabel atribut(kolom) batasan-batasan terhadap suatu atribut serta hubungan antar tabel Yangtermasuk dalam kelompok DDL ini adalah CREATE ALTER dan DROP

a Membuat DatabaseSyntax CREATE DATABASE namadatabasenamadatabase tidak boleh mengandung spasi dan tidak boleh memiliki nama yang samaantar database Berikut ini perintah untuk membuat database dengan nama rental

mysqlgt create database rental

Syntax tambahan untuk menampilkan daftar nama database yang ada pada mysqlmenggunakan perintah Mysqlgt SHOW DATABASES

b Menghapus DatabaseSyntax DROP DATABASE namadatabaseDatabase yang akan dihapus sesuai dengan namadatabase Berikut ini perintah untukmenghapus database dengan nama rental

Mysqlgt drop database rental

c Membuat TabelSebelum membuat suatu tabel terlebih dahulu harus memilih salah satu database sebagaidatabase aktif yang akan digunakan untuk menyimpan tabel-tabel dengan menggunakansyntax USE namadatabaseBerikut ini perintah untuk menggunakan database dengan nama rental

Mysqlgt use rental

Syntax membuat table CREATE TABLE namatabel2(Field1 TipeData1Field2 TipeData2)namatabel tidak boleh mengandung spasi (space) Field1 dan TipeData1 merupakannama kolom pertama dan tipe data untuk kolom pertama Jika ingin membuat tabel dengankolom lebih dari satu maka setelah pendefinisian tipe data sebelumnya diberikan tanda koma() Berikut ini perintah untuk membuat tabel dengan nama jenisfilm

mysqlgt create table jenisfilm (jenis char(6)harga int)

Syntax tambahan Untuk menampilkan daftar nama tabel yang ada pada database yang sedang aktifdigunakan(dalam hal ini database rental)

Mysqlgt SHOW TABLES

Untuk menampilkan deskripsi tabel (dalam hal ini jenisfilm) syntaxnya adalah DESC namatabel

Contoh

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 6

Mysqlgt desc jenisfilm

d Menghapus TabelSyntax DROP TABLE namatabelTabel yang akan dihapus sesuai dengan namatabel berikut ini perintah untuk menghapustabel dengan nama jenisfilm

Mysqlgt drop table jenisfilm

e Mendefinisikan nullnot nullSyntax CREATE TABLE namatabel(Field1 TipeData1 NOT NULLField2 TipeData2)

Contoh

Mysqlgt create table jenisfilm(Jenis char(6) not nullHarga int)

f Mendefinisikan Nilai DefaultNilai default adalah nilai yang otomatis diberikan oleh sistem untuk suatu kolom ketika adapenambahan baris baru sementara nilai pada kolom tersebut tidak diisi oleh penggunaSyntax CREATE TABLE namatabel(Field1 TipeData1Field2 TipeData2 DEFAULT nilai)nilai adalah nilai default dari kolom tersebut

Contoh

Mysqlgt create table jenisfilm1(Jenis char(6Harga int default 0)

g Mendefinisikan Primary Key Pada TabelTerdapat tiga cara untuk mendefinisikan primary key Berikut ini adalah Syntaxmendefinisikan primary key untuk Field1CREATE TABLE namatabel(Field1 TipeData1 NOT NULL PRIMARY KEYField2 TipeData2)

Atau

CREATE TABLE namatabel(Field1 TipeData1Field2 TipeData2PRIMARY KEY(Field1))

atau

ALTER TABLE namatabel ADD CONSTRAINT namaconstraint PRIMARYKEY (namakolom)Berikut ini perintah untuk membuat tabel jenisfilm dengan kolom jenis tipe datanya char(6)harga tipe datanya int dengan mendefinisikan nilai not null dan primary key untuk kolomjenis serta nilai default untuk kolom harga

Mysqlgt create table jenisfilm (

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 7

jenis char(6) not null primary keyharga int default 0)

atau

Mysqlgt create table jenisfilm (jenis char(6) not nullharga int default 0primary key (jenis))

atau

Mysqlgt create table jenisfilm (jenis char(6) not nullharga int default 0)

Mysqlgt alter table jenisfilm add constraint pk primary key(jenis)

h Menghapus Primary Key Pada TabelPerintah Cara 1 Jika primary key dibuat dengan menggunakan alter table ALTER TABLE namatabel DROP CONSTRAINT namaconstraintCara 2 Jika primary key dibuat melalui create table ALTER TABLE namatabel DROP PRIMARY KEYBerikut ini perintah yang digunakan untuk menghapus primary key pada tabel jenisfilm

Mysqlgt alter table jenisfilm drop primary key

i Menambah Kolom Baru Pada TabelSyntax ALTER TABLE namatabel ADD fieldbaru tipenamatabel adalah nama tabel yang akan ditambah fieldnya Fieldbaru adalah namakolom yang akan ditambahkan tipe adalah tipe data dari kolom yang akan ditambahkanBerikut ini perintah untuk menambah kolom keterangan dengan tipe data varchar(25)

Mysqlgt alter table jenisfilm add keterangan varchar(25)

j Mengubah Tipe Data atau Lebar Kolom Pada TabelPerintah ALTER TABLE namatabel MODIFY COLUMN field tipenamatabel adalah nama tabel yang akan diubah tipe data atau lebar kolomnya Fieldadalah kolom yang akan diubah tipe data atau lebarnya Tipe adalah tipe data baru atau tipedata lama dengan lebar kolom yang berbeda Berikut ini perintah untuk mengubah tipe datauntuk kolom keterangan dengan char(20)

mysqlgt alter table jenisfilm modify column keteranganchar(20)

k Mengubah Nama KolomSyntax ALTER TABLE namatabel CHANGE COLUMN namalamakolomnamabarukolom tipedatanyanamatabel adalah nama tabel yang akan diubah nama kolomnya namalamakolomadalah kolom yang akan diganti namanya namabarukolom adalah nama baru kolomtipedatanya adalah tipe data dari kolom tersebut Berikut ini perintah untuk mengubahnama kolom keterangan menjadi ket

mysqlgt alter table jenisfilm change column keterangan ketchar(20)

l Menghapus Kolom Pada TabelSyntax ALTER TABLE namatabel DROP COLUMN namakolomBerikut ini perintah untuk menghapus kolom ket pada tabel jenisfilm

Mysqlgt alter table jenisfilm drop ket

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 8

m Mendefinisikan Foreign Key Pada TabelUntuk mendefinisikan foreign key maka harus dipastikan bahwa tabel dan atribut yangdirujuk (tabel induk dari foreign key) sudah didefinisikan terlebih dahulu Syntax CREATE TABLE namatabel(Field1 TipeData1Field2 TipeData2FOREIGN KEY (Field2) REFERENCES namatabelinduk

(namakolominduk)ON UPDATE CASCADEON DELETE NO ACTION

)atau

ALTER TABLE namatabel ADD CONSTRAINT namaconstraint FOREIGNKEY (namakolom) REFERENCES namatabelinduk (namakolominduk) ONUPDATE CASCADE ON DELETE NO ACTIONBerikut ini perintah untuk membuat tabel film beserta kolom-kolomnya

Mysqlgt create table film(Kode_film char(3) not null primary keyJenis char(6) not nullJudul varchar(30)Jml_keping intJml_film intForeign key(jenis) references jenisfilm(jenis) on

update cascadeon delete no action)

atau

mysqlgt create table film (kode_film char(3) not null primary keyjenis char(6) not nulljudul varchar(30)jml_keping intjml_film int)

mysqlgt alter table film add constraint fk foreign key (jenis)references jenisfilm(jenis) on update cascade on delete noaction

n Menghapus Foreign KeyPerintah ALTER TABLE namatabel DROP FOREIGN KEY namaconstraint Berikut iniperintah untuk menghapus foreign key pada tabel film

Mysqlgt alter table film drop foreign key fkTugas

1 Buatlahdatabase dengannama Penggajian2 Buat struktur tabel seperti dibawah ini

3 Berikan primary key padafield golditabelgolongan4 Tambahkansatufield tanggal_lahirpadatable5 karyawandengandata type date6 Tambahkanfield kotapadatable karyawandengan data type text 207 Ubahnamafield tanggal_lahirpadatable karyawan dengan namattl8 Ubahsize field kotapadatable karyawandengansize9 Hapusfield ttlpadatabelkaryawan10 Hapus field kota pada tabel karyawan11 Hapuskeduatabeltersebut

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 9

MODUL 3

DML (Data Manipulation Language)

MAKSUD DAN TUJUANAgar mahasiswa memahami cara manipulasi basis data dengan perintah DML

MATERIProses pengolahan isi data di dalam table seperti memasukkan merubah dan menghapus isi data - dantidak terkait dengan perubahan struktur dan definisi tipe data dari objek database

DML adalah kelompok perintah yang berfungsi untuk memanipulasi data dalam basis datamisalnya untuk pengambilan penyisipan pengubahan dan penghapusan data Perintah yang termasukdalah kategori DML adalah INSERT DELETE UPDATE dan SELECT

a INSERTPerintah INSERT digunakan untuk menambahkan baris pada suatu tabelTerdapat dua cara untuk menambah baris yaitu Cara 1 Menambah baris dengan mengisi data pada setiap kolom INSERT INTO namatabel VALUES (nilai1nilai2nilai-n)Cara 2 Menambah baris dengan hanya mengisi data pada kolom tertentu INSERT INTO namatabel (kolom1kolom2kolom-n) VALUES(nilai1nilai2nilai-n)Berikut ini perintah untuk menambahkan baris pada tabel jenisfilm Cara 1

Mysqlgt insert into jenisfilm values (lsquoactionrsquo3000)

Cara 2

Mysqlgt insert into jenisfilm (jenisharga) values (lsquohororrsquo3500)

Keterangan Jika data bertipe string date atau time (contoh action horor 2007-11-10) maka pemberian nilainyadiapit dengan tanda petik tunggal (lsquohororrsquo) atau petik ganda (ldquohororrdquo) Jika data bertipe numerik(2500 400) maka pemberian nilainya tidak diapit tanda petik tunggal maupun ganda

b DELETEPerintah DELETE digunakan untuk menghapus satu baris baris dengan kondisi tertentu atau seluruhbarisSyntax DELETE FROM namatabel [WHERE kondisi]Perintah dalam tanda [] bersifat opsional untuk menghapus suatu baris dengan suatu kondisi tertentuBerikut ini perintah untuk menghapus baris pada tabel jenisfilm dengan data sebagai berikut

Mysqlgt select from jenisfilm

Contoh 1 jika ingin menghapus seluruh baris pada tabel jenisfilm

Mysqlgt delete from jenisfilm

Contoh 2 jika ingin menghapus baris yang memiliki nilai 3000 pada kolom harga pada tabeljenisfilm maka perintahnya sebagai berikut

Mysqlgt delete from jenisfilm where harga=3000

Contoh 3 jika ingin menghapus baris yang memiliki nilai drama pada kolom jenis pada tabeljenisfilm maka perintahnya sebagai berikut

Mysqlgt delete from jenisfilm where jenis=rsquodramarsquo

c UPDATEPerintah UPDATE digunakan untuk mengubah isi data pada satu atau beberapa kolom pada suatutabelSyntax

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 10

UPDATE namatabel SET kolom1 = nilai1 kolom2 = nilai2 [WHEREkondisi]Perintah dalam tanda [] bersifat opsional untuk mengubah suatu baris dengan suatu kondisi tertentuBerikut ini perintah untuk mengubah baris pada tabel jenisfilm dengan data sebagai berikut

Mysqlgt select from jenisfilm

Contoh 1 mengubah semua nilai pada kolom harga menjadi 2000

Mysqlgt update jenisfilm set harga=2000

Contoh 2 mengubah nilai pada kolom harga menjadi 2500 dimana nilai pada kolom jenis adalahaction

Mysqlgt update jenisfilm set harga=2500 where jenis=rsquoactionrsquo

d SELECTPerintah SELECT digunakan untuk menampilkan isi dari suatu tabel yang dapat dihubungkandengan tabel yang lainnya

1) Menampilkan data untuk semua kolom menggunakan asterisk ()Syntax SELECT FROM namatabelBerikut ini perintah untuk menampilkan semua data pada tabel jenisfilm

Mysqlgt select from jenisfilm

2) Menampilkan data untuk kolom tertentuSyntax SELECT kolom1kolom2kolom-n FROM namatabelBerikut ini perintah untuk menampilkan data pada tabel jenisfilm dengan kolom yang ditampilkanadalah kolom jenis Mysqlgt select jenis from jenisfilm

3) Menampilkan data dengan kondisi data tertentu dengan klausa WHERESyntax SELECT FROM namatabel WHERE kondisiBerikut ini perintah untuk menampilkan data pada tabel jenisfilm dimana nilai pada kolom jenisadalah drama

Mysqlgt select from jenisfilm where jenis=rsquodramarsquo

Beberapa operator perbandingan yang dapat digunakan pada klausa WHERE selain ldquo=rdquo adalah gt(lebih dari) lt (kurang dari) lt gt (tidak sama dengan) gt= (lebih dari atau sama dengan) lt= (kurangdari atau sama dengan) Adapun operator lain yaitu AND OR NOT BETWEEN-AND IN danLIKE Berikut ini data yang ada pada tabel jenisfilm

Mysqlgt select from jenisfilm

Contoh 1 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai harga berkisar dari1000 hingga 3000

Mysqlgt select from jenisfilm where hargagt=1000 and hargalt=3000

Atau

Mysqlgt select from jenisfilm where harga between 1000 and 3000

Contoh 2 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai harga sama dengan1000 atau 3000

Mysqlgt select from jenisfilm where harga=1000 or harga=3000

atau

mysqlgt select from jenisfilm where harga in (10003000)

Contoh 3 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai pada kolom jenis tidaksama dengan action

Mysqlgt select from jenisfilm where not jenis=rsquoactionrsquo

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 11

atau

mysqlgt selectfrom jenisfilm where jenisltgtrsquoactionrsquo

Contoh 4 Isi tabel film

Mysqlgt selectfrom film

perintah untuk menampilkan data pada tabel film dimana data pada kolom tertentu diawali dengannilai tertentu misalnya pada kolom judul dimana diawali dengan karakter lsquoSrsquo

Mysqlgt selectfrom film where judul like lsquoSrsquo

4) Memberikan nama lain pada kolomSyntax SELECT namakolomlama AS namakolombaru FROM namatabelBerikut ini perintah untuk memberikan nama lain pada kolom jenis menjadi jenis_film pada tabeljenisfilm

Mysqlgt select jenis as jenis_film from jenisfilm

5) Menggunakan alias untuk nama tabelSyntax SELECT nmaliasjenis nmaliasharga FROM namatabel nmaliasBerikut ini perintah untuk memberikan alias pada tabel jenisfilm

Mysqlgt select jjenis jharga from jenisfilm j

6) Menampilkan data lebih dari dua tabelSyntax SELECT from namatabel1namatabel2namatabel-nIsi tabel jenisfilm

Mysqlgt selectfrom jenisfilm

Isi tabel film

Mysqlgt selectfrom film

Berikut ini perintah untuk menampilkan semua data pada tabel jenisfilm dan film

Mysqlgt selectfrom jenisfilmfilm

7) Nested Queries Subquery (IN NOT IN EXISTS NOT EXISTS)Subquery berarti query di dalam query Dengan menggunakan subquery hasil dari query akanmenjadi bagian dari query di atasnyaSubquery terletak di dalam klausa WHERE atau HAVING Pada klausa WHERE subquerydigunakan untuk memilih baris-baris tertentu yang kemudian digunakan oleh query Sedangkan padaklausa HAVING subquery digunakan untuk memilih kelompok baris yang kemudian digunakanoleh query

Contoh 1 perintah untuk menampilkan data pada tabel jenisfilm yang mana data pada kolom jenis-nya tercantum pada tabel film menggunakan IN

Mysqlgt selectfrom jenisfilm where jenis in (select jenis from film)

atau menggunakan EXISTS

Mysqlgt selectfrom jenisfilm where exists (select from film where jenisfilmjenis =filmjenis)

Pada contoh di atas SELECT jenis FROM film

disebut subquery sedangkan SELECT FROM jenisfilm

berkedudukan sebagai query Perhatikan terdapat data jenis dan harga pada tabel jenisfilm yangtidak ditampilkan Hal ini disebabkan data pada kolom jenis tidak terdapat pada kolom jenis di tabelfilm

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 12

Contoh 2 perintah untuk menampilkan data pada tabel jenisfilm yang mana data pada kolom jenis-nya tidak tercantum pada tabel film menggunakan NOT IN

Mysqlgt selectfrom jenisfilm where jenis not in (select jenis from film)

atau menggunakan NOT EXISTS

Mysqlgt selectfrom jenisfilm where not exists (select from film where jenisfilmjenis =filmjenis)

8) Operator comparison ANY dan ALLa Operator ANY digunakan berkaitan dengan subquery Operator ini menghasilkan TRUE (benar)

jika paling tidak salah satu perbandingan dengan hasil subquery menghasilkan nilai TRUEIlustrasinya

Gaji gt ANY (S)Jika subquery S menghasilkan G1 G2 Gn maka kondisi di atas identik dengan

(gaji gt G1) OR (gaji gt G2) OR OR (gaji gt Gn)Contoh perintah untuk menampilkan semua data jenisfilm yang harganya bukan yang terkecil

Mysqlgt selectfrom jenisfilm where harga gt ANY (select harga from jenisfilm)

b Operator ALL digunakan untuk melakukan perbandingan dengan subquery Kondisi dengan ALLmenghasilkan nilai TRUE (benar) jika subquery tidak menghasilkan apapun atau jikaperbandingan menghasilkan TRUE untuk setiap nilai query terhadap hasil subqueryContoh perintah untuk menampilkan data jenisfilm yang harganya paling tinggi

Mysqlgt selectfrom jenisfilm where harga gt= ALL (select harga from jenisfilm)

9) Aggregate Functions (COUNT SUM AVG MIN MAX)a COUNT

Perintah yang digunakan untuk menghitung jumlah baris suatu kolom pada tabel Contoh perintah untuk menghitung jumlah baris kolom jenis pada tabel jenisfilm

Mysqlgt select count(jenis) form jenisfilm

b SUMPerintah yang digunakan untuk menghitung jumlah nilai suatu kolom pada tabel Contoh perintah untuk menghitung jumlah nilai kolom harga pada tabel jenisfilm

Mysqlgt select sum (harga) form jenisfilm

c AVGPerintah yang digunakan untuk menghitung rata-rata dari nilai suatu kolom pada tabel Contoh perintah untuk menghitung rata-rata dari kolom harga pada tabel jenisfilm

Mysqlgt select avg(harga) form jenisfilm

d MINPerintah yang digunakan untuk menampilkan nilai terkecil dari suatu kolom pada tabel Contoh perintah untuk menampilkan nilai terkecil dari kolom harga pada tabel jenisfilm Mysqlgt select min(harga) form jenisfilm

e MAXPerintah yang digunakan untuk menampilkan nilai terbesar dari suatu kolom pada tabel Contoh perintah untuk menampilkan nilai terbesar dari kolom harga pada tabel jenisfilm

Mysqlgt select max(harga) form jenisfilm

10) SQL dengan GROUP BY dan HAVINGKlausa GROUP BY digunakan untuk melakukan pengelompokan data Sebagai contoh terdapattabel film dengan data sebagai berikut

Mysqlgt select form film

akan ditampilkan hanya kolom jenis dan digabungkan dengan SUM(jml_film) yang dikelompokkanberdasarkan kolom jenis pada tabel film

Mysqlgt select jenissum(jml_film) from film group by jenis

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 13

Klausa HAVING digunakan untuk menentukan kondisi bagi klausa GROUP BY Kelompok yangmemenuhi HAVING saja yang akan dihasilkan Contoh perintah untuk menampilkan data hanyakolom jenis yang dikelompokkan berdasarkan kolom jenis dimana jumlah film berdasarkankelompoknya harus lebih besar dari satu pada tabel film

Mysqlgt select jenis film group by jenis having count(kode_film) gt1

11) ORDER BYKlausa ORDER BY digunakan untuk mengurutkan data berdasarkan kolom tertentu sesuai dengantipe data yang dimiliki Contoh perintah untuk mengurutkan data film berdasarkan kolom judul

Mysqlgt select from film order by judul

atau tambahkan ASC untuk pengurutan secara ascending (menaik)

Mysqlgt select from film order by judul asc

atau tambahkan DESC untuk pengurutan secara descending (menurun)

Mysqlgt select from film order by judul desc

12) UNION INTERSECT dan EXCEPT

a UNIONUNION merupakan operator yang digunakan untuk menggabungkan hasil query denganketentuan jumlah nama dan tipe kolom dari masing-masing tabel yang akan ditampilkandatanya harus sama Berikut ini perintah untuk memperoleh data pada tabel film dimanajenisnya action dan horor

Mysqlgt select jenisjudul from film where jenis=rsquoactionrsquo uniongt select jenisjudul film from film where jenis=rsquohororrsquo

Perintah di atas identik dengan

Mysqlgt select jenisjudul from film where jenis=rsquoactionrsquo or jenis =rsquounionrsquo

Namun tidak semua penggabungan dapat dilakukan dengan OR yaitu jika bekerja pada duatabel atau lebih

b INTERSECTINTERSECT merupakan operator yang digunakan untuk memperoleh data dari dua buah querydimana data yang ditampilkan adalah yang memenuhi kedua query tersebut dengan ketentuanjumlah nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harussamaSyntax SELECT FROM namatabel1 INTERSECT SELECT FROMnamatabel2Pada MySQL tidak terdapat operator INTERSECT namun sebagai gantinya dapat menggunakanoperator IN seperti contoh 1 pada bagian Nested Queries

c EXCEPT Set DifferenceEXCEPT merupakan operator yang digunakan untuk memperoleh data dari dua buah querydimana data yang ditampilkan adalah data yang ada pada hasil query 1 dan tidak terdapat padadata dari hasil query 2 dengan ketentuan jumlah nama dan tipe kolom dari masing-masing tabelyang akan ditampilkan datanya harus samaSyntax SELECT FROM namatabel1 EXCEPT SELECT FROM namatabel2Pada MySQL tidak terdapat operator EXCEPT namun sebagai gantinya dapat menggunakanoperator NOT IN seperti contoh 2 pada bagian Nested Queries

13) Operasi JoinJoin merupakan operasi yang digunakan untuk menggabungkan dua tabel atau lebih dengan hasilberupa 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 Berikutini perintah untuk menampilkan kolom judul dari tabel film dan kolom harga dari tabel jenisfilm

Mysqlgt select judul harga from film jenisfilm where jenisfilmjenis = filmjenis

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 14

Pada contoh di atas jenisfilmjenis=filmjenis merupakan kondisi untuk mencocokkandata antara kolom jenis milik tabel jenisfilm dan filma Inner Join

Inner join digunakan untuk menampilkan data dari dua tabel yang berisi data sesuai dengansyarat dibelakang on (tidak boleh null) dengan kata lain semua data dari tabel kiri mendapatpasangan data dari tabel sebelah kanan Berikut ini perintah untuk menampilkan data dari tabeljenisfilm dan film dengan syarat berdasarkan kolom jenis

Mysqlgt select form jenisfilm join film on (jenisfilmjenis =filmjenis)

b Left JoinLeft join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintah left joinbeserta pasangannya dari tabel sebelah kanan Meskipun terdapat data dari sebelah kiri tidakmemiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilai NULL

Mysqlgt select form jenisfilm left join film on (jenisfilmjenis =filmjenis)

c Right JoinRight join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintah rightjoin beserta pasangannya dari tabel sebelah kiri Meskipun terdapat data dari sebelah kanantidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilai NULL

Mysqlgt select form jenisfilm right join film on (jenisfilmjenis =filmjenis)

d Natural JoinNatural join digunakan untuk menampilkan semua data dari dua tabel dimana jika terdapatkolom yang sama maka yang akan ditampilkan hanya salah satunya saja yaitu kolom dari tabelsebelah kiri perintah natural join

Mysqlgt select form jenisfilm natural join film

1) Natural Left JoinNatural left join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintahnatural left join beserta pasangannya dari tabel sebelah kanan Meskipun terdapat data darisebelah kiri tidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilaiNULL

Mysqlgt select form jenisfilm natural left join film

2) Natural Right JoinNatural right join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintahnatural right join beserta pasangannya dari tabel sebelah kiri Meskipun terdapat data darisebelah kanan tidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupanilai NULL

Mysqlgt select form jenisfilm natural right join film

Tugas

1 Buatlah database dengan nama ldquoMahasiswardquokuliah Penjualantransaksikaryawan2 Buatlah tabel dengan nama ldquoPenilaianrdquo dengan struktur tabel seperti berikut

Field Type Key Default Extra

NPM Int(8) PRI NULLKdMk Varchar(5) NULL

NamaMK Varchar NULLMid Float(5) NULLFinal Float(5) NULL

NilRata Float(5) NULL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 15

3 Sisipkan nilai-nilainya seperti tabel berikut

NPM KdMK NamaMK Mid Final NilRata10296832 KK021 75 82 10297732 KD132 775 735 20216832 KK021 835 817 30216832 KU122 654 77 10297732 KK021 795 825 20216832 KD132 805 83 30216832 KK021 67 78

4 Tampilkan seluruh record mahasiswa yang berkode matakuliah atauu KdMK=KK021

5 Tampilkan record field NpmKdMK dan Mid saja bagi yang nilai mid-nya antara 75 dan 90

6 Sisipkan nilai untuk field nama matakuliah (NamaMK) dengan ketentuan sebagai berikut KdMK NamaMKKK021 Sistem Basis DataKD132 SIMKU122 Pancasila

7 Sisipkan nilai untuk field nilai rata-rata (NilRata) dengan ketentuan sebagai berikut Mid + Final 2

8 Hapuslah record yang memiliki Npm = 10296832

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 16

MODUL 4

MANAJEMEN USER

MAKSUD DAN TUJUANAgar mahasiswa memahami manajeman user pada SQL

MATERIProses pembuatan user baru dan pemberian hak akses user

Untul MySQL versi 322 keatas dalam manajemen user dapat menggunakan perintah GRANTdan REVOKE

Perintah GRANTDipergunakan untuk membuat user baru dengan izin aksesnya

Bentuk umum GRANT jenis_akses (``nama_kolom) ON nama_database

TO nama_user IDENTIFIED BY rdquonama_passwordrdquo[WITH GRANT pilihan_akses]

Perintah REVOKEUntuk menghapus izin akses user

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_userPerintah DELETEUntuk menghapus user secara permanen

Membuat User BaruDengan perintah GRANTContoh membuat user vivien

Tingkatan akses adalah ALL user vivien sebagai administratorON = dapat meng-akses semua databaseTO vivien dapat ditulis TO vivien atau TO vivienlocalhost

Buat user baru dengan nama ldquoayyirdquodengan perintah

User ayyi dapat login ke MySQL dapat mengakses semua database tetapi tidak memiliki izinakses jadi sebagai dummy user atau blank user

Lihat tabel user

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 17

Bagaimana dengan izin akses caranya dengan memeriksa tabel user yaitu kolom privilegesdengan perintah SELECT FROM USER

User vivien bertanda rdquo Y rdquo dapat mengakses semuaUser ayyi bertanda rdquo N rdquo tidak dapat mengakses

Coba gunakan user rdquo ayyi rdquoKeluar dari MySQL dan login kembali dengan user rdquo ayyi rdquo password rdquo fathin rdquoTampilan

Sintax mysql ndashu ayyi ndashp

Coba lihat database yang dapat diaksesTampilan

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 18

User ayyi tidak dapat mengakses database yang sudah terbentuk di mysql hanya databaseinformation_schema

Coba membuat database

Access denied tidak diberikan izin untuk create

Memberikan Izin Akses tertentu

Jika akan memberikan izin akses SELECT INSERT UPDATE dan DELETE kepada user ayyi yanghanya dapat digunakan pada database latihdb1Pemberian izin akses hanya boleh dilakukan oleh user dalam akses root atau user yangdiberikan zin akses setingkat administrator

Sebagai contoh user rdquorootrdquo atau user rdquoiyusrdquo (nama anda sendiri)Jika menggunakan rootPerintah

Mysql ndashu root -p

Jika menggunakan user rdquoiyusrdquo (nama anda sendiri)Perintah

Mysql ndashu iyus(nama sendiri) -p

Gunakan salah satu dan Buat database baru dengan nama rsquolatihdb1rsquo

Berikan izin akses ke database latihdb1Aktifkan database mysql dan lihat tabel ndash

Berikan izin untuk insert update delete create pada user ayyi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 19

Lihat perubahan izin akses

Coba mengakses dengan user ayyiDan lihat database yang dapat diakses

Database latihdb1 dapat diakses dan jika terdapat akses yang tidak diizinkan maka lakukanperitah GRANT untuk izin akses pada user ayyi dengan ketetapan user admin sebagai root

Contoh

Contoh user ayyi membuat table pegawai dalam database latihdb1

Buatlah database akademik dengan tabel mahasiswa matakuliah dan kelasStruktur tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 20

Struktur tabel Matakuliah

Struktur tabel kelas

Memberikan izin akses per tabel dan per kolomDengan perintah grant dapat digunakan untuk memberikan izin akses per tabel dan per kolomtabel

Contoh user ayyi diberikan izin akses SELECT dan INSERT untuk kolom kota dan kdpos padatabel mahasiwa

Sintaksis MySQL

Pengaruh dari perintah grant tables sebelumnya kita coba menampilkan tabel table_privSintaksis pertama

Keterangan Host Dapat diakses di semua komputer terkoneksi jaringanDb Database Akademik yang dapat diaksesUser User AyyiTable_name Mahasiswa yang dapat diaksesGrantor rootlocalhost yang memberikan izin aksesTimestamp Tanggal pemberian izin 18 November 2009

jam 105552

Database Akademik

Tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 21

Sintaksis kedua

Keterangan Column_priv Select dan Insert izin akses kolom yang diberikan

Untuk melihat kolom mana saja yang diberikan izin akses select dan insert dengan perintah Sintaksis MySQL

Keterangan Column_name Kota dan KdPos kolom yang diberikan izin aksesColumn_priv Izin akses kedua kolom tersebut adalah select dan insert

Anda coba kewenangan apa saja yang dapat dilakukan oleh user ayyiKeluar dari mysqlDan login kembali dengan user ayyi

Lakukan perintah

Lakukan perintah select record yang ada pada tabel mahasiswa

Lihat database aktif

Lihat tabel aktif

Akatifkan database akademik

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 22

User ayyi tidak diizikan untuk menampilkan data pada tabel mahasiswaIzin akses nya adalah select untuk kolom kota dan kode posLakukan perintah select kota dan kodepos

Bagaimana dengan perintah delete tabel

Perintah delete ditolakBagaimana dengan perintah UPDATE kota

Bagimana dengan perintah insert

Untuk perintah update dan insert data tidak dapat dilakukan oleh user ayyi

Bagimana user ayyi dapat mengakses tabel mahasiswaKeluar dari MySQL dan login kembali menggunakan user rootDan berikan izin akses untuk tabel mahasiswa kepada user ayyi

Perintah ini memberikan status root kepada user ayyi hanya izin akses lengkap di databaseakademik tabel mahasiswa ( on akademikmahasiswa )

Coba keluar dan login kembali dengan user ayyiLakukan perintah update dan select

List data kota dan kode pos

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 23

Perintah update dapat dilakukan

Lakukan perintah select data keseluruhan

Bagaimana dengan menambah data gunakan perintah insert

Perintan insert dapat dilakukan dan jumlah data terdiri 6 record

Bagaimana dengan select untuk tabel mata kuliah dan kelas

Untuk mengakses tabel matakuliah dan kelas tidak di izinkan

Memberikan izin akses berdasarkan lokasi pengaksesAdmin atau root atau memberikan izin akses berdasarkan lokasi atau membatasi komputermana saja yang dapat mengakses MySQL serverContoh pemberian izin akses

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 24

Perlu diperhatikan format pemberian izin berhubungan dengan cara login ke MySQL contoh Jika pemberian izin akse dengan no IP komputer maka login juga harus mencantumkan no IP

Yang lebih fleksibel menggunakan tanda rdquordquo dapat diakses dimana saja ke server MySQL

Menghapus izin aksesMenggunakan perintah REVOKE penggunaan perintah revoke ini hanya menghapus izin aksesuntuk user tertentu bukan penghapus userUser yang bersangkutan tetap dapat login ke MySQL

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_user

User ayyi dapat mengakses tabel yang ada di database akademik

Sebagai contoh user ayyi dihapus izin akses untuk database akademik

Sintaksis

Jangan lupa diakhir dengan perintah flush

Kasus jika suatu root telah memberikan izin akses hanya untuk satu tabel seperti user ayyitelah dahulu diberikan all privileges kepada tabel mahasiswa maka untuk menghapusnyadisesuaikan dengan perintah grant

Untuk menghapus izin akses di tabel mahasiswa lakukan perintah (izin aksesnya sama denganperintah grant)

Konsep memberikan izin akses user ndash privileges user merupakan hal yang sangat penting dalammenyangkut masalah keamanan pada MySQL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 25

MODUL 5

VIEW

MAKSUD DAN TUJUAN

Agar mahasiswa1 Dapat membuat View2 Dapat Memanggil data melalui View3 Merubah definisi View4 Insert Update dan Delete data melalui View5 Menghapus (drop) view

MATERIProses pengolahan isi data di dalam table seperti membuat dan memanggil tabel menggunakan fungsiview

View adalah perintah query yang disimpan pada database dengan suatu nama tertentusehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang query tersebut

Syntax dasar perintah untuk membuat view adalah sebagai berikut

CREATE[OR REPLACE]VIEW view_name [(column_list)]AS select_statement

Kita menggunakan opsi OR REPLACE jika kita ingin mengganti view dengan nama yang samadengan perintah tersebut Jika tidak maka perintah CREATE VIEW akan menghasilkan errorjika nama view yang ingin dibuat sudah ada sebelumnya

Contoh Penggunaan

Kita akan membuat view dari relasi antara table film dan jenisfilm dari database rentaldengan nama view_harga Perintahnya adalah sebagai berikut

CREATE VIEW view_hargaASSELECT j1kode_film j1jenisj1judul j2hargaFROMfilm j1 JOIN jenisfilm j2 ON j1jenis= j2jenis

Eksekusi perintah berikut untuk memastikan view telah dibuat

SELECT FROM information_schemaviews WHERE table_name = view_harga

Terakhir query view tersebut untuk melihat hasilnya

SELECT FROM view_harga

Tugas

1 Buat Data Base baru dengan Koperasi

2 Lihat database

3 Masuk ke data base koperasi

4 Buat table Nasabah

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 26

Nama_field Tipe data size ket

Kd_nasabah Char 5 Primary key

Nama_nasabah varchar 35

Alamat varchar 35

Telepon varchar 15

Status enum (ldquotetaprdquordquotidak Tetaprdquo)

5 Lihat struktur tabl nasabah

6 Ubah typedata status menjadi varchar(20)

7 Hapus field status

8 Isi table nasabah

Kd_nasabah Nama_nasabah Alamat Telepon

00011 Ika Kepadangan 085730333999

00012 Rozi Depok 08586789380

00013 Ari Pasar Minggu 021986782

00014 Gali Sidoarjo 022456

9 Tampilkan data pada table nasabah

10 Tampilkan nasabah yang beralamat di depok

11 Ubah nama_nasabah dengan kd_nasabah 00012 menjdi Indriyani

12 Buat tabel Pinjaman

Nama field Tipe data size keterangan

No_Ref char

Kd_nasabah char

Jml-pimjam int

tempo date ldquo0000-00-00rdquo

13 Tambahkan primary key pada no_ref

14 Ganti tempo menjad tgl_tempo

15 Tambahkan field lama_pinjam varchar(10)

16 Isikan table pinjaman

No_ref Kd_nasabah Jml-pinjam Tgl_tempo Lama_pinjam

Ref01 00011 5000000 2010-06-14 6

Ref02 00012 2000000 2010-08-25 12

Ref03 00013 1500000 2010-10-20 3

17 Lihat jumlah pinjam di atas 3000000

18 Lihat jumlah pinjam pada kd_nasabah 00012

19 Hapus isi field dengan no_ref03

20 Hapus table pinjaman

21 Lihat table pada database

e koperasi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 2

MODUL 1STRUCTURED QUERY LANGUAGE (SQL)

(Implementasi menggunakan MySQL)

MAKSUD DAN TUJUANAgar mahasiswa mengetahui cara menginstal SQLMATERIPenerapan instalasi SQL

A Pengenalan SQLSQL pertama kali diterapkan pada sistem R (sebuah proyek riset pada laboratorium riset San

Jose IBM) Kini SQL juga dijumpai pada berbagai platform dari mikrokomputer hingga mainframeSQL dapat digunakan baik secara berdiri sendiri maupun dilekatkan pada bahasa-bahasa lain sepertiC dan Delphi SQL juga telah menjadi bagian dari sejumlah DBMS seperti Oracle Sybase MySQLdan Informix

B Elemen SQLElemen dasar SQL mencakup pernyataan nama tipe data konstanta ekspresi dan fungsi

bawaan1 Pernyataan

Pernyataan adalah perintah SQL yang meminta sesuatu tindakan kepada DBMS SQL memilikikira-kira 30 pernyataan Beberapa pernyataan dasar SQL dapat dilihat pada tabel berikut

Pernyataan KeteranganALTER Mengubah struktur tabelCOMMIT Mengakhiri sebuah eksekusi transaksiCREATE Menciptakan tabel indeks atau pandanganDELETE Menghapus baris pada tabelDROP Menghapus tabel indeks atau pandanganGRANT Menugaskan hak terhadap basis data kepada pengguna atau grup

penggunaINSERT Menambahkan sebuah baris pada tabelREVOKE Membatalkan hak terhadap basis dataROLLBACK Mengembalikan ke keadaan semula sekiranya suatu transaksi gagal

dilaksanakanSELECT Memilih baris dan kolom pada tabelUPDATE Mengubah nilai pada sebuah baris

2 NamaNama digunakan sebagai identitas bagi objek-objek pada DBMS Contoh objek pada DBMSadalah tabel kolom dan pengguna

3 Tipe DataSetiap data memiliki tipe data Berikut ini adalah tipe data dalam MySQL Tipe data untuk numerik

Tipe Keterangan Range NilaiTINYINT Nilai integer yang sangat kecil Signed -128 sd 127

Unsigned 0 sd 255SMALLINT Nilai integer yang kecil Signed -32768 sd 32767

Unsigned 0 sd 65535MEDIUMINT Integer dengan nilai medium Signed -8388608 sd 8388607

Unsigned 0 sd 16777215INT Integer dengan nilai standar Signed -2147483648 sd

2147483647Unsigned 0 sd 4294967295

BIGINT Integer dengan nilai besar Signed -9223372036854775808 sd9223372036854775807Unsigned 0 sd18446744073709551615

FLOAT Bilangan desimal dengansingle-precission

minimum plusmn 1175494351e-38maksimum plusmn 3402823466e+38

DOUBLE Bilangan desimal dengandouble-precission

minimum plusmn 22205738585072014e-308maksimum plusmn17976931348623457e+308

DECIMAL(MD) Bilangan float (desimal) yang Tergantung pada nilai M dan D

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 3

dinyatakan sebagai string Madalah jumlah digit yangdisimpan dalam suatu kolomN adalah jumlah digitdibelakang koma

Keterangan Signed dan Unsigned adalah atribut untuk tipe data numerik- Signed data yang disimpan dalam suatu kolom dapat berupa data negatif dan positif- Unsigned digunakan agar data yang dimasukkan bukan data negatif (gt=0) Tipe data float

tidak dapat dinyatakan dengan unsigned

Tipe data string Tipe Keterangan Ukuran Maksimum

CHAR(n) String karakter dengan panjang yang tetapyaitu n

1 M byte

VARCHAR(n) String karakter dengan panjang yang tidaktetap maksimum n

1 M byte

TINYBLOB BLOB (Binary Large Object) yang sangat kecil 28-1 byteBLOB BLOB berukuran kecil 216-1 byteMEDIUMBLOB BLOB berukuran sedang 224-1 byteLONGBLOB BLOB berukuran besar 232-1 byteTINYTEXT String teks yang sangat kecil 28-1 byteTEXT String teks berukuran kecil 216-1 byteMEDIUMTEXT String teks berukuran medium(sedang) 224-1 byteLONGTEXT String teks berukuran besar 232-1 byteENUM Enumerasi kolom dapat diisi dengan satu

member enumerasi65535 anggota

SET Himpunan kolom dapat diisi dengan beberapanilai anggota himpunan

64 anggotahimpunan

Tipe data tanggal dan jam Tipe Range Format

DATE ldquo1000-01-01rdquo sd ldquo9999-12-31rdquo ldquo0000-00-00rdquoTIME ldquo-8325959rdquo sd ldquo8385959rdquo ldquo000000rdquoDATETIME ldquo1000-01-01 000000rdquo sd

ldquo9999-12-31 235959rdquoldquo0000-00-00 000000rdquo

4 KonstantaKonstanta menyatakan nilai yang tetap

5 EkspresiEkspresi adalah segala sesuatu yang menghasilkan nilai Ekspresi digunakan untuk menghitungnilaiContoh hargajumlah+2Simbol-simbol yang dapat digunakan pada ekspresi aritmatika

Simbol Keterangan Perkalian Pembagian+ Penjumlahan- Pengurangan

6 Aggregate Functions (Fungsi Agregat)Fungsi adalah sebuah subprogram yang menghasilkan suatu nilai jika dipanggil Fungsi agregatadalah fungsi standar di dalam SQL suatu fungsi yang digunakan untuk melakukan summaryfungsi statistik standar yang dikenakan pada suatu tabel atau querya AVG(ekspresi)

Fungsi ini digunakan untuk mencari rata-rata nilai dalam suatu kolom dari suatu tabel atauekspresi Ekspresi dalam fungsi AVG umumnya adalah nama kolom Kolom yang dicari nilairata-ratanya adalah kolom dengan tipe data numerik

b COUNT(x)Fungsi ini digunakan untuk menghitung jumlah record (baris) dari suatu kolom dari suatutabel X adalah nama kolom yang ingin dicari jumlah barisnya

c MAX(ekspresi)Fungsi ini digunakan untuk mencari nilai terbesar dari suatu kolom dari suatu tabel Kolomyang dicari nilai terbesarnya memiliki tipe data numerik

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 4

d MIN(ekspresi)Fungsi ini digunakan untuk mencari nilai terkecil dari suatu kolom dari suatu tabel Kolomyang dicari nilai terkecilnya memiliki tipe data numerik

e SUM(ekspresi)Fungsi ini digunakan untuk mendapatkan nilai total dari suatu kolom pada suatu tabel

C MySQL ( My Structured Query Language )MySQL adalah Relational Database Management System (RDBMS) yang didistribusikan secara

gratis di bawah license GPL (General Public License) Setiap orang bebas menggunakan MySQLtetapi harus bersifat open source MySQL menggunakan bahasa SQL (Structured Query Language)

Instalasi MySQL-5022-WIN32 1 Jalankan file setup mysql yaitu mysql-5022-win32exe2 Pilih tombol Next3 Pilih Custom kemudian pilih tombol Next4 klik tanda silang pada Developer Components kemudian pilih This feature will be installed on

local hard drive5 Kemudian pilih tombol Change pada folder name ubah menjadi cmysql6 Pilih OK kemudian pilih tombol Next dan pilih tombol Install maka proses instalasi dimulai7 Berikutnya muncul dialog account pilih Skip Sign-Up dan klik tombol Next8 Klik tombol Finish dan tombol Next9 Pilih Standard Configuration dan klik tombol Next10Pilih tombol Next Kemudian muncul gambar berikut ini Masukkan password yang diinginkan

pada kota isian New root password dan Confirm berikut ini untuk sekuritas misalnya umsidaKlik tombol Next

11Klik tombol Execute sebagai tahap akhir12Klik Finish

Melakukan Koneksi ke MySQL Cara 1 1 Melalui DOS Prompt masuk ke direktori utama MySQL dengan cara sebagai berikut (yang

diketik hanya yang digaris bawah) Cgtcd program filemysqlbin

2 Setelah itu ketikkan perintah berikut (yang diketik hanya yang digaris bawah) Cgtprogram filemysqlbinmysql ndashu root ndashp

maka akan diminta untuk memasukkan passoword isikan password yang digunakan pada saatinstalasi yaitu umsida

3 Selanjutnya akan ada respon dari server seperti gambar berikut

Tampilan tersebut di atas menandakan bahwa telah berhasil melakukan koneksi ke server

Cara 2

1 Dari menu Start gt All Programs gt MySQL gt MySQL Server 50 gt MySQL Command LineClient maka akan muncul tampilan seperti berikut ini

2 Masukkan password yang telah ditentukan pada saat instalasi yaitu umsida kemudian tekanenter

Merubah Prompt MySQL Rubahlah nama prompt mysql dengan nama dan nim masing-masingSintax Mysqlgt prompt prakDBnama( 3 nim terakhir ) gt (spasi) (enter)

Tugas1 Buatlah Fungsi- fungsi dalam SQL yang meliputi Fungsi Sistem Fungsi String Fungsi

Tanggal Fungsi Agregat Fungsi Aritmatika

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 5

MODUL 2

DDL (Data Definition Language)

MAKSUD DAN TUJUANAgar mahasiswa memahami cara manipulasi basis data dengan perintah DDLMATERIMembuat mengubah dan menghapus struktur dan definisi metadata dari objek-objek database

DDL merupakan kelompok perintah yang berfungsi untuk mendefinisikan atribut-atributbasis data tabel atribut(kolom) batasan-batasan terhadap suatu atribut serta hubungan antar tabel Yangtermasuk dalam kelompok DDL ini adalah CREATE ALTER dan DROP

a Membuat DatabaseSyntax CREATE DATABASE namadatabasenamadatabase tidak boleh mengandung spasi dan tidak boleh memiliki nama yang samaantar database Berikut ini perintah untuk membuat database dengan nama rental

mysqlgt create database rental

Syntax tambahan untuk menampilkan daftar nama database yang ada pada mysqlmenggunakan perintah Mysqlgt SHOW DATABASES

b Menghapus DatabaseSyntax DROP DATABASE namadatabaseDatabase yang akan dihapus sesuai dengan namadatabase Berikut ini perintah untukmenghapus database dengan nama rental

Mysqlgt drop database rental

c Membuat TabelSebelum membuat suatu tabel terlebih dahulu harus memilih salah satu database sebagaidatabase aktif yang akan digunakan untuk menyimpan tabel-tabel dengan menggunakansyntax USE namadatabaseBerikut ini perintah untuk menggunakan database dengan nama rental

Mysqlgt use rental

Syntax membuat table CREATE TABLE namatabel2(Field1 TipeData1Field2 TipeData2)namatabel tidak boleh mengandung spasi (space) Field1 dan TipeData1 merupakannama kolom pertama dan tipe data untuk kolom pertama Jika ingin membuat tabel dengankolom lebih dari satu maka setelah pendefinisian tipe data sebelumnya diberikan tanda koma() Berikut ini perintah untuk membuat tabel dengan nama jenisfilm

mysqlgt create table jenisfilm (jenis char(6)harga int)

Syntax tambahan Untuk menampilkan daftar nama tabel yang ada pada database yang sedang aktifdigunakan(dalam hal ini database rental)

Mysqlgt SHOW TABLES

Untuk menampilkan deskripsi tabel (dalam hal ini jenisfilm) syntaxnya adalah DESC namatabel

Contoh

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 6

Mysqlgt desc jenisfilm

d Menghapus TabelSyntax DROP TABLE namatabelTabel yang akan dihapus sesuai dengan namatabel berikut ini perintah untuk menghapustabel dengan nama jenisfilm

Mysqlgt drop table jenisfilm

e Mendefinisikan nullnot nullSyntax CREATE TABLE namatabel(Field1 TipeData1 NOT NULLField2 TipeData2)

Contoh

Mysqlgt create table jenisfilm(Jenis char(6) not nullHarga int)

f Mendefinisikan Nilai DefaultNilai default adalah nilai yang otomatis diberikan oleh sistem untuk suatu kolom ketika adapenambahan baris baru sementara nilai pada kolom tersebut tidak diisi oleh penggunaSyntax CREATE TABLE namatabel(Field1 TipeData1Field2 TipeData2 DEFAULT nilai)nilai adalah nilai default dari kolom tersebut

Contoh

Mysqlgt create table jenisfilm1(Jenis char(6Harga int default 0)

g Mendefinisikan Primary Key Pada TabelTerdapat tiga cara untuk mendefinisikan primary key Berikut ini adalah Syntaxmendefinisikan primary key untuk Field1CREATE TABLE namatabel(Field1 TipeData1 NOT NULL PRIMARY KEYField2 TipeData2)

Atau

CREATE TABLE namatabel(Field1 TipeData1Field2 TipeData2PRIMARY KEY(Field1))

atau

ALTER TABLE namatabel ADD CONSTRAINT namaconstraint PRIMARYKEY (namakolom)Berikut ini perintah untuk membuat tabel jenisfilm dengan kolom jenis tipe datanya char(6)harga tipe datanya int dengan mendefinisikan nilai not null dan primary key untuk kolomjenis serta nilai default untuk kolom harga

Mysqlgt create table jenisfilm (

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 7

jenis char(6) not null primary keyharga int default 0)

atau

Mysqlgt create table jenisfilm (jenis char(6) not nullharga int default 0primary key (jenis))

atau

Mysqlgt create table jenisfilm (jenis char(6) not nullharga int default 0)

Mysqlgt alter table jenisfilm add constraint pk primary key(jenis)

h Menghapus Primary Key Pada TabelPerintah Cara 1 Jika primary key dibuat dengan menggunakan alter table ALTER TABLE namatabel DROP CONSTRAINT namaconstraintCara 2 Jika primary key dibuat melalui create table ALTER TABLE namatabel DROP PRIMARY KEYBerikut ini perintah yang digunakan untuk menghapus primary key pada tabel jenisfilm

Mysqlgt alter table jenisfilm drop primary key

i Menambah Kolom Baru Pada TabelSyntax ALTER TABLE namatabel ADD fieldbaru tipenamatabel adalah nama tabel yang akan ditambah fieldnya Fieldbaru adalah namakolom yang akan ditambahkan tipe adalah tipe data dari kolom yang akan ditambahkanBerikut ini perintah untuk menambah kolom keterangan dengan tipe data varchar(25)

Mysqlgt alter table jenisfilm add keterangan varchar(25)

j Mengubah Tipe Data atau Lebar Kolom Pada TabelPerintah ALTER TABLE namatabel MODIFY COLUMN field tipenamatabel adalah nama tabel yang akan diubah tipe data atau lebar kolomnya Fieldadalah kolom yang akan diubah tipe data atau lebarnya Tipe adalah tipe data baru atau tipedata lama dengan lebar kolom yang berbeda Berikut ini perintah untuk mengubah tipe datauntuk kolom keterangan dengan char(20)

mysqlgt alter table jenisfilm modify column keteranganchar(20)

k Mengubah Nama KolomSyntax ALTER TABLE namatabel CHANGE COLUMN namalamakolomnamabarukolom tipedatanyanamatabel adalah nama tabel yang akan diubah nama kolomnya namalamakolomadalah kolom yang akan diganti namanya namabarukolom adalah nama baru kolomtipedatanya adalah tipe data dari kolom tersebut Berikut ini perintah untuk mengubahnama kolom keterangan menjadi ket

mysqlgt alter table jenisfilm change column keterangan ketchar(20)

l Menghapus Kolom Pada TabelSyntax ALTER TABLE namatabel DROP COLUMN namakolomBerikut ini perintah untuk menghapus kolom ket pada tabel jenisfilm

Mysqlgt alter table jenisfilm drop ket

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 8

m Mendefinisikan Foreign Key Pada TabelUntuk mendefinisikan foreign key maka harus dipastikan bahwa tabel dan atribut yangdirujuk (tabel induk dari foreign key) sudah didefinisikan terlebih dahulu Syntax CREATE TABLE namatabel(Field1 TipeData1Field2 TipeData2FOREIGN KEY (Field2) REFERENCES namatabelinduk

(namakolominduk)ON UPDATE CASCADEON DELETE NO ACTION

)atau

ALTER TABLE namatabel ADD CONSTRAINT namaconstraint FOREIGNKEY (namakolom) REFERENCES namatabelinduk (namakolominduk) ONUPDATE CASCADE ON DELETE NO ACTIONBerikut ini perintah untuk membuat tabel film beserta kolom-kolomnya

Mysqlgt create table film(Kode_film char(3) not null primary keyJenis char(6) not nullJudul varchar(30)Jml_keping intJml_film intForeign key(jenis) references jenisfilm(jenis) on

update cascadeon delete no action)

atau

mysqlgt create table film (kode_film char(3) not null primary keyjenis char(6) not nulljudul varchar(30)jml_keping intjml_film int)

mysqlgt alter table film add constraint fk foreign key (jenis)references jenisfilm(jenis) on update cascade on delete noaction

n Menghapus Foreign KeyPerintah ALTER TABLE namatabel DROP FOREIGN KEY namaconstraint Berikut iniperintah untuk menghapus foreign key pada tabel film

Mysqlgt alter table film drop foreign key fkTugas

1 Buatlahdatabase dengannama Penggajian2 Buat struktur tabel seperti dibawah ini

3 Berikan primary key padafield golditabelgolongan4 Tambahkansatufield tanggal_lahirpadatable5 karyawandengandata type date6 Tambahkanfield kotapadatable karyawandengan data type text 207 Ubahnamafield tanggal_lahirpadatable karyawan dengan namattl8 Ubahsize field kotapadatable karyawandengansize9 Hapusfield ttlpadatabelkaryawan10 Hapus field kota pada tabel karyawan11 Hapuskeduatabeltersebut

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 9

MODUL 3

DML (Data Manipulation Language)

MAKSUD DAN TUJUANAgar mahasiswa memahami cara manipulasi basis data dengan perintah DML

MATERIProses pengolahan isi data di dalam table seperti memasukkan merubah dan menghapus isi data - dantidak terkait dengan perubahan struktur dan definisi tipe data dari objek database

DML adalah kelompok perintah yang berfungsi untuk memanipulasi data dalam basis datamisalnya untuk pengambilan penyisipan pengubahan dan penghapusan data Perintah yang termasukdalah kategori DML adalah INSERT DELETE UPDATE dan SELECT

a INSERTPerintah INSERT digunakan untuk menambahkan baris pada suatu tabelTerdapat dua cara untuk menambah baris yaitu Cara 1 Menambah baris dengan mengisi data pada setiap kolom INSERT INTO namatabel VALUES (nilai1nilai2nilai-n)Cara 2 Menambah baris dengan hanya mengisi data pada kolom tertentu INSERT INTO namatabel (kolom1kolom2kolom-n) VALUES(nilai1nilai2nilai-n)Berikut ini perintah untuk menambahkan baris pada tabel jenisfilm Cara 1

Mysqlgt insert into jenisfilm values (lsquoactionrsquo3000)

Cara 2

Mysqlgt insert into jenisfilm (jenisharga) values (lsquohororrsquo3500)

Keterangan Jika data bertipe string date atau time (contoh action horor 2007-11-10) maka pemberian nilainyadiapit dengan tanda petik tunggal (lsquohororrsquo) atau petik ganda (ldquohororrdquo) Jika data bertipe numerik(2500 400) maka pemberian nilainya tidak diapit tanda petik tunggal maupun ganda

b DELETEPerintah DELETE digunakan untuk menghapus satu baris baris dengan kondisi tertentu atau seluruhbarisSyntax DELETE FROM namatabel [WHERE kondisi]Perintah dalam tanda [] bersifat opsional untuk menghapus suatu baris dengan suatu kondisi tertentuBerikut ini perintah untuk menghapus baris pada tabel jenisfilm dengan data sebagai berikut

Mysqlgt select from jenisfilm

Contoh 1 jika ingin menghapus seluruh baris pada tabel jenisfilm

Mysqlgt delete from jenisfilm

Contoh 2 jika ingin menghapus baris yang memiliki nilai 3000 pada kolom harga pada tabeljenisfilm maka perintahnya sebagai berikut

Mysqlgt delete from jenisfilm where harga=3000

Contoh 3 jika ingin menghapus baris yang memiliki nilai drama pada kolom jenis pada tabeljenisfilm maka perintahnya sebagai berikut

Mysqlgt delete from jenisfilm where jenis=rsquodramarsquo

c UPDATEPerintah UPDATE digunakan untuk mengubah isi data pada satu atau beberapa kolom pada suatutabelSyntax

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 10

UPDATE namatabel SET kolom1 = nilai1 kolom2 = nilai2 [WHEREkondisi]Perintah dalam tanda [] bersifat opsional untuk mengubah suatu baris dengan suatu kondisi tertentuBerikut ini perintah untuk mengubah baris pada tabel jenisfilm dengan data sebagai berikut

Mysqlgt select from jenisfilm

Contoh 1 mengubah semua nilai pada kolom harga menjadi 2000

Mysqlgt update jenisfilm set harga=2000

Contoh 2 mengubah nilai pada kolom harga menjadi 2500 dimana nilai pada kolom jenis adalahaction

Mysqlgt update jenisfilm set harga=2500 where jenis=rsquoactionrsquo

d SELECTPerintah SELECT digunakan untuk menampilkan isi dari suatu tabel yang dapat dihubungkandengan tabel yang lainnya

1) Menampilkan data untuk semua kolom menggunakan asterisk ()Syntax SELECT FROM namatabelBerikut ini perintah untuk menampilkan semua data pada tabel jenisfilm

Mysqlgt select from jenisfilm

2) Menampilkan data untuk kolom tertentuSyntax SELECT kolom1kolom2kolom-n FROM namatabelBerikut ini perintah untuk menampilkan data pada tabel jenisfilm dengan kolom yang ditampilkanadalah kolom jenis Mysqlgt select jenis from jenisfilm

3) Menampilkan data dengan kondisi data tertentu dengan klausa WHERESyntax SELECT FROM namatabel WHERE kondisiBerikut ini perintah untuk menampilkan data pada tabel jenisfilm dimana nilai pada kolom jenisadalah drama

Mysqlgt select from jenisfilm where jenis=rsquodramarsquo

Beberapa operator perbandingan yang dapat digunakan pada klausa WHERE selain ldquo=rdquo adalah gt(lebih dari) lt (kurang dari) lt gt (tidak sama dengan) gt= (lebih dari atau sama dengan) lt= (kurangdari atau sama dengan) Adapun operator lain yaitu AND OR NOT BETWEEN-AND IN danLIKE Berikut ini data yang ada pada tabel jenisfilm

Mysqlgt select from jenisfilm

Contoh 1 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai harga berkisar dari1000 hingga 3000

Mysqlgt select from jenisfilm where hargagt=1000 and hargalt=3000

Atau

Mysqlgt select from jenisfilm where harga between 1000 and 3000

Contoh 2 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai harga sama dengan1000 atau 3000

Mysqlgt select from jenisfilm where harga=1000 or harga=3000

atau

mysqlgt select from jenisfilm where harga in (10003000)

Contoh 3 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai pada kolom jenis tidaksama dengan action

Mysqlgt select from jenisfilm where not jenis=rsquoactionrsquo

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 11

atau

mysqlgt selectfrom jenisfilm where jenisltgtrsquoactionrsquo

Contoh 4 Isi tabel film

Mysqlgt selectfrom film

perintah untuk menampilkan data pada tabel film dimana data pada kolom tertentu diawali dengannilai tertentu misalnya pada kolom judul dimana diawali dengan karakter lsquoSrsquo

Mysqlgt selectfrom film where judul like lsquoSrsquo

4) Memberikan nama lain pada kolomSyntax SELECT namakolomlama AS namakolombaru FROM namatabelBerikut ini perintah untuk memberikan nama lain pada kolom jenis menjadi jenis_film pada tabeljenisfilm

Mysqlgt select jenis as jenis_film from jenisfilm

5) Menggunakan alias untuk nama tabelSyntax SELECT nmaliasjenis nmaliasharga FROM namatabel nmaliasBerikut ini perintah untuk memberikan alias pada tabel jenisfilm

Mysqlgt select jjenis jharga from jenisfilm j

6) Menampilkan data lebih dari dua tabelSyntax SELECT from namatabel1namatabel2namatabel-nIsi tabel jenisfilm

Mysqlgt selectfrom jenisfilm

Isi tabel film

Mysqlgt selectfrom film

Berikut ini perintah untuk menampilkan semua data pada tabel jenisfilm dan film

Mysqlgt selectfrom jenisfilmfilm

7) Nested Queries Subquery (IN NOT IN EXISTS NOT EXISTS)Subquery berarti query di dalam query Dengan menggunakan subquery hasil dari query akanmenjadi bagian dari query di atasnyaSubquery terletak di dalam klausa WHERE atau HAVING Pada klausa WHERE subquerydigunakan untuk memilih baris-baris tertentu yang kemudian digunakan oleh query Sedangkan padaklausa HAVING subquery digunakan untuk memilih kelompok baris yang kemudian digunakanoleh query

Contoh 1 perintah untuk menampilkan data pada tabel jenisfilm yang mana data pada kolom jenis-nya tercantum pada tabel film menggunakan IN

Mysqlgt selectfrom jenisfilm where jenis in (select jenis from film)

atau menggunakan EXISTS

Mysqlgt selectfrom jenisfilm where exists (select from film where jenisfilmjenis =filmjenis)

Pada contoh di atas SELECT jenis FROM film

disebut subquery sedangkan SELECT FROM jenisfilm

berkedudukan sebagai query Perhatikan terdapat data jenis dan harga pada tabel jenisfilm yangtidak ditampilkan Hal ini disebabkan data pada kolom jenis tidak terdapat pada kolom jenis di tabelfilm

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 12

Contoh 2 perintah untuk menampilkan data pada tabel jenisfilm yang mana data pada kolom jenis-nya tidak tercantum pada tabel film menggunakan NOT IN

Mysqlgt selectfrom jenisfilm where jenis not in (select jenis from film)

atau menggunakan NOT EXISTS

Mysqlgt selectfrom jenisfilm where not exists (select from film where jenisfilmjenis =filmjenis)

8) Operator comparison ANY dan ALLa Operator ANY digunakan berkaitan dengan subquery Operator ini menghasilkan TRUE (benar)

jika paling tidak salah satu perbandingan dengan hasil subquery menghasilkan nilai TRUEIlustrasinya

Gaji gt ANY (S)Jika subquery S menghasilkan G1 G2 Gn maka kondisi di atas identik dengan

(gaji gt G1) OR (gaji gt G2) OR OR (gaji gt Gn)Contoh perintah untuk menampilkan semua data jenisfilm yang harganya bukan yang terkecil

Mysqlgt selectfrom jenisfilm where harga gt ANY (select harga from jenisfilm)

b Operator ALL digunakan untuk melakukan perbandingan dengan subquery Kondisi dengan ALLmenghasilkan nilai TRUE (benar) jika subquery tidak menghasilkan apapun atau jikaperbandingan menghasilkan TRUE untuk setiap nilai query terhadap hasil subqueryContoh perintah untuk menampilkan data jenisfilm yang harganya paling tinggi

Mysqlgt selectfrom jenisfilm where harga gt= ALL (select harga from jenisfilm)

9) Aggregate Functions (COUNT SUM AVG MIN MAX)a COUNT

Perintah yang digunakan untuk menghitung jumlah baris suatu kolom pada tabel Contoh perintah untuk menghitung jumlah baris kolom jenis pada tabel jenisfilm

Mysqlgt select count(jenis) form jenisfilm

b SUMPerintah yang digunakan untuk menghitung jumlah nilai suatu kolom pada tabel Contoh perintah untuk menghitung jumlah nilai kolom harga pada tabel jenisfilm

Mysqlgt select sum (harga) form jenisfilm

c AVGPerintah yang digunakan untuk menghitung rata-rata dari nilai suatu kolom pada tabel Contoh perintah untuk menghitung rata-rata dari kolom harga pada tabel jenisfilm

Mysqlgt select avg(harga) form jenisfilm

d MINPerintah yang digunakan untuk menampilkan nilai terkecil dari suatu kolom pada tabel Contoh perintah untuk menampilkan nilai terkecil dari kolom harga pada tabel jenisfilm Mysqlgt select min(harga) form jenisfilm

e MAXPerintah yang digunakan untuk menampilkan nilai terbesar dari suatu kolom pada tabel Contoh perintah untuk menampilkan nilai terbesar dari kolom harga pada tabel jenisfilm

Mysqlgt select max(harga) form jenisfilm

10) SQL dengan GROUP BY dan HAVINGKlausa GROUP BY digunakan untuk melakukan pengelompokan data Sebagai contoh terdapattabel film dengan data sebagai berikut

Mysqlgt select form film

akan ditampilkan hanya kolom jenis dan digabungkan dengan SUM(jml_film) yang dikelompokkanberdasarkan kolom jenis pada tabel film

Mysqlgt select jenissum(jml_film) from film group by jenis

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 13

Klausa HAVING digunakan untuk menentukan kondisi bagi klausa GROUP BY Kelompok yangmemenuhi HAVING saja yang akan dihasilkan Contoh perintah untuk menampilkan data hanyakolom jenis yang dikelompokkan berdasarkan kolom jenis dimana jumlah film berdasarkankelompoknya harus lebih besar dari satu pada tabel film

Mysqlgt select jenis film group by jenis having count(kode_film) gt1

11) ORDER BYKlausa ORDER BY digunakan untuk mengurutkan data berdasarkan kolom tertentu sesuai dengantipe data yang dimiliki Contoh perintah untuk mengurutkan data film berdasarkan kolom judul

Mysqlgt select from film order by judul

atau tambahkan ASC untuk pengurutan secara ascending (menaik)

Mysqlgt select from film order by judul asc

atau tambahkan DESC untuk pengurutan secara descending (menurun)

Mysqlgt select from film order by judul desc

12) UNION INTERSECT dan EXCEPT

a UNIONUNION merupakan operator yang digunakan untuk menggabungkan hasil query denganketentuan jumlah nama dan tipe kolom dari masing-masing tabel yang akan ditampilkandatanya harus sama Berikut ini perintah untuk memperoleh data pada tabel film dimanajenisnya action dan horor

Mysqlgt select jenisjudul from film where jenis=rsquoactionrsquo uniongt select jenisjudul film from film where jenis=rsquohororrsquo

Perintah di atas identik dengan

Mysqlgt select jenisjudul from film where jenis=rsquoactionrsquo or jenis =rsquounionrsquo

Namun tidak semua penggabungan dapat dilakukan dengan OR yaitu jika bekerja pada duatabel atau lebih

b INTERSECTINTERSECT merupakan operator yang digunakan untuk memperoleh data dari dua buah querydimana data yang ditampilkan adalah yang memenuhi kedua query tersebut dengan ketentuanjumlah nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harussamaSyntax SELECT FROM namatabel1 INTERSECT SELECT FROMnamatabel2Pada MySQL tidak terdapat operator INTERSECT namun sebagai gantinya dapat menggunakanoperator IN seperti contoh 1 pada bagian Nested Queries

c EXCEPT Set DifferenceEXCEPT merupakan operator yang digunakan untuk memperoleh data dari dua buah querydimana data yang ditampilkan adalah data yang ada pada hasil query 1 dan tidak terdapat padadata dari hasil query 2 dengan ketentuan jumlah nama dan tipe kolom dari masing-masing tabelyang akan ditampilkan datanya harus samaSyntax SELECT FROM namatabel1 EXCEPT SELECT FROM namatabel2Pada MySQL tidak terdapat operator EXCEPT namun sebagai gantinya dapat menggunakanoperator NOT IN seperti contoh 2 pada bagian Nested Queries

13) Operasi JoinJoin merupakan operasi yang digunakan untuk menggabungkan dua tabel atau lebih dengan hasilberupa 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 Berikutini perintah untuk menampilkan kolom judul dari tabel film dan kolom harga dari tabel jenisfilm

Mysqlgt select judul harga from film jenisfilm where jenisfilmjenis = filmjenis

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 14

Pada contoh di atas jenisfilmjenis=filmjenis merupakan kondisi untuk mencocokkandata antara kolom jenis milik tabel jenisfilm dan filma Inner Join

Inner join digunakan untuk menampilkan data dari dua tabel yang berisi data sesuai dengansyarat dibelakang on (tidak boleh null) dengan kata lain semua data dari tabel kiri mendapatpasangan data dari tabel sebelah kanan Berikut ini perintah untuk menampilkan data dari tabeljenisfilm dan film dengan syarat berdasarkan kolom jenis

Mysqlgt select form jenisfilm join film on (jenisfilmjenis =filmjenis)

b Left JoinLeft join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintah left joinbeserta pasangannya dari tabel sebelah kanan Meskipun terdapat data dari sebelah kiri tidakmemiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilai NULL

Mysqlgt select form jenisfilm left join film on (jenisfilmjenis =filmjenis)

c Right JoinRight join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintah rightjoin beserta pasangannya dari tabel sebelah kiri Meskipun terdapat data dari sebelah kanantidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilai NULL

Mysqlgt select form jenisfilm right join film on (jenisfilmjenis =filmjenis)

d Natural JoinNatural join digunakan untuk menampilkan semua data dari dua tabel dimana jika terdapatkolom yang sama maka yang akan ditampilkan hanya salah satunya saja yaitu kolom dari tabelsebelah kiri perintah natural join

Mysqlgt select form jenisfilm natural join film

1) Natural Left JoinNatural left join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintahnatural left join beserta pasangannya dari tabel sebelah kanan Meskipun terdapat data darisebelah kiri tidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilaiNULL

Mysqlgt select form jenisfilm natural left join film

2) Natural Right JoinNatural right join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintahnatural right join beserta pasangannya dari tabel sebelah kiri Meskipun terdapat data darisebelah kanan tidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupanilai NULL

Mysqlgt select form jenisfilm natural right join film

Tugas

1 Buatlah database dengan nama ldquoMahasiswardquokuliah Penjualantransaksikaryawan2 Buatlah tabel dengan nama ldquoPenilaianrdquo dengan struktur tabel seperti berikut

Field Type Key Default Extra

NPM Int(8) PRI NULLKdMk Varchar(5) NULL

NamaMK Varchar NULLMid Float(5) NULLFinal Float(5) NULL

NilRata Float(5) NULL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 15

3 Sisipkan nilai-nilainya seperti tabel berikut

NPM KdMK NamaMK Mid Final NilRata10296832 KK021 75 82 10297732 KD132 775 735 20216832 KK021 835 817 30216832 KU122 654 77 10297732 KK021 795 825 20216832 KD132 805 83 30216832 KK021 67 78

4 Tampilkan seluruh record mahasiswa yang berkode matakuliah atauu KdMK=KK021

5 Tampilkan record field NpmKdMK dan Mid saja bagi yang nilai mid-nya antara 75 dan 90

6 Sisipkan nilai untuk field nama matakuliah (NamaMK) dengan ketentuan sebagai berikut KdMK NamaMKKK021 Sistem Basis DataKD132 SIMKU122 Pancasila

7 Sisipkan nilai untuk field nilai rata-rata (NilRata) dengan ketentuan sebagai berikut Mid + Final 2

8 Hapuslah record yang memiliki Npm = 10296832

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 16

MODUL 4

MANAJEMEN USER

MAKSUD DAN TUJUANAgar mahasiswa memahami manajeman user pada SQL

MATERIProses pembuatan user baru dan pemberian hak akses user

Untul MySQL versi 322 keatas dalam manajemen user dapat menggunakan perintah GRANTdan REVOKE

Perintah GRANTDipergunakan untuk membuat user baru dengan izin aksesnya

Bentuk umum GRANT jenis_akses (``nama_kolom) ON nama_database

TO nama_user IDENTIFIED BY rdquonama_passwordrdquo[WITH GRANT pilihan_akses]

Perintah REVOKEUntuk menghapus izin akses user

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_userPerintah DELETEUntuk menghapus user secara permanen

Membuat User BaruDengan perintah GRANTContoh membuat user vivien

Tingkatan akses adalah ALL user vivien sebagai administratorON = dapat meng-akses semua databaseTO vivien dapat ditulis TO vivien atau TO vivienlocalhost

Buat user baru dengan nama ldquoayyirdquodengan perintah

User ayyi dapat login ke MySQL dapat mengakses semua database tetapi tidak memiliki izinakses jadi sebagai dummy user atau blank user

Lihat tabel user

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 17

Bagaimana dengan izin akses caranya dengan memeriksa tabel user yaitu kolom privilegesdengan perintah SELECT FROM USER

User vivien bertanda rdquo Y rdquo dapat mengakses semuaUser ayyi bertanda rdquo N rdquo tidak dapat mengakses

Coba gunakan user rdquo ayyi rdquoKeluar dari MySQL dan login kembali dengan user rdquo ayyi rdquo password rdquo fathin rdquoTampilan

Sintax mysql ndashu ayyi ndashp

Coba lihat database yang dapat diaksesTampilan

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 18

User ayyi tidak dapat mengakses database yang sudah terbentuk di mysql hanya databaseinformation_schema

Coba membuat database

Access denied tidak diberikan izin untuk create

Memberikan Izin Akses tertentu

Jika akan memberikan izin akses SELECT INSERT UPDATE dan DELETE kepada user ayyi yanghanya dapat digunakan pada database latihdb1Pemberian izin akses hanya boleh dilakukan oleh user dalam akses root atau user yangdiberikan zin akses setingkat administrator

Sebagai contoh user rdquorootrdquo atau user rdquoiyusrdquo (nama anda sendiri)Jika menggunakan rootPerintah

Mysql ndashu root -p

Jika menggunakan user rdquoiyusrdquo (nama anda sendiri)Perintah

Mysql ndashu iyus(nama sendiri) -p

Gunakan salah satu dan Buat database baru dengan nama rsquolatihdb1rsquo

Berikan izin akses ke database latihdb1Aktifkan database mysql dan lihat tabel ndash

Berikan izin untuk insert update delete create pada user ayyi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 19

Lihat perubahan izin akses

Coba mengakses dengan user ayyiDan lihat database yang dapat diakses

Database latihdb1 dapat diakses dan jika terdapat akses yang tidak diizinkan maka lakukanperitah GRANT untuk izin akses pada user ayyi dengan ketetapan user admin sebagai root

Contoh

Contoh user ayyi membuat table pegawai dalam database latihdb1

Buatlah database akademik dengan tabel mahasiswa matakuliah dan kelasStruktur tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 20

Struktur tabel Matakuliah

Struktur tabel kelas

Memberikan izin akses per tabel dan per kolomDengan perintah grant dapat digunakan untuk memberikan izin akses per tabel dan per kolomtabel

Contoh user ayyi diberikan izin akses SELECT dan INSERT untuk kolom kota dan kdpos padatabel mahasiwa

Sintaksis MySQL

Pengaruh dari perintah grant tables sebelumnya kita coba menampilkan tabel table_privSintaksis pertama

Keterangan Host Dapat diakses di semua komputer terkoneksi jaringanDb Database Akademik yang dapat diaksesUser User AyyiTable_name Mahasiswa yang dapat diaksesGrantor rootlocalhost yang memberikan izin aksesTimestamp Tanggal pemberian izin 18 November 2009

jam 105552

Database Akademik

Tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 21

Sintaksis kedua

Keterangan Column_priv Select dan Insert izin akses kolom yang diberikan

Untuk melihat kolom mana saja yang diberikan izin akses select dan insert dengan perintah Sintaksis MySQL

Keterangan Column_name Kota dan KdPos kolom yang diberikan izin aksesColumn_priv Izin akses kedua kolom tersebut adalah select dan insert

Anda coba kewenangan apa saja yang dapat dilakukan oleh user ayyiKeluar dari mysqlDan login kembali dengan user ayyi

Lakukan perintah

Lakukan perintah select record yang ada pada tabel mahasiswa

Lihat database aktif

Lihat tabel aktif

Akatifkan database akademik

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 22

User ayyi tidak diizikan untuk menampilkan data pada tabel mahasiswaIzin akses nya adalah select untuk kolom kota dan kode posLakukan perintah select kota dan kodepos

Bagaimana dengan perintah delete tabel

Perintah delete ditolakBagaimana dengan perintah UPDATE kota

Bagimana dengan perintah insert

Untuk perintah update dan insert data tidak dapat dilakukan oleh user ayyi

Bagimana user ayyi dapat mengakses tabel mahasiswaKeluar dari MySQL dan login kembali menggunakan user rootDan berikan izin akses untuk tabel mahasiswa kepada user ayyi

Perintah ini memberikan status root kepada user ayyi hanya izin akses lengkap di databaseakademik tabel mahasiswa ( on akademikmahasiswa )

Coba keluar dan login kembali dengan user ayyiLakukan perintah update dan select

List data kota dan kode pos

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 23

Perintah update dapat dilakukan

Lakukan perintah select data keseluruhan

Bagaimana dengan menambah data gunakan perintah insert

Perintan insert dapat dilakukan dan jumlah data terdiri 6 record

Bagaimana dengan select untuk tabel mata kuliah dan kelas

Untuk mengakses tabel matakuliah dan kelas tidak di izinkan

Memberikan izin akses berdasarkan lokasi pengaksesAdmin atau root atau memberikan izin akses berdasarkan lokasi atau membatasi komputermana saja yang dapat mengakses MySQL serverContoh pemberian izin akses

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 24

Perlu diperhatikan format pemberian izin berhubungan dengan cara login ke MySQL contoh Jika pemberian izin akse dengan no IP komputer maka login juga harus mencantumkan no IP

Yang lebih fleksibel menggunakan tanda rdquordquo dapat diakses dimana saja ke server MySQL

Menghapus izin aksesMenggunakan perintah REVOKE penggunaan perintah revoke ini hanya menghapus izin aksesuntuk user tertentu bukan penghapus userUser yang bersangkutan tetap dapat login ke MySQL

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_user

User ayyi dapat mengakses tabel yang ada di database akademik

Sebagai contoh user ayyi dihapus izin akses untuk database akademik

Sintaksis

Jangan lupa diakhir dengan perintah flush

Kasus jika suatu root telah memberikan izin akses hanya untuk satu tabel seperti user ayyitelah dahulu diberikan all privileges kepada tabel mahasiswa maka untuk menghapusnyadisesuaikan dengan perintah grant

Untuk menghapus izin akses di tabel mahasiswa lakukan perintah (izin aksesnya sama denganperintah grant)

Konsep memberikan izin akses user ndash privileges user merupakan hal yang sangat penting dalammenyangkut masalah keamanan pada MySQL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 25

MODUL 5

VIEW

MAKSUD DAN TUJUAN

Agar mahasiswa1 Dapat membuat View2 Dapat Memanggil data melalui View3 Merubah definisi View4 Insert Update dan Delete data melalui View5 Menghapus (drop) view

MATERIProses pengolahan isi data di dalam table seperti membuat dan memanggil tabel menggunakan fungsiview

View adalah perintah query yang disimpan pada database dengan suatu nama tertentusehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang query tersebut

Syntax dasar perintah untuk membuat view adalah sebagai berikut

CREATE[OR REPLACE]VIEW view_name [(column_list)]AS select_statement

Kita menggunakan opsi OR REPLACE jika kita ingin mengganti view dengan nama yang samadengan perintah tersebut Jika tidak maka perintah CREATE VIEW akan menghasilkan errorjika nama view yang ingin dibuat sudah ada sebelumnya

Contoh Penggunaan

Kita akan membuat view dari relasi antara table film dan jenisfilm dari database rentaldengan nama view_harga Perintahnya adalah sebagai berikut

CREATE VIEW view_hargaASSELECT j1kode_film j1jenisj1judul j2hargaFROMfilm j1 JOIN jenisfilm j2 ON j1jenis= j2jenis

Eksekusi perintah berikut untuk memastikan view telah dibuat

SELECT FROM information_schemaviews WHERE table_name = view_harga

Terakhir query view tersebut untuk melihat hasilnya

SELECT FROM view_harga

Tugas

1 Buat Data Base baru dengan Koperasi

2 Lihat database

3 Masuk ke data base koperasi

4 Buat table Nasabah

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 26

Nama_field Tipe data size ket

Kd_nasabah Char 5 Primary key

Nama_nasabah varchar 35

Alamat varchar 35

Telepon varchar 15

Status enum (ldquotetaprdquordquotidak Tetaprdquo)

5 Lihat struktur tabl nasabah

6 Ubah typedata status menjadi varchar(20)

7 Hapus field status

8 Isi table nasabah

Kd_nasabah Nama_nasabah Alamat Telepon

00011 Ika Kepadangan 085730333999

00012 Rozi Depok 08586789380

00013 Ari Pasar Minggu 021986782

00014 Gali Sidoarjo 022456

9 Tampilkan data pada table nasabah

10 Tampilkan nasabah yang beralamat di depok

11 Ubah nama_nasabah dengan kd_nasabah 00012 menjdi Indriyani

12 Buat tabel Pinjaman

Nama field Tipe data size keterangan

No_Ref char

Kd_nasabah char

Jml-pimjam int

tempo date ldquo0000-00-00rdquo

13 Tambahkan primary key pada no_ref

14 Ganti tempo menjad tgl_tempo

15 Tambahkan field lama_pinjam varchar(10)

16 Isikan table pinjaman

No_ref Kd_nasabah Jml-pinjam Tgl_tempo Lama_pinjam

Ref01 00011 5000000 2010-06-14 6

Ref02 00012 2000000 2010-08-25 12

Ref03 00013 1500000 2010-10-20 3

17 Lihat jumlah pinjam di atas 3000000

18 Lihat jumlah pinjam pada kd_nasabah 00012

19 Hapus isi field dengan no_ref03

20 Hapus table pinjaman

21 Lihat table pada database

e koperasi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 3

dinyatakan sebagai string Madalah jumlah digit yangdisimpan dalam suatu kolomN adalah jumlah digitdibelakang koma

Keterangan Signed dan Unsigned adalah atribut untuk tipe data numerik- Signed data yang disimpan dalam suatu kolom dapat berupa data negatif dan positif- Unsigned digunakan agar data yang dimasukkan bukan data negatif (gt=0) Tipe data float

tidak dapat dinyatakan dengan unsigned

Tipe data string Tipe Keterangan Ukuran Maksimum

CHAR(n) String karakter dengan panjang yang tetapyaitu n

1 M byte

VARCHAR(n) String karakter dengan panjang yang tidaktetap maksimum n

1 M byte

TINYBLOB BLOB (Binary Large Object) yang sangat kecil 28-1 byteBLOB BLOB berukuran kecil 216-1 byteMEDIUMBLOB BLOB berukuran sedang 224-1 byteLONGBLOB BLOB berukuran besar 232-1 byteTINYTEXT String teks yang sangat kecil 28-1 byteTEXT String teks berukuran kecil 216-1 byteMEDIUMTEXT String teks berukuran medium(sedang) 224-1 byteLONGTEXT String teks berukuran besar 232-1 byteENUM Enumerasi kolom dapat diisi dengan satu

member enumerasi65535 anggota

SET Himpunan kolom dapat diisi dengan beberapanilai anggota himpunan

64 anggotahimpunan

Tipe data tanggal dan jam Tipe Range Format

DATE ldquo1000-01-01rdquo sd ldquo9999-12-31rdquo ldquo0000-00-00rdquoTIME ldquo-8325959rdquo sd ldquo8385959rdquo ldquo000000rdquoDATETIME ldquo1000-01-01 000000rdquo sd

ldquo9999-12-31 235959rdquoldquo0000-00-00 000000rdquo

4 KonstantaKonstanta menyatakan nilai yang tetap

5 EkspresiEkspresi adalah segala sesuatu yang menghasilkan nilai Ekspresi digunakan untuk menghitungnilaiContoh hargajumlah+2Simbol-simbol yang dapat digunakan pada ekspresi aritmatika

Simbol Keterangan Perkalian Pembagian+ Penjumlahan- Pengurangan

6 Aggregate Functions (Fungsi Agregat)Fungsi adalah sebuah subprogram yang menghasilkan suatu nilai jika dipanggil Fungsi agregatadalah fungsi standar di dalam SQL suatu fungsi yang digunakan untuk melakukan summaryfungsi statistik standar yang dikenakan pada suatu tabel atau querya AVG(ekspresi)

Fungsi ini digunakan untuk mencari rata-rata nilai dalam suatu kolom dari suatu tabel atauekspresi Ekspresi dalam fungsi AVG umumnya adalah nama kolom Kolom yang dicari nilairata-ratanya adalah kolom dengan tipe data numerik

b COUNT(x)Fungsi ini digunakan untuk menghitung jumlah record (baris) dari suatu kolom dari suatutabel X adalah nama kolom yang ingin dicari jumlah barisnya

c MAX(ekspresi)Fungsi ini digunakan untuk mencari nilai terbesar dari suatu kolom dari suatu tabel Kolomyang dicari nilai terbesarnya memiliki tipe data numerik

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 4

d MIN(ekspresi)Fungsi ini digunakan untuk mencari nilai terkecil dari suatu kolom dari suatu tabel Kolomyang dicari nilai terkecilnya memiliki tipe data numerik

e SUM(ekspresi)Fungsi ini digunakan untuk mendapatkan nilai total dari suatu kolom pada suatu tabel

C MySQL ( My Structured Query Language )MySQL adalah Relational Database Management System (RDBMS) yang didistribusikan secara

gratis di bawah license GPL (General Public License) Setiap orang bebas menggunakan MySQLtetapi harus bersifat open source MySQL menggunakan bahasa SQL (Structured Query Language)

Instalasi MySQL-5022-WIN32 1 Jalankan file setup mysql yaitu mysql-5022-win32exe2 Pilih tombol Next3 Pilih Custom kemudian pilih tombol Next4 klik tanda silang pada Developer Components kemudian pilih This feature will be installed on

local hard drive5 Kemudian pilih tombol Change pada folder name ubah menjadi cmysql6 Pilih OK kemudian pilih tombol Next dan pilih tombol Install maka proses instalasi dimulai7 Berikutnya muncul dialog account pilih Skip Sign-Up dan klik tombol Next8 Klik tombol Finish dan tombol Next9 Pilih Standard Configuration dan klik tombol Next10Pilih tombol Next Kemudian muncul gambar berikut ini Masukkan password yang diinginkan

pada kota isian New root password dan Confirm berikut ini untuk sekuritas misalnya umsidaKlik tombol Next

11Klik tombol Execute sebagai tahap akhir12Klik Finish

Melakukan Koneksi ke MySQL Cara 1 1 Melalui DOS Prompt masuk ke direktori utama MySQL dengan cara sebagai berikut (yang

diketik hanya yang digaris bawah) Cgtcd program filemysqlbin

2 Setelah itu ketikkan perintah berikut (yang diketik hanya yang digaris bawah) Cgtprogram filemysqlbinmysql ndashu root ndashp

maka akan diminta untuk memasukkan passoword isikan password yang digunakan pada saatinstalasi yaitu umsida

3 Selanjutnya akan ada respon dari server seperti gambar berikut

Tampilan tersebut di atas menandakan bahwa telah berhasil melakukan koneksi ke server

Cara 2

1 Dari menu Start gt All Programs gt MySQL gt MySQL Server 50 gt MySQL Command LineClient maka akan muncul tampilan seperti berikut ini

2 Masukkan password yang telah ditentukan pada saat instalasi yaitu umsida kemudian tekanenter

Merubah Prompt MySQL Rubahlah nama prompt mysql dengan nama dan nim masing-masingSintax Mysqlgt prompt prakDBnama( 3 nim terakhir ) gt (spasi) (enter)

Tugas1 Buatlah Fungsi- fungsi dalam SQL yang meliputi Fungsi Sistem Fungsi String Fungsi

Tanggal Fungsi Agregat Fungsi Aritmatika

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 5

MODUL 2

DDL (Data Definition Language)

MAKSUD DAN TUJUANAgar mahasiswa memahami cara manipulasi basis data dengan perintah DDLMATERIMembuat mengubah dan menghapus struktur dan definisi metadata dari objek-objek database

DDL merupakan kelompok perintah yang berfungsi untuk mendefinisikan atribut-atributbasis data tabel atribut(kolom) batasan-batasan terhadap suatu atribut serta hubungan antar tabel Yangtermasuk dalam kelompok DDL ini adalah CREATE ALTER dan DROP

a Membuat DatabaseSyntax CREATE DATABASE namadatabasenamadatabase tidak boleh mengandung spasi dan tidak boleh memiliki nama yang samaantar database Berikut ini perintah untuk membuat database dengan nama rental

mysqlgt create database rental

Syntax tambahan untuk menampilkan daftar nama database yang ada pada mysqlmenggunakan perintah Mysqlgt SHOW DATABASES

b Menghapus DatabaseSyntax DROP DATABASE namadatabaseDatabase yang akan dihapus sesuai dengan namadatabase Berikut ini perintah untukmenghapus database dengan nama rental

Mysqlgt drop database rental

c Membuat TabelSebelum membuat suatu tabel terlebih dahulu harus memilih salah satu database sebagaidatabase aktif yang akan digunakan untuk menyimpan tabel-tabel dengan menggunakansyntax USE namadatabaseBerikut ini perintah untuk menggunakan database dengan nama rental

Mysqlgt use rental

Syntax membuat table CREATE TABLE namatabel2(Field1 TipeData1Field2 TipeData2)namatabel tidak boleh mengandung spasi (space) Field1 dan TipeData1 merupakannama kolom pertama dan tipe data untuk kolom pertama Jika ingin membuat tabel dengankolom lebih dari satu maka setelah pendefinisian tipe data sebelumnya diberikan tanda koma() Berikut ini perintah untuk membuat tabel dengan nama jenisfilm

mysqlgt create table jenisfilm (jenis char(6)harga int)

Syntax tambahan Untuk menampilkan daftar nama tabel yang ada pada database yang sedang aktifdigunakan(dalam hal ini database rental)

Mysqlgt SHOW TABLES

Untuk menampilkan deskripsi tabel (dalam hal ini jenisfilm) syntaxnya adalah DESC namatabel

Contoh

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 6

Mysqlgt desc jenisfilm

d Menghapus TabelSyntax DROP TABLE namatabelTabel yang akan dihapus sesuai dengan namatabel berikut ini perintah untuk menghapustabel dengan nama jenisfilm

Mysqlgt drop table jenisfilm

e Mendefinisikan nullnot nullSyntax CREATE TABLE namatabel(Field1 TipeData1 NOT NULLField2 TipeData2)

Contoh

Mysqlgt create table jenisfilm(Jenis char(6) not nullHarga int)

f Mendefinisikan Nilai DefaultNilai default adalah nilai yang otomatis diberikan oleh sistem untuk suatu kolom ketika adapenambahan baris baru sementara nilai pada kolom tersebut tidak diisi oleh penggunaSyntax CREATE TABLE namatabel(Field1 TipeData1Field2 TipeData2 DEFAULT nilai)nilai adalah nilai default dari kolom tersebut

Contoh

Mysqlgt create table jenisfilm1(Jenis char(6Harga int default 0)

g Mendefinisikan Primary Key Pada TabelTerdapat tiga cara untuk mendefinisikan primary key Berikut ini adalah Syntaxmendefinisikan primary key untuk Field1CREATE TABLE namatabel(Field1 TipeData1 NOT NULL PRIMARY KEYField2 TipeData2)

Atau

CREATE TABLE namatabel(Field1 TipeData1Field2 TipeData2PRIMARY KEY(Field1))

atau

ALTER TABLE namatabel ADD CONSTRAINT namaconstraint PRIMARYKEY (namakolom)Berikut ini perintah untuk membuat tabel jenisfilm dengan kolom jenis tipe datanya char(6)harga tipe datanya int dengan mendefinisikan nilai not null dan primary key untuk kolomjenis serta nilai default untuk kolom harga

Mysqlgt create table jenisfilm (

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 7

jenis char(6) not null primary keyharga int default 0)

atau

Mysqlgt create table jenisfilm (jenis char(6) not nullharga int default 0primary key (jenis))

atau

Mysqlgt create table jenisfilm (jenis char(6) not nullharga int default 0)

Mysqlgt alter table jenisfilm add constraint pk primary key(jenis)

h Menghapus Primary Key Pada TabelPerintah Cara 1 Jika primary key dibuat dengan menggunakan alter table ALTER TABLE namatabel DROP CONSTRAINT namaconstraintCara 2 Jika primary key dibuat melalui create table ALTER TABLE namatabel DROP PRIMARY KEYBerikut ini perintah yang digunakan untuk menghapus primary key pada tabel jenisfilm

Mysqlgt alter table jenisfilm drop primary key

i Menambah Kolom Baru Pada TabelSyntax ALTER TABLE namatabel ADD fieldbaru tipenamatabel adalah nama tabel yang akan ditambah fieldnya Fieldbaru adalah namakolom yang akan ditambahkan tipe adalah tipe data dari kolom yang akan ditambahkanBerikut ini perintah untuk menambah kolom keterangan dengan tipe data varchar(25)

Mysqlgt alter table jenisfilm add keterangan varchar(25)

j Mengubah Tipe Data atau Lebar Kolom Pada TabelPerintah ALTER TABLE namatabel MODIFY COLUMN field tipenamatabel adalah nama tabel yang akan diubah tipe data atau lebar kolomnya Fieldadalah kolom yang akan diubah tipe data atau lebarnya Tipe adalah tipe data baru atau tipedata lama dengan lebar kolom yang berbeda Berikut ini perintah untuk mengubah tipe datauntuk kolom keterangan dengan char(20)

mysqlgt alter table jenisfilm modify column keteranganchar(20)

k Mengubah Nama KolomSyntax ALTER TABLE namatabel CHANGE COLUMN namalamakolomnamabarukolom tipedatanyanamatabel adalah nama tabel yang akan diubah nama kolomnya namalamakolomadalah kolom yang akan diganti namanya namabarukolom adalah nama baru kolomtipedatanya adalah tipe data dari kolom tersebut Berikut ini perintah untuk mengubahnama kolom keterangan menjadi ket

mysqlgt alter table jenisfilm change column keterangan ketchar(20)

l Menghapus Kolom Pada TabelSyntax ALTER TABLE namatabel DROP COLUMN namakolomBerikut ini perintah untuk menghapus kolom ket pada tabel jenisfilm

Mysqlgt alter table jenisfilm drop ket

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 8

m Mendefinisikan Foreign Key Pada TabelUntuk mendefinisikan foreign key maka harus dipastikan bahwa tabel dan atribut yangdirujuk (tabel induk dari foreign key) sudah didefinisikan terlebih dahulu Syntax CREATE TABLE namatabel(Field1 TipeData1Field2 TipeData2FOREIGN KEY (Field2) REFERENCES namatabelinduk

(namakolominduk)ON UPDATE CASCADEON DELETE NO ACTION

)atau

ALTER TABLE namatabel ADD CONSTRAINT namaconstraint FOREIGNKEY (namakolom) REFERENCES namatabelinduk (namakolominduk) ONUPDATE CASCADE ON DELETE NO ACTIONBerikut ini perintah untuk membuat tabel film beserta kolom-kolomnya

Mysqlgt create table film(Kode_film char(3) not null primary keyJenis char(6) not nullJudul varchar(30)Jml_keping intJml_film intForeign key(jenis) references jenisfilm(jenis) on

update cascadeon delete no action)

atau

mysqlgt create table film (kode_film char(3) not null primary keyjenis char(6) not nulljudul varchar(30)jml_keping intjml_film int)

mysqlgt alter table film add constraint fk foreign key (jenis)references jenisfilm(jenis) on update cascade on delete noaction

n Menghapus Foreign KeyPerintah ALTER TABLE namatabel DROP FOREIGN KEY namaconstraint Berikut iniperintah untuk menghapus foreign key pada tabel film

Mysqlgt alter table film drop foreign key fkTugas

1 Buatlahdatabase dengannama Penggajian2 Buat struktur tabel seperti dibawah ini

3 Berikan primary key padafield golditabelgolongan4 Tambahkansatufield tanggal_lahirpadatable5 karyawandengandata type date6 Tambahkanfield kotapadatable karyawandengan data type text 207 Ubahnamafield tanggal_lahirpadatable karyawan dengan namattl8 Ubahsize field kotapadatable karyawandengansize9 Hapusfield ttlpadatabelkaryawan10 Hapus field kota pada tabel karyawan11 Hapuskeduatabeltersebut

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 9

MODUL 3

DML (Data Manipulation Language)

MAKSUD DAN TUJUANAgar mahasiswa memahami cara manipulasi basis data dengan perintah DML

MATERIProses pengolahan isi data di dalam table seperti memasukkan merubah dan menghapus isi data - dantidak terkait dengan perubahan struktur dan definisi tipe data dari objek database

DML adalah kelompok perintah yang berfungsi untuk memanipulasi data dalam basis datamisalnya untuk pengambilan penyisipan pengubahan dan penghapusan data Perintah yang termasukdalah kategori DML adalah INSERT DELETE UPDATE dan SELECT

a INSERTPerintah INSERT digunakan untuk menambahkan baris pada suatu tabelTerdapat dua cara untuk menambah baris yaitu Cara 1 Menambah baris dengan mengisi data pada setiap kolom INSERT INTO namatabel VALUES (nilai1nilai2nilai-n)Cara 2 Menambah baris dengan hanya mengisi data pada kolom tertentu INSERT INTO namatabel (kolom1kolom2kolom-n) VALUES(nilai1nilai2nilai-n)Berikut ini perintah untuk menambahkan baris pada tabel jenisfilm Cara 1

Mysqlgt insert into jenisfilm values (lsquoactionrsquo3000)

Cara 2

Mysqlgt insert into jenisfilm (jenisharga) values (lsquohororrsquo3500)

Keterangan Jika data bertipe string date atau time (contoh action horor 2007-11-10) maka pemberian nilainyadiapit dengan tanda petik tunggal (lsquohororrsquo) atau petik ganda (ldquohororrdquo) Jika data bertipe numerik(2500 400) maka pemberian nilainya tidak diapit tanda petik tunggal maupun ganda

b DELETEPerintah DELETE digunakan untuk menghapus satu baris baris dengan kondisi tertentu atau seluruhbarisSyntax DELETE FROM namatabel [WHERE kondisi]Perintah dalam tanda [] bersifat opsional untuk menghapus suatu baris dengan suatu kondisi tertentuBerikut ini perintah untuk menghapus baris pada tabel jenisfilm dengan data sebagai berikut

Mysqlgt select from jenisfilm

Contoh 1 jika ingin menghapus seluruh baris pada tabel jenisfilm

Mysqlgt delete from jenisfilm

Contoh 2 jika ingin menghapus baris yang memiliki nilai 3000 pada kolom harga pada tabeljenisfilm maka perintahnya sebagai berikut

Mysqlgt delete from jenisfilm where harga=3000

Contoh 3 jika ingin menghapus baris yang memiliki nilai drama pada kolom jenis pada tabeljenisfilm maka perintahnya sebagai berikut

Mysqlgt delete from jenisfilm where jenis=rsquodramarsquo

c UPDATEPerintah UPDATE digunakan untuk mengubah isi data pada satu atau beberapa kolom pada suatutabelSyntax

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 10

UPDATE namatabel SET kolom1 = nilai1 kolom2 = nilai2 [WHEREkondisi]Perintah dalam tanda [] bersifat opsional untuk mengubah suatu baris dengan suatu kondisi tertentuBerikut ini perintah untuk mengubah baris pada tabel jenisfilm dengan data sebagai berikut

Mysqlgt select from jenisfilm

Contoh 1 mengubah semua nilai pada kolom harga menjadi 2000

Mysqlgt update jenisfilm set harga=2000

Contoh 2 mengubah nilai pada kolom harga menjadi 2500 dimana nilai pada kolom jenis adalahaction

Mysqlgt update jenisfilm set harga=2500 where jenis=rsquoactionrsquo

d SELECTPerintah SELECT digunakan untuk menampilkan isi dari suatu tabel yang dapat dihubungkandengan tabel yang lainnya

1) Menampilkan data untuk semua kolom menggunakan asterisk ()Syntax SELECT FROM namatabelBerikut ini perintah untuk menampilkan semua data pada tabel jenisfilm

Mysqlgt select from jenisfilm

2) Menampilkan data untuk kolom tertentuSyntax SELECT kolom1kolom2kolom-n FROM namatabelBerikut ini perintah untuk menampilkan data pada tabel jenisfilm dengan kolom yang ditampilkanadalah kolom jenis Mysqlgt select jenis from jenisfilm

3) Menampilkan data dengan kondisi data tertentu dengan klausa WHERESyntax SELECT FROM namatabel WHERE kondisiBerikut ini perintah untuk menampilkan data pada tabel jenisfilm dimana nilai pada kolom jenisadalah drama

Mysqlgt select from jenisfilm where jenis=rsquodramarsquo

Beberapa operator perbandingan yang dapat digunakan pada klausa WHERE selain ldquo=rdquo adalah gt(lebih dari) lt (kurang dari) lt gt (tidak sama dengan) gt= (lebih dari atau sama dengan) lt= (kurangdari atau sama dengan) Adapun operator lain yaitu AND OR NOT BETWEEN-AND IN danLIKE Berikut ini data yang ada pada tabel jenisfilm

Mysqlgt select from jenisfilm

Contoh 1 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai harga berkisar dari1000 hingga 3000

Mysqlgt select from jenisfilm where hargagt=1000 and hargalt=3000

Atau

Mysqlgt select from jenisfilm where harga between 1000 and 3000

Contoh 2 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai harga sama dengan1000 atau 3000

Mysqlgt select from jenisfilm where harga=1000 or harga=3000

atau

mysqlgt select from jenisfilm where harga in (10003000)

Contoh 3 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai pada kolom jenis tidaksama dengan action

Mysqlgt select from jenisfilm where not jenis=rsquoactionrsquo

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 11

atau

mysqlgt selectfrom jenisfilm where jenisltgtrsquoactionrsquo

Contoh 4 Isi tabel film

Mysqlgt selectfrom film

perintah untuk menampilkan data pada tabel film dimana data pada kolom tertentu diawali dengannilai tertentu misalnya pada kolom judul dimana diawali dengan karakter lsquoSrsquo

Mysqlgt selectfrom film where judul like lsquoSrsquo

4) Memberikan nama lain pada kolomSyntax SELECT namakolomlama AS namakolombaru FROM namatabelBerikut ini perintah untuk memberikan nama lain pada kolom jenis menjadi jenis_film pada tabeljenisfilm

Mysqlgt select jenis as jenis_film from jenisfilm

5) Menggunakan alias untuk nama tabelSyntax SELECT nmaliasjenis nmaliasharga FROM namatabel nmaliasBerikut ini perintah untuk memberikan alias pada tabel jenisfilm

Mysqlgt select jjenis jharga from jenisfilm j

6) Menampilkan data lebih dari dua tabelSyntax SELECT from namatabel1namatabel2namatabel-nIsi tabel jenisfilm

Mysqlgt selectfrom jenisfilm

Isi tabel film

Mysqlgt selectfrom film

Berikut ini perintah untuk menampilkan semua data pada tabel jenisfilm dan film

Mysqlgt selectfrom jenisfilmfilm

7) Nested Queries Subquery (IN NOT IN EXISTS NOT EXISTS)Subquery berarti query di dalam query Dengan menggunakan subquery hasil dari query akanmenjadi bagian dari query di atasnyaSubquery terletak di dalam klausa WHERE atau HAVING Pada klausa WHERE subquerydigunakan untuk memilih baris-baris tertentu yang kemudian digunakan oleh query Sedangkan padaklausa HAVING subquery digunakan untuk memilih kelompok baris yang kemudian digunakanoleh query

Contoh 1 perintah untuk menampilkan data pada tabel jenisfilm yang mana data pada kolom jenis-nya tercantum pada tabel film menggunakan IN

Mysqlgt selectfrom jenisfilm where jenis in (select jenis from film)

atau menggunakan EXISTS

Mysqlgt selectfrom jenisfilm where exists (select from film where jenisfilmjenis =filmjenis)

Pada contoh di atas SELECT jenis FROM film

disebut subquery sedangkan SELECT FROM jenisfilm

berkedudukan sebagai query Perhatikan terdapat data jenis dan harga pada tabel jenisfilm yangtidak ditampilkan Hal ini disebabkan data pada kolom jenis tidak terdapat pada kolom jenis di tabelfilm

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 12

Contoh 2 perintah untuk menampilkan data pada tabel jenisfilm yang mana data pada kolom jenis-nya tidak tercantum pada tabel film menggunakan NOT IN

Mysqlgt selectfrom jenisfilm where jenis not in (select jenis from film)

atau menggunakan NOT EXISTS

Mysqlgt selectfrom jenisfilm where not exists (select from film where jenisfilmjenis =filmjenis)

8) Operator comparison ANY dan ALLa Operator ANY digunakan berkaitan dengan subquery Operator ini menghasilkan TRUE (benar)

jika paling tidak salah satu perbandingan dengan hasil subquery menghasilkan nilai TRUEIlustrasinya

Gaji gt ANY (S)Jika subquery S menghasilkan G1 G2 Gn maka kondisi di atas identik dengan

(gaji gt G1) OR (gaji gt G2) OR OR (gaji gt Gn)Contoh perintah untuk menampilkan semua data jenisfilm yang harganya bukan yang terkecil

Mysqlgt selectfrom jenisfilm where harga gt ANY (select harga from jenisfilm)

b Operator ALL digunakan untuk melakukan perbandingan dengan subquery Kondisi dengan ALLmenghasilkan nilai TRUE (benar) jika subquery tidak menghasilkan apapun atau jikaperbandingan menghasilkan TRUE untuk setiap nilai query terhadap hasil subqueryContoh perintah untuk menampilkan data jenisfilm yang harganya paling tinggi

Mysqlgt selectfrom jenisfilm where harga gt= ALL (select harga from jenisfilm)

9) Aggregate Functions (COUNT SUM AVG MIN MAX)a COUNT

Perintah yang digunakan untuk menghitung jumlah baris suatu kolom pada tabel Contoh perintah untuk menghitung jumlah baris kolom jenis pada tabel jenisfilm

Mysqlgt select count(jenis) form jenisfilm

b SUMPerintah yang digunakan untuk menghitung jumlah nilai suatu kolom pada tabel Contoh perintah untuk menghitung jumlah nilai kolom harga pada tabel jenisfilm

Mysqlgt select sum (harga) form jenisfilm

c AVGPerintah yang digunakan untuk menghitung rata-rata dari nilai suatu kolom pada tabel Contoh perintah untuk menghitung rata-rata dari kolom harga pada tabel jenisfilm

Mysqlgt select avg(harga) form jenisfilm

d MINPerintah yang digunakan untuk menampilkan nilai terkecil dari suatu kolom pada tabel Contoh perintah untuk menampilkan nilai terkecil dari kolom harga pada tabel jenisfilm Mysqlgt select min(harga) form jenisfilm

e MAXPerintah yang digunakan untuk menampilkan nilai terbesar dari suatu kolom pada tabel Contoh perintah untuk menampilkan nilai terbesar dari kolom harga pada tabel jenisfilm

Mysqlgt select max(harga) form jenisfilm

10) SQL dengan GROUP BY dan HAVINGKlausa GROUP BY digunakan untuk melakukan pengelompokan data Sebagai contoh terdapattabel film dengan data sebagai berikut

Mysqlgt select form film

akan ditampilkan hanya kolom jenis dan digabungkan dengan SUM(jml_film) yang dikelompokkanberdasarkan kolom jenis pada tabel film

Mysqlgt select jenissum(jml_film) from film group by jenis

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 13

Klausa HAVING digunakan untuk menentukan kondisi bagi klausa GROUP BY Kelompok yangmemenuhi HAVING saja yang akan dihasilkan Contoh perintah untuk menampilkan data hanyakolom jenis yang dikelompokkan berdasarkan kolom jenis dimana jumlah film berdasarkankelompoknya harus lebih besar dari satu pada tabel film

Mysqlgt select jenis film group by jenis having count(kode_film) gt1

11) ORDER BYKlausa ORDER BY digunakan untuk mengurutkan data berdasarkan kolom tertentu sesuai dengantipe data yang dimiliki Contoh perintah untuk mengurutkan data film berdasarkan kolom judul

Mysqlgt select from film order by judul

atau tambahkan ASC untuk pengurutan secara ascending (menaik)

Mysqlgt select from film order by judul asc

atau tambahkan DESC untuk pengurutan secara descending (menurun)

Mysqlgt select from film order by judul desc

12) UNION INTERSECT dan EXCEPT

a UNIONUNION merupakan operator yang digunakan untuk menggabungkan hasil query denganketentuan jumlah nama dan tipe kolom dari masing-masing tabel yang akan ditampilkandatanya harus sama Berikut ini perintah untuk memperoleh data pada tabel film dimanajenisnya action dan horor

Mysqlgt select jenisjudul from film where jenis=rsquoactionrsquo uniongt select jenisjudul film from film where jenis=rsquohororrsquo

Perintah di atas identik dengan

Mysqlgt select jenisjudul from film where jenis=rsquoactionrsquo or jenis =rsquounionrsquo

Namun tidak semua penggabungan dapat dilakukan dengan OR yaitu jika bekerja pada duatabel atau lebih

b INTERSECTINTERSECT merupakan operator yang digunakan untuk memperoleh data dari dua buah querydimana data yang ditampilkan adalah yang memenuhi kedua query tersebut dengan ketentuanjumlah nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harussamaSyntax SELECT FROM namatabel1 INTERSECT SELECT FROMnamatabel2Pada MySQL tidak terdapat operator INTERSECT namun sebagai gantinya dapat menggunakanoperator IN seperti contoh 1 pada bagian Nested Queries

c EXCEPT Set DifferenceEXCEPT merupakan operator yang digunakan untuk memperoleh data dari dua buah querydimana data yang ditampilkan adalah data yang ada pada hasil query 1 dan tidak terdapat padadata dari hasil query 2 dengan ketentuan jumlah nama dan tipe kolom dari masing-masing tabelyang akan ditampilkan datanya harus samaSyntax SELECT FROM namatabel1 EXCEPT SELECT FROM namatabel2Pada MySQL tidak terdapat operator EXCEPT namun sebagai gantinya dapat menggunakanoperator NOT IN seperti contoh 2 pada bagian Nested Queries

13) Operasi JoinJoin merupakan operasi yang digunakan untuk menggabungkan dua tabel atau lebih dengan hasilberupa 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 Berikutini perintah untuk menampilkan kolom judul dari tabel film dan kolom harga dari tabel jenisfilm

Mysqlgt select judul harga from film jenisfilm where jenisfilmjenis = filmjenis

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 14

Pada contoh di atas jenisfilmjenis=filmjenis merupakan kondisi untuk mencocokkandata antara kolom jenis milik tabel jenisfilm dan filma Inner Join

Inner join digunakan untuk menampilkan data dari dua tabel yang berisi data sesuai dengansyarat dibelakang on (tidak boleh null) dengan kata lain semua data dari tabel kiri mendapatpasangan data dari tabel sebelah kanan Berikut ini perintah untuk menampilkan data dari tabeljenisfilm dan film dengan syarat berdasarkan kolom jenis

Mysqlgt select form jenisfilm join film on (jenisfilmjenis =filmjenis)

b Left JoinLeft join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintah left joinbeserta pasangannya dari tabel sebelah kanan Meskipun terdapat data dari sebelah kiri tidakmemiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilai NULL

Mysqlgt select form jenisfilm left join film on (jenisfilmjenis =filmjenis)

c Right JoinRight join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintah rightjoin beserta pasangannya dari tabel sebelah kiri Meskipun terdapat data dari sebelah kanantidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilai NULL

Mysqlgt select form jenisfilm right join film on (jenisfilmjenis =filmjenis)

d Natural JoinNatural join digunakan untuk menampilkan semua data dari dua tabel dimana jika terdapatkolom yang sama maka yang akan ditampilkan hanya salah satunya saja yaitu kolom dari tabelsebelah kiri perintah natural join

Mysqlgt select form jenisfilm natural join film

1) Natural Left JoinNatural left join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintahnatural left join beserta pasangannya dari tabel sebelah kanan Meskipun terdapat data darisebelah kiri tidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilaiNULL

Mysqlgt select form jenisfilm natural left join film

2) Natural Right JoinNatural right join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintahnatural right join beserta pasangannya dari tabel sebelah kiri Meskipun terdapat data darisebelah kanan tidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupanilai NULL

Mysqlgt select form jenisfilm natural right join film

Tugas

1 Buatlah database dengan nama ldquoMahasiswardquokuliah Penjualantransaksikaryawan2 Buatlah tabel dengan nama ldquoPenilaianrdquo dengan struktur tabel seperti berikut

Field Type Key Default Extra

NPM Int(8) PRI NULLKdMk Varchar(5) NULL

NamaMK Varchar NULLMid Float(5) NULLFinal Float(5) NULL

NilRata Float(5) NULL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 15

3 Sisipkan nilai-nilainya seperti tabel berikut

NPM KdMK NamaMK Mid Final NilRata10296832 KK021 75 82 10297732 KD132 775 735 20216832 KK021 835 817 30216832 KU122 654 77 10297732 KK021 795 825 20216832 KD132 805 83 30216832 KK021 67 78

4 Tampilkan seluruh record mahasiswa yang berkode matakuliah atauu KdMK=KK021

5 Tampilkan record field NpmKdMK dan Mid saja bagi yang nilai mid-nya antara 75 dan 90

6 Sisipkan nilai untuk field nama matakuliah (NamaMK) dengan ketentuan sebagai berikut KdMK NamaMKKK021 Sistem Basis DataKD132 SIMKU122 Pancasila

7 Sisipkan nilai untuk field nilai rata-rata (NilRata) dengan ketentuan sebagai berikut Mid + Final 2

8 Hapuslah record yang memiliki Npm = 10296832

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 16

MODUL 4

MANAJEMEN USER

MAKSUD DAN TUJUANAgar mahasiswa memahami manajeman user pada SQL

MATERIProses pembuatan user baru dan pemberian hak akses user

Untul MySQL versi 322 keatas dalam manajemen user dapat menggunakan perintah GRANTdan REVOKE

Perintah GRANTDipergunakan untuk membuat user baru dengan izin aksesnya

Bentuk umum GRANT jenis_akses (``nama_kolom) ON nama_database

TO nama_user IDENTIFIED BY rdquonama_passwordrdquo[WITH GRANT pilihan_akses]

Perintah REVOKEUntuk menghapus izin akses user

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_userPerintah DELETEUntuk menghapus user secara permanen

Membuat User BaruDengan perintah GRANTContoh membuat user vivien

Tingkatan akses adalah ALL user vivien sebagai administratorON = dapat meng-akses semua databaseTO vivien dapat ditulis TO vivien atau TO vivienlocalhost

Buat user baru dengan nama ldquoayyirdquodengan perintah

User ayyi dapat login ke MySQL dapat mengakses semua database tetapi tidak memiliki izinakses jadi sebagai dummy user atau blank user

Lihat tabel user

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 17

Bagaimana dengan izin akses caranya dengan memeriksa tabel user yaitu kolom privilegesdengan perintah SELECT FROM USER

User vivien bertanda rdquo Y rdquo dapat mengakses semuaUser ayyi bertanda rdquo N rdquo tidak dapat mengakses

Coba gunakan user rdquo ayyi rdquoKeluar dari MySQL dan login kembali dengan user rdquo ayyi rdquo password rdquo fathin rdquoTampilan

Sintax mysql ndashu ayyi ndashp

Coba lihat database yang dapat diaksesTampilan

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 18

User ayyi tidak dapat mengakses database yang sudah terbentuk di mysql hanya databaseinformation_schema

Coba membuat database

Access denied tidak diberikan izin untuk create

Memberikan Izin Akses tertentu

Jika akan memberikan izin akses SELECT INSERT UPDATE dan DELETE kepada user ayyi yanghanya dapat digunakan pada database latihdb1Pemberian izin akses hanya boleh dilakukan oleh user dalam akses root atau user yangdiberikan zin akses setingkat administrator

Sebagai contoh user rdquorootrdquo atau user rdquoiyusrdquo (nama anda sendiri)Jika menggunakan rootPerintah

Mysql ndashu root -p

Jika menggunakan user rdquoiyusrdquo (nama anda sendiri)Perintah

Mysql ndashu iyus(nama sendiri) -p

Gunakan salah satu dan Buat database baru dengan nama rsquolatihdb1rsquo

Berikan izin akses ke database latihdb1Aktifkan database mysql dan lihat tabel ndash

Berikan izin untuk insert update delete create pada user ayyi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 19

Lihat perubahan izin akses

Coba mengakses dengan user ayyiDan lihat database yang dapat diakses

Database latihdb1 dapat diakses dan jika terdapat akses yang tidak diizinkan maka lakukanperitah GRANT untuk izin akses pada user ayyi dengan ketetapan user admin sebagai root

Contoh

Contoh user ayyi membuat table pegawai dalam database latihdb1

Buatlah database akademik dengan tabel mahasiswa matakuliah dan kelasStruktur tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 20

Struktur tabel Matakuliah

Struktur tabel kelas

Memberikan izin akses per tabel dan per kolomDengan perintah grant dapat digunakan untuk memberikan izin akses per tabel dan per kolomtabel

Contoh user ayyi diberikan izin akses SELECT dan INSERT untuk kolom kota dan kdpos padatabel mahasiwa

Sintaksis MySQL

Pengaruh dari perintah grant tables sebelumnya kita coba menampilkan tabel table_privSintaksis pertama

Keterangan Host Dapat diakses di semua komputer terkoneksi jaringanDb Database Akademik yang dapat diaksesUser User AyyiTable_name Mahasiswa yang dapat diaksesGrantor rootlocalhost yang memberikan izin aksesTimestamp Tanggal pemberian izin 18 November 2009

jam 105552

Database Akademik

Tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 21

Sintaksis kedua

Keterangan Column_priv Select dan Insert izin akses kolom yang diberikan

Untuk melihat kolom mana saja yang diberikan izin akses select dan insert dengan perintah Sintaksis MySQL

Keterangan Column_name Kota dan KdPos kolom yang diberikan izin aksesColumn_priv Izin akses kedua kolom tersebut adalah select dan insert

Anda coba kewenangan apa saja yang dapat dilakukan oleh user ayyiKeluar dari mysqlDan login kembali dengan user ayyi

Lakukan perintah

Lakukan perintah select record yang ada pada tabel mahasiswa

Lihat database aktif

Lihat tabel aktif

Akatifkan database akademik

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 22

User ayyi tidak diizikan untuk menampilkan data pada tabel mahasiswaIzin akses nya adalah select untuk kolom kota dan kode posLakukan perintah select kota dan kodepos

Bagaimana dengan perintah delete tabel

Perintah delete ditolakBagaimana dengan perintah UPDATE kota

Bagimana dengan perintah insert

Untuk perintah update dan insert data tidak dapat dilakukan oleh user ayyi

Bagimana user ayyi dapat mengakses tabel mahasiswaKeluar dari MySQL dan login kembali menggunakan user rootDan berikan izin akses untuk tabel mahasiswa kepada user ayyi

Perintah ini memberikan status root kepada user ayyi hanya izin akses lengkap di databaseakademik tabel mahasiswa ( on akademikmahasiswa )

Coba keluar dan login kembali dengan user ayyiLakukan perintah update dan select

List data kota dan kode pos

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 23

Perintah update dapat dilakukan

Lakukan perintah select data keseluruhan

Bagaimana dengan menambah data gunakan perintah insert

Perintan insert dapat dilakukan dan jumlah data terdiri 6 record

Bagaimana dengan select untuk tabel mata kuliah dan kelas

Untuk mengakses tabel matakuliah dan kelas tidak di izinkan

Memberikan izin akses berdasarkan lokasi pengaksesAdmin atau root atau memberikan izin akses berdasarkan lokasi atau membatasi komputermana saja yang dapat mengakses MySQL serverContoh pemberian izin akses

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 24

Perlu diperhatikan format pemberian izin berhubungan dengan cara login ke MySQL contoh Jika pemberian izin akse dengan no IP komputer maka login juga harus mencantumkan no IP

Yang lebih fleksibel menggunakan tanda rdquordquo dapat diakses dimana saja ke server MySQL

Menghapus izin aksesMenggunakan perintah REVOKE penggunaan perintah revoke ini hanya menghapus izin aksesuntuk user tertentu bukan penghapus userUser yang bersangkutan tetap dapat login ke MySQL

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_user

User ayyi dapat mengakses tabel yang ada di database akademik

Sebagai contoh user ayyi dihapus izin akses untuk database akademik

Sintaksis

Jangan lupa diakhir dengan perintah flush

Kasus jika suatu root telah memberikan izin akses hanya untuk satu tabel seperti user ayyitelah dahulu diberikan all privileges kepada tabel mahasiswa maka untuk menghapusnyadisesuaikan dengan perintah grant

Untuk menghapus izin akses di tabel mahasiswa lakukan perintah (izin aksesnya sama denganperintah grant)

Konsep memberikan izin akses user ndash privileges user merupakan hal yang sangat penting dalammenyangkut masalah keamanan pada MySQL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 25

MODUL 5

VIEW

MAKSUD DAN TUJUAN

Agar mahasiswa1 Dapat membuat View2 Dapat Memanggil data melalui View3 Merubah definisi View4 Insert Update dan Delete data melalui View5 Menghapus (drop) view

MATERIProses pengolahan isi data di dalam table seperti membuat dan memanggil tabel menggunakan fungsiview

View adalah perintah query yang disimpan pada database dengan suatu nama tertentusehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang query tersebut

Syntax dasar perintah untuk membuat view adalah sebagai berikut

CREATE[OR REPLACE]VIEW view_name [(column_list)]AS select_statement

Kita menggunakan opsi OR REPLACE jika kita ingin mengganti view dengan nama yang samadengan perintah tersebut Jika tidak maka perintah CREATE VIEW akan menghasilkan errorjika nama view yang ingin dibuat sudah ada sebelumnya

Contoh Penggunaan

Kita akan membuat view dari relasi antara table film dan jenisfilm dari database rentaldengan nama view_harga Perintahnya adalah sebagai berikut

CREATE VIEW view_hargaASSELECT j1kode_film j1jenisj1judul j2hargaFROMfilm j1 JOIN jenisfilm j2 ON j1jenis= j2jenis

Eksekusi perintah berikut untuk memastikan view telah dibuat

SELECT FROM information_schemaviews WHERE table_name = view_harga

Terakhir query view tersebut untuk melihat hasilnya

SELECT FROM view_harga

Tugas

1 Buat Data Base baru dengan Koperasi

2 Lihat database

3 Masuk ke data base koperasi

4 Buat table Nasabah

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 26

Nama_field Tipe data size ket

Kd_nasabah Char 5 Primary key

Nama_nasabah varchar 35

Alamat varchar 35

Telepon varchar 15

Status enum (ldquotetaprdquordquotidak Tetaprdquo)

5 Lihat struktur tabl nasabah

6 Ubah typedata status menjadi varchar(20)

7 Hapus field status

8 Isi table nasabah

Kd_nasabah Nama_nasabah Alamat Telepon

00011 Ika Kepadangan 085730333999

00012 Rozi Depok 08586789380

00013 Ari Pasar Minggu 021986782

00014 Gali Sidoarjo 022456

9 Tampilkan data pada table nasabah

10 Tampilkan nasabah yang beralamat di depok

11 Ubah nama_nasabah dengan kd_nasabah 00012 menjdi Indriyani

12 Buat tabel Pinjaman

Nama field Tipe data size keterangan

No_Ref char

Kd_nasabah char

Jml-pimjam int

tempo date ldquo0000-00-00rdquo

13 Tambahkan primary key pada no_ref

14 Ganti tempo menjad tgl_tempo

15 Tambahkan field lama_pinjam varchar(10)

16 Isikan table pinjaman

No_ref Kd_nasabah Jml-pinjam Tgl_tempo Lama_pinjam

Ref01 00011 5000000 2010-06-14 6

Ref02 00012 2000000 2010-08-25 12

Ref03 00013 1500000 2010-10-20 3

17 Lihat jumlah pinjam di atas 3000000

18 Lihat jumlah pinjam pada kd_nasabah 00012

19 Hapus isi field dengan no_ref03

20 Hapus table pinjaman

21 Lihat table pada database

e koperasi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 4

d MIN(ekspresi)Fungsi ini digunakan untuk mencari nilai terkecil dari suatu kolom dari suatu tabel Kolomyang dicari nilai terkecilnya memiliki tipe data numerik

e SUM(ekspresi)Fungsi ini digunakan untuk mendapatkan nilai total dari suatu kolom pada suatu tabel

C MySQL ( My Structured Query Language )MySQL adalah Relational Database Management System (RDBMS) yang didistribusikan secara

gratis di bawah license GPL (General Public License) Setiap orang bebas menggunakan MySQLtetapi harus bersifat open source MySQL menggunakan bahasa SQL (Structured Query Language)

Instalasi MySQL-5022-WIN32 1 Jalankan file setup mysql yaitu mysql-5022-win32exe2 Pilih tombol Next3 Pilih Custom kemudian pilih tombol Next4 klik tanda silang pada Developer Components kemudian pilih This feature will be installed on

local hard drive5 Kemudian pilih tombol Change pada folder name ubah menjadi cmysql6 Pilih OK kemudian pilih tombol Next dan pilih tombol Install maka proses instalasi dimulai7 Berikutnya muncul dialog account pilih Skip Sign-Up dan klik tombol Next8 Klik tombol Finish dan tombol Next9 Pilih Standard Configuration dan klik tombol Next10Pilih tombol Next Kemudian muncul gambar berikut ini Masukkan password yang diinginkan

pada kota isian New root password dan Confirm berikut ini untuk sekuritas misalnya umsidaKlik tombol Next

11Klik tombol Execute sebagai tahap akhir12Klik Finish

Melakukan Koneksi ke MySQL Cara 1 1 Melalui DOS Prompt masuk ke direktori utama MySQL dengan cara sebagai berikut (yang

diketik hanya yang digaris bawah) Cgtcd program filemysqlbin

2 Setelah itu ketikkan perintah berikut (yang diketik hanya yang digaris bawah) Cgtprogram filemysqlbinmysql ndashu root ndashp

maka akan diminta untuk memasukkan passoword isikan password yang digunakan pada saatinstalasi yaitu umsida

3 Selanjutnya akan ada respon dari server seperti gambar berikut

Tampilan tersebut di atas menandakan bahwa telah berhasil melakukan koneksi ke server

Cara 2

1 Dari menu Start gt All Programs gt MySQL gt MySQL Server 50 gt MySQL Command LineClient maka akan muncul tampilan seperti berikut ini

2 Masukkan password yang telah ditentukan pada saat instalasi yaitu umsida kemudian tekanenter

Merubah Prompt MySQL Rubahlah nama prompt mysql dengan nama dan nim masing-masingSintax Mysqlgt prompt prakDBnama( 3 nim terakhir ) gt (spasi) (enter)

Tugas1 Buatlah Fungsi- fungsi dalam SQL yang meliputi Fungsi Sistem Fungsi String Fungsi

Tanggal Fungsi Agregat Fungsi Aritmatika

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 5

MODUL 2

DDL (Data Definition Language)

MAKSUD DAN TUJUANAgar mahasiswa memahami cara manipulasi basis data dengan perintah DDLMATERIMembuat mengubah dan menghapus struktur dan definisi metadata dari objek-objek database

DDL merupakan kelompok perintah yang berfungsi untuk mendefinisikan atribut-atributbasis data tabel atribut(kolom) batasan-batasan terhadap suatu atribut serta hubungan antar tabel Yangtermasuk dalam kelompok DDL ini adalah CREATE ALTER dan DROP

a Membuat DatabaseSyntax CREATE DATABASE namadatabasenamadatabase tidak boleh mengandung spasi dan tidak boleh memiliki nama yang samaantar database Berikut ini perintah untuk membuat database dengan nama rental

mysqlgt create database rental

Syntax tambahan untuk menampilkan daftar nama database yang ada pada mysqlmenggunakan perintah Mysqlgt SHOW DATABASES

b Menghapus DatabaseSyntax DROP DATABASE namadatabaseDatabase yang akan dihapus sesuai dengan namadatabase Berikut ini perintah untukmenghapus database dengan nama rental

Mysqlgt drop database rental

c Membuat TabelSebelum membuat suatu tabel terlebih dahulu harus memilih salah satu database sebagaidatabase aktif yang akan digunakan untuk menyimpan tabel-tabel dengan menggunakansyntax USE namadatabaseBerikut ini perintah untuk menggunakan database dengan nama rental

Mysqlgt use rental

Syntax membuat table CREATE TABLE namatabel2(Field1 TipeData1Field2 TipeData2)namatabel tidak boleh mengandung spasi (space) Field1 dan TipeData1 merupakannama kolom pertama dan tipe data untuk kolom pertama Jika ingin membuat tabel dengankolom lebih dari satu maka setelah pendefinisian tipe data sebelumnya diberikan tanda koma() Berikut ini perintah untuk membuat tabel dengan nama jenisfilm

mysqlgt create table jenisfilm (jenis char(6)harga int)

Syntax tambahan Untuk menampilkan daftar nama tabel yang ada pada database yang sedang aktifdigunakan(dalam hal ini database rental)

Mysqlgt SHOW TABLES

Untuk menampilkan deskripsi tabel (dalam hal ini jenisfilm) syntaxnya adalah DESC namatabel

Contoh

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 6

Mysqlgt desc jenisfilm

d Menghapus TabelSyntax DROP TABLE namatabelTabel yang akan dihapus sesuai dengan namatabel berikut ini perintah untuk menghapustabel dengan nama jenisfilm

Mysqlgt drop table jenisfilm

e Mendefinisikan nullnot nullSyntax CREATE TABLE namatabel(Field1 TipeData1 NOT NULLField2 TipeData2)

Contoh

Mysqlgt create table jenisfilm(Jenis char(6) not nullHarga int)

f Mendefinisikan Nilai DefaultNilai default adalah nilai yang otomatis diberikan oleh sistem untuk suatu kolom ketika adapenambahan baris baru sementara nilai pada kolom tersebut tidak diisi oleh penggunaSyntax CREATE TABLE namatabel(Field1 TipeData1Field2 TipeData2 DEFAULT nilai)nilai adalah nilai default dari kolom tersebut

Contoh

Mysqlgt create table jenisfilm1(Jenis char(6Harga int default 0)

g Mendefinisikan Primary Key Pada TabelTerdapat tiga cara untuk mendefinisikan primary key Berikut ini adalah Syntaxmendefinisikan primary key untuk Field1CREATE TABLE namatabel(Field1 TipeData1 NOT NULL PRIMARY KEYField2 TipeData2)

Atau

CREATE TABLE namatabel(Field1 TipeData1Field2 TipeData2PRIMARY KEY(Field1))

atau

ALTER TABLE namatabel ADD CONSTRAINT namaconstraint PRIMARYKEY (namakolom)Berikut ini perintah untuk membuat tabel jenisfilm dengan kolom jenis tipe datanya char(6)harga tipe datanya int dengan mendefinisikan nilai not null dan primary key untuk kolomjenis serta nilai default untuk kolom harga

Mysqlgt create table jenisfilm (

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 7

jenis char(6) not null primary keyharga int default 0)

atau

Mysqlgt create table jenisfilm (jenis char(6) not nullharga int default 0primary key (jenis))

atau

Mysqlgt create table jenisfilm (jenis char(6) not nullharga int default 0)

Mysqlgt alter table jenisfilm add constraint pk primary key(jenis)

h Menghapus Primary Key Pada TabelPerintah Cara 1 Jika primary key dibuat dengan menggunakan alter table ALTER TABLE namatabel DROP CONSTRAINT namaconstraintCara 2 Jika primary key dibuat melalui create table ALTER TABLE namatabel DROP PRIMARY KEYBerikut ini perintah yang digunakan untuk menghapus primary key pada tabel jenisfilm

Mysqlgt alter table jenisfilm drop primary key

i Menambah Kolom Baru Pada TabelSyntax ALTER TABLE namatabel ADD fieldbaru tipenamatabel adalah nama tabel yang akan ditambah fieldnya Fieldbaru adalah namakolom yang akan ditambahkan tipe adalah tipe data dari kolom yang akan ditambahkanBerikut ini perintah untuk menambah kolom keterangan dengan tipe data varchar(25)

Mysqlgt alter table jenisfilm add keterangan varchar(25)

j Mengubah Tipe Data atau Lebar Kolom Pada TabelPerintah ALTER TABLE namatabel MODIFY COLUMN field tipenamatabel adalah nama tabel yang akan diubah tipe data atau lebar kolomnya Fieldadalah kolom yang akan diubah tipe data atau lebarnya Tipe adalah tipe data baru atau tipedata lama dengan lebar kolom yang berbeda Berikut ini perintah untuk mengubah tipe datauntuk kolom keterangan dengan char(20)

mysqlgt alter table jenisfilm modify column keteranganchar(20)

k Mengubah Nama KolomSyntax ALTER TABLE namatabel CHANGE COLUMN namalamakolomnamabarukolom tipedatanyanamatabel adalah nama tabel yang akan diubah nama kolomnya namalamakolomadalah kolom yang akan diganti namanya namabarukolom adalah nama baru kolomtipedatanya adalah tipe data dari kolom tersebut Berikut ini perintah untuk mengubahnama kolom keterangan menjadi ket

mysqlgt alter table jenisfilm change column keterangan ketchar(20)

l Menghapus Kolom Pada TabelSyntax ALTER TABLE namatabel DROP COLUMN namakolomBerikut ini perintah untuk menghapus kolom ket pada tabel jenisfilm

Mysqlgt alter table jenisfilm drop ket

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 8

m Mendefinisikan Foreign Key Pada TabelUntuk mendefinisikan foreign key maka harus dipastikan bahwa tabel dan atribut yangdirujuk (tabel induk dari foreign key) sudah didefinisikan terlebih dahulu Syntax CREATE TABLE namatabel(Field1 TipeData1Field2 TipeData2FOREIGN KEY (Field2) REFERENCES namatabelinduk

(namakolominduk)ON UPDATE CASCADEON DELETE NO ACTION

)atau

ALTER TABLE namatabel ADD CONSTRAINT namaconstraint FOREIGNKEY (namakolom) REFERENCES namatabelinduk (namakolominduk) ONUPDATE CASCADE ON DELETE NO ACTIONBerikut ini perintah untuk membuat tabel film beserta kolom-kolomnya

Mysqlgt create table film(Kode_film char(3) not null primary keyJenis char(6) not nullJudul varchar(30)Jml_keping intJml_film intForeign key(jenis) references jenisfilm(jenis) on

update cascadeon delete no action)

atau

mysqlgt create table film (kode_film char(3) not null primary keyjenis char(6) not nulljudul varchar(30)jml_keping intjml_film int)

mysqlgt alter table film add constraint fk foreign key (jenis)references jenisfilm(jenis) on update cascade on delete noaction

n Menghapus Foreign KeyPerintah ALTER TABLE namatabel DROP FOREIGN KEY namaconstraint Berikut iniperintah untuk menghapus foreign key pada tabel film

Mysqlgt alter table film drop foreign key fkTugas

1 Buatlahdatabase dengannama Penggajian2 Buat struktur tabel seperti dibawah ini

3 Berikan primary key padafield golditabelgolongan4 Tambahkansatufield tanggal_lahirpadatable5 karyawandengandata type date6 Tambahkanfield kotapadatable karyawandengan data type text 207 Ubahnamafield tanggal_lahirpadatable karyawan dengan namattl8 Ubahsize field kotapadatable karyawandengansize9 Hapusfield ttlpadatabelkaryawan10 Hapus field kota pada tabel karyawan11 Hapuskeduatabeltersebut

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 9

MODUL 3

DML (Data Manipulation Language)

MAKSUD DAN TUJUANAgar mahasiswa memahami cara manipulasi basis data dengan perintah DML

MATERIProses pengolahan isi data di dalam table seperti memasukkan merubah dan menghapus isi data - dantidak terkait dengan perubahan struktur dan definisi tipe data dari objek database

DML adalah kelompok perintah yang berfungsi untuk memanipulasi data dalam basis datamisalnya untuk pengambilan penyisipan pengubahan dan penghapusan data Perintah yang termasukdalah kategori DML adalah INSERT DELETE UPDATE dan SELECT

a INSERTPerintah INSERT digunakan untuk menambahkan baris pada suatu tabelTerdapat dua cara untuk menambah baris yaitu Cara 1 Menambah baris dengan mengisi data pada setiap kolom INSERT INTO namatabel VALUES (nilai1nilai2nilai-n)Cara 2 Menambah baris dengan hanya mengisi data pada kolom tertentu INSERT INTO namatabel (kolom1kolom2kolom-n) VALUES(nilai1nilai2nilai-n)Berikut ini perintah untuk menambahkan baris pada tabel jenisfilm Cara 1

Mysqlgt insert into jenisfilm values (lsquoactionrsquo3000)

Cara 2

Mysqlgt insert into jenisfilm (jenisharga) values (lsquohororrsquo3500)

Keterangan Jika data bertipe string date atau time (contoh action horor 2007-11-10) maka pemberian nilainyadiapit dengan tanda petik tunggal (lsquohororrsquo) atau petik ganda (ldquohororrdquo) Jika data bertipe numerik(2500 400) maka pemberian nilainya tidak diapit tanda petik tunggal maupun ganda

b DELETEPerintah DELETE digunakan untuk menghapus satu baris baris dengan kondisi tertentu atau seluruhbarisSyntax DELETE FROM namatabel [WHERE kondisi]Perintah dalam tanda [] bersifat opsional untuk menghapus suatu baris dengan suatu kondisi tertentuBerikut ini perintah untuk menghapus baris pada tabel jenisfilm dengan data sebagai berikut

Mysqlgt select from jenisfilm

Contoh 1 jika ingin menghapus seluruh baris pada tabel jenisfilm

Mysqlgt delete from jenisfilm

Contoh 2 jika ingin menghapus baris yang memiliki nilai 3000 pada kolom harga pada tabeljenisfilm maka perintahnya sebagai berikut

Mysqlgt delete from jenisfilm where harga=3000

Contoh 3 jika ingin menghapus baris yang memiliki nilai drama pada kolom jenis pada tabeljenisfilm maka perintahnya sebagai berikut

Mysqlgt delete from jenisfilm where jenis=rsquodramarsquo

c UPDATEPerintah UPDATE digunakan untuk mengubah isi data pada satu atau beberapa kolom pada suatutabelSyntax

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 10

UPDATE namatabel SET kolom1 = nilai1 kolom2 = nilai2 [WHEREkondisi]Perintah dalam tanda [] bersifat opsional untuk mengubah suatu baris dengan suatu kondisi tertentuBerikut ini perintah untuk mengubah baris pada tabel jenisfilm dengan data sebagai berikut

Mysqlgt select from jenisfilm

Contoh 1 mengubah semua nilai pada kolom harga menjadi 2000

Mysqlgt update jenisfilm set harga=2000

Contoh 2 mengubah nilai pada kolom harga menjadi 2500 dimana nilai pada kolom jenis adalahaction

Mysqlgt update jenisfilm set harga=2500 where jenis=rsquoactionrsquo

d SELECTPerintah SELECT digunakan untuk menampilkan isi dari suatu tabel yang dapat dihubungkandengan tabel yang lainnya

1) Menampilkan data untuk semua kolom menggunakan asterisk ()Syntax SELECT FROM namatabelBerikut ini perintah untuk menampilkan semua data pada tabel jenisfilm

Mysqlgt select from jenisfilm

2) Menampilkan data untuk kolom tertentuSyntax SELECT kolom1kolom2kolom-n FROM namatabelBerikut ini perintah untuk menampilkan data pada tabel jenisfilm dengan kolom yang ditampilkanadalah kolom jenis Mysqlgt select jenis from jenisfilm

3) Menampilkan data dengan kondisi data tertentu dengan klausa WHERESyntax SELECT FROM namatabel WHERE kondisiBerikut ini perintah untuk menampilkan data pada tabel jenisfilm dimana nilai pada kolom jenisadalah drama

Mysqlgt select from jenisfilm where jenis=rsquodramarsquo

Beberapa operator perbandingan yang dapat digunakan pada klausa WHERE selain ldquo=rdquo adalah gt(lebih dari) lt (kurang dari) lt gt (tidak sama dengan) gt= (lebih dari atau sama dengan) lt= (kurangdari atau sama dengan) Adapun operator lain yaitu AND OR NOT BETWEEN-AND IN danLIKE Berikut ini data yang ada pada tabel jenisfilm

Mysqlgt select from jenisfilm

Contoh 1 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai harga berkisar dari1000 hingga 3000

Mysqlgt select from jenisfilm where hargagt=1000 and hargalt=3000

Atau

Mysqlgt select from jenisfilm where harga between 1000 and 3000

Contoh 2 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai harga sama dengan1000 atau 3000

Mysqlgt select from jenisfilm where harga=1000 or harga=3000

atau

mysqlgt select from jenisfilm where harga in (10003000)

Contoh 3 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai pada kolom jenis tidaksama dengan action

Mysqlgt select from jenisfilm where not jenis=rsquoactionrsquo

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 11

atau

mysqlgt selectfrom jenisfilm where jenisltgtrsquoactionrsquo

Contoh 4 Isi tabel film

Mysqlgt selectfrom film

perintah untuk menampilkan data pada tabel film dimana data pada kolom tertentu diawali dengannilai tertentu misalnya pada kolom judul dimana diawali dengan karakter lsquoSrsquo

Mysqlgt selectfrom film where judul like lsquoSrsquo

4) Memberikan nama lain pada kolomSyntax SELECT namakolomlama AS namakolombaru FROM namatabelBerikut ini perintah untuk memberikan nama lain pada kolom jenis menjadi jenis_film pada tabeljenisfilm

Mysqlgt select jenis as jenis_film from jenisfilm

5) Menggunakan alias untuk nama tabelSyntax SELECT nmaliasjenis nmaliasharga FROM namatabel nmaliasBerikut ini perintah untuk memberikan alias pada tabel jenisfilm

Mysqlgt select jjenis jharga from jenisfilm j

6) Menampilkan data lebih dari dua tabelSyntax SELECT from namatabel1namatabel2namatabel-nIsi tabel jenisfilm

Mysqlgt selectfrom jenisfilm

Isi tabel film

Mysqlgt selectfrom film

Berikut ini perintah untuk menampilkan semua data pada tabel jenisfilm dan film

Mysqlgt selectfrom jenisfilmfilm

7) Nested Queries Subquery (IN NOT IN EXISTS NOT EXISTS)Subquery berarti query di dalam query Dengan menggunakan subquery hasil dari query akanmenjadi bagian dari query di atasnyaSubquery terletak di dalam klausa WHERE atau HAVING Pada klausa WHERE subquerydigunakan untuk memilih baris-baris tertentu yang kemudian digunakan oleh query Sedangkan padaklausa HAVING subquery digunakan untuk memilih kelompok baris yang kemudian digunakanoleh query

Contoh 1 perintah untuk menampilkan data pada tabel jenisfilm yang mana data pada kolom jenis-nya tercantum pada tabel film menggunakan IN

Mysqlgt selectfrom jenisfilm where jenis in (select jenis from film)

atau menggunakan EXISTS

Mysqlgt selectfrom jenisfilm where exists (select from film where jenisfilmjenis =filmjenis)

Pada contoh di atas SELECT jenis FROM film

disebut subquery sedangkan SELECT FROM jenisfilm

berkedudukan sebagai query Perhatikan terdapat data jenis dan harga pada tabel jenisfilm yangtidak ditampilkan Hal ini disebabkan data pada kolom jenis tidak terdapat pada kolom jenis di tabelfilm

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 12

Contoh 2 perintah untuk menampilkan data pada tabel jenisfilm yang mana data pada kolom jenis-nya tidak tercantum pada tabel film menggunakan NOT IN

Mysqlgt selectfrom jenisfilm where jenis not in (select jenis from film)

atau menggunakan NOT EXISTS

Mysqlgt selectfrom jenisfilm where not exists (select from film where jenisfilmjenis =filmjenis)

8) Operator comparison ANY dan ALLa Operator ANY digunakan berkaitan dengan subquery Operator ini menghasilkan TRUE (benar)

jika paling tidak salah satu perbandingan dengan hasil subquery menghasilkan nilai TRUEIlustrasinya

Gaji gt ANY (S)Jika subquery S menghasilkan G1 G2 Gn maka kondisi di atas identik dengan

(gaji gt G1) OR (gaji gt G2) OR OR (gaji gt Gn)Contoh perintah untuk menampilkan semua data jenisfilm yang harganya bukan yang terkecil

Mysqlgt selectfrom jenisfilm where harga gt ANY (select harga from jenisfilm)

b Operator ALL digunakan untuk melakukan perbandingan dengan subquery Kondisi dengan ALLmenghasilkan nilai TRUE (benar) jika subquery tidak menghasilkan apapun atau jikaperbandingan menghasilkan TRUE untuk setiap nilai query terhadap hasil subqueryContoh perintah untuk menampilkan data jenisfilm yang harganya paling tinggi

Mysqlgt selectfrom jenisfilm where harga gt= ALL (select harga from jenisfilm)

9) Aggregate Functions (COUNT SUM AVG MIN MAX)a COUNT

Perintah yang digunakan untuk menghitung jumlah baris suatu kolom pada tabel Contoh perintah untuk menghitung jumlah baris kolom jenis pada tabel jenisfilm

Mysqlgt select count(jenis) form jenisfilm

b SUMPerintah yang digunakan untuk menghitung jumlah nilai suatu kolom pada tabel Contoh perintah untuk menghitung jumlah nilai kolom harga pada tabel jenisfilm

Mysqlgt select sum (harga) form jenisfilm

c AVGPerintah yang digunakan untuk menghitung rata-rata dari nilai suatu kolom pada tabel Contoh perintah untuk menghitung rata-rata dari kolom harga pada tabel jenisfilm

Mysqlgt select avg(harga) form jenisfilm

d MINPerintah yang digunakan untuk menampilkan nilai terkecil dari suatu kolom pada tabel Contoh perintah untuk menampilkan nilai terkecil dari kolom harga pada tabel jenisfilm Mysqlgt select min(harga) form jenisfilm

e MAXPerintah yang digunakan untuk menampilkan nilai terbesar dari suatu kolom pada tabel Contoh perintah untuk menampilkan nilai terbesar dari kolom harga pada tabel jenisfilm

Mysqlgt select max(harga) form jenisfilm

10) SQL dengan GROUP BY dan HAVINGKlausa GROUP BY digunakan untuk melakukan pengelompokan data Sebagai contoh terdapattabel film dengan data sebagai berikut

Mysqlgt select form film

akan ditampilkan hanya kolom jenis dan digabungkan dengan SUM(jml_film) yang dikelompokkanberdasarkan kolom jenis pada tabel film

Mysqlgt select jenissum(jml_film) from film group by jenis

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 13

Klausa HAVING digunakan untuk menentukan kondisi bagi klausa GROUP BY Kelompok yangmemenuhi HAVING saja yang akan dihasilkan Contoh perintah untuk menampilkan data hanyakolom jenis yang dikelompokkan berdasarkan kolom jenis dimana jumlah film berdasarkankelompoknya harus lebih besar dari satu pada tabel film

Mysqlgt select jenis film group by jenis having count(kode_film) gt1

11) ORDER BYKlausa ORDER BY digunakan untuk mengurutkan data berdasarkan kolom tertentu sesuai dengantipe data yang dimiliki Contoh perintah untuk mengurutkan data film berdasarkan kolom judul

Mysqlgt select from film order by judul

atau tambahkan ASC untuk pengurutan secara ascending (menaik)

Mysqlgt select from film order by judul asc

atau tambahkan DESC untuk pengurutan secara descending (menurun)

Mysqlgt select from film order by judul desc

12) UNION INTERSECT dan EXCEPT

a UNIONUNION merupakan operator yang digunakan untuk menggabungkan hasil query denganketentuan jumlah nama dan tipe kolom dari masing-masing tabel yang akan ditampilkandatanya harus sama Berikut ini perintah untuk memperoleh data pada tabel film dimanajenisnya action dan horor

Mysqlgt select jenisjudul from film where jenis=rsquoactionrsquo uniongt select jenisjudul film from film where jenis=rsquohororrsquo

Perintah di atas identik dengan

Mysqlgt select jenisjudul from film where jenis=rsquoactionrsquo or jenis =rsquounionrsquo

Namun tidak semua penggabungan dapat dilakukan dengan OR yaitu jika bekerja pada duatabel atau lebih

b INTERSECTINTERSECT merupakan operator yang digunakan untuk memperoleh data dari dua buah querydimana data yang ditampilkan adalah yang memenuhi kedua query tersebut dengan ketentuanjumlah nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harussamaSyntax SELECT FROM namatabel1 INTERSECT SELECT FROMnamatabel2Pada MySQL tidak terdapat operator INTERSECT namun sebagai gantinya dapat menggunakanoperator IN seperti contoh 1 pada bagian Nested Queries

c EXCEPT Set DifferenceEXCEPT merupakan operator yang digunakan untuk memperoleh data dari dua buah querydimana data yang ditampilkan adalah data yang ada pada hasil query 1 dan tidak terdapat padadata dari hasil query 2 dengan ketentuan jumlah nama dan tipe kolom dari masing-masing tabelyang akan ditampilkan datanya harus samaSyntax SELECT FROM namatabel1 EXCEPT SELECT FROM namatabel2Pada MySQL tidak terdapat operator EXCEPT namun sebagai gantinya dapat menggunakanoperator NOT IN seperti contoh 2 pada bagian Nested Queries

13) Operasi JoinJoin merupakan operasi yang digunakan untuk menggabungkan dua tabel atau lebih dengan hasilberupa 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 Berikutini perintah untuk menampilkan kolom judul dari tabel film dan kolom harga dari tabel jenisfilm

Mysqlgt select judul harga from film jenisfilm where jenisfilmjenis = filmjenis

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 14

Pada contoh di atas jenisfilmjenis=filmjenis merupakan kondisi untuk mencocokkandata antara kolom jenis milik tabel jenisfilm dan filma Inner Join

Inner join digunakan untuk menampilkan data dari dua tabel yang berisi data sesuai dengansyarat dibelakang on (tidak boleh null) dengan kata lain semua data dari tabel kiri mendapatpasangan data dari tabel sebelah kanan Berikut ini perintah untuk menampilkan data dari tabeljenisfilm dan film dengan syarat berdasarkan kolom jenis

Mysqlgt select form jenisfilm join film on (jenisfilmjenis =filmjenis)

b Left JoinLeft join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintah left joinbeserta pasangannya dari tabel sebelah kanan Meskipun terdapat data dari sebelah kiri tidakmemiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilai NULL

Mysqlgt select form jenisfilm left join film on (jenisfilmjenis =filmjenis)

c Right JoinRight join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintah rightjoin beserta pasangannya dari tabel sebelah kiri Meskipun terdapat data dari sebelah kanantidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilai NULL

Mysqlgt select form jenisfilm right join film on (jenisfilmjenis =filmjenis)

d Natural JoinNatural join digunakan untuk menampilkan semua data dari dua tabel dimana jika terdapatkolom yang sama maka yang akan ditampilkan hanya salah satunya saja yaitu kolom dari tabelsebelah kiri perintah natural join

Mysqlgt select form jenisfilm natural join film

1) Natural Left JoinNatural left join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintahnatural left join beserta pasangannya dari tabel sebelah kanan Meskipun terdapat data darisebelah kiri tidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilaiNULL

Mysqlgt select form jenisfilm natural left join film

2) Natural Right JoinNatural right join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintahnatural right join beserta pasangannya dari tabel sebelah kiri Meskipun terdapat data darisebelah kanan tidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupanilai NULL

Mysqlgt select form jenisfilm natural right join film

Tugas

1 Buatlah database dengan nama ldquoMahasiswardquokuliah Penjualantransaksikaryawan2 Buatlah tabel dengan nama ldquoPenilaianrdquo dengan struktur tabel seperti berikut

Field Type Key Default Extra

NPM Int(8) PRI NULLKdMk Varchar(5) NULL

NamaMK Varchar NULLMid Float(5) NULLFinal Float(5) NULL

NilRata Float(5) NULL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 15

3 Sisipkan nilai-nilainya seperti tabel berikut

NPM KdMK NamaMK Mid Final NilRata10296832 KK021 75 82 10297732 KD132 775 735 20216832 KK021 835 817 30216832 KU122 654 77 10297732 KK021 795 825 20216832 KD132 805 83 30216832 KK021 67 78

4 Tampilkan seluruh record mahasiswa yang berkode matakuliah atauu KdMK=KK021

5 Tampilkan record field NpmKdMK dan Mid saja bagi yang nilai mid-nya antara 75 dan 90

6 Sisipkan nilai untuk field nama matakuliah (NamaMK) dengan ketentuan sebagai berikut KdMK NamaMKKK021 Sistem Basis DataKD132 SIMKU122 Pancasila

7 Sisipkan nilai untuk field nilai rata-rata (NilRata) dengan ketentuan sebagai berikut Mid + Final 2

8 Hapuslah record yang memiliki Npm = 10296832

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 16

MODUL 4

MANAJEMEN USER

MAKSUD DAN TUJUANAgar mahasiswa memahami manajeman user pada SQL

MATERIProses pembuatan user baru dan pemberian hak akses user

Untul MySQL versi 322 keatas dalam manajemen user dapat menggunakan perintah GRANTdan REVOKE

Perintah GRANTDipergunakan untuk membuat user baru dengan izin aksesnya

Bentuk umum GRANT jenis_akses (``nama_kolom) ON nama_database

TO nama_user IDENTIFIED BY rdquonama_passwordrdquo[WITH GRANT pilihan_akses]

Perintah REVOKEUntuk menghapus izin akses user

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_userPerintah DELETEUntuk menghapus user secara permanen

Membuat User BaruDengan perintah GRANTContoh membuat user vivien

Tingkatan akses adalah ALL user vivien sebagai administratorON = dapat meng-akses semua databaseTO vivien dapat ditulis TO vivien atau TO vivienlocalhost

Buat user baru dengan nama ldquoayyirdquodengan perintah

User ayyi dapat login ke MySQL dapat mengakses semua database tetapi tidak memiliki izinakses jadi sebagai dummy user atau blank user

Lihat tabel user

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 17

Bagaimana dengan izin akses caranya dengan memeriksa tabel user yaitu kolom privilegesdengan perintah SELECT FROM USER

User vivien bertanda rdquo Y rdquo dapat mengakses semuaUser ayyi bertanda rdquo N rdquo tidak dapat mengakses

Coba gunakan user rdquo ayyi rdquoKeluar dari MySQL dan login kembali dengan user rdquo ayyi rdquo password rdquo fathin rdquoTampilan

Sintax mysql ndashu ayyi ndashp

Coba lihat database yang dapat diaksesTampilan

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 18

User ayyi tidak dapat mengakses database yang sudah terbentuk di mysql hanya databaseinformation_schema

Coba membuat database

Access denied tidak diberikan izin untuk create

Memberikan Izin Akses tertentu

Jika akan memberikan izin akses SELECT INSERT UPDATE dan DELETE kepada user ayyi yanghanya dapat digunakan pada database latihdb1Pemberian izin akses hanya boleh dilakukan oleh user dalam akses root atau user yangdiberikan zin akses setingkat administrator

Sebagai contoh user rdquorootrdquo atau user rdquoiyusrdquo (nama anda sendiri)Jika menggunakan rootPerintah

Mysql ndashu root -p

Jika menggunakan user rdquoiyusrdquo (nama anda sendiri)Perintah

Mysql ndashu iyus(nama sendiri) -p

Gunakan salah satu dan Buat database baru dengan nama rsquolatihdb1rsquo

Berikan izin akses ke database latihdb1Aktifkan database mysql dan lihat tabel ndash

Berikan izin untuk insert update delete create pada user ayyi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 19

Lihat perubahan izin akses

Coba mengakses dengan user ayyiDan lihat database yang dapat diakses

Database latihdb1 dapat diakses dan jika terdapat akses yang tidak diizinkan maka lakukanperitah GRANT untuk izin akses pada user ayyi dengan ketetapan user admin sebagai root

Contoh

Contoh user ayyi membuat table pegawai dalam database latihdb1

Buatlah database akademik dengan tabel mahasiswa matakuliah dan kelasStruktur tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 20

Struktur tabel Matakuliah

Struktur tabel kelas

Memberikan izin akses per tabel dan per kolomDengan perintah grant dapat digunakan untuk memberikan izin akses per tabel dan per kolomtabel

Contoh user ayyi diberikan izin akses SELECT dan INSERT untuk kolom kota dan kdpos padatabel mahasiwa

Sintaksis MySQL

Pengaruh dari perintah grant tables sebelumnya kita coba menampilkan tabel table_privSintaksis pertama

Keterangan Host Dapat diakses di semua komputer terkoneksi jaringanDb Database Akademik yang dapat diaksesUser User AyyiTable_name Mahasiswa yang dapat diaksesGrantor rootlocalhost yang memberikan izin aksesTimestamp Tanggal pemberian izin 18 November 2009

jam 105552

Database Akademik

Tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 21

Sintaksis kedua

Keterangan Column_priv Select dan Insert izin akses kolom yang diberikan

Untuk melihat kolom mana saja yang diberikan izin akses select dan insert dengan perintah Sintaksis MySQL

Keterangan Column_name Kota dan KdPos kolom yang diberikan izin aksesColumn_priv Izin akses kedua kolom tersebut adalah select dan insert

Anda coba kewenangan apa saja yang dapat dilakukan oleh user ayyiKeluar dari mysqlDan login kembali dengan user ayyi

Lakukan perintah

Lakukan perintah select record yang ada pada tabel mahasiswa

Lihat database aktif

Lihat tabel aktif

Akatifkan database akademik

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 22

User ayyi tidak diizikan untuk menampilkan data pada tabel mahasiswaIzin akses nya adalah select untuk kolom kota dan kode posLakukan perintah select kota dan kodepos

Bagaimana dengan perintah delete tabel

Perintah delete ditolakBagaimana dengan perintah UPDATE kota

Bagimana dengan perintah insert

Untuk perintah update dan insert data tidak dapat dilakukan oleh user ayyi

Bagimana user ayyi dapat mengakses tabel mahasiswaKeluar dari MySQL dan login kembali menggunakan user rootDan berikan izin akses untuk tabel mahasiswa kepada user ayyi

Perintah ini memberikan status root kepada user ayyi hanya izin akses lengkap di databaseakademik tabel mahasiswa ( on akademikmahasiswa )

Coba keluar dan login kembali dengan user ayyiLakukan perintah update dan select

List data kota dan kode pos

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 23

Perintah update dapat dilakukan

Lakukan perintah select data keseluruhan

Bagaimana dengan menambah data gunakan perintah insert

Perintan insert dapat dilakukan dan jumlah data terdiri 6 record

Bagaimana dengan select untuk tabel mata kuliah dan kelas

Untuk mengakses tabel matakuliah dan kelas tidak di izinkan

Memberikan izin akses berdasarkan lokasi pengaksesAdmin atau root atau memberikan izin akses berdasarkan lokasi atau membatasi komputermana saja yang dapat mengakses MySQL serverContoh pemberian izin akses

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 24

Perlu diperhatikan format pemberian izin berhubungan dengan cara login ke MySQL contoh Jika pemberian izin akse dengan no IP komputer maka login juga harus mencantumkan no IP

Yang lebih fleksibel menggunakan tanda rdquordquo dapat diakses dimana saja ke server MySQL

Menghapus izin aksesMenggunakan perintah REVOKE penggunaan perintah revoke ini hanya menghapus izin aksesuntuk user tertentu bukan penghapus userUser yang bersangkutan tetap dapat login ke MySQL

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_user

User ayyi dapat mengakses tabel yang ada di database akademik

Sebagai contoh user ayyi dihapus izin akses untuk database akademik

Sintaksis

Jangan lupa diakhir dengan perintah flush

Kasus jika suatu root telah memberikan izin akses hanya untuk satu tabel seperti user ayyitelah dahulu diberikan all privileges kepada tabel mahasiswa maka untuk menghapusnyadisesuaikan dengan perintah grant

Untuk menghapus izin akses di tabel mahasiswa lakukan perintah (izin aksesnya sama denganperintah grant)

Konsep memberikan izin akses user ndash privileges user merupakan hal yang sangat penting dalammenyangkut masalah keamanan pada MySQL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 25

MODUL 5

VIEW

MAKSUD DAN TUJUAN

Agar mahasiswa1 Dapat membuat View2 Dapat Memanggil data melalui View3 Merubah definisi View4 Insert Update dan Delete data melalui View5 Menghapus (drop) view

MATERIProses pengolahan isi data di dalam table seperti membuat dan memanggil tabel menggunakan fungsiview

View adalah perintah query yang disimpan pada database dengan suatu nama tertentusehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang query tersebut

Syntax dasar perintah untuk membuat view adalah sebagai berikut

CREATE[OR REPLACE]VIEW view_name [(column_list)]AS select_statement

Kita menggunakan opsi OR REPLACE jika kita ingin mengganti view dengan nama yang samadengan perintah tersebut Jika tidak maka perintah CREATE VIEW akan menghasilkan errorjika nama view yang ingin dibuat sudah ada sebelumnya

Contoh Penggunaan

Kita akan membuat view dari relasi antara table film dan jenisfilm dari database rentaldengan nama view_harga Perintahnya adalah sebagai berikut

CREATE VIEW view_hargaASSELECT j1kode_film j1jenisj1judul j2hargaFROMfilm j1 JOIN jenisfilm j2 ON j1jenis= j2jenis

Eksekusi perintah berikut untuk memastikan view telah dibuat

SELECT FROM information_schemaviews WHERE table_name = view_harga

Terakhir query view tersebut untuk melihat hasilnya

SELECT FROM view_harga

Tugas

1 Buat Data Base baru dengan Koperasi

2 Lihat database

3 Masuk ke data base koperasi

4 Buat table Nasabah

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 26

Nama_field Tipe data size ket

Kd_nasabah Char 5 Primary key

Nama_nasabah varchar 35

Alamat varchar 35

Telepon varchar 15

Status enum (ldquotetaprdquordquotidak Tetaprdquo)

5 Lihat struktur tabl nasabah

6 Ubah typedata status menjadi varchar(20)

7 Hapus field status

8 Isi table nasabah

Kd_nasabah Nama_nasabah Alamat Telepon

00011 Ika Kepadangan 085730333999

00012 Rozi Depok 08586789380

00013 Ari Pasar Minggu 021986782

00014 Gali Sidoarjo 022456

9 Tampilkan data pada table nasabah

10 Tampilkan nasabah yang beralamat di depok

11 Ubah nama_nasabah dengan kd_nasabah 00012 menjdi Indriyani

12 Buat tabel Pinjaman

Nama field Tipe data size keterangan

No_Ref char

Kd_nasabah char

Jml-pimjam int

tempo date ldquo0000-00-00rdquo

13 Tambahkan primary key pada no_ref

14 Ganti tempo menjad tgl_tempo

15 Tambahkan field lama_pinjam varchar(10)

16 Isikan table pinjaman

No_ref Kd_nasabah Jml-pinjam Tgl_tempo Lama_pinjam

Ref01 00011 5000000 2010-06-14 6

Ref02 00012 2000000 2010-08-25 12

Ref03 00013 1500000 2010-10-20 3

17 Lihat jumlah pinjam di atas 3000000

18 Lihat jumlah pinjam pada kd_nasabah 00012

19 Hapus isi field dengan no_ref03

20 Hapus table pinjaman

21 Lihat table pada database

e koperasi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 5

MODUL 2

DDL (Data Definition Language)

MAKSUD DAN TUJUANAgar mahasiswa memahami cara manipulasi basis data dengan perintah DDLMATERIMembuat mengubah dan menghapus struktur dan definisi metadata dari objek-objek database

DDL merupakan kelompok perintah yang berfungsi untuk mendefinisikan atribut-atributbasis data tabel atribut(kolom) batasan-batasan terhadap suatu atribut serta hubungan antar tabel Yangtermasuk dalam kelompok DDL ini adalah CREATE ALTER dan DROP

a Membuat DatabaseSyntax CREATE DATABASE namadatabasenamadatabase tidak boleh mengandung spasi dan tidak boleh memiliki nama yang samaantar database Berikut ini perintah untuk membuat database dengan nama rental

mysqlgt create database rental

Syntax tambahan untuk menampilkan daftar nama database yang ada pada mysqlmenggunakan perintah Mysqlgt SHOW DATABASES

b Menghapus DatabaseSyntax DROP DATABASE namadatabaseDatabase yang akan dihapus sesuai dengan namadatabase Berikut ini perintah untukmenghapus database dengan nama rental

Mysqlgt drop database rental

c Membuat TabelSebelum membuat suatu tabel terlebih dahulu harus memilih salah satu database sebagaidatabase aktif yang akan digunakan untuk menyimpan tabel-tabel dengan menggunakansyntax USE namadatabaseBerikut ini perintah untuk menggunakan database dengan nama rental

Mysqlgt use rental

Syntax membuat table CREATE TABLE namatabel2(Field1 TipeData1Field2 TipeData2)namatabel tidak boleh mengandung spasi (space) Field1 dan TipeData1 merupakannama kolom pertama dan tipe data untuk kolom pertama Jika ingin membuat tabel dengankolom lebih dari satu maka setelah pendefinisian tipe data sebelumnya diberikan tanda koma() Berikut ini perintah untuk membuat tabel dengan nama jenisfilm

mysqlgt create table jenisfilm (jenis char(6)harga int)

Syntax tambahan Untuk menampilkan daftar nama tabel yang ada pada database yang sedang aktifdigunakan(dalam hal ini database rental)

Mysqlgt SHOW TABLES

Untuk menampilkan deskripsi tabel (dalam hal ini jenisfilm) syntaxnya adalah DESC namatabel

Contoh

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 6

Mysqlgt desc jenisfilm

d Menghapus TabelSyntax DROP TABLE namatabelTabel yang akan dihapus sesuai dengan namatabel berikut ini perintah untuk menghapustabel dengan nama jenisfilm

Mysqlgt drop table jenisfilm

e Mendefinisikan nullnot nullSyntax CREATE TABLE namatabel(Field1 TipeData1 NOT NULLField2 TipeData2)

Contoh

Mysqlgt create table jenisfilm(Jenis char(6) not nullHarga int)

f Mendefinisikan Nilai DefaultNilai default adalah nilai yang otomatis diberikan oleh sistem untuk suatu kolom ketika adapenambahan baris baru sementara nilai pada kolom tersebut tidak diisi oleh penggunaSyntax CREATE TABLE namatabel(Field1 TipeData1Field2 TipeData2 DEFAULT nilai)nilai adalah nilai default dari kolom tersebut

Contoh

Mysqlgt create table jenisfilm1(Jenis char(6Harga int default 0)

g Mendefinisikan Primary Key Pada TabelTerdapat tiga cara untuk mendefinisikan primary key Berikut ini adalah Syntaxmendefinisikan primary key untuk Field1CREATE TABLE namatabel(Field1 TipeData1 NOT NULL PRIMARY KEYField2 TipeData2)

Atau

CREATE TABLE namatabel(Field1 TipeData1Field2 TipeData2PRIMARY KEY(Field1))

atau

ALTER TABLE namatabel ADD CONSTRAINT namaconstraint PRIMARYKEY (namakolom)Berikut ini perintah untuk membuat tabel jenisfilm dengan kolom jenis tipe datanya char(6)harga tipe datanya int dengan mendefinisikan nilai not null dan primary key untuk kolomjenis serta nilai default untuk kolom harga

Mysqlgt create table jenisfilm (

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 7

jenis char(6) not null primary keyharga int default 0)

atau

Mysqlgt create table jenisfilm (jenis char(6) not nullharga int default 0primary key (jenis))

atau

Mysqlgt create table jenisfilm (jenis char(6) not nullharga int default 0)

Mysqlgt alter table jenisfilm add constraint pk primary key(jenis)

h Menghapus Primary Key Pada TabelPerintah Cara 1 Jika primary key dibuat dengan menggunakan alter table ALTER TABLE namatabel DROP CONSTRAINT namaconstraintCara 2 Jika primary key dibuat melalui create table ALTER TABLE namatabel DROP PRIMARY KEYBerikut ini perintah yang digunakan untuk menghapus primary key pada tabel jenisfilm

Mysqlgt alter table jenisfilm drop primary key

i Menambah Kolom Baru Pada TabelSyntax ALTER TABLE namatabel ADD fieldbaru tipenamatabel adalah nama tabel yang akan ditambah fieldnya Fieldbaru adalah namakolom yang akan ditambahkan tipe adalah tipe data dari kolom yang akan ditambahkanBerikut ini perintah untuk menambah kolom keterangan dengan tipe data varchar(25)

Mysqlgt alter table jenisfilm add keterangan varchar(25)

j Mengubah Tipe Data atau Lebar Kolom Pada TabelPerintah ALTER TABLE namatabel MODIFY COLUMN field tipenamatabel adalah nama tabel yang akan diubah tipe data atau lebar kolomnya Fieldadalah kolom yang akan diubah tipe data atau lebarnya Tipe adalah tipe data baru atau tipedata lama dengan lebar kolom yang berbeda Berikut ini perintah untuk mengubah tipe datauntuk kolom keterangan dengan char(20)

mysqlgt alter table jenisfilm modify column keteranganchar(20)

k Mengubah Nama KolomSyntax ALTER TABLE namatabel CHANGE COLUMN namalamakolomnamabarukolom tipedatanyanamatabel adalah nama tabel yang akan diubah nama kolomnya namalamakolomadalah kolom yang akan diganti namanya namabarukolom adalah nama baru kolomtipedatanya adalah tipe data dari kolom tersebut Berikut ini perintah untuk mengubahnama kolom keterangan menjadi ket

mysqlgt alter table jenisfilm change column keterangan ketchar(20)

l Menghapus Kolom Pada TabelSyntax ALTER TABLE namatabel DROP COLUMN namakolomBerikut ini perintah untuk menghapus kolom ket pada tabel jenisfilm

Mysqlgt alter table jenisfilm drop ket

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 8

m Mendefinisikan Foreign Key Pada TabelUntuk mendefinisikan foreign key maka harus dipastikan bahwa tabel dan atribut yangdirujuk (tabel induk dari foreign key) sudah didefinisikan terlebih dahulu Syntax CREATE TABLE namatabel(Field1 TipeData1Field2 TipeData2FOREIGN KEY (Field2) REFERENCES namatabelinduk

(namakolominduk)ON UPDATE CASCADEON DELETE NO ACTION

)atau

ALTER TABLE namatabel ADD CONSTRAINT namaconstraint FOREIGNKEY (namakolom) REFERENCES namatabelinduk (namakolominduk) ONUPDATE CASCADE ON DELETE NO ACTIONBerikut ini perintah untuk membuat tabel film beserta kolom-kolomnya

Mysqlgt create table film(Kode_film char(3) not null primary keyJenis char(6) not nullJudul varchar(30)Jml_keping intJml_film intForeign key(jenis) references jenisfilm(jenis) on

update cascadeon delete no action)

atau

mysqlgt create table film (kode_film char(3) not null primary keyjenis char(6) not nulljudul varchar(30)jml_keping intjml_film int)

mysqlgt alter table film add constraint fk foreign key (jenis)references jenisfilm(jenis) on update cascade on delete noaction

n Menghapus Foreign KeyPerintah ALTER TABLE namatabel DROP FOREIGN KEY namaconstraint Berikut iniperintah untuk menghapus foreign key pada tabel film

Mysqlgt alter table film drop foreign key fkTugas

1 Buatlahdatabase dengannama Penggajian2 Buat struktur tabel seperti dibawah ini

3 Berikan primary key padafield golditabelgolongan4 Tambahkansatufield tanggal_lahirpadatable5 karyawandengandata type date6 Tambahkanfield kotapadatable karyawandengan data type text 207 Ubahnamafield tanggal_lahirpadatable karyawan dengan namattl8 Ubahsize field kotapadatable karyawandengansize9 Hapusfield ttlpadatabelkaryawan10 Hapus field kota pada tabel karyawan11 Hapuskeduatabeltersebut

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 9

MODUL 3

DML (Data Manipulation Language)

MAKSUD DAN TUJUANAgar mahasiswa memahami cara manipulasi basis data dengan perintah DML

MATERIProses pengolahan isi data di dalam table seperti memasukkan merubah dan menghapus isi data - dantidak terkait dengan perubahan struktur dan definisi tipe data dari objek database

DML adalah kelompok perintah yang berfungsi untuk memanipulasi data dalam basis datamisalnya untuk pengambilan penyisipan pengubahan dan penghapusan data Perintah yang termasukdalah kategori DML adalah INSERT DELETE UPDATE dan SELECT

a INSERTPerintah INSERT digunakan untuk menambahkan baris pada suatu tabelTerdapat dua cara untuk menambah baris yaitu Cara 1 Menambah baris dengan mengisi data pada setiap kolom INSERT INTO namatabel VALUES (nilai1nilai2nilai-n)Cara 2 Menambah baris dengan hanya mengisi data pada kolom tertentu INSERT INTO namatabel (kolom1kolom2kolom-n) VALUES(nilai1nilai2nilai-n)Berikut ini perintah untuk menambahkan baris pada tabel jenisfilm Cara 1

Mysqlgt insert into jenisfilm values (lsquoactionrsquo3000)

Cara 2

Mysqlgt insert into jenisfilm (jenisharga) values (lsquohororrsquo3500)

Keterangan Jika data bertipe string date atau time (contoh action horor 2007-11-10) maka pemberian nilainyadiapit dengan tanda petik tunggal (lsquohororrsquo) atau petik ganda (ldquohororrdquo) Jika data bertipe numerik(2500 400) maka pemberian nilainya tidak diapit tanda petik tunggal maupun ganda

b DELETEPerintah DELETE digunakan untuk menghapus satu baris baris dengan kondisi tertentu atau seluruhbarisSyntax DELETE FROM namatabel [WHERE kondisi]Perintah dalam tanda [] bersifat opsional untuk menghapus suatu baris dengan suatu kondisi tertentuBerikut ini perintah untuk menghapus baris pada tabel jenisfilm dengan data sebagai berikut

Mysqlgt select from jenisfilm

Contoh 1 jika ingin menghapus seluruh baris pada tabel jenisfilm

Mysqlgt delete from jenisfilm

Contoh 2 jika ingin menghapus baris yang memiliki nilai 3000 pada kolom harga pada tabeljenisfilm maka perintahnya sebagai berikut

Mysqlgt delete from jenisfilm where harga=3000

Contoh 3 jika ingin menghapus baris yang memiliki nilai drama pada kolom jenis pada tabeljenisfilm maka perintahnya sebagai berikut

Mysqlgt delete from jenisfilm where jenis=rsquodramarsquo

c UPDATEPerintah UPDATE digunakan untuk mengubah isi data pada satu atau beberapa kolom pada suatutabelSyntax

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 10

UPDATE namatabel SET kolom1 = nilai1 kolom2 = nilai2 [WHEREkondisi]Perintah dalam tanda [] bersifat opsional untuk mengubah suatu baris dengan suatu kondisi tertentuBerikut ini perintah untuk mengubah baris pada tabel jenisfilm dengan data sebagai berikut

Mysqlgt select from jenisfilm

Contoh 1 mengubah semua nilai pada kolom harga menjadi 2000

Mysqlgt update jenisfilm set harga=2000

Contoh 2 mengubah nilai pada kolom harga menjadi 2500 dimana nilai pada kolom jenis adalahaction

Mysqlgt update jenisfilm set harga=2500 where jenis=rsquoactionrsquo

d SELECTPerintah SELECT digunakan untuk menampilkan isi dari suatu tabel yang dapat dihubungkandengan tabel yang lainnya

1) Menampilkan data untuk semua kolom menggunakan asterisk ()Syntax SELECT FROM namatabelBerikut ini perintah untuk menampilkan semua data pada tabel jenisfilm

Mysqlgt select from jenisfilm

2) Menampilkan data untuk kolom tertentuSyntax SELECT kolom1kolom2kolom-n FROM namatabelBerikut ini perintah untuk menampilkan data pada tabel jenisfilm dengan kolom yang ditampilkanadalah kolom jenis Mysqlgt select jenis from jenisfilm

3) Menampilkan data dengan kondisi data tertentu dengan klausa WHERESyntax SELECT FROM namatabel WHERE kondisiBerikut ini perintah untuk menampilkan data pada tabel jenisfilm dimana nilai pada kolom jenisadalah drama

Mysqlgt select from jenisfilm where jenis=rsquodramarsquo

Beberapa operator perbandingan yang dapat digunakan pada klausa WHERE selain ldquo=rdquo adalah gt(lebih dari) lt (kurang dari) lt gt (tidak sama dengan) gt= (lebih dari atau sama dengan) lt= (kurangdari atau sama dengan) Adapun operator lain yaitu AND OR NOT BETWEEN-AND IN danLIKE Berikut ini data yang ada pada tabel jenisfilm

Mysqlgt select from jenisfilm

Contoh 1 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai harga berkisar dari1000 hingga 3000

Mysqlgt select from jenisfilm where hargagt=1000 and hargalt=3000

Atau

Mysqlgt select from jenisfilm where harga between 1000 and 3000

Contoh 2 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai harga sama dengan1000 atau 3000

Mysqlgt select from jenisfilm where harga=1000 or harga=3000

atau

mysqlgt select from jenisfilm where harga in (10003000)

Contoh 3 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai pada kolom jenis tidaksama dengan action

Mysqlgt select from jenisfilm where not jenis=rsquoactionrsquo

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 11

atau

mysqlgt selectfrom jenisfilm where jenisltgtrsquoactionrsquo

Contoh 4 Isi tabel film

Mysqlgt selectfrom film

perintah untuk menampilkan data pada tabel film dimana data pada kolom tertentu diawali dengannilai tertentu misalnya pada kolom judul dimana diawali dengan karakter lsquoSrsquo

Mysqlgt selectfrom film where judul like lsquoSrsquo

4) Memberikan nama lain pada kolomSyntax SELECT namakolomlama AS namakolombaru FROM namatabelBerikut ini perintah untuk memberikan nama lain pada kolom jenis menjadi jenis_film pada tabeljenisfilm

Mysqlgt select jenis as jenis_film from jenisfilm

5) Menggunakan alias untuk nama tabelSyntax SELECT nmaliasjenis nmaliasharga FROM namatabel nmaliasBerikut ini perintah untuk memberikan alias pada tabel jenisfilm

Mysqlgt select jjenis jharga from jenisfilm j

6) Menampilkan data lebih dari dua tabelSyntax SELECT from namatabel1namatabel2namatabel-nIsi tabel jenisfilm

Mysqlgt selectfrom jenisfilm

Isi tabel film

Mysqlgt selectfrom film

Berikut ini perintah untuk menampilkan semua data pada tabel jenisfilm dan film

Mysqlgt selectfrom jenisfilmfilm

7) Nested Queries Subquery (IN NOT IN EXISTS NOT EXISTS)Subquery berarti query di dalam query Dengan menggunakan subquery hasil dari query akanmenjadi bagian dari query di atasnyaSubquery terletak di dalam klausa WHERE atau HAVING Pada klausa WHERE subquerydigunakan untuk memilih baris-baris tertentu yang kemudian digunakan oleh query Sedangkan padaklausa HAVING subquery digunakan untuk memilih kelompok baris yang kemudian digunakanoleh query

Contoh 1 perintah untuk menampilkan data pada tabel jenisfilm yang mana data pada kolom jenis-nya tercantum pada tabel film menggunakan IN

Mysqlgt selectfrom jenisfilm where jenis in (select jenis from film)

atau menggunakan EXISTS

Mysqlgt selectfrom jenisfilm where exists (select from film where jenisfilmjenis =filmjenis)

Pada contoh di atas SELECT jenis FROM film

disebut subquery sedangkan SELECT FROM jenisfilm

berkedudukan sebagai query Perhatikan terdapat data jenis dan harga pada tabel jenisfilm yangtidak ditampilkan Hal ini disebabkan data pada kolom jenis tidak terdapat pada kolom jenis di tabelfilm

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 12

Contoh 2 perintah untuk menampilkan data pada tabel jenisfilm yang mana data pada kolom jenis-nya tidak tercantum pada tabel film menggunakan NOT IN

Mysqlgt selectfrom jenisfilm where jenis not in (select jenis from film)

atau menggunakan NOT EXISTS

Mysqlgt selectfrom jenisfilm where not exists (select from film where jenisfilmjenis =filmjenis)

8) Operator comparison ANY dan ALLa Operator ANY digunakan berkaitan dengan subquery Operator ini menghasilkan TRUE (benar)

jika paling tidak salah satu perbandingan dengan hasil subquery menghasilkan nilai TRUEIlustrasinya

Gaji gt ANY (S)Jika subquery S menghasilkan G1 G2 Gn maka kondisi di atas identik dengan

(gaji gt G1) OR (gaji gt G2) OR OR (gaji gt Gn)Contoh perintah untuk menampilkan semua data jenisfilm yang harganya bukan yang terkecil

Mysqlgt selectfrom jenisfilm where harga gt ANY (select harga from jenisfilm)

b Operator ALL digunakan untuk melakukan perbandingan dengan subquery Kondisi dengan ALLmenghasilkan nilai TRUE (benar) jika subquery tidak menghasilkan apapun atau jikaperbandingan menghasilkan TRUE untuk setiap nilai query terhadap hasil subqueryContoh perintah untuk menampilkan data jenisfilm yang harganya paling tinggi

Mysqlgt selectfrom jenisfilm where harga gt= ALL (select harga from jenisfilm)

9) Aggregate Functions (COUNT SUM AVG MIN MAX)a COUNT

Perintah yang digunakan untuk menghitung jumlah baris suatu kolom pada tabel Contoh perintah untuk menghitung jumlah baris kolom jenis pada tabel jenisfilm

Mysqlgt select count(jenis) form jenisfilm

b SUMPerintah yang digunakan untuk menghitung jumlah nilai suatu kolom pada tabel Contoh perintah untuk menghitung jumlah nilai kolom harga pada tabel jenisfilm

Mysqlgt select sum (harga) form jenisfilm

c AVGPerintah yang digunakan untuk menghitung rata-rata dari nilai suatu kolom pada tabel Contoh perintah untuk menghitung rata-rata dari kolom harga pada tabel jenisfilm

Mysqlgt select avg(harga) form jenisfilm

d MINPerintah yang digunakan untuk menampilkan nilai terkecil dari suatu kolom pada tabel Contoh perintah untuk menampilkan nilai terkecil dari kolom harga pada tabel jenisfilm Mysqlgt select min(harga) form jenisfilm

e MAXPerintah yang digunakan untuk menampilkan nilai terbesar dari suatu kolom pada tabel Contoh perintah untuk menampilkan nilai terbesar dari kolom harga pada tabel jenisfilm

Mysqlgt select max(harga) form jenisfilm

10) SQL dengan GROUP BY dan HAVINGKlausa GROUP BY digunakan untuk melakukan pengelompokan data Sebagai contoh terdapattabel film dengan data sebagai berikut

Mysqlgt select form film

akan ditampilkan hanya kolom jenis dan digabungkan dengan SUM(jml_film) yang dikelompokkanberdasarkan kolom jenis pada tabel film

Mysqlgt select jenissum(jml_film) from film group by jenis

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 13

Klausa HAVING digunakan untuk menentukan kondisi bagi klausa GROUP BY Kelompok yangmemenuhi HAVING saja yang akan dihasilkan Contoh perintah untuk menampilkan data hanyakolom jenis yang dikelompokkan berdasarkan kolom jenis dimana jumlah film berdasarkankelompoknya harus lebih besar dari satu pada tabel film

Mysqlgt select jenis film group by jenis having count(kode_film) gt1

11) ORDER BYKlausa ORDER BY digunakan untuk mengurutkan data berdasarkan kolom tertentu sesuai dengantipe data yang dimiliki Contoh perintah untuk mengurutkan data film berdasarkan kolom judul

Mysqlgt select from film order by judul

atau tambahkan ASC untuk pengurutan secara ascending (menaik)

Mysqlgt select from film order by judul asc

atau tambahkan DESC untuk pengurutan secara descending (menurun)

Mysqlgt select from film order by judul desc

12) UNION INTERSECT dan EXCEPT

a UNIONUNION merupakan operator yang digunakan untuk menggabungkan hasil query denganketentuan jumlah nama dan tipe kolom dari masing-masing tabel yang akan ditampilkandatanya harus sama Berikut ini perintah untuk memperoleh data pada tabel film dimanajenisnya action dan horor

Mysqlgt select jenisjudul from film where jenis=rsquoactionrsquo uniongt select jenisjudul film from film where jenis=rsquohororrsquo

Perintah di atas identik dengan

Mysqlgt select jenisjudul from film where jenis=rsquoactionrsquo or jenis =rsquounionrsquo

Namun tidak semua penggabungan dapat dilakukan dengan OR yaitu jika bekerja pada duatabel atau lebih

b INTERSECTINTERSECT merupakan operator yang digunakan untuk memperoleh data dari dua buah querydimana data yang ditampilkan adalah yang memenuhi kedua query tersebut dengan ketentuanjumlah nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harussamaSyntax SELECT FROM namatabel1 INTERSECT SELECT FROMnamatabel2Pada MySQL tidak terdapat operator INTERSECT namun sebagai gantinya dapat menggunakanoperator IN seperti contoh 1 pada bagian Nested Queries

c EXCEPT Set DifferenceEXCEPT merupakan operator yang digunakan untuk memperoleh data dari dua buah querydimana data yang ditampilkan adalah data yang ada pada hasil query 1 dan tidak terdapat padadata dari hasil query 2 dengan ketentuan jumlah nama dan tipe kolom dari masing-masing tabelyang akan ditampilkan datanya harus samaSyntax SELECT FROM namatabel1 EXCEPT SELECT FROM namatabel2Pada MySQL tidak terdapat operator EXCEPT namun sebagai gantinya dapat menggunakanoperator NOT IN seperti contoh 2 pada bagian Nested Queries

13) Operasi JoinJoin merupakan operasi yang digunakan untuk menggabungkan dua tabel atau lebih dengan hasilberupa 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 Berikutini perintah untuk menampilkan kolom judul dari tabel film dan kolom harga dari tabel jenisfilm

Mysqlgt select judul harga from film jenisfilm where jenisfilmjenis = filmjenis

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 14

Pada contoh di atas jenisfilmjenis=filmjenis merupakan kondisi untuk mencocokkandata antara kolom jenis milik tabel jenisfilm dan filma Inner Join

Inner join digunakan untuk menampilkan data dari dua tabel yang berisi data sesuai dengansyarat dibelakang on (tidak boleh null) dengan kata lain semua data dari tabel kiri mendapatpasangan data dari tabel sebelah kanan Berikut ini perintah untuk menampilkan data dari tabeljenisfilm dan film dengan syarat berdasarkan kolom jenis

Mysqlgt select form jenisfilm join film on (jenisfilmjenis =filmjenis)

b Left JoinLeft join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintah left joinbeserta pasangannya dari tabel sebelah kanan Meskipun terdapat data dari sebelah kiri tidakmemiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilai NULL

Mysqlgt select form jenisfilm left join film on (jenisfilmjenis =filmjenis)

c Right JoinRight join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintah rightjoin beserta pasangannya dari tabel sebelah kiri Meskipun terdapat data dari sebelah kanantidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilai NULL

Mysqlgt select form jenisfilm right join film on (jenisfilmjenis =filmjenis)

d Natural JoinNatural join digunakan untuk menampilkan semua data dari dua tabel dimana jika terdapatkolom yang sama maka yang akan ditampilkan hanya salah satunya saja yaitu kolom dari tabelsebelah kiri perintah natural join

Mysqlgt select form jenisfilm natural join film

1) Natural Left JoinNatural left join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintahnatural left join beserta pasangannya dari tabel sebelah kanan Meskipun terdapat data darisebelah kiri tidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilaiNULL

Mysqlgt select form jenisfilm natural left join film

2) Natural Right JoinNatural right join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintahnatural right join beserta pasangannya dari tabel sebelah kiri Meskipun terdapat data darisebelah kanan tidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupanilai NULL

Mysqlgt select form jenisfilm natural right join film

Tugas

1 Buatlah database dengan nama ldquoMahasiswardquokuliah Penjualantransaksikaryawan2 Buatlah tabel dengan nama ldquoPenilaianrdquo dengan struktur tabel seperti berikut

Field Type Key Default Extra

NPM Int(8) PRI NULLKdMk Varchar(5) NULL

NamaMK Varchar NULLMid Float(5) NULLFinal Float(5) NULL

NilRata Float(5) NULL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 15

3 Sisipkan nilai-nilainya seperti tabel berikut

NPM KdMK NamaMK Mid Final NilRata10296832 KK021 75 82 10297732 KD132 775 735 20216832 KK021 835 817 30216832 KU122 654 77 10297732 KK021 795 825 20216832 KD132 805 83 30216832 KK021 67 78

4 Tampilkan seluruh record mahasiswa yang berkode matakuliah atauu KdMK=KK021

5 Tampilkan record field NpmKdMK dan Mid saja bagi yang nilai mid-nya antara 75 dan 90

6 Sisipkan nilai untuk field nama matakuliah (NamaMK) dengan ketentuan sebagai berikut KdMK NamaMKKK021 Sistem Basis DataKD132 SIMKU122 Pancasila

7 Sisipkan nilai untuk field nilai rata-rata (NilRata) dengan ketentuan sebagai berikut Mid + Final 2

8 Hapuslah record yang memiliki Npm = 10296832

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 16

MODUL 4

MANAJEMEN USER

MAKSUD DAN TUJUANAgar mahasiswa memahami manajeman user pada SQL

MATERIProses pembuatan user baru dan pemberian hak akses user

Untul MySQL versi 322 keatas dalam manajemen user dapat menggunakan perintah GRANTdan REVOKE

Perintah GRANTDipergunakan untuk membuat user baru dengan izin aksesnya

Bentuk umum GRANT jenis_akses (``nama_kolom) ON nama_database

TO nama_user IDENTIFIED BY rdquonama_passwordrdquo[WITH GRANT pilihan_akses]

Perintah REVOKEUntuk menghapus izin akses user

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_userPerintah DELETEUntuk menghapus user secara permanen

Membuat User BaruDengan perintah GRANTContoh membuat user vivien

Tingkatan akses adalah ALL user vivien sebagai administratorON = dapat meng-akses semua databaseTO vivien dapat ditulis TO vivien atau TO vivienlocalhost

Buat user baru dengan nama ldquoayyirdquodengan perintah

User ayyi dapat login ke MySQL dapat mengakses semua database tetapi tidak memiliki izinakses jadi sebagai dummy user atau blank user

Lihat tabel user

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 17

Bagaimana dengan izin akses caranya dengan memeriksa tabel user yaitu kolom privilegesdengan perintah SELECT FROM USER

User vivien bertanda rdquo Y rdquo dapat mengakses semuaUser ayyi bertanda rdquo N rdquo tidak dapat mengakses

Coba gunakan user rdquo ayyi rdquoKeluar dari MySQL dan login kembali dengan user rdquo ayyi rdquo password rdquo fathin rdquoTampilan

Sintax mysql ndashu ayyi ndashp

Coba lihat database yang dapat diaksesTampilan

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 18

User ayyi tidak dapat mengakses database yang sudah terbentuk di mysql hanya databaseinformation_schema

Coba membuat database

Access denied tidak diberikan izin untuk create

Memberikan Izin Akses tertentu

Jika akan memberikan izin akses SELECT INSERT UPDATE dan DELETE kepada user ayyi yanghanya dapat digunakan pada database latihdb1Pemberian izin akses hanya boleh dilakukan oleh user dalam akses root atau user yangdiberikan zin akses setingkat administrator

Sebagai contoh user rdquorootrdquo atau user rdquoiyusrdquo (nama anda sendiri)Jika menggunakan rootPerintah

Mysql ndashu root -p

Jika menggunakan user rdquoiyusrdquo (nama anda sendiri)Perintah

Mysql ndashu iyus(nama sendiri) -p

Gunakan salah satu dan Buat database baru dengan nama rsquolatihdb1rsquo

Berikan izin akses ke database latihdb1Aktifkan database mysql dan lihat tabel ndash

Berikan izin untuk insert update delete create pada user ayyi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 19

Lihat perubahan izin akses

Coba mengakses dengan user ayyiDan lihat database yang dapat diakses

Database latihdb1 dapat diakses dan jika terdapat akses yang tidak diizinkan maka lakukanperitah GRANT untuk izin akses pada user ayyi dengan ketetapan user admin sebagai root

Contoh

Contoh user ayyi membuat table pegawai dalam database latihdb1

Buatlah database akademik dengan tabel mahasiswa matakuliah dan kelasStruktur tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 20

Struktur tabel Matakuliah

Struktur tabel kelas

Memberikan izin akses per tabel dan per kolomDengan perintah grant dapat digunakan untuk memberikan izin akses per tabel dan per kolomtabel

Contoh user ayyi diberikan izin akses SELECT dan INSERT untuk kolom kota dan kdpos padatabel mahasiwa

Sintaksis MySQL

Pengaruh dari perintah grant tables sebelumnya kita coba menampilkan tabel table_privSintaksis pertama

Keterangan Host Dapat diakses di semua komputer terkoneksi jaringanDb Database Akademik yang dapat diaksesUser User AyyiTable_name Mahasiswa yang dapat diaksesGrantor rootlocalhost yang memberikan izin aksesTimestamp Tanggal pemberian izin 18 November 2009

jam 105552

Database Akademik

Tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 21

Sintaksis kedua

Keterangan Column_priv Select dan Insert izin akses kolom yang diberikan

Untuk melihat kolom mana saja yang diberikan izin akses select dan insert dengan perintah Sintaksis MySQL

Keterangan Column_name Kota dan KdPos kolom yang diberikan izin aksesColumn_priv Izin akses kedua kolom tersebut adalah select dan insert

Anda coba kewenangan apa saja yang dapat dilakukan oleh user ayyiKeluar dari mysqlDan login kembali dengan user ayyi

Lakukan perintah

Lakukan perintah select record yang ada pada tabel mahasiswa

Lihat database aktif

Lihat tabel aktif

Akatifkan database akademik

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 22

User ayyi tidak diizikan untuk menampilkan data pada tabel mahasiswaIzin akses nya adalah select untuk kolom kota dan kode posLakukan perintah select kota dan kodepos

Bagaimana dengan perintah delete tabel

Perintah delete ditolakBagaimana dengan perintah UPDATE kota

Bagimana dengan perintah insert

Untuk perintah update dan insert data tidak dapat dilakukan oleh user ayyi

Bagimana user ayyi dapat mengakses tabel mahasiswaKeluar dari MySQL dan login kembali menggunakan user rootDan berikan izin akses untuk tabel mahasiswa kepada user ayyi

Perintah ini memberikan status root kepada user ayyi hanya izin akses lengkap di databaseakademik tabel mahasiswa ( on akademikmahasiswa )

Coba keluar dan login kembali dengan user ayyiLakukan perintah update dan select

List data kota dan kode pos

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 23

Perintah update dapat dilakukan

Lakukan perintah select data keseluruhan

Bagaimana dengan menambah data gunakan perintah insert

Perintan insert dapat dilakukan dan jumlah data terdiri 6 record

Bagaimana dengan select untuk tabel mata kuliah dan kelas

Untuk mengakses tabel matakuliah dan kelas tidak di izinkan

Memberikan izin akses berdasarkan lokasi pengaksesAdmin atau root atau memberikan izin akses berdasarkan lokasi atau membatasi komputermana saja yang dapat mengakses MySQL serverContoh pemberian izin akses

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 24

Perlu diperhatikan format pemberian izin berhubungan dengan cara login ke MySQL contoh Jika pemberian izin akse dengan no IP komputer maka login juga harus mencantumkan no IP

Yang lebih fleksibel menggunakan tanda rdquordquo dapat diakses dimana saja ke server MySQL

Menghapus izin aksesMenggunakan perintah REVOKE penggunaan perintah revoke ini hanya menghapus izin aksesuntuk user tertentu bukan penghapus userUser yang bersangkutan tetap dapat login ke MySQL

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_user

User ayyi dapat mengakses tabel yang ada di database akademik

Sebagai contoh user ayyi dihapus izin akses untuk database akademik

Sintaksis

Jangan lupa diakhir dengan perintah flush

Kasus jika suatu root telah memberikan izin akses hanya untuk satu tabel seperti user ayyitelah dahulu diberikan all privileges kepada tabel mahasiswa maka untuk menghapusnyadisesuaikan dengan perintah grant

Untuk menghapus izin akses di tabel mahasiswa lakukan perintah (izin aksesnya sama denganperintah grant)

Konsep memberikan izin akses user ndash privileges user merupakan hal yang sangat penting dalammenyangkut masalah keamanan pada MySQL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 25

MODUL 5

VIEW

MAKSUD DAN TUJUAN

Agar mahasiswa1 Dapat membuat View2 Dapat Memanggil data melalui View3 Merubah definisi View4 Insert Update dan Delete data melalui View5 Menghapus (drop) view

MATERIProses pengolahan isi data di dalam table seperti membuat dan memanggil tabel menggunakan fungsiview

View adalah perintah query yang disimpan pada database dengan suatu nama tertentusehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang query tersebut

Syntax dasar perintah untuk membuat view adalah sebagai berikut

CREATE[OR REPLACE]VIEW view_name [(column_list)]AS select_statement

Kita menggunakan opsi OR REPLACE jika kita ingin mengganti view dengan nama yang samadengan perintah tersebut Jika tidak maka perintah CREATE VIEW akan menghasilkan errorjika nama view yang ingin dibuat sudah ada sebelumnya

Contoh Penggunaan

Kita akan membuat view dari relasi antara table film dan jenisfilm dari database rentaldengan nama view_harga Perintahnya adalah sebagai berikut

CREATE VIEW view_hargaASSELECT j1kode_film j1jenisj1judul j2hargaFROMfilm j1 JOIN jenisfilm j2 ON j1jenis= j2jenis

Eksekusi perintah berikut untuk memastikan view telah dibuat

SELECT FROM information_schemaviews WHERE table_name = view_harga

Terakhir query view tersebut untuk melihat hasilnya

SELECT FROM view_harga

Tugas

1 Buat Data Base baru dengan Koperasi

2 Lihat database

3 Masuk ke data base koperasi

4 Buat table Nasabah

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 26

Nama_field Tipe data size ket

Kd_nasabah Char 5 Primary key

Nama_nasabah varchar 35

Alamat varchar 35

Telepon varchar 15

Status enum (ldquotetaprdquordquotidak Tetaprdquo)

5 Lihat struktur tabl nasabah

6 Ubah typedata status menjadi varchar(20)

7 Hapus field status

8 Isi table nasabah

Kd_nasabah Nama_nasabah Alamat Telepon

00011 Ika Kepadangan 085730333999

00012 Rozi Depok 08586789380

00013 Ari Pasar Minggu 021986782

00014 Gali Sidoarjo 022456

9 Tampilkan data pada table nasabah

10 Tampilkan nasabah yang beralamat di depok

11 Ubah nama_nasabah dengan kd_nasabah 00012 menjdi Indriyani

12 Buat tabel Pinjaman

Nama field Tipe data size keterangan

No_Ref char

Kd_nasabah char

Jml-pimjam int

tempo date ldquo0000-00-00rdquo

13 Tambahkan primary key pada no_ref

14 Ganti tempo menjad tgl_tempo

15 Tambahkan field lama_pinjam varchar(10)

16 Isikan table pinjaman

No_ref Kd_nasabah Jml-pinjam Tgl_tempo Lama_pinjam

Ref01 00011 5000000 2010-06-14 6

Ref02 00012 2000000 2010-08-25 12

Ref03 00013 1500000 2010-10-20 3

17 Lihat jumlah pinjam di atas 3000000

18 Lihat jumlah pinjam pada kd_nasabah 00012

19 Hapus isi field dengan no_ref03

20 Hapus table pinjaman

21 Lihat table pada database

e koperasi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 6

Mysqlgt desc jenisfilm

d Menghapus TabelSyntax DROP TABLE namatabelTabel yang akan dihapus sesuai dengan namatabel berikut ini perintah untuk menghapustabel dengan nama jenisfilm

Mysqlgt drop table jenisfilm

e Mendefinisikan nullnot nullSyntax CREATE TABLE namatabel(Field1 TipeData1 NOT NULLField2 TipeData2)

Contoh

Mysqlgt create table jenisfilm(Jenis char(6) not nullHarga int)

f Mendefinisikan Nilai DefaultNilai default adalah nilai yang otomatis diberikan oleh sistem untuk suatu kolom ketika adapenambahan baris baru sementara nilai pada kolom tersebut tidak diisi oleh penggunaSyntax CREATE TABLE namatabel(Field1 TipeData1Field2 TipeData2 DEFAULT nilai)nilai adalah nilai default dari kolom tersebut

Contoh

Mysqlgt create table jenisfilm1(Jenis char(6Harga int default 0)

g Mendefinisikan Primary Key Pada TabelTerdapat tiga cara untuk mendefinisikan primary key Berikut ini adalah Syntaxmendefinisikan primary key untuk Field1CREATE TABLE namatabel(Field1 TipeData1 NOT NULL PRIMARY KEYField2 TipeData2)

Atau

CREATE TABLE namatabel(Field1 TipeData1Field2 TipeData2PRIMARY KEY(Field1))

atau

ALTER TABLE namatabel ADD CONSTRAINT namaconstraint PRIMARYKEY (namakolom)Berikut ini perintah untuk membuat tabel jenisfilm dengan kolom jenis tipe datanya char(6)harga tipe datanya int dengan mendefinisikan nilai not null dan primary key untuk kolomjenis serta nilai default untuk kolom harga

Mysqlgt create table jenisfilm (

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 7

jenis char(6) not null primary keyharga int default 0)

atau

Mysqlgt create table jenisfilm (jenis char(6) not nullharga int default 0primary key (jenis))

atau

Mysqlgt create table jenisfilm (jenis char(6) not nullharga int default 0)

Mysqlgt alter table jenisfilm add constraint pk primary key(jenis)

h Menghapus Primary Key Pada TabelPerintah Cara 1 Jika primary key dibuat dengan menggunakan alter table ALTER TABLE namatabel DROP CONSTRAINT namaconstraintCara 2 Jika primary key dibuat melalui create table ALTER TABLE namatabel DROP PRIMARY KEYBerikut ini perintah yang digunakan untuk menghapus primary key pada tabel jenisfilm

Mysqlgt alter table jenisfilm drop primary key

i Menambah Kolom Baru Pada TabelSyntax ALTER TABLE namatabel ADD fieldbaru tipenamatabel adalah nama tabel yang akan ditambah fieldnya Fieldbaru adalah namakolom yang akan ditambahkan tipe adalah tipe data dari kolom yang akan ditambahkanBerikut ini perintah untuk menambah kolom keterangan dengan tipe data varchar(25)

Mysqlgt alter table jenisfilm add keterangan varchar(25)

j Mengubah Tipe Data atau Lebar Kolom Pada TabelPerintah ALTER TABLE namatabel MODIFY COLUMN field tipenamatabel adalah nama tabel yang akan diubah tipe data atau lebar kolomnya Fieldadalah kolom yang akan diubah tipe data atau lebarnya Tipe adalah tipe data baru atau tipedata lama dengan lebar kolom yang berbeda Berikut ini perintah untuk mengubah tipe datauntuk kolom keterangan dengan char(20)

mysqlgt alter table jenisfilm modify column keteranganchar(20)

k Mengubah Nama KolomSyntax ALTER TABLE namatabel CHANGE COLUMN namalamakolomnamabarukolom tipedatanyanamatabel adalah nama tabel yang akan diubah nama kolomnya namalamakolomadalah kolom yang akan diganti namanya namabarukolom adalah nama baru kolomtipedatanya adalah tipe data dari kolom tersebut Berikut ini perintah untuk mengubahnama kolom keterangan menjadi ket

mysqlgt alter table jenisfilm change column keterangan ketchar(20)

l Menghapus Kolom Pada TabelSyntax ALTER TABLE namatabel DROP COLUMN namakolomBerikut ini perintah untuk menghapus kolom ket pada tabel jenisfilm

Mysqlgt alter table jenisfilm drop ket

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 8

m Mendefinisikan Foreign Key Pada TabelUntuk mendefinisikan foreign key maka harus dipastikan bahwa tabel dan atribut yangdirujuk (tabel induk dari foreign key) sudah didefinisikan terlebih dahulu Syntax CREATE TABLE namatabel(Field1 TipeData1Field2 TipeData2FOREIGN KEY (Field2) REFERENCES namatabelinduk

(namakolominduk)ON UPDATE CASCADEON DELETE NO ACTION

)atau

ALTER TABLE namatabel ADD CONSTRAINT namaconstraint FOREIGNKEY (namakolom) REFERENCES namatabelinduk (namakolominduk) ONUPDATE CASCADE ON DELETE NO ACTIONBerikut ini perintah untuk membuat tabel film beserta kolom-kolomnya

Mysqlgt create table film(Kode_film char(3) not null primary keyJenis char(6) not nullJudul varchar(30)Jml_keping intJml_film intForeign key(jenis) references jenisfilm(jenis) on

update cascadeon delete no action)

atau

mysqlgt create table film (kode_film char(3) not null primary keyjenis char(6) not nulljudul varchar(30)jml_keping intjml_film int)

mysqlgt alter table film add constraint fk foreign key (jenis)references jenisfilm(jenis) on update cascade on delete noaction

n Menghapus Foreign KeyPerintah ALTER TABLE namatabel DROP FOREIGN KEY namaconstraint Berikut iniperintah untuk menghapus foreign key pada tabel film

Mysqlgt alter table film drop foreign key fkTugas

1 Buatlahdatabase dengannama Penggajian2 Buat struktur tabel seperti dibawah ini

3 Berikan primary key padafield golditabelgolongan4 Tambahkansatufield tanggal_lahirpadatable5 karyawandengandata type date6 Tambahkanfield kotapadatable karyawandengan data type text 207 Ubahnamafield tanggal_lahirpadatable karyawan dengan namattl8 Ubahsize field kotapadatable karyawandengansize9 Hapusfield ttlpadatabelkaryawan10 Hapus field kota pada tabel karyawan11 Hapuskeduatabeltersebut

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 9

MODUL 3

DML (Data Manipulation Language)

MAKSUD DAN TUJUANAgar mahasiswa memahami cara manipulasi basis data dengan perintah DML

MATERIProses pengolahan isi data di dalam table seperti memasukkan merubah dan menghapus isi data - dantidak terkait dengan perubahan struktur dan definisi tipe data dari objek database

DML adalah kelompok perintah yang berfungsi untuk memanipulasi data dalam basis datamisalnya untuk pengambilan penyisipan pengubahan dan penghapusan data Perintah yang termasukdalah kategori DML adalah INSERT DELETE UPDATE dan SELECT

a INSERTPerintah INSERT digunakan untuk menambahkan baris pada suatu tabelTerdapat dua cara untuk menambah baris yaitu Cara 1 Menambah baris dengan mengisi data pada setiap kolom INSERT INTO namatabel VALUES (nilai1nilai2nilai-n)Cara 2 Menambah baris dengan hanya mengisi data pada kolom tertentu INSERT INTO namatabel (kolom1kolom2kolom-n) VALUES(nilai1nilai2nilai-n)Berikut ini perintah untuk menambahkan baris pada tabel jenisfilm Cara 1

Mysqlgt insert into jenisfilm values (lsquoactionrsquo3000)

Cara 2

Mysqlgt insert into jenisfilm (jenisharga) values (lsquohororrsquo3500)

Keterangan Jika data bertipe string date atau time (contoh action horor 2007-11-10) maka pemberian nilainyadiapit dengan tanda petik tunggal (lsquohororrsquo) atau petik ganda (ldquohororrdquo) Jika data bertipe numerik(2500 400) maka pemberian nilainya tidak diapit tanda petik tunggal maupun ganda

b DELETEPerintah DELETE digunakan untuk menghapus satu baris baris dengan kondisi tertentu atau seluruhbarisSyntax DELETE FROM namatabel [WHERE kondisi]Perintah dalam tanda [] bersifat opsional untuk menghapus suatu baris dengan suatu kondisi tertentuBerikut ini perintah untuk menghapus baris pada tabel jenisfilm dengan data sebagai berikut

Mysqlgt select from jenisfilm

Contoh 1 jika ingin menghapus seluruh baris pada tabel jenisfilm

Mysqlgt delete from jenisfilm

Contoh 2 jika ingin menghapus baris yang memiliki nilai 3000 pada kolom harga pada tabeljenisfilm maka perintahnya sebagai berikut

Mysqlgt delete from jenisfilm where harga=3000

Contoh 3 jika ingin menghapus baris yang memiliki nilai drama pada kolom jenis pada tabeljenisfilm maka perintahnya sebagai berikut

Mysqlgt delete from jenisfilm where jenis=rsquodramarsquo

c UPDATEPerintah UPDATE digunakan untuk mengubah isi data pada satu atau beberapa kolom pada suatutabelSyntax

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 10

UPDATE namatabel SET kolom1 = nilai1 kolom2 = nilai2 [WHEREkondisi]Perintah dalam tanda [] bersifat opsional untuk mengubah suatu baris dengan suatu kondisi tertentuBerikut ini perintah untuk mengubah baris pada tabel jenisfilm dengan data sebagai berikut

Mysqlgt select from jenisfilm

Contoh 1 mengubah semua nilai pada kolom harga menjadi 2000

Mysqlgt update jenisfilm set harga=2000

Contoh 2 mengubah nilai pada kolom harga menjadi 2500 dimana nilai pada kolom jenis adalahaction

Mysqlgt update jenisfilm set harga=2500 where jenis=rsquoactionrsquo

d SELECTPerintah SELECT digunakan untuk menampilkan isi dari suatu tabel yang dapat dihubungkandengan tabel yang lainnya

1) Menampilkan data untuk semua kolom menggunakan asterisk ()Syntax SELECT FROM namatabelBerikut ini perintah untuk menampilkan semua data pada tabel jenisfilm

Mysqlgt select from jenisfilm

2) Menampilkan data untuk kolom tertentuSyntax SELECT kolom1kolom2kolom-n FROM namatabelBerikut ini perintah untuk menampilkan data pada tabel jenisfilm dengan kolom yang ditampilkanadalah kolom jenis Mysqlgt select jenis from jenisfilm

3) Menampilkan data dengan kondisi data tertentu dengan klausa WHERESyntax SELECT FROM namatabel WHERE kondisiBerikut ini perintah untuk menampilkan data pada tabel jenisfilm dimana nilai pada kolom jenisadalah drama

Mysqlgt select from jenisfilm where jenis=rsquodramarsquo

Beberapa operator perbandingan yang dapat digunakan pada klausa WHERE selain ldquo=rdquo adalah gt(lebih dari) lt (kurang dari) lt gt (tidak sama dengan) gt= (lebih dari atau sama dengan) lt= (kurangdari atau sama dengan) Adapun operator lain yaitu AND OR NOT BETWEEN-AND IN danLIKE Berikut ini data yang ada pada tabel jenisfilm

Mysqlgt select from jenisfilm

Contoh 1 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai harga berkisar dari1000 hingga 3000

Mysqlgt select from jenisfilm where hargagt=1000 and hargalt=3000

Atau

Mysqlgt select from jenisfilm where harga between 1000 and 3000

Contoh 2 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai harga sama dengan1000 atau 3000

Mysqlgt select from jenisfilm where harga=1000 or harga=3000

atau

mysqlgt select from jenisfilm where harga in (10003000)

Contoh 3 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai pada kolom jenis tidaksama dengan action

Mysqlgt select from jenisfilm where not jenis=rsquoactionrsquo

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 11

atau

mysqlgt selectfrom jenisfilm where jenisltgtrsquoactionrsquo

Contoh 4 Isi tabel film

Mysqlgt selectfrom film

perintah untuk menampilkan data pada tabel film dimana data pada kolom tertentu diawali dengannilai tertentu misalnya pada kolom judul dimana diawali dengan karakter lsquoSrsquo

Mysqlgt selectfrom film where judul like lsquoSrsquo

4) Memberikan nama lain pada kolomSyntax SELECT namakolomlama AS namakolombaru FROM namatabelBerikut ini perintah untuk memberikan nama lain pada kolom jenis menjadi jenis_film pada tabeljenisfilm

Mysqlgt select jenis as jenis_film from jenisfilm

5) Menggunakan alias untuk nama tabelSyntax SELECT nmaliasjenis nmaliasharga FROM namatabel nmaliasBerikut ini perintah untuk memberikan alias pada tabel jenisfilm

Mysqlgt select jjenis jharga from jenisfilm j

6) Menampilkan data lebih dari dua tabelSyntax SELECT from namatabel1namatabel2namatabel-nIsi tabel jenisfilm

Mysqlgt selectfrom jenisfilm

Isi tabel film

Mysqlgt selectfrom film

Berikut ini perintah untuk menampilkan semua data pada tabel jenisfilm dan film

Mysqlgt selectfrom jenisfilmfilm

7) Nested Queries Subquery (IN NOT IN EXISTS NOT EXISTS)Subquery berarti query di dalam query Dengan menggunakan subquery hasil dari query akanmenjadi bagian dari query di atasnyaSubquery terletak di dalam klausa WHERE atau HAVING Pada klausa WHERE subquerydigunakan untuk memilih baris-baris tertentu yang kemudian digunakan oleh query Sedangkan padaklausa HAVING subquery digunakan untuk memilih kelompok baris yang kemudian digunakanoleh query

Contoh 1 perintah untuk menampilkan data pada tabel jenisfilm yang mana data pada kolom jenis-nya tercantum pada tabel film menggunakan IN

Mysqlgt selectfrom jenisfilm where jenis in (select jenis from film)

atau menggunakan EXISTS

Mysqlgt selectfrom jenisfilm where exists (select from film where jenisfilmjenis =filmjenis)

Pada contoh di atas SELECT jenis FROM film

disebut subquery sedangkan SELECT FROM jenisfilm

berkedudukan sebagai query Perhatikan terdapat data jenis dan harga pada tabel jenisfilm yangtidak ditampilkan Hal ini disebabkan data pada kolom jenis tidak terdapat pada kolom jenis di tabelfilm

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 12

Contoh 2 perintah untuk menampilkan data pada tabel jenisfilm yang mana data pada kolom jenis-nya tidak tercantum pada tabel film menggunakan NOT IN

Mysqlgt selectfrom jenisfilm where jenis not in (select jenis from film)

atau menggunakan NOT EXISTS

Mysqlgt selectfrom jenisfilm where not exists (select from film where jenisfilmjenis =filmjenis)

8) Operator comparison ANY dan ALLa Operator ANY digunakan berkaitan dengan subquery Operator ini menghasilkan TRUE (benar)

jika paling tidak salah satu perbandingan dengan hasil subquery menghasilkan nilai TRUEIlustrasinya

Gaji gt ANY (S)Jika subquery S menghasilkan G1 G2 Gn maka kondisi di atas identik dengan

(gaji gt G1) OR (gaji gt G2) OR OR (gaji gt Gn)Contoh perintah untuk menampilkan semua data jenisfilm yang harganya bukan yang terkecil

Mysqlgt selectfrom jenisfilm where harga gt ANY (select harga from jenisfilm)

b Operator ALL digunakan untuk melakukan perbandingan dengan subquery Kondisi dengan ALLmenghasilkan nilai TRUE (benar) jika subquery tidak menghasilkan apapun atau jikaperbandingan menghasilkan TRUE untuk setiap nilai query terhadap hasil subqueryContoh perintah untuk menampilkan data jenisfilm yang harganya paling tinggi

Mysqlgt selectfrom jenisfilm where harga gt= ALL (select harga from jenisfilm)

9) Aggregate Functions (COUNT SUM AVG MIN MAX)a COUNT

Perintah yang digunakan untuk menghitung jumlah baris suatu kolom pada tabel Contoh perintah untuk menghitung jumlah baris kolom jenis pada tabel jenisfilm

Mysqlgt select count(jenis) form jenisfilm

b SUMPerintah yang digunakan untuk menghitung jumlah nilai suatu kolom pada tabel Contoh perintah untuk menghitung jumlah nilai kolom harga pada tabel jenisfilm

Mysqlgt select sum (harga) form jenisfilm

c AVGPerintah yang digunakan untuk menghitung rata-rata dari nilai suatu kolom pada tabel Contoh perintah untuk menghitung rata-rata dari kolom harga pada tabel jenisfilm

Mysqlgt select avg(harga) form jenisfilm

d MINPerintah yang digunakan untuk menampilkan nilai terkecil dari suatu kolom pada tabel Contoh perintah untuk menampilkan nilai terkecil dari kolom harga pada tabel jenisfilm Mysqlgt select min(harga) form jenisfilm

e MAXPerintah yang digunakan untuk menampilkan nilai terbesar dari suatu kolom pada tabel Contoh perintah untuk menampilkan nilai terbesar dari kolom harga pada tabel jenisfilm

Mysqlgt select max(harga) form jenisfilm

10) SQL dengan GROUP BY dan HAVINGKlausa GROUP BY digunakan untuk melakukan pengelompokan data Sebagai contoh terdapattabel film dengan data sebagai berikut

Mysqlgt select form film

akan ditampilkan hanya kolom jenis dan digabungkan dengan SUM(jml_film) yang dikelompokkanberdasarkan kolom jenis pada tabel film

Mysqlgt select jenissum(jml_film) from film group by jenis

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 13

Klausa HAVING digunakan untuk menentukan kondisi bagi klausa GROUP BY Kelompok yangmemenuhi HAVING saja yang akan dihasilkan Contoh perintah untuk menampilkan data hanyakolom jenis yang dikelompokkan berdasarkan kolom jenis dimana jumlah film berdasarkankelompoknya harus lebih besar dari satu pada tabel film

Mysqlgt select jenis film group by jenis having count(kode_film) gt1

11) ORDER BYKlausa ORDER BY digunakan untuk mengurutkan data berdasarkan kolom tertentu sesuai dengantipe data yang dimiliki Contoh perintah untuk mengurutkan data film berdasarkan kolom judul

Mysqlgt select from film order by judul

atau tambahkan ASC untuk pengurutan secara ascending (menaik)

Mysqlgt select from film order by judul asc

atau tambahkan DESC untuk pengurutan secara descending (menurun)

Mysqlgt select from film order by judul desc

12) UNION INTERSECT dan EXCEPT

a UNIONUNION merupakan operator yang digunakan untuk menggabungkan hasil query denganketentuan jumlah nama dan tipe kolom dari masing-masing tabel yang akan ditampilkandatanya harus sama Berikut ini perintah untuk memperoleh data pada tabel film dimanajenisnya action dan horor

Mysqlgt select jenisjudul from film where jenis=rsquoactionrsquo uniongt select jenisjudul film from film where jenis=rsquohororrsquo

Perintah di atas identik dengan

Mysqlgt select jenisjudul from film where jenis=rsquoactionrsquo or jenis =rsquounionrsquo

Namun tidak semua penggabungan dapat dilakukan dengan OR yaitu jika bekerja pada duatabel atau lebih

b INTERSECTINTERSECT merupakan operator yang digunakan untuk memperoleh data dari dua buah querydimana data yang ditampilkan adalah yang memenuhi kedua query tersebut dengan ketentuanjumlah nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harussamaSyntax SELECT FROM namatabel1 INTERSECT SELECT FROMnamatabel2Pada MySQL tidak terdapat operator INTERSECT namun sebagai gantinya dapat menggunakanoperator IN seperti contoh 1 pada bagian Nested Queries

c EXCEPT Set DifferenceEXCEPT merupakan operator yang digunakan untuk memperoleh data dari dua buah querydimana data yang ditampilkan adalah data yang ada pada hasil query 1 dan tidak terdapat padadata dari hasil query 2 dengan ketentuan jumlah nama dan tipe kolom dari masing-masing tabelyang akan ditampilkan datanya harus samaSyntax SELECT FROM namatabel1 EXCEPT SELECT FROM namatabel2Pada MySQL tidak terdapat operator EXCEPT namun sebagai gantinya dapat menggunakanoperator NOT IN seperti contoh 2 pada bagian Nested Queries

13) Operasi JoinJoin merupakan operasi yang digunakan untuk menggabungkan dua tabel atau lebih dengan hasilberupa 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 Berikutini perintah untuk menampilkan kolom judul dari tabel film dan kolom harga dari tabel jenisfilm

Mysqlgt select judul harga from film jenisfilm where jenisfilmjenis = filmjenis

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 14

Pada contoh di atas jenisfilmjenis=filmjenis merupakan kondisi untuk mencocokkandata antara kolom jenis milik tabel jenisfilm dan filma Inner Join

Inner join digunakan untuk menampilkan data dari dua tabel yang berisi data sesuai dengansyarat dibelakang on (tidak boleh null) dengan kata lain semua data dari tabel kiri mendapatpasangan data dari tabel sebelah kanan Berikut ini perintah untuk menampilkan data dari tabeljenisfilm dan film dengan syarat berdasarkan kolom jenis

Mysqlgt select form jenisfilm join film on (jenisfilmjenis =filmjenis)

b Left JoinLeft join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintah left joinbeserta pasangannya dari tabel sebelah kanan Meskipun terdapat data dari sebelah kiri tidakmemiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilai NULL

Mysqlgt select form jenisfilm left join film on (jenisfilmjenis =filmjenis)

c Right JoinRight join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintah rightjoin beserta pasangannya dari tabel sebelah kiri Meskipun terdapat data dari sebelah kanantidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilai NULL

Mysqlgt select form jenisfilm right join film on (jenisfilmjenis =filmjenis)

d Natural JoinNatural join digunakan untuk menampilkan semua data dari dua tabel dimana jika terdapatkolom yang sama maka yang akan ditampilkan hanya salah satunya saja yaitu kolom dari tabelsebelah kiri perintah natural join

Mysqlgt select form jenisfilm natural join film

1) Natural Left JoinNatural left join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintahnatural left join beserta pasangannya dari tabel sebelah kanan Meskipun terdapat data darisebelah kiri tidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilaiNULL

Mysqlgt select form jenisfilm natural left join film

2) Natural Right JoinNatural right join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintahnatural right join beserta pasangannya dari tabel sebelah kiri Meskipun terdapat data darisebelah kanan tidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupanilai NULL

Mysqlgt select form jenisfilm natural right join film

Tugas

1 Buatlah database dengan nama ldquoMahasiswardquokuliah Penjualantransaksikaryawan2 Buatlah tabel dengan nama ldquoPenilaianrdquo dengan struktur tabel seperti berikut

Field Type Key Default Extra

NPM Int(8) PRI NULLKdMk Varchar(5) NULL

NamaMK Varchar NULLMid Float(5) NULLFinal Float(5) NULL

NilRata Float(5) NULL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 15

3 Sisipkan nilai-nilainya seperti tabel berikut

NPM KdMK NamaMK Mid Final NilRata10296832 KK021 75 82 10297732 KD132 775 735 20216832 KK021 835 817 30216832 KU122 654 77 10297732 KK021 795 825 20216832 KD132 805 83 30216832 KK021 67 78

4 Tampilkan seluruh record mahasiswa yang berkode matakuliah atauu KdMK=KK021

5 Tampilkan record field NpmKdMK dan Mid saja bagi yang nilai mid-nya antara 75 dan 90

6 Sisipkan nilai untuk field nama matakuliah (NamaMK) dengan ketentuan sebagai berikut KdMK NamaMKKK021 Sistem Basis DataKD132 SIMKU122 Pancasila

7 Sisipkan nilai untuk field nilai rata-rata (NilRata) dengan ketentuan sebagai berikut Mid + Final 2

8 Hapuslah record yang memiliki Npm = 10296832

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 16

MODUL 4

MANAJEMEN USER

MAKSUD DAN TUJUANAgar mahasiswa memahami manajeman user pada SQL

MATERIProses pembuatan user baru dan pemberian hak akses user

Untul MySQL versi 322 keatas dalam manajemen user dapat menggunakan perintah GRANTdan REVOKE

Perintah GRANTDipergunakan untuk membuat user baru dengan izin aksesnya

Bentuk umum GRANT jenis_akses (``nama_kolom) ON nama_database

TO nama_user IDENTIFIED BY rdquonama_passwordrdquo[WITH GRANT pilihan_akses]

Perintah REVOKEUntuk menghapus izin akses user

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_userPerintah DELETEUntuk menghapus user secara permanen

Membuat User BaruDengan perintah GRANTContoh membuat user vivien

Tingkatan akses adalah ALL user vivien sebagai administratorON = dapat meng-akses semua databaseTO vivien dapat ditulis TO vivien atau TO vivienlocalhost

Buat user baru dengan nama ldquoayyirdquodengan perintah

User ayyi dapat login ke MySQL dapat mengakses semua database tetapi tidak memiliki izinakses jadi sebagai dummy user atau blank user

Lihat tabel user

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 17

Bagaimana dengan izin akses caranya dengan memeriksa tabel user yaitu kolom privilegesdengan perintah SELECT FROM USER

User vivien bertanda rdquo Y rdquo dapat mengakses semuaUser ayyi bertanda rdquo N rdquo tidak dapat mengakses

Coba gunakan user rdquo ayyi rdquoKeluar dari MySQL dan login kembali dengan user rdquo ayyi rdquo password rdquo fathin rdquoTampilan

Sintax mysql ndashu ayyi ndashp

Coba lihat database yang dapat diaksesTampilan

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 18

User ayyi tidak dapat mengakses database yang sudah terbentuk di mysql hanya databaseinformation_schema

Coba membuat database

Access denied tidak diberikan izin untuk create

Memberikan Izin Akses tertentu

Jika akan memberikan izin akses SELECT INSERT UPDATE dan DELETE kepada user ayyi yanghanya dapat digunakan pada database latihdb1Pemberian izin akses hanya boleh dilakukan oleh user dalam akses root atau user yangdiberikan zin akses setingkat administrator

Sebagai contoh user rdquorootrdquo atau user rdquoiyusrdquo (nama anda sendiri)Jika menggunakan rootPerintah

Mysql ndashu root -p

Jika menggunakan user rdquoiyusrdquo (nama anda sendiri)Perintah

Mysql ndashu iyus(nama sendiri) -p

Gunakan salah satu dan Buat database baru dengan nama rsquolatihdb1rsquo

Berikan izin akses ke database latihdb1Aktifkan database mysql dan lihat tabel ndash

Berikan izin untuk insert update delete create pada user ayyi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 19

Lihat perubahan izin akses

Coba mengakses dengan user ayyiDan lihat database yang dapat diakses

Database latihdb1 dapat diakses dan jika terdapat akses yang tidak diizinkan maka lakukanperitah GRANT untuk izin akses pada user ayyi dengan ketetapan user admin sebagai root

Contoh

Contoh user ayyi membuat table pegawai dalam database latihdb1

Buatlah database akademik dengan tabel mahasiswa matakuliah dan kelasStruktur tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 20

Struktur tabel Matakuliah

Struktur tabel kelas

Memberikan izin akses per tabel dan per kolomDengan perintah grant dapat digunakan untuk memberikan izin akses per tabel dan per kolomtabel

Contoh user ayyi diberikan izin akses SELECT dan INSERT untuk kolom kota dan kdpos padatabel mahasiwa

Sintaksis MySQL

Pengaruh dari perintah grant tables sebelumnya kita coba menampilkan tabel table_privSintaksis pertama

Keterangan Host Dapat diakses di semua komputer terkoneksi jaringanDb Database Akademik yang dapat diaksesUser User AyyiTable_name Mahasiswa yang dapat diaksesGrantor rootlocalhost yang memberikan izin aksesTimestamp Tanggal pemberian izin 18 November 2009

jam 105552

Database Akademik

Tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 21

Sintaksis kedua

Keterangan Column_priv Select dan Insert izin akses kolom yang diberikan

Untuk melihat kolom mana saja yang diberikan izin akses select dan insert dengan perintah Sintaksis MySQL

Keterangan Column_name Kota dan KdPos kolom yang diberikan izin aksesColumn_priv Izin akses kedua kolom tersebut adalah select dan insert

Anda coba kewenangan apa saja yang dapat dilakukan oleh user ayyiKeluar dari mysqlDan login kembali dengan user ayyi

Lakukan perintah

Lakukan perintah select record yang ada pada tabel mahasiswa

Lihat database aktif

Lihat tabel aktif

Akatifkan database akademik

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 22

User ayyi tidak diizikan untuk menampilkan data pada tabel mahasiswaIzin akses nya adalah select untuk kolom kota dan kode posLakukan perintah select kota dan kodepos

Bagaimana dengan perintah delete tabel

Perintah delete ditolakBagaimana dengan perintah UPDATE kota

Bagimana dengan perintah insert

Untuk perintah update dan insert data tidak dapat dilakukan oleh user ayyi

Bagimana user ayyi dapat mengakses tabel mahasiswaKeluar dari MySQL dan login kembali menggunakan user rootDan berikan izin akses untuk tabel mahasiswa kepada user ayyi

Perintah ini memberikan status root kepada user ayyi hanya izin akses lengkap di databaseakademik tabel mahasiswa ( on akademikmahasiswa )

Coba keluar dan login kembali dengan user ayyiLakukan perintah update dan select

List data kota dan kode pos

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 23

Perintah update dapat dilakukan

Lakukan perintah select data keseluruhan

Bagaimana dengan menambah data gunakan perintah insert

Perintan insert dapat dilakukan dan jumlah data terdiri 6 record

Bagaimana dengan select untuk tabel mata kuliah dan kelas

Untuk mengakses tabel matakuliah dan kelas tidak di izinkan

Memberikan izin akses berdasarkan lokasi pengaksesAdmin atau root atau memberikan izin akses berdasarkan lokasi atau membatasi komputermana saja yang dapat mengakses MySQL serverContoh pemberian izin akses

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 24

Perlu diperhatikan format pemberian izin berhubungan dengan cara login ke MySQL contoh Jika pemberian izin akse dengan no IP komputer maka login juga harus mencantumkan no IP

Yang lebih fleksibel menggunakan tanda rdquordquo dapat diakses dimana saja ke server MySQL

Menghapus izin aksesMenggunakan perintah REVOKE penggunaan perintah revoke ini hanya menghapus izin aksesuntuk user tertentu bukan penghapus userUser yang bersangkutan tetap dapat login ke MySQL

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_user

User ayyi dapat mengakses tabel yang ada di database akademik

Sebagai contoh user ayyi dihapus izin akses untuk database akademik

Sintaksis

Jangan lupa diakhir dengan perintah flush

Kasus jika suatu root telah memberikan izin akses hanya untuk satu tabel seperti user ayyitelah dahulu diberikan all privileges kepada tabel mahasiswa maka untuk menghapusnyadisesuaikan dengan perintah grant

Untuk menghapus izin akses di tabel mahasiswa lakukan perintah (izin aksesnya sama denganperintah grant)

Konsep memberikan izin akses user ndash privileges user merupakan hal yang sangat penting dalammenyangkut masalah keamanan pada MySQL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 25

MODUL 5

VIEW

MAKSUD DAN TUJUAN

Agar mahasiswa1 Dapat membuat View2 Dapat Memanggil data melalui View3 Merubah definisi View4 Insert Update dan Delete data melalui View5 Menghapus (drop) view

MATERIProses pengolahan isi data di dalam table seperti membuat dan memanggil tabel menggunakan fungsiview

View adalah perintah query yang disimpan pada database dengan suatu nama tertentusehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang query tersebut

Syntax dasar perintah untuk membuat view adalah sebagai berikut

CREATE[OR REPLACE]VIEW view_name [(column_list)]AS select_statement

Kita menggunakan opsi OR REPLACE jika kita ingin mengganti view dengan nama yang samadengan perintah tersebut Jika tidak maka perintah CREATE VIEW akan menghasilkan errorjika nama view yang ingin dibuat sudah ada sebelumnya

Contoh Penggunaan

Kita akan membuat view dari relasi antara table film dan jenisfilm dari database rentaldengan nama view_harga Perintahnya adalah sebagai berikut

CREATE VIEW view_hargaASSELECT j1kode_film j1jenisj1judul j2hargaFROMfilm j1 JOIN jenisfilm j2 ON j1jenis= j2jenis

Eksekusi perintah berikut untuk memastikan view telah dibuat

SELECT FROM information_schemaviews WHERE table_name = view_harga

Terakhir query view tersebut untuk melihat hasilnya

SELECT FROM view_harga

Tugas

1 Buat Data Base baru dengan Koperasi

2 Lihat database

3 Masuk ke data base koperasi

4 Buat table Nasabah

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 26

Nama_field Tipe data size ket

Kd_nasabah Char 5 Primary key

Nama_nasabah varchar 35

Alamat varchar 35

Telepon varchar 15

Status enum (ldquotetaprdquordquotidak Tetaprdquo)

5 Lihat struktur tabl nasabah

6 Ubah typedata status menjadi varchar(20)

7 Hapus field status

8 Isi table nasabah

Kd_nasabah Nama_nasabah Alamat Telepon

00011 Ika Kepadangan 085730333999

00012 Rozi Depok 08586789380

00013 Ari Pasar Minggu 021986782

00014 Gali Sidoarjo 022456

9 Tampilkan data pada table nasabah

10 Tampilkan nasabah yang beralamat di depok

11 Ubah nama_nasabah dengan kd_nasabah 00012 menjdi Indriyani

12 Buat tabel Pinjaman

Nama field Tipe data size keterangan

No_Ref char

Kd_nasabah char

Jml-pimjam int

tempo date ldquo0000-00-00rdquo

13 Tambahkan primary key pada no_ref

14 Ganti tempo menjad tgl_tempo

15 Tambahkan field lama_pinjam varchar(10)

16 Isikan table pinjaman

No_ref Kd_nasabah Jml-pinjam Tgl_tempo Lama_pinjam

Ref01 00011 5000000 2010-06-14 6

Ref02 00012 2000000 2010-08-25 12

Ref03 00013 1500000 2010-10-20 3

17 Lihat jumlah pinjam di atas 3000000

18 Lihat jumlah pinjam pada kd_nasabah 00012

19 Hapus isi field dengan no_ref03

20 Hapus table pinjaman

21 Lihat table pada database

e koperasi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 7

jenis char(6) not null primary keyharga int default 0)

atau

Mysqlgt create table jenisfilm (jenis char(6) not nullharga int default 0primary key (jenis))

atau

Mysqlgt create table jenisfilm (jenis char(6) not nullharga int default 0)

Mysqlgt alter table jenisfilm add constraint pk primary key(jenis)

h Menghapus Primary Key Pada TabelPerintah Cara 1 Jika primary key dibuat dengan menggunakan alter table ALTER TABLE namatabel DROP CONSTRAINT namaconstraintCara 2 Jika primary key dibuat melalui create table ALTER TABLE namatabel DROP PRIMARY KEYBerikut ini perintah yang digunakan untuk menghapus primary key pada tabel jenisfilm

Mysqlgt alter table jenisfilm drop primary key

i Menambah Kolom Baru Pada TabelSyntax ALTER TABLE namatabel ADD fieldbaru tipenamatabel adalah nama tabel yang akan ditambah fieldnya Fieldbaru adalah namakolom yang akan ditambahkan tipe adalah tipe data dari kolom yang akan ditambahkanBerikut ini perintah untuk menambah kolom keterangan dengan tipe data varchar(25)

Mysqlgt alter table jenisfilm add keterangan varchar(25)

j Mengubah Tipe Data atau Lebar Kolom Pada TabelPerintah ALTER TABLE namatabel MODIFY COLUMN field tipenamatabel adalah nama tabel yang akan diubah tipe data atau lebar kolomnya Fieldadalah kolom yang akan diubah tipe data atau lebarnya Tipe adalah tipe data baru atau tipedata lama dengan lebar kolom yang berbeda Berikut ini perintah untuk mengubah tipe datauntuk kolom keterangan dengan char(20)

mysqlgt alter table jenisfilm modify column keteranganchar(20)

k Mengubah Nama KolomSyntax ALTER TABLE namatabel CHANGE COLUMN namalamakolomnamabarukolom tipedatanyanamatabel adalah nama tabel yang akan diubah nama kolomnya namalamakolomadalah kolom yang akan diganti namanya namabarukolom adalah nama baru kolomtipedatanya adalah tipe data dari kolom tersebut Berikut ini perintah untuk mengubahnama kolom keterangan menjadi ket

mysqlgt alter table jenisfilm change column keterangan ketchar(20)

l Menghapus Kolom Pada TabelSyntax ALTER TABLE namatabel DROP COLUMN namakolomBerikut ini perintah untuk menghapus kolom ket pada tabel jenisfilm

Mysqlgt alter table jenisfilm drop ket

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 8

m Mendefinisikan Foreign Key Pada TabelUntuk mendefinisikan foreign key maka harus dipastikan bahwa tabel dan atribut yangdirujuk (tabel induk dari foreign key) sudah didefinisikan terlebih dahulu Syntax CREATE TABLE namatabel(Field1 TipeData1Field2 TipeData2FOREIGN KEY (Field2) REFERENCES namatabelinduk

(namakolominduk)ON UPDATE CASCADEON DELETE NO ACTION

)atau

ALTER TABLE namatabel ADD CONSTRAINT namaconstraint FOREIGNKEY (namakolom) REFERENCES namatabelinduk (namakolominduk) ONUPDATE CASCADE ON DELETE NO ACTIONBerikut ini perintah untuk membuat tabel film beserta kolom-kolomnya

Mysqlgt create table film(Kode_film char(3) not null primary keyJenis char(6) not nullJudul varchar(30)Jml_keping intJml_film intForeign key(jenis) references jenisfilm(jenis) on

update cascadeon delete no action)

atau

mysqlgt create table film (kode_film char(3) not null primary keyjenis char(6) not nulljudul varchar(30)jml_keping intjml_film int)

mysqlgt alter table film add constraint fk foreign key (jenis)references jenisfilm(jenis) on update cascade on delete noaction

n Menghapus Foreign KeyPerintah ALTER TABLE namatabel DROP FOREIGN KEY namaconstraint Berikut iniperintah untuk menghapus foreign key pada tabel film

Mysqlgt alter table film drop foreign key fkTugas

1 Buatlahdatabase dengannama Penggajian2 Buat struktur tabel seperti dibawah ini

3 Berikan primary key padafield golditabelgolongan4 Tambahkansatufield tanggal_lahirpadatable5 karyawandengandata type date6 Tambahkanfield kotapadatable karyawandengan data type text 207 Ubahnamafield tanggal_lahirpadatable karyawan dengan namattl8 Ubahsize field kotapadatable karyawandengansize9 Hapusfield ttlpadatabelkaryawan10 Hapus field kota pada tabel karyawan11 Hapuskeduatabeltersebut

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 9

MODUL 3

DML (Data Manipulation Language)

MAKSUD DAN TUJUANAgar mahasiswa memahami cara manipulasi basis data dengan perintah DML

MATERIProses pengolahan isi data di dalam table seperti memasukkan merubah dan menghapus isi data - dantidak terkait dengan perubahan struktur dan definisi tipe data dari objek database

DML adalah kelompok perintah yang berfungsi untuk memanipulasi data dalam basis datamisalnya untuk pengambilan penyisipan pengubahan dan penghapusan data Perintah yang termasukdalah kategori DML adalah INSERT DELETE UPDATE dan SELECT

a INSERTPerintah INSERT digunakan untuk menambahkan baris pada suatu tabelTerdapat dua cara untuk menambah baris yaitu Cara 1 Menambah baris dengan mengisi data pada setiap kolom INSERT INTO namatabel VALUES (nilai1nilai2nilai-n)Cara 2 Menambah baris dengan hanya mengisi data pada kolom tertentu INSERT INTO namatabel (kolom1kolom2kolom-n) VALUES(nilai1nilai2nilai-n)Berikut ini perintah untuk menambahkan baris pada tabel jenisfilm Cara 1

Mysqlgt insert into jenisfilm values (lsquoactionrsquo3000)

Cara 2

Mysqlgt insert into jenisfilm (jenisharga) values (lsquohororrsquo3500)

Keterangan Jika data bertipe string date atau time (contoh action horor 2007-11-10) maka pemberian nilainyadiapit dengan tanda petik tunggal (lsquohororrsquo) atau petik ganda (ldquohororrdquo) Jika data bertipe numerik(2500 400) maka pemberian nilainya tidak diapit tanda petik tunggal maupun ganda

b DELETEPerintah DELETE digunakan untuk menghapus satu baris baris dengan kondisi tertentu atau seluruhbarisSyntax DELETE FROM namatabel [WHERE kondisi]Perintah dalam tanda [] bersifat opsional untuk menghapus suatu baris dengan suatu kondisi tertentuBerikut ini perintah untuk menghapus baris pada tabel jenisfilm dengan data sebagai berikut

Mysqlgt select from jenisfilm

Contoh 1 jika ingin menghapus seluruh baris pada tabel jenisfilm

Mysqlgt delete from jenisfilm

Contoh 2 jika ingin menghapus baris yang memiliki nilai 3000 pada kolom harga pada tabeljenisfilm maka perintahnya sebagai berikut

Mysqlgt delete from jenisfilm where harga=3000

Contoh 3 jika ingin menghapus baris yang memiliki nilai drama pada kolom jenis pada tabeljenisfilm maka perintahnya sebagai berikut

Mysqlgt delete from jenisfilm where jenis=rsquodramarsquo

c UPDATEPerintah UPDATE digunakan untuk mengubah isi data pada satu atau beberapa kolom pada suatutabelSyntax

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 10

UPDATE namatabel SET kolom1 = nilai1 kolom2 = nilai2 [WHEREkondisi]Perintah dalam tanda [] bersifat opsional untuk mengubah suatu baris dengan suatu kondisi tertentuBerikut ini perintah untuk mengubah baris pada tabel jenisfilm dengan data sebagai berikut

Mysqlgt select from jenisfilm

Contoh 1 mengubah semua nilai pada kolom harga menjadi 2000

Mysqlgt update jenisfilm set harga=2000

Contoh 2 mengubah nilai pada kolom harga menjadi 2500 dimana nilai pada kolom jenis adalahaction

Mysqlgt update jenisfilm set harga=2500 where jenis=rsquoactionrsquo

d SELECTPerintah SELECT digunakan untuk menampilkan isi dari suatu tabel yang dapat dihubungkandengan tabel yang lainnya

1) Menampilkan data untuk semua kolom menggunakan asterisk ()Syntax SELECT FROM namatabelBerikut ini perintah untuk menampilkan semua data pada tabel jenisfilm

Mysqlgt select from jenisfilm

2) Menampilkan data untuk kolom tertentuSyntax SELECT kolom1kolom2kolom-n FROM namatabelBerikut ini perintah untuk menampilkan data pada tabel jenisfilm dengan kolom yang ditampilkanadalah kolom jenis Mysqlgt select jenis from jenisfilm

3) Menampilkan data dengan kondisi data tertentu dengan klausa WHERESyntax SELECT FROM namatabel WHERE kondisiBerikut ini perintah untuk menampilkan data pada tabel jenisfilm dimana nilai pada kolom jenisadalah drama

Mysqlgt select from jenisfilm where jenis=rsquodramarsquo

Beberapa operator perbandingan yang dapat digunakan pada klausa WHERE selain ldquo=rdquo adalah gt(lebih dari) lt (kurang dari) lt gt (tidak sama dengan) gt= (lebih dari atau sama dengan) lt= (kurangdari atau sama dengan) Adapun operator lain yaitu AND OR NOT BETWEEN-AND IN danLIKE Berikut ini data yang ada pada tabel jenisfilm

Mysqlgt select from jenisfilm

Contoh 1 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai harga berkisar dari1000 hingga 3000

Mysqlgt select from jenisfilm where hargagt=1000 and hargalt=3000

Atau

Mysqlgt select from jenisfilm where harga between 1000 and 3000

Contoh 2 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai harga sama dengan1000 atau 3000

Mysqlgt select from jenisfilm where harga=1000 or harga=3000

atau

mysqlgt select from jenisfilm where harga in (10003000)

Contoh 3 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai pada kolom jenis tidaksama dengan action

Mysqlgt select from jenisfilm where not jenis=rsquoactionrsquo

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 11

atau

mysqlgt selectfrom jenisfilm where jenisltgtrsquoactionrsquo

Contoh 4 Isi tabel film

Mysqlgt selectfrom film

perintah untuk menampilkan data pada tabel film dimana data pada kolom tertentu diawali dengannilai tertentu misalnya pada kolom judul dimana diawali dengan karakter lsquoSrsquo

Mysqlgt selectfrom film where judul like lsquoSrsquo

4) Memberikan nama lain pada kolomSyntax SELECT namakolomlama AS namakolombaru FROM namatabelBerikut ini perintah untuk memberikan nama lain pada kolom jenis menjadi jenis_film pada tabeljenisfilm

Mysqlgt select jenis as jenis_film from jenisfilm

5) Menggunakan alias untuk nama tabelSyntax SELECT nmaliasjenis nmaliasharga FROM namatabel nmaliasBerikut ini perintah untuk memberikan alias pada tabel jenisfilm

Mysqlgt select jjenis jharga from jenisfilm j

6) Menampilkan data lebih dari dua tabelSyntax SELECT from namatabel1namatabel2namatabel-nIsi tabel jenisfilm

Mysqlgt selectfrom jenisfilm

Isi tabel film

Mysqlgt selectfrom film

Berikut ini perintah untuk menampilkan semua data pada tabel jenisfilm dan film

Mysqlgt selectfrom jenisfilmfilm

7) Nested Queries Subquery (IN NOT IN EXISTS NOT EXISTS)Subquery berarti query di dalam query Dengan menggunakan subquery hasil dari query akanmenjadi bagian dari query di atasnyaSubquery terletak di dalam klausa WHERE atau HAVING Pada klausa WHERE subquerydigunakan untuk memilih baris-baris tertentu yang kemudian digunakan oleh query Sedangkan padaklausa HAVING subquery digunakan untuk memilih kelompok baris yang kemudian digunakanoleh query

Contoh 1 perintah untuk menampilkan data pada tabel jenisfilm yang mana data pada kolom jenis-nya tercantum pada tabel film menggunakan IN

Mysqlgt selectfrom jenisfilm where jenis in (select jenis from film)

atau menggunakan EXISTS

Mysqlgt selectfrom jenisfilm where exists (select from film where jenisfilmjenis =filmjenis)

Pada contoh di atas SELECT jenis FROM film

disebut subquery sedangkan SELECT FROM jenisfilm

berkedudukan sebagai query Perhatikan terdapat data jenis dan harga pada tabel jenisfilm yangtidak ditampilkan Hal ini disebabkan data pada kolom jenis tidak terdapat pada kolom jenis di tabelfilm

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 12

Contoh 2 perintah untuk menampilkan data pada tabel jenisfilm yang mana data pada kolom jenis-nya tidak tercantum pada tabel film menggunakan NOT IN

Mysqlgt selectfrom jenisfilm where jenis not in (select jenis from film)

atau menggunakan NOT EXISTS

Mysqlgt selectfrom jenisfilm where not exists (select from film where jenisfilmjenis =filmjenis)

8) Operator comparison ANY dan ALLa Operator ANY digunakan berkaitan dengan subquery Operator ini menghasilkan TRUE (benar)

jika paling tidak salah satu perbandingan dengan hasil subquery menghasilkan nilai TRUEIlustrasinya

Gaji gt ANY (S)Jika subquery S menghasilkan G1 G2 Gn maka kondisi di atas identik dengan

(gaji gt G1) OR (gaji gt G2) OR OR (gaji gt Gn)Contoh perintah untuk menampilkan semua data jenisfilm yang harganya bukan yang terkecil

Mysqlgt selectfrom jenisfilm where harga gt ANY (select harga from jenisfilm)

b Operator ALL digunakan untuk melakukan perbandingan dengan subquery Kondisi dengan ALLmenghasilkan nilai TRUE (benar) jika subquery tidak menghasilkan apapun atau jikaperbandingan menghasilkan TRUE untuk setiap nilai query terhadap hasil subqueryContoh perintah untuk menampilkan data jenisfilm yang harganya paling tinggi

Mysqlgt selectfrom jenisfilm where harga gt= ALL (select harga from jenisfilm)

9) Aggregate Functions (COUNT SUM AVG MIN MAX)a COUNT

Perintah yang digunakan untuk menghitung jumlah baris suatu kolom pada tabel Contoh perintah untuk menghitung jumlah baris kolom jenis pada tabel jenisfilm

Mysqlgt select count(jenis) form jenisfilm

b SUMPerintah yang digunakan untuk menghitung jumlah nilai suatu kolom pada tabel Contoh perintah untuk menghitung jumlah nilai kolom harga pada tabel jenisfilm

Mysqlgt select sum (harga) form jenisfilm

c AVGPerintah yang digunakan untuk menghitung rata-rata dari nilai suatu kolom pada tabel Contoh perintah untuk menghitung rata-rata dari kolom harga pada tabel jenisfilm

Mysqlgt select avg(harga) form jenisfilm

d MINPerintah yang digunakan untuk menampilkan nilai terkecil dari suatu kolom pada tabel Contoh perintah untuk menampilkan nilai terkecil dari kolom harga pada tabel jenisfilm Mysqlgt select min(harga) form jenisfilm

e MAXPerintah yang digunakan untuk menampilkan nilai terbesar dari suatu kolom pada tabel Contoh perintah untuk menampilkan nilai terbesar dari kolom harga pada tabel jenisfilm

Mysqlgt select max(harga) form jenisfilm

10) SQL dengan GROUP BY dan HAVINGKlausa GROUP BY digunakan untuk melakukan pengelompokan data Sebagai contoh terdapattabel film dengan data sebagai berikut

Mysqlgt select form film

akan ditampilkan hanya kolom jenis dan digabungkan dengan SUM(jml_film) yang dikelompokkanberdasarkan kolom jenis pada tabel film

Mysqlgt select jenissum(jml_film) from film group by jenis

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 13

Klausa HAVING digunakan untuk menentukan kondisi bagi klausa GROUP BY Kelompok yangmemenuhi HAVING saja yang akan dihasilkan Contoh perintah untuk menampilkan data hanyakolom jenis yang dikelompokkan berdasarkan kolom jenis dimana jumlah film berdasarkankelompoknya harus lebih besar dari satu pada tabel film

Mysqlgt select jenis film group by jenis having count(kode_film) gt1

11) ORDER BYKlausa ORDER BY digunakan untuk mengurutkan data berdasarkan kolom tertentu sesuai dengantipe data yang dimiliki Contoh perintah untuk mengurutkan data film berdasarkan kolom judul

Mysqlgt select from film order by judul

atau tambahkan ASC untuk pengurutan secara ascending (menaik)

Mysqlgt select from film order by judul asc

atau tambahkan DESC untuk pengurutan secara descending (menurun)

Mysqlgt select from film order by judul desc

12) UNION INTERSECT dan EXCEPT

a UNIONUNION merupakan operator yang digunakan untuk menggabungkan hasil query denganketentuan jumlah nama dan tipe kolom dari masing-masing tabel yang akan ditampilkandatanya harus sama Berikut ini perintah untuk memperoleh data pada tabel film dimanajenisnya action dan horor

Mysqlgt select jenisjudul from film where jenis=rsquoactionrsquo uniongt select jenisjudul film from film where jenis=rsquohororrsquo

Perintah di atas identik dengan

Mysqlgt select jenisjudul from film where jenis=rsquoactionrsquo or jenis =rsquounionrsquo

Namun tidak semua penggabungan dapat dilakukan dengan OR yaitu jika bekerja pada duatabel atau lebih

b INTERSECTINTERSECT merupakan operator yang digunakan untuk memperoleh data dari dua buah querydimana data yang ditampilkan adalah yang memenuhi kedua query tersebut dengan ketentuanjumlah nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harussamaSyntax SELECT FROM namatabel1 INTERSECT SELECT FROMnamatabel2Pada MySQL tidak terdapat operator INTERSECT namun sebagai gantinya dapat menggunakanoperator IN seperti contoh 1 pada bagian Nested Queries

c EXCEPT Set DifferenceEXCEPT merupakan operator yang digunakan untuk memperoleh data dari dua buah querydimana data yang ditampilkan adalah data yang ada pada hasil query 1 dan tidak terdapat padadata dari hasil query 2 dengan ketentuan jumlah nama dan tipe kolom dari masing-masing tabelyang akan ditampilkan datanya harus samaSyntax SELECT FROM namatabel1 EXCEPT SELECT FROM namatabel2Pada MySQL tidak terdapat operator EXCEPT namun sebagai gantinya dapat menggunakanoperator NOT IN seperti contoh 2 pada bagian Nested Queries

13) Operasi JoinJoin merupakan operasi yang digunakan untuk menggabungkan dua tabel atau lebih dengan hasilberupa 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 Berikutini perintah untuk menampilkan kolom judul dari tabel film dan kolom harga dari tabel jenisfilm

Mysqlgt select judul harga from film jenisfilm where jenisfilmjenis = filmjenis

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 14

Pada contoh di atas jenisfilmjenis=filmjenis merupakan kondisi untuk mencocokkandata antara kolom jenis milik tabel jenisfilm dan filma Inner Join

Inner join digunakan untuk menampilkan data dari dua tabel yang berisi data sesuai dengansyarat dibelakang on (tidak boleh null) dengan kata lain semua data dari tabel kiri mendapatpasangan data dari tabel sebelah kanan Berikut ini perintah untuk menampilkan data dari tabeljenisfilm dan film dengan syarat berdasarkan kolom jenis

Mysqlgt select form jenisfilm join film on (jenisfilmjenis =filmjenis)

b Left JoinLeft join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintah left joinbeserta pasangannya dari tabel sebelah kanan Meskipun terdapat data dari sebelah kiri tidakmemiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilai NULL

Mysqlgt select form jenisfilm left join film on (jenisfilmjenis =filmjenis)

c Right JoinRight join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintah rightjoin beserta pasangannya dari tabel sebelah kiri Meskipun terdapat data dari sebelah kanantidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilai NULL

Mysqlgt select form jenisfilm right join film on (jenisfilmjenis =filmjenis)

d Natural JoinNatural join digunakan untuk menampilkan semua data dari dua tabel dimana jika terdapatkolom yang sama maka yang akan ditampilkan hanya salah satunya saja yaitu kolom dari tabelsebelah kiri perintah natural join

Mysqlgt select form jenisfilm natural join film

1) Natural Left JoinNatural left join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintahnatural left join beserta pasangannya dari tabel sebelah kanan Meskipun terdapat data darisebelah kiri tidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilaiNULL

Mysqlgt select form jenisfilm natural left join film

2) Natural Right JoinNatural right join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintahnatural right join beserta pasangannya dari tabel sebelah kiri Meskipun terdapat data darisebelah kanan tidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupanilai NULL

Mysqlgt select form jenisfilm natural right join film

Tugas

1 Buatlah database dengan nama ldquoMahasiswardquokuliah Penjualantransaksikaryawan2 Buatlah tabel dengan nama ldquoPenilaianrdquo dengan struktur tabel seperti berikut

Field Type Key Default Extra

NPM Int(8) PRI NULLKdMk Varchar(5) NULL

NamaMK Varchar NULLMid Float(5) NULLFinal Float(5) NULL

NilRata Float(5) NULL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 15

3 Sisipkan nilai-nilainya seperti tabel berikut

NPM KdMK NamaMK Mid Final NilRata10296832 KK021 75 82 10297732 KD132 775 735 20216832 KK021 835 817 30216832 KU122 654 77 10297732 KK021 795 825 20216832 KD132 805 83 30216832 KK021 67 78

4 Tampilkan seluruh record mahasiswa yang berkode matakuliah atauu KdMK=KK021

5 Tampilkan record field NpmKdMK dan Mid saja bagi yang nilai mid-nya antara 75 dan 90

6 Sisipkan nilai untuk field nama matakuliah (NamaMK) dengan ketentuan sebagai berikut KdMK NamaMKKK021 Sistem Basis DataKD132 SIMKU122 Pancasila

7 Sisipkan nilai untuk field nilai rata-rata (NilRata) dengan ketentuan sebagai berikut Mid + Final 2

8 Hapuslah record yang memiliki Npm = 10296832

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 16

MODUL 4

MANAJEMEN USER

MAKSUD DAN TUJUANAgar mahasiswa memahami manajeman user pada SQL

MATERIProses pembuatan user baru dan pemberian hak akses user

Untul MySQL versi 322 keatas dalam manajemen user dapat menggunakan perintah GRANTdan REVOKE

Perintah GRANTDipergunakan untuk membuat user baru dengan izin aksesnya

Bentuk umum GRANT jenis_akses (``nama_kolom) ON nama_database

TO nama_user IDENTIFIED BY rdquonama_passwordrdquo[WITH GRANT pilihan_akses]

Perintah REVOKEUntuk menghapus izin akses user

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_userPerintah DELETEUntuk menghapus user secara permanen

Membuat User BaruDengan perintah GRANTContoh membuat user vivien

Tingkatan akses adalah ALL user vivien sebagai administratorON = dapat meng-akses semua databaseTO vivien dapat ditulis TO vivien atau TO vivienlocalhost

Buat user baru dengan nama ldquoayyirdquodengan perintah

User ayyi dapat login ke MySQL dapat mengakses semua database tetapi tidak memiliki izinakses jadi sebagai dummy user atau blank user

Lihat tabel user

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 17

Bagaimana dengan izin akses caranya dengan memeriksa tabel user yaitu kolom privilegesdengan perintah SELECT FROM USER

User vivien bertanda rdquo Y rdquo dapat mengakses semuaUser ayyi bertanda rdquo N rdquo tidak dapat mengakses

Coba gunakan user rdquo ayyi rdquoKeluar dari MySQL dan login kembali dengan user rdquo ayyi rdquo password rdquo fathin rdquoTampilan

Sintax mysql ndashu ayyi ndashp

Coba lihat database yang dapat diaksesTampilan

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 18

User ayyi tidak dapat mengakses database yang sudah terbentuk di mysql hanya databaseinformation_schema

Coba membuat database

Access denied tidak diberikan izin untuk create

Memberikan Izin Akses tertentu

Jika akan memberikan izin akses SELECT INSERT UPDATE dan DELETE kepada user ayyi yanghanya dapat digunakan pada database latihdb1Pemberian izin akses hanya boleh dilakukan oleh user dalam akses root atau user yangdiberikan zin akses setingkat administrator

Sebagai contoh user rdquorootrdquo atau user rdquoiyusrdquo (nama anda sendiri)Jika menggunakan rootPerintah

Mysql ndashu root -p

Jika menggunakan user rdquoiyusrdquo (nama anda sendiri)Perintah

Mysql ndashu iyus(nama sendiri) -p

Gunakan salah satu dan Buat database baru dengan nama rsquolatihdb1rsquo

Berikan izin akses ke database latihdb1Aktifkan database mysql dan lihat tabel ndash

Berikan izin untuk insert update delete create pada user ayyi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 19

Lihat perubahan izin akses

Coba mengakses dengan user ayyiDan lihat database yang dapat diakses

Database latihdb1 dapat diakses dan jika terdapat akses yang tidak diizinkan maka lakukanperitah GRANT untuk izin akses pada user ayyi dengan ketetapan user admin sebagai root

Contoh

Contoh user ayyi membuat table pegawai dalam database latihdb1

Buatlah database akademik dengan tabel mahasiswa matakuliah dan kelasStruktur tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 20

Struktur tabel Matakuliah

Struktur tabel kelas

Memberikan izin akses per tabel dan per kolomDengan perintah grant dapat digunakan untuk memberikan izin akses per tabel dan per kolomtabel

Contoh user ayyi diberikan izin akses SELECT dan INSERT untuk kolom kota dan kdpos padatabel mahasiwa

Sintaksis MySQL

Pengaruh dari perintah grant tables sebelumnya kita coba menampilkan tabel table_privSintaksis pertama

Keterangan Host Dapat diakses di semua komputer terkoneksi jaringanDb Database Akademik yang dapat diaksesUser User AyyiTable_name Mahasiswa yang dapat diaksesGrantor rootlocalhost yang memberikan izin aksesTimestamp Tanggal pemberian izin 18 November 2009

jam 105552

Database Akademik

Tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 21

Sintaksis kedua

Keterangan Column_priv Select dan Insert izin akses kolom yang diberikan

Untuk melihat kolom mana saja yang diberikan izin akses select dan insert dengan perintah Sintaksis MySQL

Keterangan Column_name Kota dan KdPos kolom yang diberikan izin aksesColumn_priv Izin akses kedua kolom tersebut adalah select dan insert

Anda coba kewenangan apa saja yang dapat dilakukan oleh user ayyiKeluar dari mysqlDan login kembali dengan user ayyi

Lakukan perintah

Lakukan perintah select record yang ada pada tabel mahasiswa

Lihat database aktif

Lihat tabel aktif

Akatifkan database akademik

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 22

User ayyi tidak diizikan untuk menampilkan data pada tabel mahasiswaIzin akses nya adalah select untuk kolom kota dan kode posLakukan perintah select kota dan kodepos

Bagaimana dengan perintah delete tabel

Perintah delete ditolakBagaimana dengan perintah UPDATE kota

Bagimana dengan perintah insert

Untuk perintah update dan insert data tidak dapat dilakukan oleh user ayyi

Bagimana user ayyi dapat mengakses tabel mahasiswaKeluar dari MySQL dan login kembali menggunakan user rootDan berikan izin akses untuk tabel mahasiswa kepada user ayyi

Perintah ini memberikan status root kepada user ayyi hanya izin akses lengkap di databaseakademik tabel mahasiswa ( on akademikmahasiswa )

Coba keluar dan login kembali dengan user ayyiLakukan perintah update dan select

List data kota dan kode pos

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 23

Perintah update dapat dilakukan

Lakukan perintah select data keseluruhan

Bagaimana dengan menambah data gunakan perintah insert

Perintan insert dapat dilakukan dan jumlah data terdiri 6 record

Bagaimana dengan select untuk tabel mata kuliah dan kelas

Untuk mengakses tabel matakuliah dan kelas tidak di izinkan

Memberikan izin akses berdasarkan lokasi pengaksesAdmin atau root atau memberikan izin akses berdasarkan lokasi atau membatasi komputermana saja yang dapat mengakses MySQL serverContoh pemberian izin akses

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 24

Perlu diperhatikan format pemberian izin berhubungan dengan cara login ke MySQL contoh Jika pemberian izin akse dengan no IP komputer maka login juga harus mencantumkan no IP

Yang lebih fleksibel menggunakan tanda rdquordquo dapat diakses dimana saja ke server MySQL

Menghapus izin aksesMenggunakan perintah REVOKE penggunaan perintah revoke ini hanya menghapus izin aksesuntuk user tertentu bukan penghapus userUser yang bersangkutan tetap dapat login ke MySQL

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_user

User ayyi dapat mengakses tabel yang ada di database akademik

Sebagai contoh user ayyi dihapus izin akses untuk database akademik

Sintaksis

Jangan lupa diakhir dengan perintah flush

Kasus jika suatu root telah memberikan izin akses hanya untuk satu tabel seperti user ayyitelah dahulu diberikan all privileges kepada tabel mahasiswa maka untuk menghapusnyadisesuaikan dengan perintah grant

Untuk menghapus izin akses di tabel mahasiswa lakukan perintah (izin aksesnya sama denganperintah grant)

Konsep memberikan izin akses user ndash privileges user merupakan hal yang sangat penting dalammenyangkut masalah keamanan pada MySQL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 25

MODUL 5

VIEW

MAKSUD DAN TUJUAN

Agar mahasiswa1 Dapat membuat View2 Dapat Memanggil data melalui View3 Merubah definisi View4 Insert Update dan Delete data melalui View5 Menghapus (drop) view

MATERIProses pengolahan isi data di dalam table seperti membuat dan memanggil tabel menggunakan fungsiview

View adalah perintah query yang disimpan pada database dengan suatu nama tertentusehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang query tersebut

Syntax dasar perintah untuk membuat view adalah sebagai berikut

CREATE[OR REPLACE]VIEW view_name [(column_list)]AS select_statement

Kita menggunakan opsi OR REPLACE jika kita ingin mengganti view dengan nama yang samadengan perintah tersebut Jika tidak maka perintah CREATE VIEW akan menghasilkan errorjika nama view yang ingin dibuat sudah ada sebelumnya

Contoh Penggunaan

Kita akan membuat view dari relasi antara table film dan jenisfilm dari database rentaldengan nama view_harga Perintahnya adalah sebagai berikut

CREATE VIEW view_hargaASSELECT j1kode_film j1jenisj1judul j2hargaFROMfilm j1 JOIN jenisfilm j2 ON j1jenis= j2jenis

Eksekusi perintah berikut untuk memastikan view telah dibuat

SELECT FROM information_schemaviews WHERE table_name = view_harga

Terakhir query view tersebut untuk melihat hasilnya

SELECT FROM view_harga

Tugas

1 Buat Data Base baru dengan Koperasi

2 Lihat database

3 Masuk ke data base koperasi

4 Buat table Nasabah

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 26

Nama_field Tipe data size ket

Kd_nasabah Char 5 Primary key

Nama_nasabah varchar 35

Alamat varchar 35

Telepon varchar 15

Status enum (ldquotetaprdquordquotidak Tetaprdquo)

5 Lihat struktur tabl nasabah

6 Ubah typedata status menjadi varchar(20)

7 Hapus field status

8 Isi table nasabah

Kd_nasabah Nama_nasabah Alamat Telepon

00011 Ika Kepadangan 085730333999

00012 Rozi Depok 08586789380

00013 Ari Pasar Minggu 021986782

00014 Gali Sidoarjo 022456

9 Tampilkan data pada table nasabah

10 Tampilkan nasabah yang beralamat di depok

11 Ubah nama_nasabah dengan kd_nasabah 00012 menjdi Indriyani

12 Buat tabel Pinjaman

Nama field Tipe data size keterangan

No_Ref char

Kd_nasabah char

Jml-pimjam int

tempo date ldquo0000-00-00rdquo

13 Tambahkan primary key pada no_ref

14 Ganti tempo menjad tgl_tempo

15 Tambahkan field lama_pinjam varchar(10)

16 Isikan table pinjaman

No_ref Kd_nasabah Jml-pinjam Tgl_tempo Lama_pinjam

Ref01 00011 5000000 2010-06-14 6

Ref02 00012 2000000 2010-08-25 12

Ref03 00013 1500000 2010-10-20 3

17 Lihat jumlah pinjam di atas 3000000

18 Lihat jumlah pinjam pada kd_nasabah 00012

19 Hapus isi field dengan no_ref03

20 Hapus table pinjaman

21 Lihat table pada database

e koperasi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 8

m Mendefinisikan Foreign Key Pada TabelUntuk mendefinisikan foreign key maka harus dipastikan bahwa tabel dan atribut yangdirujuk (tabel induk dari foreign key) sudah didefinisikan terlebih dahulu Syntax CREATE TABLE namatabel(Field1 TipeData1Field2 TipeData2FOREIGN KEY (Field2) REFERENCES namatabelinduk

(namakolominduk)ON UPDATE CASCADEON DELETE NO ACTION

)atau

ALTER TABLE namatabel ADD CONSTRAINT namaconstraint FOREIGNKEY (namakolom) REFERENCES namatabelinduk (namakolominduk) ONUPDATE CASCADE ON DELETE NO ACTIONBerikut ini perintah untuk membuat tabel film beserta kolom-kolomnya

Mysqlgt create table film(Kode_film char(3) not null primary keyJenis char(6) not nullJudul varchar(30)Jml_keping intJml_film intForeign key(jenis) references jenisfilm(jenis) on

update cascadeon delete no action)

atau

mysqlgt create table film (kode_film char(3) not null primary keyjenis char(6) not nulljudul varchar(30)jml_keping intjml_film int)

mysqlgt alter table film add constraint fk foreign key (jenis)references jenisfilm(jenis) on update cascade on delete noaction

n Menghapus Foreign KeyPerintah ALTER TABLE namatabel DROP FOREIGN KEY namaconstraint Berikut iniperintah untuk menghapus foreign key pada tabel film

Mysqlgt alter table film drop foreign key fkTugas

1 Buatlahdatabase dengannama Penggajian2 Buat struktur tabel seperti dibawah ini

3 Berikan primary key padafield golditabelgolongan4 Tambahkansatufield tanggal_lahirpadatable5 karyawandengandata type date6 Tambahkanfield kotapadatable karyawandengan data type text 207 Ubahnamafield tanggal_lahirpadatable karyawan dengan namattl8 Ubahsize field kotapadatable karyawandengansize9 Hapusfield ttlpadatabelkaryawan10 Hapus field kota pada tabel karyawan11 Hapuskeduatabeltersebut

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 9

MODUL 3

DML (Data Manipulation Language)

MAKSUD DAN TUJUANAgar mahasiswa memahami cara manipulasi basis data dengan perintah DML

MATERIProses pengolahan isi data di dalam table seperti memasukkan merubah dan menghapus isi data - dantidak terkait dengan perubahan struktur dan definisi tipe data dari objek database

DML adalah kelompok perintah yang berfungsi untuk memanipulasi data dalam basis datamisalnya untuk pengambilan penyisipan pengubahan dan penghapusan data Perintah yang termasukdalah kategori DML adalah INSERT DELETE UPDATE dan SELECT

a INSERTPerintah INSERT digunakan untuk menambahkan baris pada suatu tabelTerdapat dua cara untuk menambah baris yaitu Cara 1 Menambah baris dengan mengisi data pada setiap kolom INSERT INTO namatabel VALUES (nilai1nilai2nilai-n)Cara 2 Menambah baris dengan hanya mengisi data pada kolom tertentu INSERT INTO namatabel (kolom1kolom2kolom-n) VALUES(nilai1nilai2nilai-n)Berikut ini perintah untuk menambahkan baris pada tabel jenisfilm Cara 1

Mysqlgt insert into jenisfilm values (lsquoactionrsquo3000)

Cara 2

Mysqlgt insert into jenisfilm (jenisharga) values (lsquohororrsquo3500)

Keterangan Jika data bertipe string date atau time (contoh action horor 2007-11-10) maka pemberian nilainyadiapit dengan tanda petik tunggal (lsquohororrsquo) atau petik ganda (ldquohororrdquo) Jika data bertipe numerik(2500 400) maka pemberian nilainya tidak diapit tanda petik tunggal maupun ganda

b DELETEPerintah DELETE digunakan untuk menghapus satu baris baris dengan kondisi tertentu atau seluruhbarisSyntax DELETE FROM namatabel [WHERE kondisi]Perintah dalam tanda [] bersifat opsional untuk menghapus suatu baris dengan suatu kondisi tertentuBerikut ini perintah untuk menghapus baris pada tabel jenisfilm dengan data sebagai berikut

Mysqlgt select from jenisfilm

Contoh 1 jika ingin menghapus seluruh baris pada tabel jenisfilm

Mysqlgt delete from jenisfilm

Contoh 2 jika ingin menghapus baris yang memiliki nilai 3000 pada kolom harga pada tabeljenisfilm maka perintahnya sebagai berikut

Mysqlgt delete from jenisfilm where harga=3000

Contoh 3 jika ingin menghapus baris yang memiliki nilai drama pada kolom jenis pada tabeljenisfilm maka perintahnya sebagai berikut

Mysqlgt delete from jenisfilm where jenis=rsquodramarsquo

c UPDATEPerintah UPDATE digunakan untuk mengubah isi data pada satu atau beberapa kolom pada suatutabelSyntax

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 10

UPDATE namatabel SET kolom1 = nilai1 kolom2 = nilai2 [WHEREkondisi]Perintah dalam tanda [] bersifat opsional untuk mengubah suatu baris dengan suatu kondisi tertentuBerikut ini perintah untuk mengubah baris pada tabel jenisfilm dengan data sebagai berikut

Mysqlgt select from jenisfilm

Contoh 1 mengubah semua nilai pada kolom harga menjadi 2000

Mysqlgt update jenisfilm set harga=2000

Contoh 2 mengubah nilai pada kolom harga menjadi 2500 dimana nilai pada kolom jenis adalahaction

Mysqlgt update jenisfilm set harga=2500 where jenis=rsquoactionrsquo

d SELECTPerintah SELECT digunakan untuk menampilkan isi dari suatu tabel yang dapat dihubungkandengan tabel yang lainnya

1) Menampilkan data untuk semua kolom menggunakan asterisk ()Syntax SELECT FROM namatabelBerikut ini perintah untuk menampilkan semua data pada tabel jenisfilm

Mysqlgt select from jenisfilm

2) Menampilkan data untuk kolom tertentuSyntax SELECT kolom1kolom2kolom-n FROM namatabelBerikut ini perintah untuk menampilkan data pada tabel jenisfilm dengan kolom yang ditampilkanadalah kolom jenis Mysqlgt select jenis from jenisfilm

3) Menampilkan data dengan kondisi data tertentu dengan klausa WHERESyntax SELECT FROM namatabel WHERE kondisiBerikut ini perintah untuk menampilkan data pada tabel jenisfilm dimana nilai pada kolom jenisadalah drama

Mysqlgt select from jenisfilm where jenis=rsquodramarsquo

Beberapa operator perbandingan yang dapat digunakan pada klausa WHERE selain ldquo=rdquo adalah gt(lebih dari) lt (kurang dari) lt gt (tidak sama dengan) gt= (lebih dari atau sama dengan) lt= (kurangdari atau sama dengan) Adapun operator lain yaitu AND OR NOT BETWEEN-AND IN danLIKE Berikut ini data yang ada pada tabel jenisfilm

Mysqlgt select from jenisfilm

Contoh 1 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai harga berkisar dari1000 hingga 3000

Mysqlgt select from jenisfilm where hargagt=1000 and hargalt=3000

Atau

Mysqlgt select from jenisfilm where harga between 1000 and 3000

Contoh 2 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai harga sama dengan1000 atau 3000

Mysqlgt select from jenisfilm where harga=1000 or harga=3000

atau

mysqlgt select from jenisfilm where harga in (10003000)

Contoh 3 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai pada kolom jenis tidaksama dengan action

Mysqlgt select from jenisfilm where not jenis=rsquoactionrsquo

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 11

atau

mysqlgt selectfrom jenisfilm where jenisltgtrsquoactionrsquo

Contoh 4 Isi tabel film

Mysqlgt selectfrom film

perintah untuk menampilkan data pada tabel film dimana data pada kolom tertentu diawali dengannilai tertentu misalnya pada kolom judul dimana diawali dengan karakter lsquoSrsquo

Mysqlgt selectfrom film where judul like lsquoSrsquo

4) Memberikan nama lain pada kolomSyntax SELECT namakolomlama AS namakolombaru FROM namatabelBerikut ini perintah untuk memberikan nama lain pada kolom jenis menjadi jenis_film pada tabeljenisfilm

Mysqlgt select jenis as jenis_film from jenisfilm

5) Menggunakan alias untuk nama tabelSyntax SELECT nmaliasjenis nmaliasharga FROM namatabel nmaliasBerikut ini perintah untuk memberikan alias pada tabel jenisfilm

Mysqlgt select jjenis jharga from jenisfilm j

6) Menampilkan data lebih dari dua tabelSyntax SELECT from namatabel1namatabel2namatabel-nIsi tabel jenisfilm

Mysqlgt selectfrom jenisfilm

Isi tabel film

Mysqlgt selectfrom film

Berikut ini perintah untuk menampilkan semua data pada tabel jenisfilm dan film

Mysqlgt selectfrom jenisfilmfilm

7) Nested Queries Subquery (IN NOT IN EXISTS NOT EXISTS)Subquery berarti query di dalam query Dengan menggunakan subquery hasil dari query akanmenjadi bagian dari query di atasnyaSubquery terletak di dalam klausa WHERE atau HAVING Pada klausa WHERE subquerydigunakan untuk memilih baris-baris tertentu yang kemudian digunakan oleh query Sedangkan padaklausa HAVING subquery digunakan untuk memilih kelompok baris yang kemudian digunakanoleh query

Contoh 1 perintah untuk menampilkan data pada tabel jenisfilm yang mana data pada kolom jenis-nya tercantum pada tabel film menggunakan IN

Mysqlgt selectfrom jenisfilm where jenis in (select jenis from film)

atau menggunakan EXISTS

Mysqlgt selectfrom jenisfilm where exists (select from film where jenisfilmjenis =filmjenis)

Pada contoh di atas SELECT jenis FROM film

disebut subquery sedangkan SELECT FROM jenisfilm

berkedudukan sebagai query Perhatikan terdapat data jenis dan harga pada tabel jenisfilm yangtidak ditampilkan Hal ini disebabkan data pada kolom jenis tidak terdapat pada kolom jenis di tabelfilm

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 12

Contoh 2 perintah untuk menampilkan data pada tabel jenisfilm yang mana data pada kolom jenis-nya tidak tercantum pada tabel film menggunakan NOT IN

Mysqlgt selectfrom jenisfilm where jenis not in (select jenis from film)

atau menggunakan NOT EXISTS

Mysqlgt selectfrom jenisfilm where not exists (select from film where jenisfilmjenis =filmjenis)

8) Operator comparison ANY dan ALLa Operator ANY digunakan berkaitan dengan subquery Operator ini menghasilkan TRUE (benar)

jika paling tidak salah satu perbandingan dengan hasil subquery menghasilkan nilai TRUEIlustrasinya

Gaji gt ANY (S)Jika subquery S menghasilkan G1 G2 Gn maka kondisi di atas identik dengan

(gaji gt G1) OR (gaji gt G2) OR OR (gaji gt Gn)Contoh perintah untuk menampilkan semua data jenisfilm yang harganya bukan yang terkecil

Mysqlgt selectfrom jenisfilm where harga gt ANY (select harga from jenisfilm)

b Operator ALL digunakan untuk melakukan perbandingan dengan subquery Kondisi dengan ALLmenghasilkan nilai TRUE (benar) jika subquery tidak menghasilkan apapun atau jikaperbandingan menghasilkan TRUE untuk setiap nilai query terhadap hasil subqueryContoh perintah untuk menampilkan data jenisfilm yang harganya paling tinggi

Mysqlgt selectfrom jenisfilm where harga gt= ALL (select harga from jenisfilm)

9) Aggregate Functions (COUNT SUM AVG MIN MAX)a COUNT

Perintah yang digunakan untuk menghitung jumlah baris suatu kolom pada tabel Contoh perintah untuk menghitung jumlah baris kolom jenis pada tabel jenisfilm

Mysqlgt select count(jenis) form jenisfilm

b SUMPerintah yang digunakan untuk menghitung jumlah nilai suatu kolom pada tabel Contoh perintah untuk menghitung jumlah nilai kolom harga pada tabel jenisfilm

Mysqlgt select sum (harga) form jenisfilm

c AVGPerintah yang digunakan untuk menghitung rata-rata dari nilai suatu kolom pada tabel Contoh perintah untuk menghitung rata-rata dari kolom harga pada tabel jenisfilm

Mysqlgt select avg(harga) form jenisfilm

d MINPerintah yang digunakan untuk menampilkan nilai terkecil dari suatu kolom pada tabel Contoh perintah untuk menampilkan nilai terkecil dari kolom harga pada tabel jenisfilm Mysqlgt select min(harga) form jenisfilm

e MAXPerintah yang digunakan untuk menampilkan nilai terbesar dari suatu kolom pada tabel Contoh perintah untuk menampilkan nilai terbesar dari kolom harga pada tabel jenisfilm

Mysqlgt select max(harga) form jenisfilm

10) SQL dengan GROUP BY dan HAVINGKlausa GROUP BY digunakan untuk melakukan pengelompokan data Sebagai contoh terdapattabel film dengan data sebagai berikut

Mysqlgt select form film

akan ditampilkan hanya kolom jenis dan digabungkan dengan SUM(jml_film) yang dikelompokkanberdasarkan kolom jenis pada tabel film

Mysqlgt select jenissum(jml_film) from film group by jenis

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 13

Klausa HAVING digunakan untuk menentukan kondisi bagi klausa GROUP BY Kelompok yangmemenuhi HAVING saja yang akan dihasilkan Contoh perintah untuk menampilkan data hanyakolom jenis yang dikelompokkan berdasarkan kolom jenis dimana jumlah film berdasarkankelompoknya harus lebih besar dari satu pada tabel film

Mysqlgt select jenis film group by jenis having count(kode_film) gt1

11) ORDER BYKlausa ORDER BY digunakan untuk mengurutkan data berdasarkan kolom tertentu sesuai dengantipe data yang dimiliki Contoh perintah untuk mengurutkan data film berdasarkan kolom judul

Mysqlgt select from film order by judul

atau tambahkan ASC untuk pengurutan secara ascending (menaik)

Mysqlgt select from film order by judul asc

atau tambahkan DESC untuk pengurutan secara descending (menurun)

Mysqlgt select from film order by judul desc

12) UNION INTERSECT dan EXCEPT

a UNIONUNION merupakan operator yang digunakan untuk menggabungkan hasil query denganketentuan jumlah nama dan tipe kolom dari masing-masing tabel yang akan ditampilkandatanya harus sama Berikut ini perintah untuk memperoleh data pada tabel film dimanajenisnya action dan horor

Mysqlgt select jenisjudul from film where jenis=rsquoactionrsquo uniongt select jenisjudul film from film where jenis=rsquohororrsquo

Perintah di atas identik dengan

Mysqlgt select jenisjudul from film where jenis=rsquoactionrsquo or jenis =rsquounionrsquo

Namun tidak semua penggabungan dapat dilakukan dengan OR yaitu jika bekerja pada duatabel atau lebih

b INTERSECTINTERSECT merupakan operator yang digunakan untuk memperoleh data dari dua buah querydimana data yang ditampilkan adalah yang memenuhi kedua query tersebut dengan ketentuanjumlah nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harussamaSyntax SELECT FROM namatabel1 INTERSECT SELECT FROMnamatabel2Pada MySQL tidak terdapat operator INTERSECT namun sebagai gantinya dapat menggunakanoperator IN seperti contoh 1 pada bagian Nested Queries

c EXCEPT Set DifferenceEXCEPT merupakan operator yang digunakan untuk memperoleh data dari dua buah querydimana data yang ditampilkan adalah data yang ada pada hasil query 1 dan tidak terdapat padadata dari hasil query 2 dengan ketentuan jumlah nama dan tipe kolom dari masing-masing tabelyang akan ditampilkan datanya harus samaSyntax SELECT FROM namatabel1 EXCEPT SELECT FROM namatabel2Pada MySQL tidak terdapat operator EXCEPT namun sebagai gantinya dapat menggunakanoperator NOT IN seperti contoh 2 pada bagian Nested Queries

13) Operasi JoinJoin merupakan operasi yang digunakan untuk menggabungkan dua tabel atau lebih dengan hasilberupa 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 Berikutini perintah untuk menampilkan kolom judul dari tabel film dan kolom harga dari tabel jenisfilm

Mysqlgt select judul harga from film jenisfilm where jenisfilmjenis = filmjenis

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 14

Pada contoh di atas jenisfilmjenis=filmjenis merupakan kondisi untuk mencocokkandata antara kolom jenis milik tabel jenisfilm dan filma Inner Join

Inner join digunakan untuk menampilkan data dari dua tabel yang berisi data sesuai dengansyarat dibelakang on (tidak boleh null) dengan kata lain semua data dari tabel kiri mendapatpasangan data dari tabel sebelah kanan Berikut ini perintah untuk menampilkan data dari tabeljenisfilm dan film dengan syarat berdasarkan kolom jenis

Mysqlgt select form jenisfilm join film on (jenisfilmjenis =filmjenis)

b Left JoinLeft join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintah left joinbeserta pasangannya dari tabel sebelah kanan Meskipun terdapat data dari sebelah kiri tidakmemiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilai NULL

Mysqlgt select form jenisfilm left join film on (jenisfilmjenis =filmjenis)

c Right JoinRight join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintah rightjoin beserta pasangannya dari tabel sebelah kiri Meskipun terdapat data dari sebelah kanantidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilai NULL

Mysqlgt select form jenisfilm right join film on (jenisfilmjenis =filmjenis)

d Natural JoinNatural join digunakan untuk menampilkan semua data dari dua tabel dimana jika terdapatkolom yang sama maka yang akan ditampilkan hanya salah satunya saja yaitu kolom dari tabelsebelah kiri perintah natural join

Mysqlgt select form jenisfilm natural join film

1) Natural Left JoinNatural left join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintahnatural left join beserta pasangannya dari tabel sebelah kanan Meskipun terdapat data darisebelah kiri tidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilaiNULL

Mysqlgt select form jenisfilm natural left join film

2) Natural Right JoinNatural right join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintahnatural right join beserta pasangannya dari tabel sebelah kiri Meskipun terdapat data darisebelah kanan tidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupanilai NULL

Mysqlgt select form jenisfilm natural right join film

Tugas

1 Buatlah database dengan nama ldquoMahasiswardquokuliah Penjualantransaksikaryawan2 Buatlah tabel dengan nama ldquoPenilaianrdquo dengan struktur tabel seperti berikut

Field Type Key Default Extra

NPM Int(8) PRI NULLKdMk Varchar(5) NULL

NamaMK Varchar NULLMid Float(5) NULLFinal Float(5) NULL

NilRata Float(5) NULL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 15

3 Sisipkan nilai-nilainya seperti tabel berikut

NPM KdMK NamaMK Mid Final NilRata10296832 KK021 75 82 10297732 KD132 775 735 20216832 KK021 835 817 30216832 KU122 654 77 10297732 KK021 795 825 20216832 KD132 805 83 30216832 KK021 67 78

4 Tampilkan seluruh record mahasiswa yang berkode matakuliah atauu KdMK=KK021

5 Tampilkan record field NpmKdMK dan Mid saja bagi yang nilai mid-nya antara 75 dan 90

6 Sisipkan nilai untuk field nama matakuliah (NamaMK) dengan ketentuan sebagai berikut KdMK NamaMKKK021 Sistem Basis DataKD132 SIMKU122 Pancasila

7 Sisipkan nilai untuk field nilai rata-rata (NilRata) dengan ketentuan sebagai berikut Mid + Final 2

8 Hapuslah record yang memiliki Npm = 10296832

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 16

MODUL 4

MANAJEMEN USER

MAKSUD DAN TUJUANAgar mahasiswa memahami manajeman user pada SQL

MATERIProses pembuatan user baru dan pemberian hak akses user

Untul MySQL versi 322 keatas dalam manajemen user dapat menggunakan perintah GRANTdan REVOKE

Perintah GRANTDipergunakan untuk membuat user baru dengan izin aksesnya

Bentuk umum GRANT jenis_akses (``nama_kolom) ON nama_database

TO nama_user IDENTIFIED BY rdquonama_passwordrdquo[WITH GRANT pilihan_akses]

Perintah REVOKEUntuk menghapus izin akses user

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_userPerintah DELETEUntuk menghapus user secara permanen

Membuat User BaruDengan perintah GRANTContoh membuat user vivien

Tingkatan akses adalah ALL user vivien sebagai administratorON = dapat meng-akses semua databaseTO vivien dapat ditulis TO vivien atau TO vivienlocalhost

Buat user baru dengan nama ldquoayyirdquodengan perintah

User ayyi dapat login ke MySQL dapat mengakses semua database tetapi tidak memiliki izinakses jadi sebagai dummy user atau blank user

Lihat tabel user

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 17

Bagaimana dengan izin akses caranya dengan memeriksa tabel user yaitu kolom privilegesdengan perintah SELECT FROM USER

User vivien bertanda rdquo Y rdquo dapat mengakses semuaUser ayyi bertanda rdquo N rdquo tidak dapat mengakses

Coba gunakan user rdquo ayyi rdquoKeluar dari MySQL dan login kembali dengan user rdquo ayyi rdquo password rdquo fathin rdquoTampilan

Sintax mysql ndashu ayyi ndashp

Coba lihat database yang dapat diaksesTampilan

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 18

User ayyi tidak dapat mengakses database yang sudah terbentuk di mysql hanya databaseinformation_schema

Coba membuat database

Access denied tidak diberikan izin untuk create

Memberikan Izin Akses tertentu

Jika akan memberikan izin akses SELECT INSERT UPDATE dan DELETE kepada user ayyi yanghanya dapat digunakan pada database latihdb1Pemberian izin akses hanya boleh dilakukan oleh user dalam akses root atau user yangdiberikan zin akses setingkat administrator

Sebagai contoh user rdquorootrdquo atau user rdquoiyusrdquo (nama anda sendiri)Jika menggunakan rootPerintah

Mysql ndashu root -p

Jika menggunakan user rdquoiyusrdquo (nama anda sendiri)Perintah

Mysql ndashu iyus(nama sendiri) -p

Gunakan salah satu dan Buat database baru dengan nama rsquolatihdb1rsquo

Berikan izin akses ke database latihdb1Aktifkan database mysql dan lihat tabel ndash

Berikan izin untuk insert update delete create pada user ayyi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 19

Lihat perubahan izin akses

Coba mengakses dengan user ayyiDan lihat database yang dapat diakses

Database latihdb1 dapat diakses dan jika terdapat akses yang tidak diizinkan maka lakukanperitah GRANT untuk izin akses pada user ayyi dengan ketetapan user admin sebagai root

Contoh

Contoh user ayyi membuat table pegawai dalam database latihdb1

Buatlah database akademik dengan tabel mahasiswa matakuliah dan kelasStruktur tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 20

Struktur tabel Matakuliah

Struktur tabel kelas

Memberikan izin akses per tabel dan per kolomDengan perintah grant dapat digunakan untuk memberikan izin akses per tabel dan per kolomtabel

Contoh user ayyi diberikan izin akses SELECT dan INSERT untuk kolom kota dan kdpos padatabel mahasiwa

Sintaksis MySQL

Pengaruh dari perintah grant tables sebelumnya kita coba menampilkan tabel table_privSintaksis pertama

Keterangan Host Dapat diakses di semua komputer terkoneksi jaringanDb Database Akademik yang dapat diaksesUser User AyyiTable_name Mahasiswa yang dapat diaksesGrantor rootlocalhost yang memberikan izin aksesTimestamp Tanggal pemberian izin 18 November 2009

jam 105552

Database Akademik

Tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 21

Sintaksis kedua

Keterangan Column_priv Select dan Insert izin akses kolom yang diberikan

Untuk melihat kolom mana saja yang diberikan izin akses select dan insert dengan perintah Sintaksis MySQL

Keterangan Column_name Kota dan KdPos kolom yang diberikan izin aksesColumn_priv Izin akses kedua kolom tersebut adalah select dan insert

Anda coba kewenangan apa saja yang dapat dilakukan oleh user ayyiKeluar dari mysqlDan login kembali dengan user ayyi

Lakukan perintah

Lakukan perintah select record yang ada pada tabel mahasiswa

Lihat database aktif

Lihat tabel aktif

Akatifkan database akademik

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 22

User ayyi tidak diizikan untuk menampilkan data pada tabel mahasiswaIzin akses nya adalah select untuk kolom kota dan kode posLakukan perintah select kota dan kodepos

Bagaimana dengan perintah delete tabel

Perintah delete ditolakBagaimana dengan perintah UPDATE kota

Bagimana dengan perintah insert

Untuk perintah update dan insert data tidak dapat dilakukan oleh user ayyi

Bagimana user ayyi dapat mengakses tabel mahasiswaKeluar dari MySQL dan login kembali menggunakan user rootDan berikan izin akses untuk tabel mahasiswa kepada user ayyi

Perintah ini memberikan status root kepada user ayyi hanya izin akses lengkap di databaseakademik tabel mahasiswa ( on akademikmahasiswa )

Coba keluar dan login kembali dengan user ayyiLakukan perintah update dan select

List data kota dan kode pos

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 23

Perintah update dapat dilakukan

Lakukan perintah select data keseluruhan

Bagaimana dengan menambah data gunakan perintah insert

Perintan insert dapat dilakukan dan jumlah data terdiri 6 record

Bagaimana dengan select untuk tabel mata kuliah dan kelas

Untuk mengakses tabel matakuliah dan kelas tidak di izinkan

Memberikan izin akses berdasarkan lokasi pengaksesAdmin atau root atau memberikan izin akses berdasarkan lokasi atau membatasi komputermana saja yang dapat mengakses MySQL serverContoh pemberian izin akses

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 24

Perlu diperhatikan format pemberian izin berhubungan dengan cara login ke MySQL contoh Jika pemberian izin akse dengan no IP komputer maka login juga harus mencantumkan no IP

Yang lebih fleksibel menggunakan tanda rdquordquo dapat diakses dimana saja ke server MySQL

Menghapus izin aksesMenggunakan perintah REVOKE penggunaan perintah revoke ini hanya menghapus izin aksesuntuk user tertentu bukan penghapus userUser yang bersangkutan tetap dapat login ke MySQL

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_user

User ayyi dapat mengakses tabel yang ada di database akademik

Sebagai contoh user ayyi dihapus izin akses untuk database akademik

Sintaksis

Jangan lupa diakhir dengan perintah flush

Kasus jika suatu root telah memberikan izin akses hanya untuk satu tabel seperti user ayyitelah dahulu diberikan all privileges kepada tabel mahasiswa maka untuk menghapusnyadisesuaikan dengan perintah grant

Untuk menghapus izin akses di tabel mahasiswa lakukan perintah (izin aksesnya sama denganperintah grant)

Konsep memberikan izin akses user ndash privileges user merupakan hal yang sangat penting dalammenyangkut masalah keamanan pada MySQL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 25

MODUL 5

VIEW

MAKSUD DAN TUJUAN

Agar mahasiswa1 Dapat membuat View2 Dapat Memanggil data melalui View3 Merubah definisi View4 Insert Update dan Delete data melalui View5 Menghapus (drop) view

MATERIProses pengolahan isi data di dalam table seperti membuat dan memanggil tabel menggunakan fungsiview

View adalah perintah query yang disimpan pada database dengan suatu nama tertentusehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang query tersebut

Syntax dasar perintah untuk membuat view adalah sebagai berikut

CREATE[OR REPLACE]VIEW view_name [(column_list)]AS select_statement

Kita menggunakan opsi OR REPLACE jika kita ingin mengganti view dengan nama yang samadengan perintah tersebut Jika tidak maka perintah CREATE VIEW akan menghasilkan errorjika nama view yang ingin dibuat sudah ada sebelumnya

Contoh Penggunaan

Kita akan membuat view dari relasi antara table film dan jenisfilm dari database rentaldengan nama view_harga Perintahnya adalah sebagai berikut

CREATE VIEW view_hargaASSELECT j1kode_film j1jenisj1judul j2hargaFROMfilm j1 JOIN jenisfilm j2 ON j1jenis= j2jenis

Eksekusi perintah berikut untuk memastikan view telah dibuat

SELECT FROM information_schemaviews WHERE table_name = view_harga

Terakhir query view tersebut untuk melihat hasilnya

SELECT FROM view_harga

Tugas

1 Buat Data Base baru dengan Koperasi

2 Lihat database

3 Masuk ke data base koperasi

4 Buat table Nasabah

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 26

Nama_field Tipe data size ket

Kd_nasabah Char 5 Primary key

Nama_nasabah varchar 35

Alamat varchar 35

Telepon varchar 15

Status enum (ldquotetaprdquordquotidak Tetaprdquo)

5 Lihat struktur tabl nasabah

6 Ubah typedata status menjadi varchar(20)

7 Hapus field status

8 Isi table nasabah

Kd_nasabah Nama_nasabah Alamat Telepon

00011 Ika Kepadangan 085730333999

00012 Rozi Depok 08586789380

00013 Ari Pasar Minggu 021986782

00014 Gali Sidoarjo 022456

9 Tampilkan data pada table nasabah

10 Tampilkan nasabah yang beralamat di depok

11 Ubah nama_nasabah dengan kd_nasabah 00012 menjdi Indriyani

12 Buat tabel Pinjaman

Nama field Tipe data size keterangan

No_Ref char

Kd_nasabah char

Jml-pimjam int

tempo date ldquo0000-00-00rdquo

13 Tambahkan primary key pada no_ref

14 Ganti tempo menjad tgl_tempo

15 Tambahkan field lama_pinjam varchar(10)

16 Isikan table pinjaman

No_ref Kd_nasabah Jml-pinjam Tgl_tempo Lama_pinjam

Ref01 00011 5000000 2010-06-14 6

Ref02 00012 2000000 2010-08-25 12

Ref03 00013 1500000 2010-10-20 3

17 Lihat jumlah pinjam di atas 3000000

18 Lihat jumlah pinjam pada kd_nasabah 00012

19 Hapus isi field dengan no_ref03

20 Hapus table pinjaman

21 Lihat table pada database

e koperasi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 9

MODUL 3

DML (Data Manipulation Language)

MAKSUD DAN TUJUANAgar mahasiswa memahami cara manipulasi basis data dengan perintah DML

MATERIProses pengolahan isi data di dalam table seperti memasukkan merubah dan menghapus isi data - dantidak terkait dengan perubahan struktur dan definisi tipe data dari objek database

DML adalah kelompok perintah yang berfungsi untuk memanipulasi data dalam basis datamisalnya untuk pengambilan penyisipan pengubahan dan penghapusan data Perintah yang termasukdalah kategori DML adalah INSERT DELETE UPDATE dan SELECT

a INSERTPerintah INSERT digunakan untuk menambahkan baris pada suatu tabelTerdapat dua cara untuk menambah baris yaitu Cara 1 Menambah baris dengan mengisi data pada setiap kolom INSERT INTO namatabel VALUES (nilai1nilai2nilai-n)Cara 2 Menambah baris dengan hanya mengisi data pada kolom tertentu INSERT INTO namatabel (kolom1kolom2kolom-n) VALUES(nilai1nilai2nilai-n)Berikut ini perintah untuk menambahkan baris pada tabel jenisfilm Cara 1

Mysqlgt insert into jenisfilm values (lsquoactionrsquo3000)

Cara 2

Mysqlgt insert into jenisfilm (jenisharga) values (lsquohororrsquo3500)

Keterangan Jika data bertipe string date atau time (contoh action horor 2007-11-10) maka pemberian nilainyadiapit dengan tanda petik tunggal (lsquohororrsquo) atau petik ganda (ldquohororrdquo) Jika data bertipe numerik(2500 400) maka pemberian nilainya tidak diapit tanda petik tunggal maupun ganda

b DELETEPerintah DELETE digunakan untuk menghapus satu baris baris dengan kondisi tertentu atau seluruhbarisSyntax DELETE FROM namatabel [WHERE kondisi]Perintah dalam tanda [] bersifat opsional untuk menghapus suatu baris dengan suatu kondisi tertentuBerikut ini perintah untuk menghapus baris pada tabel jenisfilm dengan data sebagai berikut

Mysqlgt select from jenisfilm

Contoh 1 jika ingin menghapus seluruh baris pada tabel jenisfilm

Mysqlgt delete from jenisfilm

Contoh 2 jika ingin menghapus baris yang memiliki nilai 3000 pada kolom harga pada tabeljenisfilm maka perintahnya sebagai berikut

Mysqlgt delete from jenisfilm where harga=3000

Contoh 3 jika ingin menghapus baris yang memiliki nilai drama pada kolom jenis pada tabeljenisfilm maka perintahnya sebagai berikut

Mysqlgt delete from jenisfilm where jenis=rsquodramarsquo

c UPDATEPerintah UPDATE digunakan untuk mengubah isi data pada satu atau beberapa kolom pada suatutabelSyntax

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 10

UPDATE namatabel SET kolom1 = nilai1 kolom2 = nilai2 [WHEREkondisi]Perintah dalam tanda [] bersifat opsional untuk mengubah suatu baris dengan suatu kondisi tertentuBerikut ini perintah untuk mengubah baris pada tabel jenisfilm dengan data sebagai berikut

Mysqlgt select from jenisfilm

Contoh 1 mengubah semua nilai pada kolom harga menjadi 2000

Mysqlgt update jenisfilm set harga=2000

Contoh 2 mengubah nilai pada kolom harga menjadi 2500 dimana nilai pada kolom jenis adalahaction

Mysqlgt update jenisfilm set harga=2500 where jenis=rsquoactionrsquo

d SELECTPerintah SELECT digunakan untuk menampilkan isi dari suatu tabel yang dapat dihubungkandengan tabel yang lainnya

1) Menampilkan data untuk semua kolom menggunakan asterisk ()Syntax SELECT FROM namatabelBerikut ini perintah untuk menampilkan semua data pada tabel jenisfilm

Mysqlgt select from jenisfilm

2) Menampilkan data untuk kolom tertentuSyntax SELECT kolom1kolom2kolom-n FROM namatabelBerikut ini perintah untuk menampilkan data pada tabel jenisfilm dengan kolom yang ditampilkanadalah kolom jenis Mysqlgt select jenis from jenisfilm

3) Menampilkan data dengan kondisi data tertentu dengan klausa WHERESyntax SELECT FROM namatabel WHERE kondisiBerikut ini perintah untuk menampilkan data pada tabel jenisfilm dimana nilai pada kolom jenisadalah drama

Mysqlgt select from jenisfilm where jenis=rsquodramarsquo

Beberapa operator perbandingan yang dapat digunakan pada klausa WHERE selain ldquo=rdquo adalah gt(lebih dari) lt (kurang dari) lt gt (tidak sama dengan) gt= (lebih dari atau sama dengan) lt= (kurangdari atau sama dengan) Adapun operator lain yaitu AND OR NOT BETWEEN-AND IN danLIKE Berikut ini data yang ada pada tabel jenisfilm

Mysqlgt select from jenisfilm

Contoh 1 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai harga berkisar dari1000 hingga 3000

Mysqlgt select from jenisfilm where hargagt=1000 and hargalt=3000

Atau

Mysqlgt select from jenisfilm where harga between 1000 and 3000

Contoh 2 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai harga sama dengan1000 atau 3000

Mysqlgt select from jenisfilm where harga=1000 or harga=3000

atau

mysqlgt select from jenisfilm where harga in (10003000)

Contoh 3 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai pada kolom jenis tidaksama dengan action

Mysqlgt select from jenisfilm where not jenis=rsquoactionrsquo

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 11

atau

mysqlgt selectfrom jenisfilm where jenisltgtrsquoactionrsquo

Contoh 4 Isi tabel film

Mysqlgt selectfrom film

perintah untuk menampilkan data pada tabel film dimana data pada kolom tertentu diawali dengannilai tertentu misalnya pada kolom judul dimana diawali dengan karakter lsquoSrsquo

Mysqlgt selectfrom film where judul like lsquoSrsquo

4) Memberikan nama lain pada kolomSyntax SELECT namakolomlama AS namakolombaru FROM namatabelBerikut ini perintah untuk memberikan nama lain pada kolom jenis menjadi jenis_film pada tabeljenisfilm

Mysqlgt select jenis as jenis_film from jenisfilm

5) Menggunakan alias untuk nama tabelSyntax SELECT nmaliasjenis nmaliasharga FROM namatabel nmaliasBerikut ini perintah untuk memberikan alias pada tabel jenisfilm

Mysqlgt select jjenis jharga from jenisfilm j

6) Menampilkan data lebih dari dua tabelSyntax SELECT from namatabel1namatabel2namatabel-nIsi tabel jenisfilm

Mysqlgt selectfrom jenisfilm

Isi tabel film

Mysqlgt selectfrom film

Berikut ini perintah untuk menampilkan semua data pada tabel jenisfilm dan film

Mysqlgt selectfrom jenisfilmfilm

7) Nested Queries Subquery (IN NOT IN EXISTS NOT EXISTS)Subquery berarti query di dalam query Dengan menggunakan subquery hasil dari query akanmenjadi bagian dari query di atasnyaSubquery terletak di dalam klausa WHERE atau HAVING Pada klausa WHERE subquerydigunakan untuk memilih baris-baris tertentu yang kemudian digunakan oleh query Sedangkan padaklausa HAVING subquery digunakan untuk memilih kelompok baris yang kemudian digunakanoleh query

Contoh 1 perintah untuk menampilkan data pada tabel jenisfilm yang mana data pada kolom jenis-nya tercantum pada tabel film menggunakan IN

Mysqlgt selectfrom jenisfilm where jenis in (select jenis from film)

atau menggunakan EXISTS

Mysqlgt selectfrom jenisfilm where exists (select from film where jenisfilmjenis =filmjenis)

Pada contoh di atas SELECT jenis FROM film

disebut subquery sedangkan SELECT FROM jenisfilm

berkedudukan sebagai query Perhatikan terdapat data jenis dan harga pada tabel jenisfilm yangtidak ditampilkan Hal ini disebabkan data pada kolom jenis tidak terdapat pada kolom jenis di tabelfilm

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 12

Contoh 2 perintah untuk menampilkan data pada tabel jenisfilm yang mana data pada kolom jenis-nya tidak tercantum pada tabel film menggunakan NOT IN

Mysqlgt selectfrom jenisfilm where jenis not in (select jenis from film)

atau menggunakan NOT EXISTS

Mysqlgt selectfrom jenisfilm where not exists (select from film where jenisfilmjenis =filmjenis)

8) Operator comparison ANY dan ALLa Operator ANY digunakan berkaitan dengan subquery Operator ini menghasilkan TRUE (benar)

jika paling tidak salah satu perbandingan dengan hasil subquery menghasilkan nilai TRUEIlustrasinya

Gaji gt ANY (S)Jika subquery S menghasilkan G1 G2 Gn maka kondisi di atas identik dengan

(gaji gt G1) OR (gaji gt G2) OR OR (gaji gt Gn)Contoh perintah untuk menampilkan semua data jenisfilm yang harganya bukan yang terkecil

Mysqlgt selectfrom jenisfilm where harga gt ANY (select harga from jenisfilm)

b Operator ALL digunakan untuk melakukan perbandingan dengan subquery Kondisi dengan ALLmenghasilkan nilai TRUE (benar) jika subquery tidak menghasilkan apapun atau jikaperbandingan menghasilkan TRUE untuk setiap nilai query terhadap hasil subqueryContoh perintah untuk menampilkan data jenisfilm yang harganya paling tinggi

Mysqlgt selectfrom jenisfilm where harga gt= ALL (select harga from jenisfilm)

9) Aggregate Functions (COUNT SUM AVG MIN MAX)a COUNT

Perintah yang digunakan untuk menghitung jumlah baris suatu kolom pada tabel Contoh perintah untuk menghitung jumlah baris kolom jenis pada tabel jenisfilm

Mysqlgt select count(jenis) form jenisfilm

b SUMPerintah yang digunakan untuk menghitung jumlah nilai suatu kolom pada tabel Contoh perintah untuk menghitung jumlah nilai kolom harga pada tabel jenisfilm

Mysqlgt select sum (harga) form jenisfilm

c AVGPerintah yang digunakan untuk menghitung rata-rata dari nilai suatu kolom pada tabel Contoh perintah untuk menghitung rata-rata dari kolom harga pada tabel jenisfilm

Mysqlgt select avg(harga) form jenisfilm

d MINPerintah yang digunakan untuk menampilkan nilai terkecil dari suatu kolom pada tabel Contoh perintah untuk menampilkan nilai terkecil dari kolom harga pada tabel jenisfilm Mysqlgt select min(harga) form jenisfilm

e MAXPerintah yang digunakan untuk menampilkan nilai terbesar dari suatu kolom pada tabel Contoh perintah untuk menampilkan nilai terbesar dari kolom harga pada tabel jenisfilm

Mysqlgt select max(harga) form jenisfilm

10) SQL dengan GROUP BY dan HAVINGKlausa GROUP BY digunakan untuk melakukan pengelompokan data Sebagai contoh terdapattabel film dengan data sebagai berikut

Mysqlgt select form film

akan ditampilkan hanya kolom jenis dan digabungkan dengan SUM(jml_film) yang dikelompokkanberdasarkan kolom jenis pada tabel film

Mysqlgt select jenissum(jml_film) from film group by jenis

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 13

Klausa HAVING digunakan untuk menentukan kondisi bagi klausa GROUP BY Kelompok yangmemenuhi HAVING saja yang akan dihasilkan Contoh perintah untuk menampilkan data hanyakolom jenis yang dikelompokkan berdasarkan kolom jenis dimana jumlah film berdasarkankelompoknya harus lebih besar dari satu pada tabel film

Mysqlgt select jenis film group by jenis having count(kode_film) gt1

11) ORDER BYKlausa ORDER BY digunakan untuk mengurutkan data berdasarkan kolom tertentu sesuai dengantipe data yang dimiliki Contoh perintah untuk mengurutkan data film berdasarkan kolom judul

Mysqlgt select from film order by judul

atau tambahkan ASC untuk pengurutan secara ascending (menaik)

Mysqlgt select from film order by judul asc

atau tambahkan DESC untuk pengurutan secara descending (menurun)

Mysqlgt select from film order by judul desc

12) UNION INTERSECT dan EXCEPT

a UNIONUNION merupakan operator yang digunakan untuk menggabungkan hasil query denganketentuan jumlah nama dan tipe kolom dari masing-masing tabel yang akan ditampilkandatanya harus sama Berikut ini perintah untuk memperoleh data pada tabel film dimanajenisnya action dan horor

Mysqlgt select jenisjudul from film where jenis=rsquoactionrsquo uniongt select jenisjudul film from film where jenis=rsquohororrsquo

Perintah di atas identik dengan

Mysqlgt select jenisjudul from film where jenis=rsquoactionrsquo or jenis =rsquounionrsquo

Namun tidak semua penggabungan dapat dilakukan dengan OR yaitu jika bekerja pada duatabel atau lebih

b INTERSECTINTERSECT merupakan operator yang digunakan untuk memperoleh data dari dua buah querydimana data yang ditampilkan adalah yang memenuhi kedua query tersebut dengan ketentuanjumlah nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harussamaSyntax SELECT FROM namatabel1 INTERSECT SELECT FROMnamatabel2Pada MySQL tidak terdapat operator INTERSECT namun sebagai gantinya dapat menggunakanoperator IN seperti contoh 1 pada bagian Nested Queries

c EXCEPT Set DifferenceEXCEPT merupakan operator yang digunakan untuk memperoleh data dari dua buah querydimana data yang ditampilkan adalah data yang ada pada hasil query 1 dan tidak terdapat padadata dari hasil query 2 dengan ketentuan jumlah nama dan tipe kolom dari masing-masing tabelyang akan ditampilkan datanya harus samaSyntax SELECT FROM namatabel1 EXCEPT SELECT FROM namatabel2Pada MySQL tidak terdapat operator EXCEPT namun sebagai gantinya dapat menggunakanoperator NOT IN seperti contoh 2 pada bagian Nested Queries

13) Operasi JoinJoin merupakan operasi yang digunakan untuk menggabungkan dua tabel atau lebih dengan hasilberupa 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 Berikutini perintah untuk menampilkan kolom judul dari tabel film dan kolom harga dari tabel jenisfilm

Mysqlgt select judul harga from film jenisfilm where jenisfilmjenis = filmjenis

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 14

Pada contoh di atas jenisfilmjenis=filmjenis merupakan kondisi untuk mencocokkandata antara kolom jenis milik tabel jenisfilm dan filma Inner Join

Inner join digunakan untuk menampilkan data dari dua tabel yang berisi data sesuai dengansyarat dibelakang on (tidak boleh null) dengan kata lain semua data dari tabel kiri mendapatpasangan data dari tabel sebelah kanan Berikut ini perintah untuk menampilkan data dari tabeljenisfilm dan film dengan syarat berdasarkan kolom jenis

Mysqlgt select form jenisfilm join film on (jenisfilmjenis =filmjenis)

b Left JoinLeft join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintah left joinbeserta pasangannya dari tabel sebelah kanan Meskipun terdapat data dari sebelah kiri tidakmemiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilai NULL

Mysqlgt select form jenisfilm left join film on (jenisfilmjenis =filmjenis)

c Right JoinRight join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintah rightjoin beserta pasangannya dari tabel sebelah kiri Meskipun terdapat data dari sebelah kanantidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilai NULL

Mysqlgt select form jenisfilm right join film on (jenisfilmjenis =filmjenis)

d Natural JoinNatural join digunakan untuk menampilkan semua data dari dua tabel dimana jika terdapatkolom yang sama maka yang akan ditampilkan hanya salah satunya saja yaitu kolom dari tabelsebelah kiri perintah natural join

Mysqlgt select form jenisfilm natural join film

1) Natural Left JoinNatural left join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintahnatural left join beserta pasangannya dari tabel sebelah kanan Meskipun terdapat data darisebelah kiri tidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilaiNULL

Mysqlgt select form jenisfilm natural left join film

2) Natural Right JoinNatural right join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintahnatural right join beserta pasangannya dari tabel sebelah kiri Meskipun terdapat data darisebelah kanan tidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupanilai NULL

Mysqlgt select form jenisfilm natural right join film

Tugas

1 Buatlah database dengan nama ldquoMahasiswardquokuliah Penjualantransaksikaryawan2 Buatlah tabel dengan nama ldquoPenilaianrdquo dengan struktur tabel seperti berikut

Field Type Key Default Extra

NPM Int(8) PRI NULLKdMk Varchar(5) NULL

NamaMK Varchar NULLMid Float(5) NULLFinal Float(5) NULL

NilRata Float(5) NULL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 15

3 Sisipkan nilai-nilainya seperti tabel berikut

NPM KdMK NamaMK Mid Final NilRata10296832 KK021 75 82 10297732 KD132 775 735 20216832 KK021 835 817 30216832 KU122 654 77 10297732 KK021 795 825 20216832 KD132 805 83 30216832 KK021 67 78

4 Tampilkan seluruh record mahasiswa yang berkode matakuliah atauu KdMK=KK021

5 Tampilkan record field NpmKdMK dan Mid saja bagi yang nilai mid-nya antara 75 dan 90

6 Sisipkan nilai untuk field nama matakuliah (NamaMK) dengan ketentuan sebagai berikut KdMK NamaMKKK021 Sistem Basis DataKD132 SIMKU122 Pancasila

7 Sisipkan nilai untuk field nilai rata-rata (NilRata) dengan ketentuan sebagai berikut Mid + Final 2

8 Hapuslah record yang memiliki Npm = 10296832

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 16

MODUL 4

MANAJEMEN USER

MAKSUD DAN TUJUANAgar mahasiswa memahami manajeman user pada SQL

MATERIProses pembuatan user baru dan pemberian hak akses user

Untul MySQL versi 322 keatas dalam manajemen user dapat menggunakan perintah GRANTdan REVOKE

Perintah GRANTDipergunakan untuk membuat user baru dengan izin aksesnya

Bentuk umum GRANT jenis_akses (``nama_kolom) ON nama_database

TO nama_user IDENTIFIED BY rdquonama_passwordrdquo[WITH GRANT pilihan_akses]

Perintah REVOKEUntuk menghapus izin akses user

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_userPerintah DELETEUntuk menghapus user secara permanen

Membuat User BaruDengan perintah GRANTContoh membuat user vivien

Tingkatan akses adalah ALL user vivien sebagai administratorON = dapat meng-akses semua databaseTO vivien dapat ditulis TO vivien atau TO vivienlocalhost

Buat user baru dengan nama ldquoayyirdquodengan perintah

User ayyi dapat login ke MySQL dapat mengakses semua database tetapi tidak memiliki izinakses jadi sebagai dummy user atau blank user

Lihat tabel user

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 17

Bagaimana dengan izin akses caranya dengan memeriksa tabel user yaitu kolom privilegesdengan perintah SELECT FROM USER

User vivien bertanda rdquo Y rdquo dapat mengakses semuaUser ayyi bertanda rdquo N rdquo tidak dapat mengakses

Coba gunakan user rdquo ayyi rdquoKeluar dari MySQL dan login kembali dengan user rdquo ayyi rdquo password rdquo fathin rdquoTampilan

Sintax mysql ndashu ayyi ndashp

Coba lihat database yang dapat diaksesTampilan

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 18

User ayyi tidak dapat mengakses database yang sudah terbentuk di mysql hanya databaseinformation_schema

Coba membuat database

Access denied tidak diberikan izin untuk create

Memberikan Izin Akses tertentu

Jika akan memberikan izin akses SELECT INSERT UPDATE dan DELETE kepada user ayyi yanghanya dapat digunakan pada database latihdb1Pemberian izin akses hanya boleh dilakukan oleh user dalam akses root atau user yangdiberikan zin akses setingkat administrator

Sebagai contoh user rdquorootrdquo atau user rdquoiyusrdquo (nama anda sendiri)Jika menggunakan rootPerintah

Mysql ndashu root -p

Jika menggunakan user rdquoiyusrdquo (nama anda sendiri)Perintah

Mysql ndashu iyus(nama sendiri) -p

Gunakan salah satu dan Buat database baru dengan nama rsquolatihdb1rsquo

Berikan izin akses ke database latihdb1Aktifkan database mysql dan lihat tabel ndash

Berikan izin untuk insert update delete create pada user ayyi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 19

Lihat perubahan izin akses

Coba mengakses dengan user ayyiDan lihat database yang dapat diakses

Database latihdb1 dapat diakses dan jika terdapat akses yang tidak diizinkan maka lakukanperitah GRANT untuk izin akses pada user ayyi dengan ketetapan user admin sebagai root

Contoh

Contoh user ayyi membuat table pegawai dalam database latihdb1

Buatlah database akademik dengan tabel mahasiswa matakuliah dan kelasStruktur tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 20

Struktur tabel Matakuliah

Struktur tabel kelas

Memberikan izin akses per tabel dan per kolomDengan perintah grant dapat digunakan untuk memberikan izin akses per tabel dan per kolomtabel

Contoh user ayyi diberikan izin akses SELECT dan INSERT untuk kolom kota dan kdpos padatabel mahasiwa

Sintaksis MySQL

Pengaruh dari perintah grant tables sebelumnya kita coba menampilkan tabel table_privSintaksis pertama

Keterangan Host Dapat diakses di semua komputer terkoneksi jaringanDb Database Akademik yang dapat diaksesUser User AyyiTable_name Mahasiswa yang dapat diaksesGrantor rootlocalhost yang memberikan izin aksesTimestamp Tanggal pemberian izin 18 November 2009

jam 105552

Database Akademik

Tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 21

Sintaksis kedua

Keterangan Column_priv Select dan Insert izin akses kolom yang diberikan

Untuk melihat kolom mana saja yang diberikan izin akses select dan insert dengan perintah Sintaksis MySQL

Keterangan Column_name Kota dan KdPos kolom yang diberikan izin aksesColumn_priv Izin akses kedua kolom tersebut adalah select dan insert

Anda coba kewenangan apa saja yang dapat dilakukan oleh user ayyiKeluar dari mysqlDan login kembali dengan user ayyi

Lakukan perintah

Lakukan perintah select record yang ada pada tabel mahasiswa

Lihat database aktif

Lihat tabel aktif

Akatifkan database akademik

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 22

User ayyi tidak diizikan untuk menampilkan data pada tabel mahasiswaIzin akses nya adalah select untuk kolom kota dan kode posLakukan perintah select kota dan kodepos

Bagaimana dengan perintah delete tabel

Perintah delete ditolakBagaimana dengan perintah UPDATE kota

Bagimana dengan perintah insert

Untuk perintah update dan insert data tidak dapat dilakukan oleh user ayyi

Bagimana user ayyi dapat mengakses tabel mahasiswaKeluar dari MySQL dan login kembali menggunakan user rootDan berikan izin akses untuk tabel mahasiswa kepada user ayyi

Perintah ini memberikan status root kepada user ayyi hanya izin akses lengkap di databaseakademik tabel mahasiswa ( on akademikmahasiswa )

Coba keluar dan login kembali dengan user ayyiLakukan perintah update dan select

List data kota dan kode pos

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 23

Perintah update dapat dilakukan

Lakukan perintah select data keseluruhan

Bagaimana dengan menambah data gunakan perintah insert

Perintan insert dapat dilakukan dan jumlah data terdiri 6 record

Bagaimana dengan select untuk tabel mata kuliah dan kelas

Untuk mengakses tabel matakuliah dan kelas tidak di izinkan

Memberikan izin akses berdasarkan lokasi pengaksesAdmin atau root atau memberikan izin akses berdasarkan lokasi atau membatasi komputermana saja yang dapat mengakses MySQL serverContoh pemberian izin akses

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 24

Perlu diperhatikan format pemberian izin berhubungan dengan cara login ke MySQL contoh Jika pemberian izin akse dengan no IP komputer maka login juga harus mencantumkan no IP

Yang lebih fleksibel menggunakan tanda rdquordquo dapat diakses dimana saja ke server MySQL

Menghapus izin aksesMenggunakan perintah REVOKE penggunaan perintah revoke ini hanya menghapus izin aksesuntuk user tertentu bukan penghapus userUser yang bersangkutan tetap dapat login ke MySQL

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_user

User ayyi dapat mengakses tabel yang ada di database akademik

Sebagai contoh user ayyi dihapus izin akses untuk database akademik

Sintaksis

Jangan lupa diakhir dengan perintah flush

Kasus jika suatu root telah memberikan izin akses hanya untuk satu tabel seperti user ayyitelah dahulu diberikan all privileges kepada tabel mahasiswa maka untuk menghapusnyadisesuaikan dengan perintah grant

Untuk menghapus izin akses di tabel mahasiswa lakukan perintah (izin aksesnya sama denganperintah grant)

Konsep memberikan izin akses user ndash privileges user merupakan hal yang sangat penting dalammenyangkut masalah keamanan pada MySQL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 25

MODUL 5

VIEW

MAKSUD DAN TUJUAN

Agar mahasiswa1 Dapat membuat View2 Dapat Memanggil data melalui View3 Merubah definisi View4 Insert Update dan Delete data melalui View5 Menghapus (drop) view

MATERIProses pengolahan isi data di dalam table seperti membuat dan memanggil tabel menggunakan fungsiview

View adalah perintah query yang disimpan pada database dengan suatu nama tertentusehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang query tersebut

Syntax dasar perintah untuk membuat view adalah sebagai berikut

CREATE[OR REPLACE]VIEW view_name [(column_list)]AS select_statement

Kita menggunakan opsi OR REPLACE jika kita ingin mengganti view dengan nama yang samadengan perintah tersebut Jika tidak maka perintah CREATE VIEW akan menghasilkan errorjika nama view yang ingin dibuat sudah ada sebelumnya

Contoh Penggunaan

Kita akan membuat view dari relasi antara table film dan jenisfilm dari database rentaldengan nama view_harga Perintahnya adalah sebagai berikut

CREATE VIEW view_hargaASSELECT j1kode_film j1jenisj1judul j2hargaFROMfilm j1 JOIN jenisfilm j2 ON j1jenis= j2jenis

Eksekusi perintah berikut untuk memastikan view telah dibuat

SELECT FROM information_schemaviews WHERE table_name = view_harga

Terakhir query view tersebut untuk melihat hasilnya

SELECT FROM view_harga

Tugas

1 Buat Data Base baru dengan Koperasi

2 Lihat database

3 Masuk ke data base koperasi

4 Buat table Nasabah

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 26

Nama_field Tipe data size ket

Kd_nasabah Char 5 Primary key

Nama_nasabah varchar 35

Alamat varchar 35

Telepon varchar 15

Status enum (ldquotetaprdquordquotidak Tetaprdquo)

5 Lihat struktur tabl nasabah

6 Ubah typedata status menjadi varchar(20)

7 Hapus field status

8 Isi table nasabah

Kd_nasabah Nama_nasabah Alamat Telepon

00011 Ika Kepadangan 085730333999

00012 Rozi Depok 08586789380

00013 Ari Pasar Minggu 021986782

00014 Gali Sidoarjo 022456

9 Tampilkan data pada table nasabah

10 Tampilkan nasabah yang beralamat di depok

11 Ubah nama_nasabah dengan kd_nasabah 00012 menjdi Indriyani

12 Buat tabel Pinjaman

Nama field Tipe data size keterangan

No_Ref char

Kd_nasabah char

Jml-pimjam int

tempo date ldquo0000-00-00rdquo

13 Tambahkan primary key pada no_ref

14 Ganti tempo menjad tgl_tempo

15 Tambahkan field lama_pinjam varchar(10)

16 Isikan table pinjaman

No_ref Kd_nasabah Jml-pinjam Tgl_tempo Lama_pinjam

Ref01 00011 5000000 2010-06-14 6

Ref02 00012 2000000 2010-08-25 12

Ref03 00013 1500000 2010-10-20 3

17 Lihat jumlah pinjam di atas 3000000

18 Lihat jumlah pinjam pada kd_nasabah 00012

19 Hapus isi field dengan no_ref03

20 Hapus table pinjaman

21 Lihat table pada database

e koperasi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 10

UPDATE namatabel SET kolom1 = nilai1 kolom2 = nilai2 [WHEREkondisi]Perintah dalam tanda [] bersifat opsional untuk mengubah suatu baris dengan suatu kondisi tertentuBerikut ini perintah untuk mengubah baris pada tabel jenisfilm dengan data sebagai berikut

Mysqlgt select from jenisfilm

Contoh 1 mengubah semua nilai pada kolom harga menjadi 2000

Mysqlgt update jenisfilm set harga=2000

Contoh 2 mengubah nilai pada kolom harga menjadi 2500 dimana nilai pada kolom jenis adalahaction

Mysqlgt update jenisfilm set harga=2500 where jenis=rsquoactionrsquo

d SELECTPerintah SELECT digunakan untuk menampilkan isi dari suatu tabel yang dapat dihubungkandengan tabel yang lainnya

1) Menampilkan data untuk semua kolom menggunakan asterisk ()Syntax SELECT FROM namatabelBerikut ini perintah untuk menampilkan semua data pada tabel jenisfilm

Mysqlgt select from jenisfilm

2) Menampilkan data untuk kolom tertentuSyntax SELECT kolom1kolom2kolom-n FROM namatabelBerikut ini perintah untuk menampilkan data pada tabel jenisfilm dengan kolom yang ditampilkanadalah kolom jenis Mysqlgt select jenis from jenisfilm

3) Menampilkan data dengan kondisi data tertentu dengan klausa WHERESyntax SELECT FROM namatabel WHERE kondisiBerikut ini perintah untuk menampilkan data pada tabel jenisfilm dimana nilai pada kolom jenisadalah drama

Mysqlgt select from jenisfilm where jenis=rsquodramarsquo

Beberapa operator perbandingan yang dapat digunakan pada klausa WHERE selain ldquo=rdquo adalah gt(lebih dari) lt (kurang dari) lt gt (tidak sama dengan) gt= (lebih dari atau sama dengan) lt= (kurangdari atau sama dengan) Adapun operator lain yaitu AND OR NOT BETWEEN-AND IN danLIKE Berikut ini data yang ada pada tabel jenisfilm

Mysqlgt select from jenisfilm

Contoh 1 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai harga berkisar dari1000 hingga 3000

Mysqlgt select from jenisfilm where hargagt=1000 and hargalt=3000

Atau

Mysqlgt select from jenisfilm where harga between 1000 and 3000

Contoh 2 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai harga sama dengan1000 atau 3000

Mysqlgt select from jenisfilm where harga=1000 or harga=3000

atau

mysqlgt select from jenisfilm where harga in (10003000)

Contoh 3 perintah untuk menampilkan data pada tabel jenisfilm dimana nilai pada kolom jenis tidaksama dengan action

Mysqlgt select from jenisfilm where not jenis=rsquoactionrsquo

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 11

atau

mysqlgt selectfrom jenisfilm where jenisltgtrsquoactionrsquo

Contoh 4 Isi tabel film

Mysqlgt selectfrom film

perintah untuk menampilkan data pada tabel film dimana data pada kolom tertentu diawali dengannilai tertentu misalnya pada kolom judul dimana diawali dengan karakter lsquoSrsquo

Mysqlgt selectfrom film where judul like lsquoSrsquo

4) Memberikan nama lain pada kolomSyntax SELECT namakolomlama AS namakolombaru FROM namatabelBerikut ini perintah untuk memberikan nama lain pada kolom jenis menjadi jenis_film pada tabeljenisfilm

Mysqlgt select jenis as jenis_film from jenisfilm

5) Menggunakan alias untuk nama tabelSyntax SELECT nmaliasjenis nmaliasharga FROM namatabel nmaliasBerikut ini perintah untuk memberikan alias pada tabel jenisfilm

Mysqlgt select jjenis jharga from jenisfilm j

6) Menampilkan data lebih dari dua tabelSyntax SELECT from namatabel1namatabel2namatabel-nIsi tabel jenisfilm

Mysqlgt selectfrom jenisfilm

Isi tabel film

Mysqlgt selectfrom film

Berikut ini perintah untuk menampilkan semua data pada tabel jenisfilm dan film

Mysqlgt selectfrom jenisfilmfilm

7) Nested Queries Subquery (IN NOT IN EXISTS NOT EXISTS)Subquery berarti query di dalam query Dengan menggunakan subquery hasil dari query akanmenjadi bagian dari query di atasnyaSubquery terletak di dalam klausa WHERE atau HAVING Pada klausa WHERE subquerydigunakan untuk memilih baris-baris tertentu yang kemudian digunakan oleh query Sedangkan padaklausa HAVING subquery digunakan untuk memilih kelompok baris yang kemudian digunakanoleh query

Contoh 1 perintah untuk menampilkan data pada tabel jenisfilm yang mana data pada kolom jenis-nya tercantum pada tabel film menggunakan IN

Mysqlgt selectfrom jenisfilm where jenis in (select jenis from film)

atau menggunakan EXISTS

Mysqlgt selectfrom jenisfilm where exists (select from film where jenisfilmjenis =filmjenis)

Pada contoh di atas SELECT jenis FROM film

disebut subquery sedangkan SELECT FROM jenisfilm

berkedudukan sebagai query Perhatikan terdapat data jenis dan harga pada tabel jenisfilm yangtidak ditampilkan Hal ini disebabkan data pada kolom jenis tidak terdapat pada kolom jenis di tabelfilm

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 12

Contoh 2 perintah untuk menampilkan data pada tabel jenisfilm yang mana data pada kolom jenis-nya tidak tercantum pada tabel film menggunakan NOT IN

Mysqlgt selectfrom jenisfilm where jenis not in (select jenis from film)

atau menggunakan NOT EXISTS

Mysqlgt selectfrom jenisfilm where not exists (select from film where jenisfilmjenis =filmjenis)

8) Operator comparison ANY dan ALLa Operator ANY digunakan berkaitan dengan subquery Operator ini menghasilkan TRUE (benar)

jika paling tidak salah satu perbandingan dengan hasil subquery menghasilkan nilai TRUEIlustrasinya

Gaji gt ANY (S)Jika subquery S menghasilkan G1 G2 Gn maka kondisi di atas identik dengan

(gaji gt G1) OR (gaji gt G2) OR OR (gaji gt Gn)Contoh perintah untuk menampilkan semua data jenisfilm yang harganya bukan yang terkecil

Mysqlgt selectfrom jenisfilm where harga gt ANY (select harga from jenisfilm)

b Operator ALL digunakan untuk melakukan perbandingan dengan subquery Kondisi dengan ALLmenghasilkan nilai TRUE (benar) jika subquery tidak menghasilkan apapun atau jikaperbandingan menghasilkan TRUE untuk setiap nilai query terhadap hasil subqueryContoh perintah untuk menampilkan data jenisfilm yang harganya paling tinggi

Mysqlgt selectfrom jenisfilm where harga gt= ALL (select harga from jenisfilm)

9) Aggregate Functions (COUNT SUM AVG MIN MAX)a COUNT

Perintah yang digunakan untuk menghitung jumlah baris suatu kolom pada tabel Contoh perintah untuk menghitung jumlah baris kolom jenis pada tabel jenisfilm

Mysqlgt select count(jenis) form jenisfilm

b SUMPerintah yang digunakan untuk menghitung jumlah nilai suatu kolom pada tabel Contoh perintah untuk menghitung jumlah nilai kolom harga pada tabel jenisfilm

Mysqlgt select sum (harga) form jenisfilm

c AVGPerintah yang digunakan untuk menghitung rata-rata dari nilai suatu kolom pada tabel Contoh perintah untuk menghitung rata-rata dari kolom harga pada tabel jenisfilm

Mysqlgt select avg(harga) form jenisfilm

d MINPerintah yang digunakan untuk menampilkan nilai terkecil dari suatu kolom pada tabel Contoh perintah untuk menampilkan nilai terkecil dari kolom harga pada tabel jenisfilm Mysqlgt select min(harga) form jenisfilm

e MAXPerintah yang digunakan untuk menampilkan nilai terbesar dari suatu kolom pada tabel Contoh perintah untuk menampilkan nilai terbesar dari kolom harga pada tabel jenisfilm

Mysqlgt select max(harga) form jenisfilm

10) SQL dengan GROUP BY dan HAVINGKlausa GROUP BY digunakan untuk melakukan pengelompokan data Sebagai contoh terdapattabel film dengan data sebagai berikut

Mysqlgt select form film

akan ditampilkan hanya kolom jenis dan digabungkan dengan SUM(jml_film) yang dikelompokkanberdasarkan kolom jenis pada tabel film

Mysqlgt select jenissum(jml_film) from film group by jenis

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 13

Klausa HAVING digunakan untuk menentukan kondisi bagi klausa GROUP BY Kelompok yangmemenuhi HAVING saja yang akan dihasilkan Contoh perintah untuk menampilkan data hanyakolom jenis yang dikelompokkan berdasarkan kolom jenis dimana jumlah film berdasarkankelompoknya harus lebih besar dari satu pada tabel film

Mysqlgt select jenis film group by jenis having count(kode_film) gt1

11) ORDER BYKlausa ORDER BY digunakan untuk mengurutkan data berdasarkan kolom tertentu sesuai dengantipe data yang dimiliki Contoh perintah untuk mengurutkan data film berdasarkan kolom judul

Mysqlgt select from film order by judul

atau tambahkan ASC untuk pengurutan secara ascending (menaik)

Mysqlgt select from film order by judul asc

atau tambahkan DESC untuk pengurutan secara descending (menurun)

Mysqlgt select from film order by judul desc

12) UNION INTERSECT dan EXCEPT

a UNIONUNION merupakan operator yang digunakan untuk menggabungkan hasil query denganketentuan jumlah nama dan tipe kolom dari masing-masing tabel yang akan ditampilkandatanya harus sama Berikut ini perintah untuk memperoleh data pada tabel film dimanajenisnya action dan horor

Mysqlgt select jenisjudul from film where jenis=rsquoactionrsquo uniongt select jenisjudul film from film where jenis=rsquohororrsquo

Perintah di atas identik dengan

Mysqlgt select jenisjudul from film where jenis=rsquoactionrsquo or jenis =rsquounionrsquo

Namun tidak semua penggabungan dapat dilakukan dengan OR yaitu jika bekerja pada duatabel atau lebih

b INTERSECTINTERSECT merupakan operator yang digunakan untuk memperoleh data dari dua buah querydimana data yang ditampilkan adalah yang memenuhi kedua query tersebut dengan ketentuanjumlah nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harussamaSyntax SELECT FROM namatabel1 INTERSECT SELECT FROMnamatabel2Pada MySQL tidak terdapat operator INTERSECT namun sebagai gantinya dapat menggunakanoperator IN seperti contoh 1 pada bagian Nested Queries

c EXCEPT Set DifferenceEXCEPT merupakan operator yang digunakan untuk memperoleh data dari dua buah querydimana data yang ditampilkan adalah data yang ada pada hasil query 1 dan tidak terdapat padadata dari hasil query 2 dengan ketentuan jumlah nama dan tipe kolom dari masing-masing tabelyang akan ditampilkan datanya harus samaSyntax SELECT FROM namatabel1 EXCEPT SELECT FROM namatabel2Pada MySQL tidak terdapat operator EXCEPT namun sebagai gantinya dapat menggunakanoperator NOT IN seperti contoh 2 pada bagian Nested Queries

13) Operasi JoinJoin merupakan operasi yang digunakan untuk menggabungkan dua tabel atau lebih dengan hasilberupa 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 Berikutini perintah untuk menampilkan kolom judul dari tabel film dan kolom harga dari tabel jenisfilm

Mysqlgt select judul harga from film jenisfilm where jenisfilmjenis = filmjenis

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 14

Pada contoh di atas jenisfilmjenis=filmjenis merupakan kondisi untuk mencocokkandata antara kolom jenis milik tabel jenisfilm dan filma Inner Join

Inner join digunakan untuk menampilkan data dari dua tabel yang berisi data sesuai dengansyarat dibelakang on (tidak boleh null) dengan kata lain semua data dari tabel kiri mendapatpasangan data dari tabel sebelah kanan Berikut ini perintah untuk menampilkan data dari tabeljenisfilm dan film dengan syarat berdasarkan kolom jenis

Mysqlgt select form jenisfilm join film on (jenisfilmjenis =filmjenis)

b Left JoinLeft join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintah left joinbeserta pasangannya dari tabel sebelah kanan Meskipun terdapat data dari sebelah kiri tidakmemiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilai NULL

Mysqlgt select form jenisfilm left join film on (jenisfilmjenis =filmjenis)

c Right JoinRight join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintah rightjoin beserta pasangannya dari tabel sebelah kiri Meskipun terdapat data dari sebelah kanantidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilai NULL

Mysqlgt select form jenisfilm right join film on (jenisfilmjenis =filmjenis)

d Natural JoinNatural join digunakan untuk menampilkan semua data dari dua tabel dimana jika terdapatkolom yang sama maka yang akan ditampilkan hanya salah satunya saja yaitu kolom dari tabelsebelah kiri perintah natural join

Mysqlgt select form jenisfilm natural join film

1) Natural Left JoinNatural left join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintahnatural left join beserta pasangannya dari tabel sebelah kanan Meskipun terdapat data darisebelah kiri tidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilaiNULL

Mysqlgt select form jenisfilm natural left join film

2) Natural Right JoinNatural right join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintahnatural right join beserta pasangannya dari tabel sebelah kiri Meskipun terdapat data darisebelah kanan tidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupanilai NULL

Mysqlgt select form jenisfilm natural right join film

Tugas

1 Buatlah database dengan nama ldquoMahasiswardquokuliah Penjualantransaksikaryawan2 Buatlah tabel dengan nama ldquoPenilaianrdquo dengan struktur tabel seperti berikut

Field Type Key Default Extra

NPM Int(8) PRI NULLKdMk Varchar(5) NULL

NamaMK Varchar NULLMid Float(5) NULLFinal Float(5) NULL

NilRata Float(5) NULL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 15

3 Sisipkan nilai-nilainya seperti tabel berikut

NPM KdMK NamaMK Mid Final NilRata10296832 KK021 75 82 10297732 KD132 775 735 20216832 KK021 835 817 30216832 KU122 654 77 10297732 KK021 795 825 20216832 KD132 805 83 30216832 KK021 67 78

4 Tampilkan seluruh record mahasiswa yang berkode matakuliah atauu KdMK=KK021

5 Tampilkan record field NpmKdMK dan Mid saja bagi yang nilai mid-nya antara 75 dan 90

6 Sisipkan nilai untuk field nama matakuliah (NamaMK) dengan ketentuan sebagai berikut KdMK NamaMKKK021 Sistem Basis DataKD132 SIMKU122 Pancasila

7 Sisipkan nilai untuk field nilai rata-rata (NilRata) dengan ketentuan sebagai berikut Mid + Final 2

8 Hapuslah record yang memiliki Npm = 10296832

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 16

MODUL 4

MANAJEMEN USER

MAKSUD DAN TUJUANAgar mahasiswa memahami manajeman user pada SQL

MATERIProses pembuatan user baru dan pemberian hak akses user

Untul MySQL versi 322 keatas dalam manajemen user dapat menggunakan perintah GRANTdan REVOKE

Perintah GRANTDipergunakan untuk membuat user baru dengan izin aksesnya

Bentuk umum GRANT jenis_akses (``nama_kolom) ON nama_database

TO nama_user IDENTIFIED BY rdquonama_passwordrdquo[WITH GRANT pilihan_akses]

Perintah REVOKEUntuk menghapus izin akses user

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_userPerintah DELETEUntuk menghapus user secara permanen

Membuat User BaruDengan perintah GRANTContoh membuat user vivien

Tingkatan akses adalah ALL user vivien sebagai administratorON = dapat meng-akses semua databaseTO vivien dapat ditulis TO vivien atau TO vivienlocalhost

Buat user baru dengan nama ldquoayyirdquodengan perintah

User ayyi dapat login ke MySQL dapat mengakses semua database tetapi tidak memiliki izinakses jadi sebagai dummy user atau blank user

Lihat tabel user

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 17

Bagaimana dengan izin akses caranya dengan memeriksa tabel user yaitu kolom privilegesdengan perintah SELECT FROM USER

User vivien bertanda rdquo Y rdquo dapat mengakses semuaUser ayyi bertanda rdquo N rdquo tidak dapat mengakses

Coba gunakan user rdquo ayyi rdquoKeluar dari MySQL dan login kembali dengan user rdquo ayyi rdquo password rdquo fathin rdquoTampilan

Sintax mysql ndashu ayyi ndashp

Coba lihat database yang dapat diaksesTampilan

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 18

User ayyi tidak dapat mengakses database yang sudah terbentuk di mysql hanya databaseinformation_schema

Coba membuat database

Access denied tidak diberikan izin untuk create

Memberikan Izin Akses tertentu

Jika akan memberikan izin akses SELECT INSERT UPDATE dan DELETE kepada user ayyi yanghanya dapat digunakan pada database latihdb1Pemberian izin akses hanya boleh dilakukan oleh user dalam akses root atau user yangdiberikan zin akses setingkat administrator

Sebagai contoh user rdquorootrdquo atau user rdquoiyusrdquo (nama anda sendiri)Jika menggunakan rootPerintah

Mysql ndashu root -p

Jika menggunakan user rdquoiyusrdquo (nama anda sendiri)Perintah

Mysql ndashu iyus(nama sendiri) -p

Gunakan salah satu dan Buat database baru dengan nama rsquolatihdb1rsquo

Berikan izin akses ke database latihdb1Aktifkan database mysql dan lihat tabel ndash

Berikan izin untuk insert update delete create pada user ayyi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 19

Lihat perubahan izin akses

Coba mengakses dengan user ayyiDan lihat database yang dapat diakses

Database latihdb1 dapat diakses dan jika terdapat akses yang tidak diizinkan maka lakukanperitah GRANT untuk izin akses pada user ayyi dengan ketetapan user admin sebagai root

Contoh

Contoh user ayyi membuat table pegawai dalam database latihdb1

Buatlah database akademik dengan tabel mahasiswa matakuliah dan kelasStruktur tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 20

Struktur tabel Matakuliah

Struktur tabel kelas

Memberikan izin akses per tabel dan per kolomDengan perintah grant dapat digunakan untuk memberikan izin akses per tabel dan per kolomtabel

Contoh user ayyi diberikan izin akses SELECT dan INSERT untuk kolom kota dan kdpos padatabel mahasiwa

Sintaksis MySQL

Pengaruh dari perintah grant tables sebelumnya kita coba menampilkan tabel table_privSintaksis pertama

Keterangan Host Dapat diakses di semua komputer terkoneksi jaringanDb Database Akademik yang dapat diaksesUser User AyyiTable_name Mahasiswa yang dapat diaksesGrantor rootlocalhost yang memberikan izin aksesTimestamp Tanggal pemberian izin 18 November 2009

jam 105552

Database Akademik

Tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 21

Sintaksis kedua

Keterangan Column_priv Select dan Insert izin akses kolom yang diberikan

Untuk melihat kolom mana saja yang diberikan izin akses select dan insert dengan perintah Sintaksis MySQL

Keterangan Column_name Kota dan KdPos kolom yang diberikan izin aksesColumn_priv Izin akses kedua kolom tersebut adalah select dan insert

Anda coba kewenangan apa saja yang dapat dilakukan oleh user ayyiKeluar dari mysqlDan login kembali dengan user ayyi

Lakukan perintah

Lakukan perintah select record yang ada pada tabel mahasiswa

Lihat database aktif

Lihat tabel aktif

Akatifkan database akademik

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 22

User ayyi tidak diizikan untuk menampilkan data pada tabel mahasiswaIzin akses nya adalah select untuk kolom kota dan kode posLakukan perintah select kota dan kodepos

Bagaimana dengan perintah delete tabel

Perintah delete ditolakBagaimana dengan perintah UPDATE kota

Bagimana dengan perintah insert

Untuk perintah update dan insert data tidak dapat dilakukan oleh user ayyi

Bagimana user ayyi dapat mengakses tabel mahasiswaKeluar dari MySQL dan login kembali menggunakan user rootDan berikan izin akses untuk tabel mahasiswa kepada user ayyi

Perintah ini memberikan status root kepada user ayyi hanya izin akses lengkap di databaseakademik tabel mahasiswa ( on akademikmahasiswa )

Coba keluar dan login kembali dengan user ayyiLakukan perintah update dan select

List data kota dan kode pos

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 23

Perintah update dapat dilakukan

Lakukan perintah select data keseluruhan

Bagaimana dengan menambah data gunakan perintah insert

Perintan insert dapat dilakukan dan jumlah data terdiri 6 record

Bagaimana dengan select untuk tabel mata kuliah dan kelas

Untuk mengakses tabel matakuliah dan kelas tidak di izinkan

Memberikan izin akses berdasarkan lokasi pengaksesAdmin atau root atau memberikan izin akses berdasarkan lokasi atau membatasi komputermana saja yang dapat mengakses MySQL serverContoh pemberian izin akses

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 24

Perlu diperhatikan format pemberian izin berhubungan dengan cara login ke MySQL contoh Jika pemberian izin akse dengan no IP komputer maka login juga harus mencantumkan no IP

Yang lebih fleksibel menggunakan tanda rdquordquo dapat diakses dimana saja ke server MySQL

Menghapus izin aksesMenggunakan perintah REVOKE penggunaan perintah revoke ini hanya menghapus izin aksesuntuk user tertentu bukan penghapus userUser yang bersangkutan tetap dapat login ke MySQL

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_user

User ayyi dapat mengakses tabel yang ada di database akademik

Sebagai contoh user ayyi dihapus izin akses untuk database akademik

Sintaksis

Jangan lupa diakhir dengan perintah flush

Kasus jika suatu root telah memberikan izin akses hanya untuk satu tabel seperti user ayyitelah dahulu diberikan all privileges kepada tabel mahasiswa maka untuk menghapusnyadisesuaikan dengan perintah grant

Untuk menghapus izin akses di tabel mahasiswa lakukan perintah (izin aksesnya sama denganperintah grant)

Konsep memberikan izin akses user ndash privileges user merupakan hal yang sangat penting dalammenyangkut masalah keamanan pada MySQL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 25

MODUL 5

VIEW

MAKSUD DAN TUJUAN

Agar mahasiswa1 Dapat membuat View2 Dapat Memanggil data melalui View3 Merubah definisi View4 Insert Update dan Delete data melalui View5 Menghapus (drop) view

MATERIProses pengolahan isi data di dalam table seperti membuat dan memanggil tabel menggunakan fungsiview

View adalah perintah query yang disimpan pada database dengan suatu nama tertentusehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang query tersebut

Syntax dasar perintah untuk membuat view adalah sebagai berikut

CREATE[OR REPLACE]VIEW view_name [(column_list)]AS select_statement

Kita menggunakan opsi OR REPLACE jika kita ingin mengganti view dengan nama yang samadengan perintah tersebut Jika tidak maka perintah CREATE VIEW akan menghasilkan errorjika nama view yang ingin dibuat sudah ada sebelumnya

Contoh Penggunaan

Kita akan membuat view dari relasi antara table film dan jenisfilm dari database rentaldengan nama view_harga Perintahnya adalah sebagai berikut

CREATE VIEW view_hargaASSELECT j1kode_film j1jenisj1judul j2hargaFROMfilm j1 JOIN jenisfilm j2 ON j1jenis= j2jenis

Eksekusi perintah berikut untuk memastikan view telah dibuat

SELECT FROM information_schemaviews WHERE table_name = view_harga

Terakhir query view tersebut untuk melihat hasilnya

SELECT FROM view_harga

Tugas

1 Buat Data Base baru dengan Koperasi

2 Lihat database

3 Masuk ke data base koperasi

4 Buat table Nasabah

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 26

Nama_field Tipe data size ket

Kd_nasabah Char 5 Primary key

Nama_nasabah varchar 35

Alamat varchar 35

Telepon varchar 15

Status enum (ldquotetaprdquordquotidak Tetaprdquo)

5 Lihat struktur tabl nasabah

6 Ubah typedata status menjadi varchar(20)

7 Hapus field status

8 Isi table nasabah

Kd_nasabah Nama_nasabah Alamat Telepon

00011 Ika Kepadangan 085730333999

00012 Rozi Depok 08586789380

00013 Ari Pasar Minggu 021986782

00014 Gali Sidoarjo 022456

9 Tampilkan data pada table nasabah

10 Tampilkan nasabah yang beralamat di depok

11 Ubah nama_nasabah dengan kd_nasabah 00012 menjdi Indriyani

12 Buat tabel Pinjaman

Nama field Tipe data size keterangan

No_Ref char

Kd_nasabah char

Jml-pimjam int

tempo date ldquo0000-00-00rdquo

13 Tambahkan primary key pada no_ref

14 Ganti tempo menjad tgl_tempo

15 Tambahkan field lama_pinjam varchar(10)

16 Isikan table pinjaman

No_ref Kd_nasabah Jml-pinjam Tgl_tempo Lama_pinjam

Ref01 00011 5000000 2010-06-14 6

Ref02 00012 2000000 2010-08-25 12

Ref03 00013 1500000 2010-10-20 3

17 Lihat jumlah pinjam di atas 3000000

18 Lihat jumlah pinjam pada kd_nasabah 00012

19 Hapus isi field dengan no_ref03

20 Hapus table pinjaman

21 Lihat table pada database

e koperasi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 11

atau

mysqlgt selectfrom jenisfilm where jenisltgtrsquoactionrsquo

Contoh 4 Isi tabel film

Mysqlgt selectfrom film

perintah untuk menampilkan data pada tabel film dimana data pada kolom tertentu diawali dengannilai tertentu misalnya pada kolom judul dimana diawali dengan karakter lsquoSrsquo

Mysqlgt selectfrom film where judul like lsquoSrsquo

4) Memberikan nama lain pada kolomSyntax SELECT namakolomlama AS namakolombaru FROM namatabelBerikut ini perintah untuk memberikan nama lain pada kolom jenis menjadi jenis_film pada tabeljenisfilm

Mysqlgt select jenis as jenis_film from jenisfilm

5) Menggunakan alias untuk nama tabelSyntax SELECT nmaliasjenis nmaliasharga FROM namatabel nmaliasBerikut ini perintah untuk memberikan alias pada tabel jenisfilm

Mysqlgt select jjenis jharga from jenisfilm j

6) Menampilkan data lebih dari dua tabelSyntax SELECT from namatabel1namatabel2namatabel-nIsi tabel jenisfilm

Mysqlgt selectfrom jenisfilm

Isi tabel film

Mysqlgt selectfrom film

Berikut ini perintah untuk menampilkan semua data pada tabel jenisfilm dan film

Mysqlgt selectfrom jenisfilmfilm

7) Nested Queries Subquery (IN NOT IN EXISTS NOT EXISTS)Subquery berarti query di dalam query Dengan menggunakan subquery hasil dari query akanmenjadi bagian dari query di atasnyaSubquery terletak di dalam klausa WHERE atau HAVING Pada klausa WHERE subquerydigunakan untuk memilih baris-baris tertentu yang kemudian digunakan oleh query Sedangkan padaklausa HAVING subquery digunakan untuk memilih kelompok baris yang kemudian digunakanoleh query

Contoh 1 perintah untuk menampilkan data pada tabel jenisfilm yang mana data pada kolom jenis-nya tercantum pada tabel film menggunakan IN

Mysqlgt selectfrom jenisfilm where jenis in (select jenis from film)

atau menggunakan EXISTS

Mysqlgt selectfrom jenisfilm where exists (select from film where jenisfilmjenis =filmjenis)

Pada contoh di atas SELECT jenis FROM film

disebut subquery sedangkan SELECT FROM jenisfilm

berkedudukan sebagai query Perhatikan terdapat data jenis dan harga pada tabel jenisfilm yangtidak ditampilkan Hal ini disebabkan data pada kolom jenis tidak terdapat pada kolom jenis di tabelfilm

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 12

Contoh 2 perintah untuk menampilkan data pada tabel jenisfilm yang mana data pada kolom jenis-nya tidak tercantum pada tabel film menggunakan NOT IN

Mysqlgt selectfrom jenisfilm where jenis not in (select jenis from film)

atau menggunakan NOT EXISTS

Mysqlgt selectfrom jenisfilm where not exists (select from film where jenisfilmjenis =filmjenis)

8) Operator comparison ANY dan ALLa Operator ANY digunakan berkaitan dengan subquery Operator ini menghasilkan TRUE (benar)

jika paling tidak salah satu perbandingan dengan hasil subquery menghasilkan nilai TRUEIlustrasinya

Gaji gt ANY (S)Jika subquery S menghasilkan G1 G2 Gn maka kondisi di atas identik dengan

(gaji gt G1) OR (gaji gt G2) OR OR (gaji gt Gn)Contoh perintah untuk menampilkan semua data jenisfilm yang harganya bukan yang terkecil

Mysqlgt selectfrom jenisfilm where harga gt ANY (select harga from jenisfilm)

b Operator ALL digunakan untuk melakukan perbandingan dengan subquery Kondisi dengan ALLmenghasilkan nilai TRUE (benar) jika subquery tidak menghasilkan apapun atau jikaperbandingan menghasilkan TRUE untuk setiap nilai query terhadap hasil subqueryContoh perintah untuk menampilkan data jenisfilm yang harganya paling tinggi

Mysqlgt selectfrom jenisfilm where harga gt= ALL (select harga from jenisfilm)

9) Aggregate Functions (COUNT SUM AVG MIN MAX)a COUNT

Perintah yang digunakan untuk menghitung jumlah baris suatu kolom pada tabel Contoh perintah untuk menghitung jumlah baris kolom jenis pada tabel jenisfilm

Mysqlgt select count(jenis) form jenisfilm

b SUMPerintah yang digunakan untuk menghitung jumlah nilai suatu kolom pada tabel Contoh perintah untuk menghitung jumlah nilai kolom harga pada tabel jenisfilm

Mysqlgt select sum (harga) form jenisfilm

c AVGPerintah yang digunakan untuk menghitung rata-rata dari nilai suatu kolom pada tabel Contoh perintah untuk menghitung rata-rata dari kolom harga pada tabel jenisfilm

Mysqlgt select avg(harga) form jenisfilm

d MINPerintah yang digunakan untuk menampilkan nilai terkecil dari suatu kolom pada tabel Contoh perintah untuk menampilkan nilai terkecil dari kolom harga pada tabel jenisfilm Mysqlgt select min(harga) form jenisfilm

e MAXPerintah yang digunakan untuk menampilkan nilai terbesar dari suatu kolom pada tabel Contoh perintah untuk menampilkan nilai terbesar dari kolom harga pada tabel jenisfilm

Mysqlgt select max(harga) form jenisfilm

10) SQL dengan GROUP BY dan HAVINGKlausa GROUP BY digunakan untuk melakukan pengelompokan data Sebagai contoh terdapattabel film dengan data sebagai berikut

Mysqlgt select form film

akan ditampilkan hanya kolom jenis dan digabungkan dengan SUM(jml_film) yang dikelompokkanberdasarkan kolom jenis pada tabel film

Mysqlgt select jenissum(jml_film) from film group by jenis

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 13

Klausa HAVING digunakan untuk menentukan kondisi bagi klausa GROUP BY Kelompok yangmemenuhi HAVING saja yang akan dihasilkan Contoh perintah untuk menampilkan data hanyakolom jenis yang dikelompokkan berdasarkan kolom jenis dimana jumlah film berdasarkankelompoknya harus lebih besar dari satu pada tabel film

Mysqlgt select jenis film group by jenis having count(kode_film) gt1

11) ORDER BYKlausa ORDER BY digunakan untuk mengurutkan data berdasarkan kolom tertentu sesuai dengantipe data yang dimiliki Contoh perintah untuk mengurutkan data film berdasarkan kolom judul

Mysqlgt select from film order by judul

atau tambahkan ASC untuk pengurutan secara ascending (menaik)

Mysqlgt select from film order by judul asc

atau tambahkan DESC untuk pengurutan secara descending (menurun)

Mysqlgt select from film order by judul desc

12) UNION INTERSECT dan EXCEPT

a UNIONUNION merupakan operator yang digunakan untuk menggabungkan hasil query denganketentuan jumlah nama dan tipe kolom dari masing-masing tabel yang akan ditampilkandatanya harus sama Berikut ini perintah untuk memperoleh data pada tabel film dimanajenisnya action dan horor

Mysqlgt select jenisjudul from film where jenis=rsquoactionrsquo uniongt select jenisjudul film from film where jenis=rsquohororrsquo

Perintah di atas identik dengan

Mysqlgt select jenisjudul from film where jenis=rsquoactionrsquo or jenis =rsquounionrsquo

Namun tidak semua penggabungan dapat dilakukan dengan OR yaitu jika bekerja pada duatabel atau lebih

b INTERSECTINTERSECT merupakan operator yang digunakan untuk memperoleh data dari dua buah querydimana data yang ditampilkan adalah yang memenuhi kedua query tersebut dengan ketentuanjumlah nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harussamaSyntax SELECT FROM namatabel1 INTERSECT SELECT FROMnamatabel2Pada MySQL tidak terdapat operator INTERSECT namun sebagai gantinya dapat menggunakanoperator IN seperti contoh 1 pada bagian Nested Queries

c EXCEPT Set DifferenceEXCEPT merupakan operator yang digunakan untuk memperoleh data dari dua buah querydimana data yang ditampilkan adalah data yang ada pada hasil query 1 dan tidak terdapat padadata dari hasil query 2 dengan ketentuan jumlah nama dan tipe kolom dari masing-masing tabelyang akan ditampilkan datanya harus samaSyntax SELECT FROM namatabel1 EXCEPT SELECT FROM namatabel2Pada MySQL tidak terdapat operator EXCEPT namun sebagai gantinya dapat menggunakanoperator NOT IN seperti contoh 2 pada bagian Nested Queries

13) Operasi JoinJoin merupakan operasi yang digunakan untuk menggabungkan dua tabel atau lebih dengan hasilberupa 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 Berikutini perintah untuk menampilkan kolom judul dari tabel film dan kolom harga dari tabel jenisfilm

Mysqlgt select judul harga from film jenisfilm where jenisfilmjenis = filmjenis

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 14

Pada contoh di atas jenisfilmjenis=filmjenis merupakan kondisi untuk mencocokkandata antara kolom jenis milik tabel jenisfilm dan filma Inner Join

Inner join digunakan untuk menampilkan data dari dua tabel yang berisi data sesuai dengansyarat dibelakang on (tidak boleh null) dengan kata lain semua data dari tabel kiri mendapatpasangan data dari tabel sebelah kanan Berikut ini perintah untuk menampilkan data dari tabeljenisfilm dan film dengan syarat berdasarkan kolom jenis

Mysqlgt select form jenisfilm join film on (jenisfilmjenis =filmjenis)

b Left JoinLeft join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintah left joinbeserta pasangannya dari tabel sebelah kanan Meskipun terdapat data dari sebelah kiri tidakmemiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilai NULL

Mysqlgt select form jenisfilm left join film on (jenisfilmjenis =filmjenis)

c Right JoinRight join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintah rightjoin beserta pasangannya dari tabel sebelah kiri Meskipun terdapat data dari sebelah kanantidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilai NULL

Mysqlgt select form jenisfilm right join film on (jenisfilmjenis =filmjenis)

d Natural JoinNatural join digunakan untuk menampilkan semua data dari dua tabel dimana jika terdapatkolom yang sama maka yang akan ditampilkan hanya salah satunya saja yaitu kolom dari tabelsebelah kiri perintah natural join

Mysqlgt select form jenisfilm natural join film

1) Natural Left JoinNatural left join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintahnatural left join beserta pasangannya dari tabel sebelah kanan Meskipun terdapat data darisebelah kiri tidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilaiNULL

Mysqlgt select form jenisfilm natural left join film

2) Natural Right JoinNatural right join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintahnatural right join beserta pasangannya dari tabel sebelah kiri Meskipun terdapat data darisebelah kanan tidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupanilai NULL

Mysqlgt select form jenisfilm natural right join film

Tugas

1 Buatlah database dengan nama ldquoMahasiswardquokuliah Penjualantransaksikaryawan2 Buatlah tabel dengan nama ldquoPenilaianrdquo dengan struktur tabel seperti berikut

Field Type Key Default Extra

NPM Int(8) PRI NULLKdMk Varchar(5) NULL

NamaMK Varchar NULLMid Float(5) NULLFinal Float(5) NULL

NilRata Float(5) NULL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 15

3 Sisipkan nilai-nilainya seperti tabel berikut

NPM KdMK NamaMK Mid Final NilRata10296832 KK021 75 82 10297732 KD132 775 735 20216832 KK021 835 817 30216832 KU122 654 77 10297732 KK021 795 825 20216832 KD132 805 83 30216832 KK021 67 78

4 Tampilkan seluruh record mahasiswa yang berkode matakuliah atauu KdMK=KK021

5 Tampilkan record field NpmKdMK dan Mid saja bagi yang nilai mid-nya antara 75 dan 90

6 Sisipkan nilai untuk field nama matakuliah (NamaMK) dengan ketentuan sebagai berikut KdMK NamaMKKK021 Sistem Basis DataKD132 SIMKU122 Pancasila

7 Sisipkan nilai untuk field nilai rata-rata (NilRata) dengan ketentuan sebagai berikut Mid + Final 2

8 Hapuslah record yang memiliki Npm = 10296832

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 16

MODUL 4

MANAJEMEN USER

MAKSUD DAN TUJUANAgar mahasiswa memahami manajeman user pada SQL

MATERIProses pembuatan user baru dan pemberian hak akses user

Untul MySQL versi 322 keatas dalam manajemen user dapat menggunakan perintah GRANTdan REVOKE

Perintah GRANTDipergunakan untuk membuat user baru dengan izin aksesnya

Bentuk umum GRANT jenis_akses (``nama_kolom) ON nama_database

TO nama_user IDENTIFIED BY rdquonama_passwordrdquo[WITH GRANT pilihan_akses]

Perintah REVOKEUntuk menghapus izin akses user

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_userPerintah DELETEUntuk menghapus user secara permanen

Membuat User BaruDengan perintah GRANTContoh membuat user vivien

Tingkatan akses adalah ALL user vivien sebagai administratorON = dapat meng-akses semua databaseTO vivien dapat ditulis TO vivien atau TO vivienlocalhost

Buat user baru dengan nama ldquoayyirdquodengan perintah

User ayyi dapat login ke MySQL dapat mengakses semua database tetapi tidak memiliki izinakses jadi sebagai dummy user atau blank user

Lihat tabel user

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 17

Bagaimana dengan izin akses caranya dengan memeriksa tabel user yaitu kolom privilegesdengan perintah SELECT FROM USER

User vivien bertanda rdquo Y rdquo dapat mengakses semuaUser ayyi bertanda rdquo N rdquo tidak dapat mengakses

Coba gunakan user rdquo ayyi rdquoKeluar dari MySQL dan login kembali dengan user rdquo ayyi rdquo password rdquo fathin rdquoTampilan

Sintax mysql ndashu ayyi ndashp

Coba lihat database yang dapat diaksesTampilan

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 18

User ayyi tidak dapat mengakses database yang sudah terbentuk di mysql hanya databaseinformation_schema

Coba membuat database

Access denied tidak diberikan izin untuk create

Memberikan Izin Akses tertentu

Jika akan memberikan izin akses SELECT INSERT UPDATE dan DELETE kepada user ayyi yanghanya dapat digunakan pada database latihdb1Pemberian izin akses hanya boleh dilakukan oleh user dalam akses root atau user yangdiberikan zin akses setingkat administrator

Sebagai contoh user rdquorootrdquo atau user rdquoiyusrdquo (nama anda sendiri)Jika menggunakan rootPerintah

Mysql ndashu root -p

Jika menggunakan user rdquoiyusrdquo (nama anda sendiri)Perintah

Mysql ndashu iyus(nama sendiri) -p

Gunakan salah satu dan Buat database baru dengan nama rsquolatihdb1rsquo

Berikan izin akses ke database latihdb1Aktifkan database mysql dan lihat tabel ndash

Berikan izin untuk insert update delete create pada user ayyi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 19

Lihat perubahan izin akses

Coba mengakses dengan user ayyiDan lihat database yang dapat diakses

Database latihdb1 dapat diakses dan jika terdapat akses yang tidak diizinkan maka lakukanperitah GRANT untuk izin akses pada user ayyi dengan ketetapan user admin sebagai root

Contoh

Contoh user ayyi membuat table pegawai dalam database latihdb1

Buatlah database akademik dengan tabel mahasiswa matakuliah dan kelasStruktur tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 20

Struktur tabel Matakuliah

Struktur tabel kelas

Memberikan izin akses per tabel dan per kolomDengan perintah grant dapat digunakan untuk memberikan izin akses per tabel dan per kolomtabel

Contoh user ayyi diberikan izin akses SELECT dan INSERT untuk kolom kota dan kdpos padatabel mahasiwa

Sintaksis MySQL

Pengaruh dari perintah grant tables sebelumnya kita coba menampilkan tabel table_privSintaksis pertama

Keterangan Host Dapat diakses di semua komputer terkoneksi jaringanDb Database Akademik yang dapat diaksesUser User AyyiTable_name Mahasiswa yang dapat diaksesGrantor rootlocalhost yang memberikan izin aksesTimestamp Tanggal pemberian izin 18 November 2009

jam 105552

Database Akademik

Tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 21

Sintaksis kedua

Keterangan Column_priv Select dan Insert izin akses kolom yang diberikan

Untuk melihat kolom mana saja yang diberikan izin akses select dan insert dengan perintah Sintaksis MySQL

Keterangan Column_name Kota dan KdPos kolom yang diberikan izin aksesColumn_priv Izin akses kedua kolom tersebut adalah select dan insert

Anda coba kewenangan apa saja yang dapat dilakukan oleh user ayyiKeluar dari mysqlDan login kembali dengan user ayyi

Lakukan perintah

Lakukan perintah select record yang ada pada tabel mahasiswa

Lihat database aktif

Lihat tabel aktif

Akatifkan database akademik

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 22

User ayyi tidak diizikan untuk menampilkan data pada tabel mahasiswaIzin akses nya adalah select untuk kolom kota dan kode posLakukan perintah select kota dan kodepos

Bagaimana dengan perintah delete tabel

Perintah delete ditolakBagaimana dengan perintah UPDATE kota

Bagimana dengan perintah insert

Untuk perintah update dan insert data tidak dapat dilakukan oleh user ayyi

Bagimana user ayyi dapat mengakses tabel mahasiswaKeluar dari MySQL dan login kembali menggunakan user rootDan berikan izin akses untuk tabel mahasiswa kepada user ayyi

Perintah ini memberikan status root kepada user ayyi hanya izin akses lengkap di databaseakademik tabel mahasiswa ( on akademikmahasiswa )

Coba keluar dan login kembali dengan user ayyiLakukan perintah update dan select

List data kota dan kode pos

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 23

Perintah update dapat dilakukan

Lakukan perintah select data keseluruhan

Bagaimana dengan menambah data gunakan perintah insert

Perintan insert dapat dilakukan dan jumlah data terdiri 6 record

Bagaimana dengan select untuk tabel mata kuliah dan kelas

Untuk mengakses tabel matakuliah dan kelas tidak di izinkan

Memberikan izin akses berdasarkan lokasi pengaksesAdmin atau root atau memberikan izin akses berdasarkan lokasi atau membatasi komputermana saja yang dapat mengakses MySQL serverContoh pemberian izin akses

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 24

Perlu diperhatikan format pemberian izin berhubungan dengan cara login ke MySQL contoh Jika pemberian izin akse dengan no IP komputer maka login juga harus mencantumkan no IP

Yang lebih fleksibel menggunakan tanda rdquordquo dapat diakses dimana saja ke server MySQL

Menghapus izin aksesMenggunakan perintah REVOKE penggunaan perintah revoke ini hanya menghapus izin aksesuntuk user tertentu bukan penghapus userUser yang bersangkutan tetap dapat login ke MySQL

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_user

User ayyi dapat mengakses tabel yang ada di database akademik

Sebagai contoh user ayyi dihapus izin akses untuk database akademik

Sintaksis

Jangan lupa diakhir dengan perintah flush

Kasus jika suatu root telah memberikan izin akses hanya untuk satu tabel seperti user ayyitelah dahulu diberikan all privileges kepada tabel mahasiswa maka untuk menghapusnyadisesuaikan dengan perintah grant

Untuk menghapus izin akses di tabel mahasiswa lakukan perintah (izin aksesnya sama denganperintah grant)

Konsep memberikan izin akses user ndash privileges user merupakan hal yang sangat penting dalammenyangkut masalah keamanan pada MySQL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 25

MODUL 5

VIEW

MAKSUD DAN TUJUAN

Agar mahasiswa1 Dapat membuat View2 Dapat Memanggil data melalui View3 Merubah definisi View4 Insert Update dan Delete data melalui View5 Menghapus (drop) view

MATERIProses pengolahan isi data di dalam table seperti membuat dan memanggil tabel menggunakan fungsiview

View adalah perintah query yang disimpan pada database dengan suatu nama tertentusehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang query tersebut

Syntax dasar perintah untuk membuat view adalah sebagai berikut

CREATE[OR REPLACE]VIEW view_name [(column_list)]AS select_statement

Kita menggunakan opsi OR REPLACE jika kita ingin mengganti view dengan nama yang samadengan perintah tersebut Jika tidak maka perintah CREATE VIEW akan menghasilkan errorjika nama view yang ingin dibuat sudah ada sebelumnya

Contoh Penggunaan

Kita akan membuat view dari relasi antara table film dan jenisfilm dari database rentaldengan nama view_harga Perintahnya adalah sebagai berikut

CREATE VIEW view_hargaASSELECT j1kode_film j1jenisj1judul j2hargaFROMfilm j1 JOIN jenisfilm j2 ON j1jenis= j2jenis

Eksekusi perintah berikut untuk memastikan view telah dibuat

SELECT FROM information_schemaviews WHERE table_name = view_harga

Terakhir query view tersebut untuk melihat hasilnya

SELECT FROM view_harga

Tugas

1 Buat Data Base baru dengan Koperasi

2 Lihat database

3 Masuk ke data base koperasi

4 Buat table Nasabah

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 26

Nama_field Tipe data size ket

Kd_nasabah Char 5 Primary key

Nama_nasabah varchar 35

Alamat varchar 35

Telepon varchar 15

Status enum (ldquotetaprdquordquotidak Tetaprdquo)

5 Lihat struktur tabl nasabah

6 Ubah typedata status menjadi varchar(20)

7 Hapus field status

8 Isi table nasabah

Kd_nasabah Nama_nasabah Alamat Telepon

00011 Ika Kepadangan 085730333999

00012 Rozi Depok 08586789380

00013 Ari Pasar Minggu 021986782

00014 Gali Sidoarjo 022456

9 Tampilkan data pada table nasabah

10 Tampilkan nasabah yang beralamat di depok

11 Ubah nama_nasabah dengan kd_nasabah 00012 menjdi Indriyani

12 Buat tabel Pinjaman

Nama field Tipe data size keterangan

No_Ref char

Kd_nasabah char

Jml-pimjam int

tempo date ldquo0000-00-00rdquo

13 Tambahkan primary key pada no_ref

14 Ganti tempo menjad tgl_tempo

15 Tambahkan field lama_pinjam varchar(10)

16 Isikan table pinjaman

No_ref Kd_nasabah Jml-pinjam Tgl_tempo Lama_pinjam

Ref01 00011 5000000 2010-06-14 6

Ref02 00012 2000000 2010-08-25 12

Ref03 00013 1500000 2010-10-20 3

17 Lihat jumlah pinjam di atas 3000000

18 Lihat jumlah pinjam pada kd_nasabah 00012

19 Hapus isi field dengan no_ref03

20 Hapus table pinjaman

21 Lihat table pada database

e koperasi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 12

Contoh 2 perintah untuk menampilkan data pada tabel jenisfilm yang mana data pada kolom jenis-nya tidak tercantum pada tabel film menggunakan NOT IN

Mysqlgt selectfrom jenisfilm where jenis not in (select jenis from film)

atau menggunakan NOT EXISTS

Mysqlgt selectfrom jenisfilm where not exists (select from film where jenisfilmjenis =filmjenis)

8) Operator comparison ANY dan ALLa Operator ANY digunakan berkaitan dengan subquery Operator ini menghasilkan TRUE (benar)

jika paling tidak salah satu perbandingan dengan hasil subquery menghasilkan nilai TRUEIlustrasinya

Gaji gt ANY (S)Jika subquery S menghasilkan G1 G2 Gn maka kondisi di atas identik dengan

(gaji gt G1) OR (gaji gt G2) OR OR (gaji gt Gn)Contoh perintah untuk menampilkan semua data jenisfilm yang harganya bukan yang terkecil

Mysqlgt selectfrom jenisfilm where harga gt ANY (select harga from jenisfilm)

b Operator ALL digunakan untuk melakukan perbandingan dengan subquery Kondisi dengan ALLmenghasilkan nilai TRUE (benar) jika subquery tidak menghasilkan apapun atau jikaperbandingan menghasilkan TRUE untuk setiap nilai query terhadap hasil subqueryContoh perintah untuk menampilkan data jenisfilm yang harganya paling tinggi

Mysqlgt selectfrom jenisfilm where harga gt= ALL (select harga from jenisfilm)

9) Aggregate Functions (COUNT SUM AVG MIN MAX)a COUNT

Perintah yang digunakan untuk menghitung jumlah baris suatu kolom pada tabel Contoh perintah untuk menghitung jumlah baris kolom jenis pada tabel jenisfilm

Mysqlgt select count(jenis) form jenisfilm

b SUMPerintah yang digunakan untuk menghitung jumlah nilai suatu kolom pada tabel Contoh perintah untuk menghitung jumlah nilai kolom harga pada tabel jenisfilm

Mysqlgt select sum (harga) form jenisfilm

c AVGPerintah yang digunakan untuk menghitung rata-rata dari nilai suatu kolom pada tabel Contoh perintah untuk menghitung rata-rata dari kolom harga pada tabel jenisfilm

Mysqlgt select avg(harga) form jenisfilm

d MINPerintah yang digunakan untuk menampilkan nilai terkecil dari suatu kolom pada tabel Contoh perintah untuk menampilkan nilai terkecil dari kolom harga pada tabel jenisfilm Mysqlgt select min(harga) form jenisfilm

e MAXPerintah yang digunakan untuk menampilkan nilai terbesar dari suatu kolom pada tabel Contoh perintah untuk menampilkan nilai terbesar dari kolom harga pada tabel jenisfilm

Mysqlgt select max(harga) form jenisfilm

10) SQL dengan GROUP BY dan HAVINGKlausa GROUP BY digunakan untuk melakukan pengelompokan data Sebagai contoh terdapattabel film dengan data sebagai berikut

Mysqlgt select form film

akan ditampilkan hanya kolom jenis dan digabungkan dengan SUM(jml_film) yang dikelompokkanberdasarkan kolom jenis pada tabel film

Mysqlgt select jenissum(jml_film) from film group by jenis

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 13

Klausa HAVING digunakan untuk menentukan kondisi bagi klausa GROUP BY Kelompok yangmemenuhi HAVING saja yang akan dihasilkan Contoh perintah untuk menampilkan data hanyakolom jenis yang dikelompokkan berdasarkan kolom jenis dimana jumlah film berdasarkankelompoknya harus lebih besar dari satu pada tabel film

Mysqlgt select jenis film group by jenis having count(kode_film) gt1

11) ORDER BYKlausa ORDER BY digunakan untuk mengurutkan data berdasarkan kolom tertentu sesuai dengantipe data yang dimiliki Contoh perintah untuk mengurutkan data film berdasarkan kolom judul

Mysqlgt select from film order by judul

atau tambahkan ASC untuk pengurutan secara ascending (menaik)

Mysqlgt select from film order by judul asc

atau tambahkan DESC untuk pengurutan secara descending (menurun)

Mysqlgt select from film order by judul desc

12) UNION INTERSECT dan EXCEPT

a UNIONUNION merupakan operator yang digunakan untuk menggabungkan hasil query denganketentuan jumlah nama dan tipe kolom dari masing-masing tabel yang akan ditampilkandatanya harus sama Berikut ini perintah untuk memperoleh data pada tabel film dimanajenisnya action dan horor

Mysqlgt select jenisjudul from film where jenis=rsquoactionrsquo uniongt select jenisjudul film from film where jenis=rsquohororrsquo

Perintah di atas identik dengan

Mysqlgt select jenisjudul from film where jenis=rsquoactionrsquo or jenis =rsquounionrsquo

Namun tidak semua penggabungan dapat dilakukan dengan OR yaitu jika bekerja pada duatabel atau lebih

b INTERSECTINTERSECT merupakan operator yang digunakan untuk memperoleh data dari dua buah querydimana data yang ditampilkan adalah yang memenuhi kedua query tersebut dengan ketentuanjumlah nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harussamaSyntax SELECT FROM namatabel1 INTERSECT SELECT FROMnamatabel2Pada MySQL tidak terdapat operator INTERSECT namun sebagai gantinya dapat menggunakanoperator IN seperti contoh 1 pada bagian Nested Queries

c EXCEPT Set DifferenceEXCEPT merupakan operator yang digunakan untuk memperoleh data dari dua buah querydimana data yang ditampilkan adalah data yang ada pada hasil query 1 dan tidak terdapat padadata dari hasil query 2 dengan ketentuan jumlah nama dan tipe kolom dari masing-masing tabelyang akan ditampilkan datanya harus samaSyntax SELECT FROM namatabel1 EXCEPT SELECT FROM namatabel2Pada MySQL tidak terdapat operator EXCEPT namun sebagai gantinya dapat menggunakanoperator NOT IN seperti contoh 2 pada bagian Nested Queries

13) Operasi JoinJoin merupakan operasi yang digunakan untuk menggabungkan dua tabel atau lebih dengan hasilberupa 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 Berikutini perintah untuk menampilkan kolom judul dari tabel film dan kolom harga dari tabel jenisfilm

Mysqlgt select judul harga from film jenisfilm where jenisfilmjenis = filmjenis

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 14

Pada contoh di atas jenisfilmjenis=filmjenis merupakan kondisi untuk mencocokkandata antara kolom jenis milik tabel jenisfilm dan filma Inner Join

Inner join digunakan untuk menampilkan data dari dua tabel yang berisi data sesuai dengansyarat dibelakang on (tidak boleh null) dengan kata lain semua data dari tabel kiri mendapatpasangan data dari tabel sebelah kanan Berikut ini perintah untuk menampilkan data dari tabeljenisfilm dan film dengan syarat berdasarkan kolom jenis

Mysqlgt select form jenisfilm join film on (jenisfilmjenis =filmjenis)

b Left JoinLeft join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintah left joinbeserta pasangannya dari tabel sebelah kanan Meskipun terdapat data dari sebelah kiri tidakmemiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilai NULL

Mysqlgt select form jenisfilm left join film on (jenisfilmjenis =filmjenis)

c Right JoinRight join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintah rightjoin beserta pasangannya dari tabel sebelah kiri Meskipun terdapat data dari sebelah kanantidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilai NULL

Mysqlgt select form jenisfilm right join film on (jenisfilmjenis =filmjenis)

d Natural JoinNatural join digunakan untuk menampilkan semua data dari dua tabel dimana jika terdapatkolom yang sama maka yang akan ditampilkan hanya salah satunya saja yaitu kolom dari tabelsebelah kiri perintah natural join

Mysqlgt select form jenisfilm natural join film

1) Natural Left JoinNatural left join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintahnatural left join beserta pasangannya dari tabel sebelah kanan Meskipun terdapat data darisebelah kiri tidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilaiNULL

Mysqlgt select form jenisfilm natural left join film

2) Natural Right JoinNatural right join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintahnatural right join beserta pasangannya dari tabel sebelah kiri Meskipun terdapat data darisebelah kanan tidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupanilai NULL

Mysqlgt select form jenisfilm natural right join film

Tugas

1 Buatlah database dengan nama ldquoMahasiswardquokuliah Penjualantransaksikaryawan2 Buatlah tabel dengan nama ldquoPenilaianrdquo dengan struktur tabel seperti berikut

Field Type Key Default Extra

NPM Int(8) PRI NULLKdMk Varchar(5) NULL

NamaMK Varchar NULLMid Float(5) NULLFinal Float(5) NULL

NilRata Float(5) NULL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 15

3 Sisipkan nilai-nilainya seperti tabel berikut

NPM KdMK NamaMK Mid Final NilRata10296832 KK021 75 82 10297732 KD132 775 735 20216832 KK021 835 817 30216832 KU122 654 77 10297732 KK021 795 825 20216832 KD132 805 83 30216832 KK021 67 78

4 Tampilkan seluruh record mahasiswa yang berkode matakuliah atauu KdMK=KK021

5 Tampilkan record field NpmKdMK dan Mid saja bagi yang nilai mid-nya antara 75 dan 90

6 Sisipkan nilai untuk field nama matakuliah (NamaMK) dengan ketentuan sebagai berikut KdMK NamaMKKK021 Sistem Basis DataKD132 SIMKU122 Pancasila

7 Sisipkan nilai untuk field nilai rata-rata (NilRata) dengan ketentuan sebagai berikut Mid + Final 2

8 Hapuslah record yang memiliki Npm = 10296832

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 16

MODUL 4

MANAJEMEN USER

MAKSUD DAN TUJUANAgar mahasiswa memahami manajeman user pada SQL

MATERIProses pembuatan user baru dan pemberian hak akses user

Untul MySQL versi 322 keatas dalam manajemen user dapat menggunakan perintah GRANTdan REVOKE

Perintah GRANTDipergunakan untuk membuat user baru dengan izin aksesnya

Bentuk umum GRANT jenis_akses (``nama_kolom) ON nama_database

TO nama_user IDENTIFIED BY rdquonama_passwordrdquo[WITH GRANT pilihan_akses]

Perintah REVOKEUntuk menghapus izin akses user

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_userPerintah DELETEUntuk menghapus user secara permanen

Membuat User BaruDengan perintah GRANTContoh membuat user vivien

Tingkatan akses adalah ALL user vivien sebagai administratorON = dapat meng-akses semua databaseTO vivien dapat ditulis TO vivien atau TO vivienlocalhost

Buat user baru dengan nama ldquoayyirdquodengan perintah

User ayyi dapat login ke MySQL dapat mengakses semua database tetapi tidak memiliki izinakses jadi sebagai dummy user atau blank user

Lihat tabel user

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 17

Bagaimana dengan izin akses caranya dengan memeriksa tabel user yaitu kolom privilegesdengan perintah SELECT FROM USER

User vivien bertanda rdquo Y rdquo dapat mengakses semuaUser ayyi bertanda rdquo N rdquo tidak dapat mengakses

Coba gunakan user rdquo ayyi rdquoKeluar dari MySQL dan login kembali dengan user rdquo ayyi rdquo password rdquo fathin rdquoTampilan

Sintax mysql ndashu ayyi ndashp

Coba lihat database yang dapat diaksesTampilan

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 18

User ayyi tidak dapat mengakses database yang sudah terbentuk di mysql hanya databaseinformation_schema

Coba membuat database

Access denied tidak diberikan izin untuk create

Memberikan Izin Akses tertentu

Jika akan memberikan izin akses SELECT INSERT UPDATE dan DELETE kepada user ayyi yanghanya dapat digunakan pada database latihdb1Pemberian izin akses hanya boleh dilakukan oleh user dalam akses root atau user yangdiberikan zin akses setingkat administrator

Sebagai contoh user rdquorootrdquo atau user rdquoiyusrdquo (nama anda sendiri)Jika menggunakan rootPerintah

Mysql ndashu root -p

Jika menggunakan user rdquoiyusrdquo (nama anda sendiri)Perintah

Mysql ndashu iyus(nama sendiri) -p

Gunakan salah satu dan Buat database baru dengan nama rsquolatihdb1rsquo

Berikan izin akses ke database latihdb1Aktifkan database mysql dan lihat tabel ndash

Berikan izin untuk insert update delete create pada user ayyi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 19

Lihat perubahan izin akses

Coba mengakses dengan user ayyiDan lihat database yang dapat diakses

Database latihdb1 dapat diakses dan jika terdapat akses yang tidak diizinkan maka lakukanperitah GRANT untuk izin akses pada user ayyi dengan ketetapan user admin sebagai root

Contoh

Contoh user ayyi membuat table pegawai dalam database latihdb1

Buatlah database akademik dengan tabel mahasiswa matakuliah dan kelasStruktur tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 20

Struktur tabel Matakuliah

Struktur tabel kelas

Memberikan izin akses per tabel dan per kolomDengan perintah grant dapat digunakan untuk memberikan izin akses per tabel dan per kolomtabel

Contoh user ayyi diberikan izin akses SELECT dan INSERT untuk kolom kota dan kdpos padatabel mahasiwa

Sintaksis MySQL

Pengaruh dari perintah grant tables sebelumnya kita coba menampilkan tabel table_privSintaksis pertama

Keterangan Host Dapat diakses di semua komputer terkoneksi jaringanDb Database Akademik yang dapat diaksesUser User AyyiTable_name Mahasiswa yang dapat diaksesGrantor rootlocalhost yang memberikan izin aksesTimestamp Tanggal pemberian izin 18 November 2009

jam 105552

Database Akademik

Tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 21

Sintaksis kedua

Keterangan Column_priv Select dan Insert izin akses kolom yang diberikan

Untuk melihat kolom mana saja yang diberikan izin akses select dan insert dengan perintah Sintaksis MySQL

Keterangan Column_name Kota dan KdPos kolom yang diberikan izin aksesColumn_priv Izin akses kedua kolom tersebut adalah select dan insert

Anda coba kewenangan apa saja yang dapat dilakukan oleh user ayyiKeluar dari mysqlDan login kembali dengan user ayyi

Lakukan perintah

Lakukan perintah select record yang ada pada tabel mahasiswa

Lihat database aktif

Lihat tabel aktif

Akatifkan database akademik

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 22

User ayyi tidak diizikan untuk menampilkan data pada tabel mahasiswaIzin akses nya adalah select untuk kolom kota dan kode posLakukan perintah select kota dan kodepos

Bagaimana dengan perintah delete tabel

Perintah delete ditolakBagaimana dengan perintah UPDATE kota

Bagimana dengan perintah insert

Untuk perintah update dan insert data tidak dapat dilakukan oleh user ayyi

Bagimana user ayyi dapat mengakses tabel mahasiswaKeluar dari MySQL dan login kembali menggunakan user rootDan berikan izin akses untuk tabel mahasiswa kepada user ayyi

Perintah ini memberikan status root kepada user ayyi hanya izin akses lengkap di databaseakademik tabel mahasiswa ( on akademikmahasiswa )

Coba keluar dan login kembali dengan user ayyiLakukan perintah update dan select

List data kota dan kode pos

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 23

Perintah update dapat dilakukan

Lakukan perintah select data keseluruhan

Bagaimana dengan menambah data gunakan perintah insert

Perintan insert dapat dilakukan dan jumlah data terdiri 6 record

Bagaimana dengan select untuk tabel mata kuliah dan kelas

Untuk mengakses tabel matakuliah dan kelas tidak di izinkan

Memberikan izin akses berdasarkan lokasi pengaksesAdmin atau root atau memberikan izin akses berdasarkan lokasi atau membatasi komputermana saja yang dapat mengakses MySQL serverContoh pemberian izin akses

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 24

Perlu diperhatikan format pemberian izin berhubungan dengan cara login ke MySQL contoh Jika pemberian izin akse dengan no IP komputer maka login juga harus mencantumkan no IP

Yang lebih fleksibel menggunakan tanda rdquordquo dapat diakses dimana saja ke server MySQL

Menghapus izin aksesMenggunakan perintah REVOKE penggunaan perintah revoke ini hanya menghapus izin aksesuntuk user tertentu bukan penghapus userUser yang bersangkutan tetap dapat login ke MySQL

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_user

User ayyi dapat mengakses tabel yang ada di database akademik

Sebagai contoh user ayyi dihapus izin akses untuk database akademik

Sintaksis

Jangan lupa diakhir dengan perintah flush

Kasus jika suatu root telah memberikan izin akses hanya untuk satu tabel seperti user ayyitelah dahulu diberikan all privileges kepada tabel mahasiswa maka untuk menghapusnyadisesuaikan dengan perintah grant

Untuk menghapus izin akses di tabel mahasiswa lakukan perintah (izin aksesnya sama denganperintah grant)

Konsep memberikan izin akses user ndash privileges user merupakan hal yang sangat penting dalammenyangkut masalah keamanan pada MySQL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 25

MODUL 5

VIEW

MAKSUD DAN TUJUAN

Agar mahasiswa1 Dapat membuat View2 Dapat Memanggil data melalui View3 Merubah definisi View4 Insert Update dan Delete data melalui View5 Menghapus (drop) view

MATERIProses pengolahan isi data di dalam table seperti membuat dan memanggil tabel menggunakan fungsiview

View adalah perintah query yang disimpan pada database dengan suatu nama tertentusehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang query tersebut

Syntax dasar perintah untuk membuat view adalah sebagai berikut

CREATE[OR REPLACE]VIEW view_name [(column_list)]AS select_statement

Kita menggunakan opsi OR REPLACE jika kita ingin mengganti view dengan nama yang samadengan perintah tersebut Jika tidak maka perintah CREATE VIEW akan menghasilkan errorjika nama view yang ingin dibuat sudah ada sebelumnya

Contoh Penggunaan

Kita akan membuat view dari relasi antara table film dan jenisfilm dari database rentaldengan nama view_harga Perintahnya adalah sebagai berikut

CREATE VIEW view_hargaASSELECT j1kode_film j1jenisj1judul j2hargaFROMfilm j1 JOIN jenisfilm j2 ON j1jenis= j2jenis

Eksekusi perintah berikut untuk memastikan view telah dibuat

SELECT FROM information_schemaviews WHERE table_name = view_harga

Terakhir query view tersebut untuk melihat hasilnya

SELECT FROM view_harga

Tugas

1 Buat Data Base baru dengan Koperasi

2 Lihat database

3 Masuk ke data base koperasi

4 Buat table Nasabah

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 26

Nama_field Tipe data size ket

Kd_nasabah Char 5 Primary key

Nama_nasabah varchar 35

Alamat varchar 35

Telepon varchar 15

Status enum (ldquotetaprdquordquotidak Tetaprdquo)

5 Lihat struktur tabl nasabah

6 Ubah typedata status menjadi varchar(20)

7 Hapus field status

8 Isi table nasabah

Kd_nasabah Nama_nasabah Alamat Telepon

00011 Ika Kepadangan 085730333999

00012 Rozi Depok 08586789380

00013 Ari Pasar Minggu 021986782

00014 Gali Sidoarjo 022456

9 Tampilkan data pada table nasabah

10 Tampilkan nasabah yang beralamat di depok

11 Ubah nama_nasabah dengan kd_nasabah 00012 menjdi Indriyani

12 Buat tabel Pinjaman

Nama field Tipe data size keterangan

No_Ref char

Kd_nasabah char

Jml-pimjam int

tempo date ldquo0000-00-00rdquo

13 Tambahkan primary key pada no_ref

14 Ganti tempo menjad tgl_tempo

15 Tambahkan field lama_pinjam varchar(10)

16 Isikan table pinjaman

No_ref Kd_nasabah Jml-pinjam Tgl_tempo Lama_pinjam

Ref01 00011 5000000 2010-06-14 6

Ref02 00012 2000000 2010-08-25 12

Ref03 00013 1500000 2010-10-20 3

17 Lihat jumlah pinjam di atas 3000000

18 Lihat jumlah pinjam pada kd_nasabah 00012

19 Hapus isi field dengan no_ref03

20 Hapus table pinjaman

21 Lihat table pada database

e koperasi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 13

Klausa HAVING digunakan untuk menentukan kondisi bagi klausa GROUP BY Kelompok yangmemenuhi HAVING saja yang akan dihasilkan Contoh perintah untuk menampilkan data hanyakolom jenis yang dikelompokkan berdasarkan kolom jenis dimana jumlah film berdasarkankelompoknya harus lebih besar dari satu pada tabel film

Mysqlgt select jenis film group by jenis having count(kode_film) gt1

11) ORDER BYKlausa ORDER BY digunakan untuk mengurutkan data berdasarkan kolom tertentu sesuai dengantipe data yang dimiliki Contoh perintah untuk mengurutkan data film berdasarkan kolom judul

Mysqlgt select from film order by judul

atau tambahkan ASC untuk pengurutan secara ascending (menaik)

Mysqlgt select from film order by judul asc

atau tambahkan DESC untuk pengurutan secara descending (menurun)

Mysqlgt select from film order by judul desc

12) UNION INTERSECT dan EXCEPT

a UNIONUNION merupakan operator yang digunakan untuk menggabungkan hasil query denganketentuan jumlah nama dan tipe kolom dari masing-masing tabel yang akan ditampilkandatanya harus sama Berikut ini perintah untuk memperoleh data pada tabel film dimanajenisnya action dan horor

Mysqlgt select jenisjudul from film where jenis=rsquoactionrsquo uniongt select jenisjudul film from film where jenis=rsquohororrsquo

Perintah di atas identik dengan

Mysqlgt select jenisjudul from film where jenis=rsquoactionrsquo or jenis =rsquounionrsquo

Namun tidak semua penggabungan dapat dilakukan dengan OR yaitu jika bekerja pada duatabel atau lebih

b INTERSECTINTERSECT merupakan operator yang digunakan untuk memperoleh data dari dua buah querydimana data yang ditampilkan adalah yang memenuhi kedua query tersebut dengan ketentuanjumlah nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harussamaSyntax SELECT FROM namatabel1 INTERSECT SELECT FROMnamatabel2Pada MySQL tidak terdapat operator INTERSECT namun sebagai gantinya dapat menggunakanoperator IN seperti contoh 1 pada bagian Nested Queries

c EXCEPT Set DifferenceEXCEPT merupakan operator yang digunakan untuk memperoleh data dari dua buah querydimana data yang ditampilkan adalah data yang ada pada hasil query 1 dan tidak terdapat padadata dari hasil query 2 dengan ketentuan jumlah nama dan tipe kolom dari masing-masing tabelyang akan ditampilkan datanya harus samaSyntax SELECT FROM namatabel1 EXCEPT SELECT FROM namatabel2Pada MySQL tidak terdapat operator EXCEPT namun sebagai gantinya dapat menggunakanoperator NOT IN seperti contoh 2 pada bagian Nested Queries

13) Operasi JoinJoin merupakan operasi yang digunakan untuk menggabungkan dua tabel atau lebih dengan hasilberupa 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 Berikutini perintah untuk menampilkan kolom judul dari tabel film dan kolom harga dari tabel jenisfilm

Mysqlgt select judul harga from film jenisfilm where jenisfilmjenis = filmjenis

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 14

Pada contoh di atas jenisfilmjenis=filmjenis merupakan kondisi untuk mencocokkandata antara kolom jenis milik tabel jenisfilm dan filma Inner Join

Inner join digunakan untuk menampilkan data dari dua tabel yang berisi data sesuai dengansyarat dibelakang on (tidak boleh null) dengan kata lain semua data dari tabel kiri mendapatpasangan data dari tabel sebelah kanan Berikut ini perintah untuk menampilkan data dari tabeljenisfilm dan film dengan syarat berdasarkan kolom jenis

Mysqlgt select form jenisfilm join film on (jenisfilmjenis =filmjenis)

b Left JoinLeft join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintah left joinbeserta pasangannya dari tabel sebelah kanan Meskipun terdapat data dari sebelah kiri tidakmemiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilai NULL

Mysqlgt select form jenisfilm left join film on (jenisfilmjenis =filmjenis)

c Right JoinRight join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintah rightjoin beserta pasangannya dari tabel sebelah kiri Meskipun terdapat data dari sebelah kanantidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilai NULL

Mysqlgt select form jenisfilm right join film on (jenisfilmjenis =filmjenis)

d Natural JoinNatural join digunakan untuk menampilkan semua data dari dua tabel dimana jika terdapatkolom yang sama maka yang akan ditampilkan hanya salah satunya saja yaitu kolom dari tabelsebelah kiri perintah natural join

Mysqlgt select form jenisfilm natural join film

1) Natural Left JoinNatural left join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintahnatural left join beserta pasangannya dari tabel sebelah kanan Meskipun terdapat data darisebelah kiri tidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilaiNULL

Mysqlgt select form jenisfilm natural left join film

2) Natural Right JoinNatural right join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintahnatural right join beserta pasangannya dari tabel sebelah kiri Meskipun terdapat data darisebelah kanan tidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupanilai NULL

Mysqlgt select form jenisfilm natural right join film

Tugas

1 Buatlah database dengan nama ldquoMahasiswardquokuliah Penjualantransaksikaryawan2 Buatlah tabel dengan nama ldquoPenilaianrdquo dengan struktur tabel seperti berikut

Field Type Key Default Extra

NPM Int(8) PRI NULLKdMk Varchar(5) NULL

NamaMK Varchar NULLMid Float(5) NULLFinal Float(5) NULL

NilRata Float(5) NULL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 15

3 Sisipkan nilai-nilainya seperti tabel berikut

NPM KdMK NamaMK Mid Final NilRata10296832 KK021 75 82 10297732 KD132 775 735 20216832 KK021 835 817 30216832 KU122 654 77 10297732 KK021 795 825 20216832 KD132 805 83 30216832 KK021 67 78

4 Tampilkan seluruh record mahasiswa yang berkode matakuliah atauu KdMK=KK021

5 Tampilkan record field NpmKdMK dan Mid saja bagi yang nilai mid-nya antara 75 dan 90

6 Sisipkan nilai untuk field nama matakuliah (NamaMK) dengan ketentuan sebagai berikut KdMK NamaMKKK021 Sistem Basis DataKD132 SIMKU122 Pancasila

7 Sisipkan nilai untuk field nilai rata-rata (NilRata) dengan ketentuan sebagai berikut Mid + Final 2

8 Hapuslah record yang memiliki Npm = 10296832

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 16

MODUL 4

MANAJEMEN USER

MAKSUD DAN TUJUANAgar mahasiswa memahami manajeman user pada SQL

MATERIProses pembuatan user baru dan pemberian hak akses user

Untul MySQL versi 322 keatas dalam manajemen user dapat menggunakan perintah GRANTdan REVOKE

Perintah GRANTDipergunakan untuk membuat user baru dengan izin aksesnya

Bentuk umum GRANT jenis_akses (``nama_kolom) ON nama_database

TO nama_user IDENTIFIED BY rdquonama_passwordrdquo[WITH GRANT pilihan_akses]

Perintah REVOKEUntuk menghapus izin akses user

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_userPerintah DELETEUntuk menghapus user secara permanen

Membuat User BaruDengan perintah GRANTContoh membuat user vivien

Tingkatan akses adalah ALL user vivien sebagai administratorON = dapat meng-akses semua databaseTO vivien dapat ditulis TO vivien atau TO vivienlocalhost

Buat user baru dengan nama ldquoayyirdquodengan perintah

User ayyi dapat login ke MySQL dapat mengakses semua database tetapi tidak memiliki izinakses jadi sebagai dummy user atau blank user

Lihat tabel user

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 17

Bagaimana dengan izin akses caranya dengan memeriksa tabel user yaitu kolom privilegesdengan perintah SELECT FROM USER

User vivien bertanda rdquo Y rdquo dapat mengakses semuaUser ayyi bertanda rdquo N rdquo tidak dapat mengakses

Coba gunakan user rdquo ayyi rdquoKeluar dari MySQL dan login kembali dengan user rdquo ayyi rdquo password rdquo fathin rdquoTampilan

Sintax mysql ndashu ayyi ndashp

Coba lihat database yang dapat diaksesTampilan

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 18

User ayyi tidak dapat mengakses database yang sudah terbentuk di mysql hanya databaseinformation_schema

Coba membuat database

Access denied tidak diberikan izin untuk create

Memberikan Izin Akses tertentu

Jika akan memberikan izin akses SELECT INSERT UPDATE dan DELETE kepada user ayyi yanghanya dapat digunakan pada database latihdb1Pemberian izin akses hanya boleh dilakukan oleh user dalam akses root atau user yangdiberikan zin akses setingkat administrator

Sebagai contoh user rdquorootrdquo atau user rdquoiyusrdquo (nama anda sendiri)Jika menggunakan rootPerintah

Mysql ndashu root -p

Jika menggunakan user rdquoiyusrdquo (nama anda sendiri)Perintah

Mysql ndashu iyus(nama sendiri) -p

Gunakan salah satu dan Buat database baru dengan nama rsquolatihdb1rsquo

Berikan izin akses ke database latihdb1Aktifkan database mysql dan lihat tabel ndash

Berikan izin untuk insert update delete create pada user ayyi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 19

Lihat perubahan izin akses

Coba mengakses dengan user ayyiDan lihat database yang dapat diakses

Database latihdb1 dapat diakses dan jika terdapat akses yang tidak diizinkan maka lakukanperitah GRANT untuk izin akses pada user ayyi dengan ketetapan user admin sebagai root

Contoh

Contoh user ayyi membuat table pegawai dalam database latihdb1

Buatlah database akademik dengan tabel mahasiswa matakuliah dan kelasStruktur tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 20

Struktur tabel Matakuliah

Struktur tabel kelas

Memberikan izin akses per tabel dan per kolomDengan perintah grant dapat digunakan untuk memberikan izin akses per tabel dan per kolomtabel

Contoh user ayyi diberikan izin akses SELECT dan INSERT untuk kolom kota dan kdpos padatabel mahasiwa

Sintaksis MySQL

Pengaruh dari perintah grant tables sebelumnya kita coba menampilkan tabel table_privSintaksis pertama

Keterangan Host Dapat diakses di semua komputer terkoneksi jaringanDb Database Akademik yang dapat diaksesUser User AyyiTable_name Mahasiswa yang dapat diaksesGrantor rootlocalhost yang memberikan izin aksesTimestamp Tanggal pemberian izin 18 November 2009

jam 105552

Database Akademik

Tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 21

Sintaksis kedua

Keterangan Column_priv Select dan Insert izin akses kolom yang diberikan

Untuk melihat kolom mana saja yang diberikan izin akses select dan insert dengan perintah Sintaksis MySQL

Keterangan Column_name Kota dan KdPos kolom yang diberikan izin aksesColumn_priv Izin akses kedua kolom tersebut adalah select dan insert

Anda coba kewenangan apa saja yang dapat dilakukan oleh user ayyiKeluar dari mysqlDan login kembali dengan user ayyi

Lakukan perintah

Lakukan perintah select record yang ada pada tabel mahasiswa

Lihat database aktif

Lihat tabel aktif

Akatifkan database akademik

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 22

User ayyi tidak diizikan untuk menampilkan data pada tabel mahasiswaIzin akses nya adalah select untuk kolom kota dan kode posLakukan perintah select kota dan kodepos

Bagaimana dengan perintah delete tabel

Perintah delete ditolakBagaimana dengan perintah UPDATE kota

Bagimana dengan perintah insert

Untuk perintah update dan insert data tidak dapat dilakukan oleh user ayyi

Bagimana user ayyi dapat mengakses tabel mahasiswaKeluar dari MySQL dan login kembali menggunakan user rootDan berikan izin akses untuk tabel mahasiswa kepada user ayyi

Perintah ini memberikan status root kepada user ayyi hanya izin akses lengkap di databaseakademik tabel mahasiswa ( on akademikmahasiswa )

Coba keluar dan login kembali dengan user ayyiLakukan perintah update dan select

List data kota dan kode pos

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 23

Perintah update dapat dilakukan

Lakukan perintah select data keseluruhan

Bagaimana dengan menambah data gunakan perintah insert

Perintan insert dapat dilakukan dan jumlah data terdiri 6 record

Bagaimana dengan select untuk tabel mata kuliah dan kelas

Untuk mengakses tabel matakuliah dan kelas tidak di izinkan

Memberikan izin akses berdasarkan lokasi pengaksesAdmin atau root atau memberikan izin akses berdasarkan lokasi atau membatasi komputermana saja yang dapat mengakses MySQL serverContoh pemberian izin akses

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 24

Perlu diperhatikan format pemberian izin berhubungan dengan cara login ke MySQL contoh Jika pemberian izin akse dengan no IP komputer maka login juga harus mencantumkan no IP

Yang lebih fleksibel menggunakan tanda rdquordquo dapat diakses dimana saja ke server MySQL

Menghapus izin aksesMenggunakan perintah REVOKE penggunaan perintah revoke ini hanya menghapus izin aksesuntuk user tertentu bukan penghapus userUser yang bersangkutan tetap dapat login ke MySQL

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_user

User ayyi dapat mengakses tabel yang ada di database akademik

Sebagai contoh user ayyi dihapus izin akses untuk database akademik

Sintaksis

Jangan lupa diakhir dengan perintah flush

Kasus jika suatu root telah memberikan izin akses hanya untuk satu tabel seperti user ayyitelah dahulu diberikan all privileges kepada tabel mahasiswa maka untuk menghapusnyadisesuaikan dengan perintah grant

Untuk menghapus izin akses di tabel mahasiswa lakukan perintah (izin aksesnya sama denganperintah grant)

Konsep memberikan izin akses user ndash privileges user merupakan hal yang sangat penting dalammenyangkut masalah keamanan pada MySQL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 25

MODUL 5

VIEW

MAKSUD DAN TUJUAN

Agar mahasiswa1 Dapat membuat View2 Dapat Memanggil data melalui View3 Merubah definisi View4 Insert Update dan Delete data melalui View5 Menghapus (drop) view

MATERIProses pengolahan isi data di dalam table seperti membuat dan memanggil tabel menggunakan fungsiview

View adalah perintah query yang disimpan pada database dengan suatu nama tertentusehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang query tersebut

Syntax dasar perintah untuk membuat view adalah sebagai berikut

CREATE[OR REPLACE]VIEW view_name [(column_list)]AS select_statement

Kita menggunakan opsi OR REPLACE jika kita ingin mengganti view dengan nama yang samadengan perintah tersebut Jika tidak maka perintah CREATE VIEW akan menghasilkan errorjika nama view yang ingin dibuat sudah ada sebelumnya

Contoh Penggunaan

Kita akan membuat view dari relasi antara table film dan jenisfilm dari database rentaldengan nama view_harga Perintahnya adalah sebagai berikut

CREATE VIEW view_hargaASSELECT j1kode_film j1jenisj1judul j2hargaFROMfilm j1 JOIN jenisfilm j2 ON j1jenis= j2jenis

Eksekusi perintah berikut untuk memastikan view telah dibuat

SELECT FROM information_schemaviews WHERE table_name = view_harga

Terakhir query view tersebut untuk melihat hasilnya

SELECT FROM view_harga

Tugas

1 Buat Data Base baru dengan Koperasi

2 Lihat database

3 Masuk ke data base koperasi

4 Buat table Nasabah

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 26

Nama_field Tipe data size ket

Kd_nasabah Char 5 Primary key

Nama_nasabah varchar 35

Alamat varchar 35

Telepon varchar 15

Status enum (ldquotetaprdquordquotidak Tetaprdquo)

5 Lihat struktur tabl nasabah

6 Ubah typedata status menjadi varchar(20)

7 Hapus field status

8 Isi table nasabah

Kd_nasabah Nama_nasabah Alamat Telepon

00011 Ika Kepadangan 085730333999

00012 Rozi Depok 08586789380

00013 Ari Pasar Minggu 021986782

00014 Gali Sidoarjo 022456

9 Tampilkan data pada table nasabah

10 Tampilkan nasabah yang beralamat di depok

11 Ubah nama_nasabah dengan kd_nasabah 00012 menjdi Indriyani

12 Buat tabel Pinjaman

Nama field Tipe data size keterangan

No_Ref char

Kd_nasabah char

Jml-pimjam int

tempo date ldquo0000-00-00rdquo

13 Tambahkan primary key pada no_ref

14 Ganti tempo menjad tgl_tempo

15 Tambahkan field lama_pinjam varchar(10)

16 Isikan table pinjaman

No_ref Kd_nasabah Jml-pinjam Tgl_tempo Lama_pinjam

Ref01 00011 5000000 2010-06-14 6

Ref02 00012 2000000 2010-08-25 12

Ref03 00013 1500000 2010-10-20 3

17 Lihat jumlah pinjam di atas 3000000

18 Lihat jumlah pinjam pada kd_nasabah 00012

19 Hapus isi field dengan no_ref03

20 Hapus table pinjaman

21 Lihat table pada database

e koperasi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 14

Pada contoh di atas jenisfilmjenis=filmjenis merupakan kondisi untuk mencocokkandata antara kolom jenis milik tabel jenisfilm dan filma Inner Join

Inner join digunakan untuk menampilkan data dari dua tabel yang berisi data sesuai dengansyarat dibelakang on (tidak boleh null) dengan kata lain semua data dari tabel kiri mendapatpasangan data dari tabel sebelah kanan Berikut ini perintah untuk menampilkan data dari tabeljenisfilm dan film dengan syarat berdasarkan kolom jenis

Mysqlgt select form jenisfilm join film on (jenisfilmjenis =filmjenis)

b Left JoinLeft join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintah left joinbeserta pasangannya dari tabel sebelah kanan Meskipun terdapat data dari sebelah kiri tidakmemiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilai NULL

Mysqlgt select form jenisfilm left join film on (jenisfilmjenis =filmjenis)

c Right JoinRight join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintah rightjoin beserta pasangannya dari tabel sebelah kiri Meskipun terdapat data dari sebelah kanantidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilai NULL

Mysqlgt select form jenisfilm right join film on (jenisfilmjenis =filmjenis)

d Natural JoinNatural join digunakan untuk menampilkan semua data dari dua tabel dimana jika terdapatkolom yang sama maka yang akan ditampilkan hanya salah satunya saja yaitu kolom dari tabelsebelah kiri perintah natural join

Mysqlgt select form jenisfilm natural join film

1) Natural Left JoinNatural left join digunakan untuk menampilkan semua data dari tabel sebelah kiri perintahnatural left join beserta pasangannya dari tabel sebelah kanan Meskipun terdapat data darisebelah kiri tidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupa nilaiNULL

Mysqlgt select form jenisfilm natural left join film

2) Natural Right JoinNatural right join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintahnatural right join beserta pasangannya dari tabel sebelah kiri Meskipun terdapat data darisebelah kanan tidak memiliki pasangan tetap akan ditampilkan dengan pasangannya berupanilai NULL

Mysqlgt select form jenisfilm natural right join film

Tugas

1 Buatlah database dengan nama ldquoMahasiswardquokuliah Penjualantransaksikaryawan2 Buatlah tabel dengan nama ldquoPenilaianrdquo dengan struktur tabel seperti berikut

Field Type Key Default Extra

NPM Int(8) PRI NULLKdMk Varchar(5) NULL

NamaMK Varchar NULLMid Float(5) NULLFinal Float(5) NULL

NilRata Float(5) NULL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 15

3 Sisipkan nilai-nilainya seperti tabel berikut

NPM KdMK NamaMK Mid Final NilRata10296832 KK021 75 82 10297732 KD132 775 735 20216832 KK021 835 817 30216832 KU122 654 77 10297732 KK021 795 825 20216832 KD132 805 83 30216832 KK021 67 78

4 Tampilkan seluruh record mahasiswa yang berkode matakuliah atauu KdMK=KK021

5 Tampilkan record field NpmKdMK dan Mid saja bagi yang nilai mid-nya antara 75 dan 90

6 Sisipkan nilai untuk field nama matakuliah (NamaMK) dengan ketentuan sebagai berikut KdMK NamaMKKK021 Sistem Basis DataKD132 SIMKU122 Pancasila

7 Sisipkan nilai untuk field nilai rata-rata (NilRata) dengan ketentuan sebagai berikut Mid + Final 2

8 Hapuslah record yang memiliki Npm = 10296832

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 16

MODUL 4

MANAJEMEN USER

MAKSUD DAN TUJUANAgar mahasiswa memahami manajeman user pada SQL

MATERIProses pembuatan user baru dan pemberian hak akses user

Untul MySQL versi 322 keatas dalam manajemen user dapat menggunakan perintah GRANTdan REVOKE

Perintah GRANTDipergunakan untuk membuat user baru dengan izin aksesnya

Bentuk umum GRANT jenis_akses (``nama_kolom) ON nama_database

TO nama_user IDENTIFIED BY rdquonama_passwordrdquo[WITH GRANT pilihan_akses]

Perintah REVOKEUntuk menghapus izin akses user

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_userPerintah DELETEUntuk menghapus user secara permanen

Membuat User BaruDengan perintah GRANTContoh membuat user vivien

Tingkatan akses adalah ALL user vivien sebagai administratorON = dapat meng-akses semua databaseTO vivien dapat ditulis TO vivien atau TO vivienlocalhost

Buat user baru dengan nama ldquoayyirdquodengan perintah

User ayyi dapat login ke MySQL dapat mengakses semua database tetapi tidak memiliki izinakses jadi sebagai dummy user atau blank user

Lihat tabel user

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 17

Bagaimana dengan izin akses caranya dengan memeriksa tabel user yaitu kolom privilegesdengan perintah SELECT FROM USER

User vivien bertanda rdquo Y rdquo dapat mengakses semuaUser ayyi bertanda rdquo N rdquo tidak dapat mengakses

Coba gunakan user rdquo ayyi rdquoKeluar dari MySQL dan login kembali dengan user rdquo ayyi rdquo password rdquo fathin rdquoTampilan

Sintax mysql ndashu ayyi ndashp

Coba lihat database yang dapat diaksesTampilan

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 18

User ayyi tidak dapat mengakses database yang sudah terbentuk di mysql hanya databaseinformation_schema

Coba membuat database

Access denied tidak diberikan izin untuk create

Memberikan Izin Akses tertentu

Jika akan memberikan izin akses SELECT INSERT UPDATE dan DELETE kepada user ayyi yanghanya dapat digunakan pada database latihdb1Pemberian izin akses hanya boleh dilakukan oleh user dalam akses root atau user yangdiberikan zin akses setingkat administrator

Sebagai contoh user rdquorootrdquo atau user rdquoiyusrdquo (nama anda sendiri)Jika menggunakan rootPerintah

Mysql ndashu root -p

Jika menggunakan user rdquoiyusrdquo (nama anda sendiri)Perintah

Mysql ndashu iyus(nama sendiri) -p

Gunakan salah satu dan Buat database baru dengan nama rsquolatihdb1rsquo

Berikan izin akses ke database latihdb1Aktifkan database mysql dan lihat tabel ndash

Berikan izin untuk insert update delete create pada user ayyi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 19

Lihat perubahan izin akses

Coba mengakses dengan user ayyiDan lihat database yang dapat diakses

Database latihdb1 dapat diakses dan jika terdapat akses yang tidak diizinkan maka lakukanperitah GRANT untuk izin akses pada user ayyi dengan ketetapan user admin sebagai root

Contoh

Contoh user ayyi membuat table pegawai dalam database latihdb1

Buatlah database akademik dengan tabel mahasiswa matakuliah dan kelasStruktur tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 20

Struktur tabel Matakuliah

Struktur tabel kelas

Memberikan izin akses per tabel dan per kolomDengan perintah grant dapat digunakan untuk memberikan izin akses per tabel dan per kolomtabel

Contoh user ayyi diberikan izin akses SELECT dan INSERT untuk kolom kota dan kdpos padatabel mahasiwa

Sintaksis MySQL

Pengaruh dari perintah grant tables sebelumnya kita coba menampilkan tabel table_privSintaksis pertama

Keterangan Host Dapat diakses di semua komputer terkoneksi jaringanDb Database Akademik yang dapat diaksesUser User AyyiTable_name Mahasiswa yang dapat diaksesGrantor rootlocalhost yang memberikan izin aksesTimestamp Tanggal pemberian izin 18 November 2009

jam 105552

Database Akademik

Tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 21

Sintaksis kedua

Keterangan Column_priv Select dan Insert izin akses kolom yang diberikan

Untuk melihat kolom mana saja yang diberikan izin akses select dan insert dengan perintah Sintaksis MySQL

Keterangan Column_name Kota dan KdPos kolom yang diberikan izin aksesColumn_priv Izin akses kedua kolom tersebut adalah select dan insert

Anda coba kewenangan apa saja yang dapat dilakukan oleh user ayyiKeluar dari mysqlDan login kembali dengan user ayyi

Lakukan perintah

Lakukan perintah select record yang ada pada tabel mahasiswa

Lihat database aktif

Lihat tabel aktif

Akatifkan database akademik

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 22

User ayyi tidak diizikan untuk menampilkan data pada tabel mahasiswaIzin akses nya adalah select untuk kolom kota dan kode posLakukan perintah select kota dan kodepos

Bagaimana dengan perintah delete tabel

Perintah delete ditolakBagaimana dengan perintah UPDATE kota

Bagimana dengan perintah insert

Untuk perintah update dan insert data tidak dapat dilakukan oleh user ayyi

Bagimana user ayyi dapat mengakses tabel mahasiswaKeluar dari MySQL dan login kembali menggunakan user rootDan berikan izin akses untuk tabel mahasiswa kepada user ayyi

Perintah ini memberikan status root kepada user ayyi hanya izin akses lengkap di databaseakademik tabel mahasiswa ( on akademikmahasiswa )

Coba keluar dan login kembali dengan user ayyiLakukan perintah update dan select

List data kota dan kode pos

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 23

Perintah update dapat dilakukan

Lakukan perintah select data keseluruhan

Bagaimana dengan menambah data gunakan perintah insert

Perintan insert dapat dilakukan dan jumlah data terdiri 6 record

Bagaimana dengan select untuk tabel mata kuliah dan kelas

Untuk mengakses tabel matakuliah dan kelas tidak di izinkan

Memberikan izin akses berdasarkan lokasi pengaksesAdmin atau root atau memberikan izin akses berdasarkan lokasi atau membatasi komputermana saja yang dapat mengakses MySQL serverContoh pemberian izin akses

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 24

Perlu diperhatikan format pemberian izin berhubungan dengan cara login ke MySQL contoh Jika pemberian izin akse dengan no IP komputer maka login juga harus mencantumkan no IP

Yang lebih fleksibel menggunakan tanda rdquordquo dapat diakses dimana saja ke server MySQL

Menghapus izin aksesMenggunakan perintah REVOKE penggunaan perintah revoke ini hanya menghapus izin aksesuntuk user tertentu bukan penghapus userUser yang bersangkutan tetap dapat login ke MySQL

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_user

User ayyi dapat mengakses tabel yang ada di database akademik

Sebagai contoh user ayyi dihapus izin akses untuk database akademik

Sintaksis

Jangan lupa diakhir dengan perintah flush

Kasus jika suatu root telah memberikan izin akses hanya untuk satu tabel seperti user ayyitelah dahulu diberikan all privileges kepada tabel mahasiswa maka untuk menghapusnyadisesuaikan dengan perintah grant

Untuk menghapus izin akses di tabel mahasiswa lakukan perintah (izin aksesnya sama denganperintah grant)

Konsep memberikan izin akses user ndash privileges user merupakan hal yang sangat penting dalammenyangkut masalah keamanan pada MySQL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 25

MODUL 5

VIEW

MAKSUD DAN TUJUAN

Agar mahasiswa1 Dapat membuat View2 Dapat Memanggil data melalui View3 Merubah definisi View4 Insert Update dan Delete data melalui View5 Menghapus (drop) view

MATERIProses pengolahan isi data di dalam table seperti membuat dan memanggil tabel menggunakan fungsiview

View adalah perintah query yang disimpan pada database dengan suatu nama tertentusehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang query tersebut

Syntax dasar perintah untuk membuat view adalah sebagai berikut

CREATE[OR REPLACE]VIEW view_name [(column_list)]AS select_statement

Kita menggunakan opsi OR REPLACE jika kita ingin mengganti view dengan nama yang samadengan perintah tersebut Jika tidak maka perintah CREATE VIEW akan menghasilkan errorjika nama view yang ingin dibuat sudah ada sebelumnya

Contoh Penggunaan

Kita akan membuat view dari relasi antara table film dan jenisfilm dari database rentaldengan nama view_harga Perintahnya adalah sebagai berikut

CREATE VIEW view_hargaASSELECT j1kode_film j1jenisj1judul j2hargaFROMfilm j1 JOIN jenisfilm j2 ON j1jenis= j2jenis

Eksekusi perintah berikut untuk memastikan view telah dibuat

SELECT FROM information_schemaviews WHERE table_name = view_harga

Terakhir query view tersebut untuk melihat hasilnya

SELECT FROM view_harga

Tugas

1 Buat Data Base baru dengan Koperasi

2 Lihat database

3 Masuk ke data base koperasi

4 Buat table Nasabah

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 26

Nama_field Tipe data size ket

Kd_nasabah Char 5 Primary key

Nama_nasabah varchar 35

Alamat varchar 35

Telepon varchar 15

Status enum (ldquotetaprdquordquotidak Tetaprdquo)

5 Lihat struktur tabl nasabah

6 Ubah typedata status menjadi varchar(20)

7 Hapus field status

8 Isi table nasabah

Kd_nasabah Nama_nasabah Alamat Telepon

00011 Ika Kepadangan 085730333999

00012 Rozi Depok 08586789380

00013 Ari Pasar Minggu 021986782

00014 Gali Sidoarjo 022456

9 Tampilkan data pada table nasabah

10 Tampilkan nasabah yang beralamat di depok

11 Ubah nama_nasabah dengan kd_nasabah 00012 menjdi Indriyani

12 Buat tabel Pinjaman

Nama field Tipe data size keterangan

No_Ref char

Kd_nasabah char

Jml-pimjam int

tempo date ldquo0000-00-00rdquo

13 Tambahkan primary key pada no_ref

14 Ganti tempo menjad tgl_tempo

15 Tambahkan field lama_pinjam varchar(10)

16 Isikan table pinjaman

No_ref Kd_nasabah Jml-pinjam Tgl_tempo Lama_pinjam

Ref01 00011 5000000 2010-06-14 6

Ref02 00012 2000000 2010-08-25 12

Ref03 00013 1500000 2010-10-20 3

17 Lihat jumlah pinjam di atas 3000000

18 Lihat jumlah pinjam pada kd_nasabah 00012

19 Hapus isi field dengan no_ref03

20 Hapus table pinjaman

21 Lihat table pada database

e koperasi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 15

3 Sisipkan nilai-nilainya seperti tabel berikut

NPM KdMK NamaMK Mid Final NilRata10296832 KK021 75 82 10297732 KD132 775 735 20216832 KK021 835 817 30216832 KU122 654 77 10297732 KK021 795 825 20216832 KD132 805 83 30216832 KK021 67 78

4 Tampilkan seluruh record mahasiswa yang berkode matakuliah atauu KdMK=KK021

5 Tampilkan record field NpmKdMK dan Mid saja bagi yang nilai mid-nya antara 75 dan 90

6 Sisipkan nilai untuk field nama matakuliah (NamaMK) dengan ketentuan sebagai berikut KdMK NamaMKKK021 Sistem Basis DataKD132 SIMKU122 Pancasila

7 Sisipkan nilai untuk field nilai rata-rata (NilRata) dengan ketentuan sebagai berikut Mid + Final 2

8 Hapuslah record yang memiliki Npm = 10296832

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 16

MODUL 4

MANAJEMEN USER

MAKSUD DAN TUJUANAgar mahasiswa memahami manajeman user pada SQL

MATERIProses pembuatan user baru dan pemberian hak akses user

Untul MySQL versi 322 keatas dalam manajemen user dapat menggunakan perintah GRANTdan REVOKE

Perintah GRANTDipergunakan untuk membuat user baru dengan izin aksesnya

Bentuk umum GRANT jenis_akses (``nama_kolom) ON nama_database

TO nama_user IDENTIFIED BY rdquonama_passwordrdquo[WITH GRANT pilihan_akses]

Perintah REVOKEUntuk menghapus izin akses user

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_userPerintah DELETEUntuk menghapus user secara permanen

Membuat User BaruDengan perintah GRANTContoh membuat user vivien

Tingkatan akses adalah ALL user vivien sebagai administratorON = dapat meng-akses semua databaseTO vivien dapat ditulis TO vivien atau TO vivienlocalhost

Buat user baru dengan nama ldquoayyirdquodengan perintah

User ayyi dapat login ke MySQL dapat mengakses semua database tetapi tidak memiliki izinakses jadi sebagai dummy user atau blank user

Lihat tabel user

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 17

Bagaimana dengan izin akses caranya dengan memeriksa tabel user yaitu kolom privilegesdengan perintah SELECT FROM USER

User vivien bertanda rdquo Y rdquo dapat mengakses semuaUser ayyi bertanda rdquo N rdquo tidak dapat mengakses

Coba gunakan user rdquo ayyi rdquoKeluar dari MySQL dan login kembali dengan user rdquo ayyi rdquo password rdquo fathin rdquoTampilan

Sintax mysql ndashu ayyi ndashp

Coba lihat database yang dapat diaksesTampilan

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 18

User ayyi tidak dapat mengakses database yang sudah terbentuk di mysql hanya databaseinformation_schema

Coba membuat database

Access denied tidak diberikan izin untuk create

Memberikan Izin Akses tertentu

Jika akan memberikan izin akses SELECT INSERT UPDATE dan DELETE kepada user ayyi yanghanya dapat digunakan pada database latihdb1Pemberian izin akses hanya boleh dilakukan oleh user dalam akses root atau user yangdiberikan zin akses setingkat administrator

Sebagai contoh user rdquorootrdquo atau user rdquoiyusrdquo (nama anda sendiri)Jika menggunakan rootPerintah

Mysql ndashu root -p

Jika menggunakan user rdquoiyusrdquo (nama anda sendiri)Perintah

Mysql ndashu iyus(nama sendiri) -p

Gunakan salah satu dan Buat database baru dengan nama rsquolatihdb1rsquo

Berikan izin akses ke database latihdb1Aktifkan database mysql dan lihat tabel ndash

Berikan izin untuk insert update delete create pada user ayyi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 19

Lihat perubahan izin akses

Coba mengakses dengan user ayyiDan lihat database yang dapat diakses

Database latihdb1 dapat diakses dan jika terdapat akses yang tidak diizinkan maka lakukanperitah GRANT untuk izin akses pada user ayyi dengan ketetapan user admin sebagai root

Contoh

Contoh user ayyi membuat table pegawai dalam database latihdb1

Buatlah database akademik dengan tabel mahasiswa matakuliah dan kelasStruktur tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 20

Struktur tabel Matakuliah

Struktur tabel kelas

Memberikan izin akses per tabel dan per kolomDengan perintah grant dapat digunakan untuk memberikan izin akses per tabel dan per kolomtabel

Contoh user ayyi diberikan izin akses SELECT dan INSERT untuk kolom kota dan kdpos padatabel mahasiwa

Sintaksis MySQL

Pengaruh dari perintah grant tables sebelumnya kita coba menampilkan tabel table_privSintaksis pertama

Keterangan Host Dapat diakses di semua komputer terkoneksi jaringanDb Database Akademik yang dapat diaksesUser User AyyiTable_name Mahasiswa yang dapat diaksesGrantor rootlocalhost yang memberikan izin aksesTimestamp Tanggal pemberian izin 18 November 2009

jam 105552

Database Akademik

Tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 21

Sintaksis kedua

Keterangan Column_priv Select dan Insert izin akses kolom yang diberikan

Untuk melihat kolom mana saja yang diberikan izin akses select dan insert dengan perintah Sintaksis MySQL

Keterangan Column_name Kota dan KdPos kolom yang diberikan izin aksesColumn_priv Izin akses kedua kolom tersebut adalah select dan insert

Anda coba kewenangan apa saja yang dapat dilakukan oleh user ayyiKeluar dari mysqlDan login kembali dengan user ayyi

Lakukan perintah

Lakukan perintah select record yang ada pada tabel mahasiswa

Lihat database aktif

Lihat tabel aktif

Akatifkan database akademik

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 22

User ayyi tidak diizikan untuk menampilkan data pada tabel mahasiswaIzin akses nya adalah select untuk kolom kota dan kode posLakukan perintah select kota dan kodepos

Bagaimana dengan perintah delete tabel

Perintah delete ditolakBagaimana dengan perintah UPDATE kota

Bagimana dengan perintah insert

Untuk perintah update dan insert data tidak dapat dilakukan oleh user ayyi

Bagimana user ayyi dapat mengakses tabel mahasiswaKeluar dari MySQL dan login kembali menggunakan user rootDan berikan izin akses untuk tabel mahasiswa kepada user ayyi

Perintah ini memberikan status root kepada user ayyi hanya izin akses lengkap di databaseakademik tabel mahasiswa ( on akademikmahasiswa )

Coba keluar dan login kembali dengan user ayyiLakukan perintah update dan select

List data kota dan kode pos

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 23

Perintah update dapat dilakukan

Lakukan perintah select data keseluruhan

Bagaimana dengan menambah data gunakan perintah insert

Perintan insert dapat dilakukan dan jumlah data terdiri 6 record

Bagaimana dengan select untuk tabel mata kuliah dan kelas

Untuk mengakses tabel matakuliah dan kelas tidak di izinkan

Memberikan izin akses berdasarkan lokasi pengaksesAdmin atau root atau memberikan izin akses berdasarkan lokasi atau membatasi komputermana saja yang dapat mengakses MySQL serverContoh pemberian izin akses

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 24

Perlu diperhatikan format pemberian izin berhubungan dengan cara login ke MySQL contoh Jika pemberian izin akse dengan no IP komputer maka login juga harus mencantumkan no IP

Yang lebih fleksibel menggunakan tanda rdquordquo dapat diakses dimana saja ke server MySQL

Menghapus izin aksesMenggunakan perintah REVOKE penggunaan perintah revoke ini hanya menghapus izin aksesuntuk user tertentu bukan penghapus userUser yang bersangkutan tetap dapat login ke MySQL

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_user

User ayyi dapat mengakses tabel yang ada di database akademik

Sebagai contoh user ayyi dihapus izin akses untuk database akademik

Sintaksis

Jangan lupa diakhir dengan perintah flush

Kasus jika suatu root telah memberikan izin akses hanya untuk satu tabel seperti user ayyitelah dahulu diberikan all privileges kepada tabel mahasiswa maka untuk menghapusnyadisesuaikan dengan perintah grant

Untuk menghapus izin akses di tabel mahasiswa lakukan perintah (izin aksesnya sama denganperintah grant)

Konsep memberikan izin akses user ndash privileges user merupakan hal yang sangat penting dalammenyangkut masalah keamanan pada MySQL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 25

MODUL 5

VIEW

MAKSUD DAN TUJUAN

Agar mahasiswa1 Dapat membuat View2 Dapat Memanggil data melalui View3 Merubah definisi View4 Insert Update dan Delete data melalui View5 Menghapus (drop) view

MATERIProses pengolahan isi data di dalam table seperti membuat dan memanggil tabel menggunakan fungsiview

View adalah perintah query yang disimpan pada database dengan suatu nama tertentusehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang query tersebut

Syntax dasar perintah untuk membuat view adalah sebagai berikut

CREATE[OR REPLACE]VIEW view_name [(column_list)]AS select_statement

Kita menggunakan opsi OR REPLACE jika kita ingin mengganti view dengan nama yang samadengan perintah tersebut Jika tidak maka perintah CREATE VIEW akan menghasilkan errorjika nama view yang ingin dibuat sudah ada sebelumnya

Contoh Penggunaan

Kita akan membuat view dari relasi antara table film dan jenisfilm dari database rentaldengan nama view_harga Perintahnya adalah sebagai berikut

CREATE VIEW view_hargaASSELECT j1kode_film j1jenisj1judul j2hargaFROMfilm j1 JOIN jenisfilm j2 ON j1jenis= j2jenis

Eksekusi perintah berikut untuk memastikan view telah dibuat

SELECT FROM information_schemaviews WHERE table_name = view_harga

Terakhir query view tersebut untuk melihat hasilnya

SELECT FROM view_harga

Tugas

1 Buat Data Base baru dengan Koperasi

2 Lihat database

3 Masuk ke data base koperasi

4 Buat table Nasabah

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 26

Nama_field Tipe data size ket

Kd_nasabah Char 5 Primary key

Nama_nasabah varchar 35

Alamat varchar 35

Telepon varchar 15

Status enum (ldquotetaprdquordquotidak Tetaprdquo)

5 Lihat struktur tabl nasabah

6 Ubah typedata status menjadi varchar(20)

7 Hapus field status

8 Isi table nasabah

Kd_nasabah Nama_nasabah Alamat Telepon

00011 Ika Kepadangan 085730333999

00012 Rozi Depok 08586789380

00013 Ari Pasar Minggu 021986782

00014 Gali Sidoarjo 022456

9 Tampilkan data pada table nasabah

10 Tampilkan nasabah yang beralamat di depok

11 Ubah nama_nasabah dengan kd_nasabah 00012 menjdi Indriyani

12 Buat tabel Pinjaman

Nama field Tipe data size keterangan

No_Ref char

Kd_nasabah char

Jml-pimjam int

tempo date ldquo0000-00-00rdquo

13 Tambahkan primary key pada no_ref

14 Ganti tempo menjad tgl_tempo

15 Tambahkan field lama_pinjam varchar(10)

16 Isikan table pinjaman

No_ref Kd_nasabah Jml-pinjam Tgl_tempo Lama_pinjam

Ref01 00011 5000000 2010-06-14 6

Ref02 00012 2000000 2010-08-25 12

Ref03 00013 1500000 2010-10-20 3

17 Lihat jumlah pinjam di atas 3000000

18 Lihat jumlah pinjam pada kd_nasabah 00012

19 Hapus isi field dengan no_ref03

20 Hapus table pinjaman

21 Lihat table pada database

e koperasi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 16

MODUL 4

MANAJEMEN USER

MAKSUD DAN TUJUANAgar mahasiswa memahami manajeman user pada SQL

MATERIProses pembuatan user baru dan pemberian hak akses user

Untul MySQL versi 322 keatas dalam manajemen user dapat menggunakan perintah GRANTdan REVOKE

Perintah GRANTDipergunakan untuk membuat user baru dengan izin aksesnya

Bentuk umum GRANT jenis_akses (``nama_kolom) ON nama_database

TO nama_user IDENTIFIED BY rdquonama_passwordrdquo[WITH GRANT pilihan_akses]

Perintah REVOKEUntuk menghapus izin akses user

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_userPerintah DELETEUntuk menghapus user secara permanen

Membuat User BaruDengan perintah GRANTContoh membuat user vivien

Tingkatan akses adalah ALL user vivien sebagai administratorON = dapat meng-akses semua databaseTO vivien dapat ditulis TO vivien atau TO vivienlocalhost

Buat user baru dengan nama ldquoayyirdquodengan perintah

User ayyi dapat login ke MySQL dapat mengakses semua database tetapi tidak memiliki izinakses jadi sebagai dummy user atau blank user

Lihat tabel user

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 17

Bagaimana dengan izin akses caranya dengan memeriksa tabel user yaitu kolom privilegesdengan perintah SELECT FROM USER

User vivien bertanda rdquo Y rdquo dapat mengakses semuaUser ayyi bertanda rdquo N rdquo tidak dapat mengakses

Coba gunakan user rdquo ayyi rdquoKeluar dari MySQL dan login kembali dengan user rdquo ayyi rdquo password rdquo fathin rdquoTampilan

Sintax mysql ndashu ayyi ndashp

Coba lihat database yang dapat diaksesTampilan

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 18

User ayyi tidak dapat mengakses database yang sudah terbentuk di mysql hanya databaseinformation_schema

Coba membuat database

Access denied tidak diberikan izin untuk create

Memberikan Izin Akses tertentu

Jika akan memberikan izin akses SELECT INSERT UPDATE dan DELETE kepada user ayyi yanghanya dapat digunakan pada database latihdb1Pemberian izin akses hanya boleh dilakukan oleh user dalam akses root atau user yangdiberikan zin akses setingkat administrator

Sebagai contoh user rdquorootrdquo atau user rdquoiyusrdquo (nama anda sendiri)Jika menggunakan rootPerintah

Mysql ndashu root -p

Jika menggunakan user rdquoiyusrdquo (nama anda sendiri)Perintah

Mysql ndashu iyus(nama sendiri) -p

Gunakan salah satu dan Buat database baru dengan nama rsquolatihdb1rsquo

Berikan izin akses ke database latihdb1Aktifkan database mysql dan lihat tabel ndash

Berikan izin untuk insert update delete create pada user ayyi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 19

Lihat perubahan izin akses

Coba mengakses dengan user ayyiDan lihat database yang dapat diakses

Database latihdb1 dapat diakses dan jika terdapat akses yang tidak diizinkan maka lakukanperitah GRANT untuk izin akses pada user ayyi dengan ketetapan user admin sebagai root

Contoh

Contoh user ayyi membuat table pegawai dalam database latihdb1

Buatlah database akademik dengan tabel mahasiswa matakuliah dan kelasStruktur tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 20

Struktur tabel Matakuliah

Struktur tabel kelas

Memberikan izin akses per tabel dan per kolomDengan perintah grant dapat digunakan untuk memberikan izin akses per tabel dan per kolomtabel

Contoh user ayyi diberikan izin akses SELECT dan INSERT untuk kolom kota dan kdpos padatabel mahasiwa

Sintaksis MySQL

Pengaruh dari perintah grant tables sebelumnya kita coba menampilkan tabel table_privSintaksis pertama

Keterangan Host Dapat diakses di semua komputer terkoneksi jaringanDb Database Akademik yang dapat diaksesUser User AyyiTable_name Mahasiswa yang dapat diaksesGrantor rootlocalhost yang memberikan izin aksesTimestamp Tanggal pemberian izin 18 November 2009

jam 105552

Database Akademik

Tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 21

Sintaksis kedua

Keterangan Column_priv Select dan Insert izin akses kolom yang diberikan

Untuk melihat kolom mana saja yang diberikan izin akses select dan insert dengan perintah Sintaksis MySQL

Keterangan Column_name Kota dan KdPos kolom yang diberikan izin aksesColumn_priv Izin akses kedua kolom tersebut adalah select dan insert

Anda coba kewenangan apa saja yang dapat dilakukan oleh user ayyiKeluar dari mysqlDan login kembali dengan user ayyi

Lakukan perintah

Lakukan perintah select record yang ada pada tabel mahasiswa

Lihat database aktif

Lihat tabel aktif

Akatifkan database akademik

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 22

User ayyi tidak diizikan untuk menampilkan data pada tabel mahasiswaIzin akses nya adalah select untuk kolom kota dan kode posLakukan perintah select kota dan kodepos

Bagaimana dengan perintah delete tabel

Perintah delete ditolakBagaimana dengan perintah UPDATE kota

Bagimana dengan perintah insert

Untuk perintah update dan insert data tidak dapat dilakukan oleh user ayyi

Bagimana user ayyi dapat mengakses tabel mahasiswaKeluar dari MySQL dan login kembali menggunakan user rootDan berikan izin akses untuk tabel mahasiswa kepada user ayyi

Perintah ini memberikan status root kepada user ayyi hanya izin akses lengkap di databaseakademik tabel mahasiswa ( on akademikmahasiswa )

Coba keluar dan login kembali dengan user ayyiLakukan perintah update dan select

List data kota dan kode pos

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 23

Perintah update dapat dilakukan

Lakukan perintah select data keseluruhan

Bagaimana dengan menambah data gunakan perintah insert

Perintan insert dapat dilakukan dan jumlah data terdiri 6 record

Bagaimana dengan select untuk tabel mata kuliah dan kelas

Untuk mengakses tabel matakuliah dan kelas tidak di izinkan

Memberikan izin akses berdasarkan lokasi pengaksesAdmin atau root atau memberikan izin akses berdasarkan lokasi atau membatasi komputermana saja yang dapat mengakses MySQL serverContoh pemberian izin akses

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 24

Perlu diperhatikan format pemberian izin berhubungan dengan cara login ke MySQL contoh Jika pemberian izin akse dengan no IP komputer maka login juga harus mencantumkan no IP

Yang lebih fleksibel menggunakan tanda rdquordquo dapat diakses dimana saja ke server MySQL

Menghapus izin aksesMenggunakan perintah REVOKE penggunaan perintah revoke ini hanya menghapus izin aksesuntuk user tertentu bukan penghapus userUser yang bersangkutan tetap dapat login ke MySQL

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_user

User ayyi dapat mengakses tabel yang ada di database akademik

Sebagai contoh user ayyi dihapus izin akses untuk database akademik

Sintaksis

Jangan lupa diakhir dengan perintah flush

Kasus jika suatu root telah memberikan izin akses hanya untuk satu tabel seperti user ayyitelah dahulu diberikan all privileges kepada tabel mahasiswa maka untuk menghapusnyadisesuaikan dengan perintah grant

Untuk menghapus izin akses di tabel mahasiswa lakukan perintah (izin aksesnya sama denganperintah grant)

Konsep memberikan izin akses user ndash privileges user merupakan hal yang sangat penting dalammenyangkut masalah keamanan pada MySQL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 25

MODUL 5

VIEW

MAKSUD DAN TUJUAN

Agar mahasiswa1 Dapat membuat View2 Dapat Memanggil data melalui View3 Merubah definisi View4 Insert Update dan Delete data melalui View5 Menghapus (drop) view

MATERIProses pengolahan isi data di dalam table seperti membuat dan memanggil tabel menggunakan fungsiview

View adalah perintah query yang disimpan pada database dengan suatu nama tertentusehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang query tersebut

Syntax dasar perintah untuk membuat view adalah sebagai berikut

CREATE[OR REPLACE]VIEW view_name [(column_list)]AS select_statement

Kita menggunakan opsi OR REPLACE jika kita ingin mengganti view dengan nama yang samadengan perintah tersebut Jika tidak maka perintah CREATE VIEW akan menghasilkan errorjika nama view yang ingin dibuat sudah ada sebelumnya

Contoh Penggunaan

Kita akan membuat view dari relasi antara table film dan jenisfilm dari database rentaldengan nama view_harga Perintahnya adalah sebagai berikut

CREATE VIEW view_hargaASSELECT j1kode_film j1jenisj1judul j2hargaFROMfilm j1 JOIN jenisfilm j2 ON j1jenis= j2jenis

Eksekusi perintah berikut untuk memastikan view telah dibuat

SELECT FROM information_schemaviews WHERE table_name = view_harga

Terakhir query view tersebut untuk melihat hasilnya

SELECT FROM view_harga

Tugas

1 Buat Data Base baru dengan Koperasi

2 Lihat database

3 Masuk ke data base koperasi

4 Buat table Nasabah

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 26

Nama_field Tipe data size ket

Kd_nasabah Char 5 Primary key

Nama_nasabah varchar 35

Alamat varchar 35

Telepon varchar 15

Status enum (ldquotetaprdquordquotidak Tetaprdquo)

5 Lihat struktur tabl nasabah

6 Ubah typedata status menjadi varchar(20)

7 Hapus field status

8 Isi table nasabah

Kd_nasabah Nama_nasabah Alamat Telepon

00011 Ika Kepadangan 085730333999

00012 Rozi Depok 08586789380

00013 Ari Pasar Minggu 021986782

00014 Gali Sidoarjo 022456

9 Tampilkan data pada table nasabah

10 Tampilkan nasabah yang beralamat di depok

11 Ubah nama_nasabah dengan kd_nasabah 00012 menjdi Indriyani

12 Buat tabel Pinjaman

Nama field Tipe data size keterangan

No_Ref char

Kd_nasabah char

Jml-pimjam int

tempo date ldquo0000-00-00rdquo

13 Tambahkan primary key pada no_ref

14 Ganti tempo menjad tgl_tempo

15 Tambahkan field lama_pinjam varchar(10)

16 Isikan table pinjaman

No_ref Kd_nasabah Jml-pinjam Tgl_tempo Lama_pinjam

Ref01 00011 5000000 2010-06-14 6

Ref02 00012 2000000 2010-08-25 12

Ref03 00013 1500000 2010-10-20 3

17 Lihat jumlah pinjam di atas 3000000

18 Lihat jumlah pinjam pada kd_nasabah 00012

19 Hapus isi field dengan no_ref03

20 Hapus table pinjaman

21 Lihat table pada database

e koperasi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 17

Bagaimana dengan izin akses caranya dengan memeriksa tabel user yaitu kolom privilegesdengan perintah SELECT FROM USER

User vivien bertanda rdquo Y rdquo dapat mengakses semuaUser ayyi bertanda rdquo N rdquo tidak dapat mengakses

Coba gunakan user rdquo ayyi rdquoKeluar dari MySQL dan login kembali dengan user rdquo ayyi rdquo password rdquo fathin rdquoTampilan

Sintax mysql ndashu ayyi ndashp

Coba lihat database yang dapat diaksesTampilan

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 18

User ayyi tidak dapat mengakses database yang sudah terbentuk di mysql hanya databaseinformation_schema

Coba membuat database

Access denied tidak diberikan izin untuk create

Memberikan Izin Akses tertentu

Jika akan memberikan izin akses SELECT INSERT UPDATE dan DELETE kepada user ayyi yanghanya dapat digunakan pada database latihdb1Pemberian izin akses hanya boleh dilakukan oleh user dalam akses root atau user yangdiberikan zin akses setingkat administrator

Sebagai contoh user rdquorootrdquo atau user rdquoiyusrdquo (nama anda sendiri)Jika menggunakan rootPerintah

Mysql ndashu root -p

Jika menggunakan user rdquoiyusrdquo (nama anda sendiri)Perintah

Mysql ndashu iyus(nama sendiri) -p

Gunakan salah satu dan Buat database baru dengan nama rsquolatihdb1rsquo

Berikan izin akses ke database latihdb1Aktifkan database mysql dan lihat tabel ndash

Berikan izin untuk insert update delete create pada user ayyi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 19

Lihat perubahan izin akses

Coba mengakses dengan user ayyiDan lihat database yang dapat diakses

Database latihdb1 dapat diakses dan jika terdapat akses yang tidak diizinkan maka lakukanperitah GRANT untuk izin akses pada user ayyi dengan ketetapan user admin sebagai root

Contoh

Contoh user ayyi membuat table pegawai dalam database latihdb1

Buatlah database akademik dengan tabel mahasiswa matakuliah dan kelasStruktur tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 20

Struktur tabel Matakuliah

Struktur tabel kelas

Memberikan izin akses per tabel dan per kolomDengan perintah grant dapat digunakan untuk memberikan izin akses per tabel dan per kolomtabel

Contoh user ayyi diberikan izin akses SELECT dan INSERT untuk kolom kota dan kdpos padatabel mahasiwa

Sintaksis MySQL

Pengaruh dari perintah grant tables sebelumnya kita coba menampilkan tabel table_privSintaksis pertama

Keterangan Host Dapat diakses di semua komputer terkoneksi jaringanDb Database Akademik yang dapat diaksesUser User AyyiTable_name Mahasiswa yang dapat diaksesGrantor rootlocalhost yang memberikan izin aksesTimestamp Tanggal pemberian izin 18 November 2009

jam 105552

Database Akademik

Tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 21

Sintaksis kedua

Keterangan Column_priv Select dan Insert izin akses kolom yang diberikan

Untuk melihat kolom mana saja yang diberikan izin akses select dan insert dengan perintah Sintaksis MySQL

Keterangan Column_name Kota dan KdPos kolom yang diberikan izin aksesColumn_priv Izin akses kedua kolom tersebut adalah select dan insert

Anda coba kewenangan apa saja yang dapat dilakukan oleh user ayyiKeluar dari mysqlDan login kembali dengan user ayyi

Lakukan perintah

Lakukan perintah select record yang ada pada tabel mahasiswa

Lihat database aktif

Lihat tabel aktif

Akatifkan database akademik

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 22

User ayyi tidak diizikan untuk menampilkan data pada tabel mahasiswaIzin akses nya adalah select untuk kolom kota dan kode posLakukan perintah select kota dan kodepos

Bagaimana dengan perintah delete tabel

Perintah delete ditolakBagaimana dengan perintah UPDATE kota

Bagimana dengan perintah insert

Untuk perintah update dan insert data tidak dapat dilakukan oleh user ayyi

Bagimana user ayyi dapat mengakses tabel mahasiswaKeluar dari MySQL dan login kembali menggunakan user rootDan berikan izin akses untuk tabel mahasiswa kepada user ayyi

Perintah ini memberikan status root kepada user ayyi hanya izin akses lengkap di databaseakademik tabel mahasiswa ( on akademikmahasiswa )

Coba keluar dan login kembali dengan user ayyiLakukan perintah update dan select

List data kota dan kode pos

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 23

Perintah update dapat dilakukan

Lakukan perintah select data keseluruhan

Bagaimana dengan menambah data gunakan perintah insert

Perintan insert dapat dilakukan dan jumlah data terdiri 6 record

Bagaimana dengan select untuk tabel mata kuliah dan kelas

Untuk mengakses tabel matakuliah dan kelas tidak di izinkan

Memberikan izin akses berdasarkan lokasi pengaksesAdmin atau root atau memberikan izin akses berdasarkan lokasi atau membatasi komputermana saja yang dapat mengakses MySQL serverContoh pemberian izin akses

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 24

Perlu diperhatikan format pemberian izin berhubungan dengan cara login ke MySQL contoh Jika pemberian izin akse dengan no IP komputer maka login juga harus mencantumkan no IP

Yang lebih fleksibel menggunakan tanda rdquordquo dapat diakses dimana saja ke server MySQL

Menghapus izin aksesMenggunakan perintah REVOKE penggunaan perintah revoke ini hanya menghapus izin aksesuntuk user tertentu bukan penghapus userUser yang bersangkutan tetap dapat login ke MySQL

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_user

User ayyi dapat mengakses tabel yang ada di database akademik

Sebagai contoh user ayyi dihapus izin akses untuk database akademik

Sintaksis

Jangan lupa diakhir dengan perintah flush

Kasus jika suatu root telah memberikan izin akses hanya untuk satu tabel seperti user ayyitelah dahulu diberikan all privileges kepada tabel mahasiswa maka untuk menghapusnyadisesuaikan dengan perintah grant

Untuk menghapus izin akses di tabel mahasiswa lakukan perintah (izin aksesnya sama denganperintah grant)

Konsep memberikan izin akses user ndash privileges user merupakan hal yang sangat penting dalammenyangkut masalah keamanan pada MySQL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 25

MODUL 5

VIEW

MAKSUD DAN TUJUAN

Agar mahasiswa1 Dapat membuat View2 Dapat Memanggil data melalui View3 Merubah definisi View4 Insert Update dan Delete data melalui View5 Menghapus (drop) view

MATERIProses pengolahan isi data di dalam table seperti membuat dan memanggil tabel menggunakan fungsiview

View adalah perintah query yang disimpan pada database dengan suatu nama tertentusehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang query tersebut

Syntax dasar perintah untuk membuat view adalah sebagai berikut

CREATE[OR REPLACE]VIEW view_name [(column_list)]AS select_statement

Kita menggunakan opsi OR REPLACE jika kita ingin mengganti view dengan nama yang samadengan perintah tersebut Jika tidak maka perintah CREATE VIEW akan menghasilkan errorjika nama view yang ingin dibuat sudah ada sebelumnya

Contoh Penggunaan

Kita akan membuat view dari relasi antara table film dan jenisfilm dari database rentaldengan nama view_harga Perintahnya adalah sebagai berikut

CREATE VIEW view_hargaASSELECT j1kode_film j1jenisj1judul j2hargaFROMfilm j1 JOIN jenisfilm j2 ON j1jenis= j2jenis

Eksekusi perintah berikut untuk memastikan view telah dibuat

SELECT FROM information_schemaviews WHERE table_name = view_harga

Terakhir query view tersebut untuk melihat hasilnya

SELECT FROM view_harga

Tugas

1 Buat Data Base baru dengan Koperasi

2 Lihat database

3 Masuk ke data base koperasi

4 Buat table Nasabah

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 26

Nama_field Tipe data size ket

Kd_nasabah Char 5 Primary key

Nama_nasabah varchar 35

Alamat varchar 35

Telepon varchar 15

Status enum (ldquotetaprdquordquotidak Tetaprdquo)

5 Lihat struktur tabl nasabah

6 Ubah typedata status menjadi varchar(20)

7 Hapus field status

8 Isi table nasabah

Kd_nasabah Nama_nasabah Alamat Telepon

00011 Ika Kepadangan 085730333999

00012 Rozi Depok 08586789380

00013 Ari Pasar Minggu 021986782

00014 Gali Sidoarjo 022456

9 Tampilkan data pada table nasabah

10 Tampilkan nasabah yang beralamat di depok

11 Ubah nama_nasabah dengan kd_nasabah 00012 menjdi Indriyani

12 Buat tabel Pinjaman

Nama field Tipe data size keterangan

No_Ref char

Kd_nasabah char

Jml-pimjam int

tempo date ldquo0000-00-00rdquo

13 Tambahkan primary key pada no_ref

14 Ganti tempo menjad tgl_tempo

15 Tambahkan field lama_pinjam varchar(10)

16 Isikan table pinjaman

No_ref Kd_nasabah Jml-pinjam Tgl_tempo Lama_pinjam

Ref01 00011 5000000 2010-06-14 6

Ref02 00012 2000000 2010-08-25 12

Ref03 00013 1500000 2010-10-20 3

17 Lihat jumlah pinjam di atas 3000000

18 Lihat jumlah pinjam pada kd_nasabah 00012

19 Hapus isi field dengan no_ref03

20 Hapus table pinjaman

21 Lihat table pada database

e koperasi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 18

User ayyi tidak dapat mengakses database yang sudah terbentuk di mysql hanya databaseinformation_schema

Coba membuat database

Access denied tidak diberikan izin untuk create

Memberikan Izin Akses tertentu

Jika akan memberikan izin akses SELECT INSERT UPDATE dan DELETE kepada user ayyi yanghanya dapat digunakan pada database latihdb1Pemberian izin akses hanya boleh dilakukan oleh user dalam akses root atau user yangdiberikan zin akses setingkat administrator

Sebagai contoh user rdquorootrdquo atau user rdquoiyusrdquo (nama anda sendiri)Jika menggunakan rootPerintah

Mysql ndashu root -p

Jika menggunakan user rdquoiyusrdquo (nama anda sendiri)Perintah

Mysql ndashu iyus(nama sendiri) -p

Gunakan salah satu dan Buat database baru dengan nama rsquolatihdb1rsquo

Berikan izin akses ke database latihdb1Aktifkan database mysql dan lihat tabel ndash

Berikan izin untuk insert update delete create pada user ayyi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 19

Lihat perubahan izin akses

Coba mengakses dengan user ayyiDan lihat database yang dapat diakses

Database latihdb1 dapat diakses dan jika terdapat akses yang tidak diizinkan maka lakukanperitah GRANT untuk izin akses pada user ayyi dengan ketetapan user admin sebagai root

Contoh

Contoh user ayyi membuat table pegawai dalam database latihdb1

Buatlah database akademik dengan tabel mahasiswa matakuliah dan kelasStruktur tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 20

Struktur tabel Matakuliah

Struktur tabel kelas

Memberikan izin akses per tabel dan per kolomDengan perintah grant dapat digunakan untuk memberikan izin akses per tabel dan per kolomtabel

Contoh user ayyi diberikan izin akses SELECT dan INSERT untuk kolom kota dan kdpos padatabel mahasiwa

Sintaksis MySQL

Pengaruh dari perintah grant tables sebelumnya kita coba menampilkan tabel table_privSintaksis pertama

Keterangan Host Dapat diakses di semua komputer terkoneksi jaringanDb Database Akademik yang dapat diaksesUser User AyyiTable_name Mahasiswa yang dapat diaksesGrantor rootlocalhost yang memberikan izin aksesTimestamp Tanggal pemberian izin 18 November 2009

jam 105552

Database Akademik

Tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 21

Sintaksis kedua

Keterangan Column_priv Select dan Insert izin akses kolom yang diberikan

Untuk melihat kolom mana saja yang diberikan izin akses select dan insert dengan perintah Sintaksis MySQL

Keterangan Column_name Kota dan KdPos kolom yang diberikan izin aksesColumn_priv Izin akses kedua kolom tersebut adalah select dan insert

Anda coba kewenangan apa saja yang dapat dilakukan oleh user ayyiKeluar dari mysqlDan login kembali dengan user ayyi

Lakukan perintah

Lakukan perintah select record yang ada pada tabel mahasiswa

Lihat database aktif

Lihat tabel aktif

Akatifkan database akademik

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 22

User ayyi tidak diizikan untuk menampilkan data pada tabel mahasiswaIzin akses nya adalah select untuk kolom kota dan kode posLakukan perintah select kota dan kodepos

Bagaimana dengan perintah delete tabel

Perintah delete ditolakBagaimana dengan perintah UPDATE kota

Bagimana dengan perintah insert

Untuk perintah update dan insert data tidak dapat dilakukan oleh user ayyi

Bagimana user ayyi dapat mengakses tabel mahasiswaKeluar dari MySQL dan login kembali menggunakan user rootDan berikan izin akses untuk tabel mahasiswa kepada user ayyi

Perintah ini memberikan status root kepada user ayyi hanya izin akses lengkap di databaseakademik tabel mahasiswa ( on akademikmahasiswa )

Coba keluar dan login kembali dengan user ayyiLakukan perintah update dan select

List data kota dan kode pos

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 23

Perintah update dapat dilakukan

Lakukan perintah select data keseluruhan

Bagaimana dengan menambah data gunakan perintah insert

Perintan insert dapat dilakukan dan jumlah data terdiri 6 record

Bagaimana dengan select untuk tabel mata kuliah dan kelas

Untuk mengakses tabel matakuliah dan kelas tidak di izinkan

Memberikan izin akses berdasarkan lokasi pengaksesAdmin atau root atau memberikan izin akses berdasarkan lokasi atau membatasi komputermana saja yang dapat mengakses MySQL serverContoh pemberian izin akses

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 24

Perlu diperhatikan format pemberian izin berhubungan dengan cara login ke MySQL contoh Jika pemberian izin akse dengan no IP komputer maka login juga harus mencantumkan no IP

Yang lebih fleksibel menggunakan tanda rdquordquo dapat diakses dimana saja ke server MySQL

Menghapus izin aksesMenggunakan perintah REVOKE penggunaan perintah revoke ini hanya menghapus izin aksesuntuk user tertentu bukan penghapus userUser yang bersangkutan tetap dapat login ke MySQL

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_user

User ayyi dapat mengakses tabel yang ada di database akademik

Sebagai contoh user ayyi dihapus izin akses untuk database akademik

Sintaksis

Jangan lupa diakhir dengan perintah flush

Kasus jika suatu root telah memberikan izin akses hanya untuk satu tabel seperti user ayyitelah dahulu diberikan all privileges kepada tabel mahasiswa maka untuk menghapusnyadisesuaikan dengan perintah grant

Untuk menghapus izin akses di tabel mahasiswa lakukan perintah (izin aksesnya sama denganperintah grant)

Konsep memberikan izin akses user ndash privileges user merupakan hal yang sangat penting dalammenyangkut masalah keamanan pada MySQL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 25

MODUL 5

VIEW

MAKSUD DAN TUJUAN

Agar mahasiswa1 Dapat membuat View2 Dapat Memanggil data melalui View3 Merubah definisi View4 Insert Update dan Delete data melalui View5 Menghapus (drop) view

MATERIProses pengolahan isi data di dalam table seperti membuat dan memanggil tabel menggunakan fungsiview

View adalah perintah query yang disimpan pada database dengan suatu nama tertentusehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang query tersebut

Syntax dasar perintah untuk membuat view adalah sebagai berikut

CREATE[OR REPLACE]VIEW view_name [(column_list)]AS select_statement

Kita menggunakan opsi OR REPLACE jika kita ingin mengganti view dengan nama yang samadengan perintah tersebut Jika tidak maka perintah CREATE VIEW akan menghasilkan errorjika nama view yang ingin dibuat sudah ada sebelumnya

Contoh Penggunaan

Kita akan membuat view dari relasi antara table film dan jenisfilm dari database rentaldengan nama view_harga Perintahnya adalah sebagai berikut

CREATE VIEW view_hargaASSELECT j1kode_film j1jenisj1judul j2hargaFROMfilm j1 JOIN jenisfilm j2 ON j1jenis= j2jenis

Eksekusi perintah berikut untuk memastikan view telah dibuat

SELECT FROM information_schemaviews WHERE table_name = view_harga

Terakhir query view tersebut untuk melihat hasilnya

SELECT FROM view_harga

Tugas

1 Buat Data Base baru dengan Koperasi

2 Lihat database

3 Masuk ke data base koperasi

4 Buat table Nasabah

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 26

Nama_field Tipe data size ket

Kd_nasabah Char 5 Primary key

Nama_nasabah varchar 35

Alamat varchar 35

Telepon varchar 15

Status enum (ldquotetaprdquordquotidak Tetaprdquo)

5 Lihat struktur tabl nasabah

6 Ubah typedata status menjadi varchar(20)

7 Hapus field status

8 Isi table nasabah

Kd_nasabah Nama_nasabah Alamat Telepon

00011 Ika Kepadangan 085730333999

00012 Rozi Depok 08586789380

00013 Ari Pasar Minggu 021986782

00014 Gali Sidoarjo 022456

9 Tampilkan data pada table nasabah

10 Tampilkan nasabah yang beralamat di depok

11 Ubah nama_nasabah dengan kd_nasabah 00012 menjdi Indriyani

12 Buat tabel Pinjaman

Nama field Tipe data size keterangan

No_Ref char

Kd_nasabah char

Jml-pimjam int

tempo date ldquo0000-00-00rdquo

13 Tambahkan primary key pada no_ref

14 Ganti tempo menjad tgl_tempo

15 Tambahkan field lama_pinjam varchar(10)

16 Isikan table pinjaman

No_ref Kd_nasabah Jml-pinjam Tgl_tempo Lama_pinjam

Ref01 00011 5000000 2010-06-14 6

Ref02 00012 2000000 2010-08-25 12

Ref03 00013 1500000 2010-10-20 3

17 Lihat jumlah pinjam di atas 3000000

18 Lihat jumlah pinjam pada kd_nasabah 00012

19 Hapus isi field dengan no_ref03

20 Hapus table pinjaman

21 Lihat table pada database

e koperasi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 19

Lihat perubahan izin akses

Coba mengakses dengan user ayyiDan lihat database yang dapat diakses

Database latihdb1 dapat diakses dan jika terdapat akses yang tidak diizinkan maka lakukanperitah GRANT untuk izin akses pada user ayyi dengan ketetapan user admin sebagai root

Contoh

Contoh user ayyi membuat table pegawai dalam database latihdb1

Buatlah database akademik dengan tabel mahasiswa matakuliah dan kelasStruktur tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 20

Struktur tabel Matakuliah

Struktur tabel kelas

Memberikan izin akses per tabel dan per kolomDengan perintah grant dapat digunakan untuk memberikan izin akses per tabel dan per kolomtabel

Contoh user ayyi diberikan izin akses SELECT dan INSERT untuk kolom kota dan kdpos padatabel mahasiwa

Sintaksis MySQL

Pengaruh dari perintah grant tables sebelumnya kita coba menampilkan tabel table_privSintaksis pertama

Keterangan Host Dapat diakses di semua komputer terkoneksi jaringanDb Database Akademik yang dapat diaksesUser User AyyiTable_name Mahasiswa yang dapat diaksesGrantor rootlocalhost yang memberikan izin aksesTimestamp Tanggal pemberian izin 18 November 2009

jam 105552

Database Akademik

Tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 21

Sintaksis kedua

Keterangan Column_priv Select dan Insert izin akses kolom yang diberikan

Untuk melihat kolom mana saja yang diberikan izin akses select dan insert dengan perintah Sintaksis MySQL

Keterangan Column_name Kota dan KdPos kolom yang diberikan izin aksesColumn_priv Izin akses kedua kolom tersebut adalah select dan insert

Anda coba kewenangan apa saja yang dapat dilakukan oleh user ayyiKeluar dari mysqlDan login kembali dengan user ayyi

Lakukan perintah

Lakukan perintah select record yang ada pada tabel mahasiswa

Lihat database aktif

Lihat tabel aktif

Akatifkan database akademik

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 22

User ayyi tidak diizikan untuk menampilkan data pada tabel mahasiswaIzin akses nya adalah select untuk kolom kota dan kode posLakukan perintah select kota dan kodepos

Bagaimana dengan perintah delete tabel

Perintah delete ditolakBagaimana dengan perintah UPDATE kota

Bagimana dengan perintah insert

Untuk perintah update dan insert data tidak dapat dilakukan oleh user ayyi

Bagimana user ayyi dapat mengakses tabel mahasiswaKeluar dari MySQL dan login kembali menggunakan user rootDan berikan izin akses untuk tabel mahasiswa kepada user ayyi

Perintah ini memberikan status root kepada user ayyi hanya izin akses lengkap di databaseakademik tabel mahasiswa ( on akademikmahasiswa )

Coba keluar dan login kembali dengan user ayyiLakukan perintah update dan select

List data kota dan kode pos

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 23

Perintah update dapat dilakukan

Lakukan perintah select data keseluruhan

Bagaimana dengan menambah data gunakan perintah insert

Perintan insert dapat dilakukan dan jumlah data terdiri 6 record

Bagaimana dengan select untuk tabel mata kuliah dan kelas

Untuk mengakses tabel matakuliah dan kelas tidak di izinkan

Memberikan izin akses berdasarkan lokasi pengaksesAdmin atau root atau memberikan izin akses berdasarkan lokasi atau membatasi komputermana saja yang dapat mengakses MySQL serverContoh pemberian izin akses

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 24

Perlu diperhatikan format pemberian izin berhubungan dengan cara login ke MySQL contoh Jika pemberian izin akse dengan no IP komputer maka login juga harus mencantumkan no IP

Yang lebih fleksibel menggunakan tanda rdquordquo dapat diakses dimana saja ke server MySQL

Menghapus izin aksesMenggunakan perintah REVOKE penggunaan perintah revoke ini hanya menghapus izin aksesuntuk user tertentu bukan penghapus userUser yang bersangkutan tetap dapat login ke MySQL

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_user

User ayyi dapat mengakses tabel yang ada di database akademik

Sebagai contoh user ayyi dihapus izin akses untuk database akademik

Sintaksis

Jangan lupa diakhir dengan perintah flush

Kasus jika suatu root telah memberikan izin akses hanya untuk satu tabel seperti user ayyitelah dahulu diberikan all privileges kepada tabel mahasiswa maka untuk menghapusnyadisesuaikan dengan perintah grant

Untuk menghapus izin akses di tabel mahasiswa lakukan perintah (izin aksesnya sama denganperintah grant)

Konsep memberikan izin akses user ndash privileges user merupakan hal yang sangat penting dalammenyangkut masalah keamanan pada MySQL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 25

MODUL 5

VIEW

MAKSUD DAN TUJUAN

Agar mahasiswa1 Dapat membuat View2 Dapat Memanggil data melalui View3 Merubah definisi View4 Insert Update dan Delete data melalui View5 Menghapus (drop) view

MATERIProses pengolahan isi data di dalam table seperti membuat dan memanggil tabel menggunakan fungsiview

View adalah perintah query yang disimpan pada database dengan suatu nama tertentusehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang query tersebut

Syntax dasar perintah untuk membuat view adalah sebagai berikut

CREATE[OR REPLACE]VIEW view_name [(column_list)]AS select_statement

Kita menggunakan opsi OR REPLACE jika kita ingin mengganti view dengan nama yang samadengan perintah tersebut Jika tidak maka perintah CREATE VIEW akan menghasilkan errorjika nama view yang ingin dibuat sudah ada sebelumnya

Contoh Penggunaan

Kita akan membuat view dari relasi antara table film dan jenisfilm dari database rentaldengan nama view_harga Perintahnya adalah sebagai berikut

CREATE VIEW view_hargaASSELECT j1kode_film j1jenisj1judul j2hargaFROMfilm j1 JOIN jenisfilm j2 ON j1jenis= j2jenis

Eksekusi perintah berikut untuk memastikan view telah dibuat

SELECT FROM information_schemaviews WHERE table_name = view_harga

Terakhir query view tersebut untuk melihat hasilnya

SELECT FROM view_harga

Tugas

1 Buat Data Base baru dengan Koperasi

2 Lihat database

3 Masuk ke data base koperasi

4 Buat table Nasabah

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 26

Nama_field Tipe data size ket

Kd_nasabah Char 5 Primary key

Nama_nasabah varchar 35

Alamat varchar 35

Telepon varchar 15

Status enum (ldquotetaprdquordquotidak Tetaprdquo)

5 Lihat struktur tabl nasabah

6 Ubah typedata status menjadi varchar(20)

7 Hapus field status

8 Isi table nasabah

Kd_nasabah Nama_nasabah Alamat Telepon

00011 Ika Kepadangan 085730333999

00012 Rozi Depok 08586789380

00013 Ari Pasar Minggu 021986782

00014 Gali Sidoarjo 022456

9 Tampilkan data pada table nasabah

10 Tampilkan nasabah yang beralamat di depok

11 Ubah nama_nasabah dengan kd_nasabah 00012 menjdi Indriyani

12 Buat tabel Pinjaman

Nama field Tipe data size keterangan

No_Ref char

Kd_nasabah char

Jml-pimjam int

tempo date ldquo0000-00-00rdquo

13 Tambahkan primary key pada no_ref

14 Ganti tempo menjad tgl_tempo

15 Tambahkan field lama_pinjam varchar(10)

16 Isikan table pinjaman

No_ref Kd_nasabah Jml-pinjam Tgl_tempo Lama_pinjam

Ref01 00011 5000000 2010-06-14 6

Ref02 00012 2000000 2010-08-25 12

Ref03 00013 1500000 2010-10-20 3

17 Lihat jumlah pinjam di atas 3000000

18 Lihat jumlah pinjam pada kd_nasabah 00012

19 Hapus isi field dengan no_ref03

20 Hapus table pinjaman

21 Lihat table pada database

e koperasi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 20

Struktur tabel Matakuliah

Struktur tabel kelas

Memberikan izin akses per tabel dan per kolomDengan perintah grant dapat digunakan untuk memberikan izin akses per tabel dan per kolomtabel

Contoh user ayyi diberikan izin akses SELECT dan INSERT untuk kolom kota dan kdpos padatabel mahasiwa

Sintaksis MySQL

Pengaruh dari perintah grant tables sebelumnya kita coba menampilkan tabel table_privSintaksis pertama

Keterangan Host Dapat diakses di semua komputer terkoneksi jaringanDb Database Akademik yang dapat diaksesUser User AyyiTable_name Mahasiswa yang dapat diaksesGrantor rootlocalhost yang memberikan izin aksesTimestamp Tanggal pemberian izin 18 November 2009

jam 105552

Database Akademik

Tabel mahasiswa

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 21

Sintaksis kedua

Keterangan Column_priv Select dan Insert izin akses kolom yang diberikan

Untuk melihat kolom mana saja yang diberikan izin akses select dan insert dengan perintah Sintaksis MySQL

Keterangan Column_name Kota dan KdPos kolom yang diberikan izin aksesColumn_priv Izin akses kedua kolom tersebut adalah select dan insert

Anda coba kewenangan apa saja yang dapat dilakukan oleh user ayyiKeluar dari mysqlDan login kembali dengan user ayyi

Lakukan perintah

Lakukan perintah select record yang ada pada tabel mahasiswa

Lihat database aktif

Lihat tabel aktif

Akatifkan database akademik

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 22

User ayyi tidak diizikan untuk menampilkan data pada tabel mahasiswaIzin akses nya adalah select untuk kolom kota dan kode posLakukan perintah select kota dan kodepos

Bagaimana dengan perintah delete tabel

Perintah delete ditolakBagaimana dengan perintah UPDATE kota

Bagimana dengan perintah insert

Untuk perintah update dan insert data tidak dapat dilakukan oleh user ayyi

Bagimana user ayyi dapat mengakses tabel mahasiswaKeluar dari MySQL dan login kembali menggunakan user rootDan berikan izin akses untuk tabel mahasiswa kepada user ayyi

Perintah ini memberikan status root kepada user ayyi hanya izin akses lengkap di databaseakademik tabel mahasiswa ( on akademikmahasiswa )

Coba keluar dan login kembali dengan user ayyiLakukan perintah update dan select

List data kota dan kode pos

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 23

Perintah update dapat dilakukan

Lakukan perintah select data keseluruhan

Bagaimana dengan menambah data gunakan perintah insert

Perintan insert dapat dilakukan dan jumlah data terdiri 6 record

Bagaimana dengan select untuk tabel mata kuliah dan kelas

Untuk mengakses tabel matakuliah dan kelas tidak di izinkan

Memberikan izin akses berdasarkan lokasi pengaksesAdmin atau root atau memberikan izin akses berdasarkan lokasi atau membatasi komputermana saja yang dapat mengakses MySQL serverContoh pemberian izin akses

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 24

Perlu diperhatikan format pemberian izin berhubungan dengan cara login ke MySQL contoh Jika pemberian izin akse dengan no IP komputer maka login juga harus mencantumkan no IP

Yang lebih fleksibel menggunakan tanda rdquordquo dapat diakses dimana saja ke server MySQL

Menghapus izin aksesMenggunakan perintah REVOKE penggunaan perintah revoke ini hanya menghapus izin aksesuntuk user tertentu bukan penghapus userUser yang bersangkutan tetap dapat login ke MySQL

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_user

User ayyi dapat mengakses tabel yang ada di database akademik

Sebagai contoh user ayyi dihapus izin akses untuk database akademik

Sintaksis

Jangan lupa diakhir dengan perintah flush

Kasus jika suatu root telah memberikan izin akses hanya untuk satu tabel seperti user ayyitelah dahulu diberikan all privileges kepada tabel mahasiswa maka untuk menghapusnyadisesuaikan dengan perintah grant

Untuk menghapus izin akses di tabel mahasiswa lakukan perintah (izin aksesnya sama denganperintah grant)

Konsep memberikan izin akses user ndash privileges user merupakan hal yang sangat penting dalammenyangkut masalah keamanan pada MySQL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 25

MODUL 5

VIEW

MAKSUD DAN TUJUAN

Agar mahasiswa1 Dapat membuat View2 Dapat Memanggil data melalui View3 Merubah definisi View4 Insert Update dan Delete data melalui View5 Menghapus (drop) view

MATERIProses pengolahan isi data di dalam table seperti membuat dan memanggil tabel menggunakan fungsiview

View adalah perintah query yang disimpan pada database dengan suatu nama tertentusehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang query tersebut

Syntax dasar perintah untuk membuat view adalah sebagai berikut

CREATE[OR REPLACE]VIEW view_name [(column_list)]AS select_statement

Kita menggunakan opsi OR REPLACE jika kita ingin mengganti view dengan nama yang samadengan perintah tersebut Jika tidak maka perintah CREATE VIEW akan menghasilkan errorjika nama view yang ingin dibuat sudah ada sebelumnya

Contoh Penggunaan

Kita akan membuat view dari relasi antara table film dan jenisfilm dari database rentaldengan nama view_harga Perintahnya adalah sebagai berikut

CREATE VIEW view_hargaASSELECT j1kode_film j1jenisj1judul j2hargaFROMfilm j1 JOIN jenisfilm j2 ON j1jenis= j2jenis

Eksekusi perintah berikut untuk memastikan view telah dibuat

SELECT FROM information_schemaviews WHERE table_name = view_harga

Terakhir query view tersebut untuk melihat hasilnya

SELECT FROM view_harga

Tugas

1 Buat Data Base baru dengan Koperasi

2 Lihat database

3 Masuk ke data base koperasi

4 Buat table Nasabah

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 26

Nama_field Tipe data size ket

Kd_nasabah Char 5 Primary key

Nama_nasabah varchar 35

Alamat varchar 35

Telepon varchar 15

Status enum (ldquotetaprdquordquotidak Tetaprdquo)

5 Lihat struktur tabl nasabah

6 Ubah typedata status menjadi varchar(20)

7 Hapus field status

8 Isi table nasabah

Kd_nasabah Nama_nasabah Alamat Telepon

00011 Ika Kepadangan 085730333999

00012 Rozi Depok 08586789380

00013 Ari Pasar Minggu 021986782

00014 Gali Sidoarjo 022456

9 Tampilkan data pada table nasabah

10 Tampilkan nasabah yang beralamat di depok

11 Ubah nama_nasabah dengan kd_nasabah 00012 menjdi Indriyani

12 Buat tabel Pinjaman

Nama field Tipe data size keterangan

No_Ref char

Kd_nasabah char

Jml-pimjam int

tempo date ldquo0000-00-00rdquo

13 Tambahkan primary key pada no_ref

14 Ganti tempo menjad tgl_tempo

15 Tambahkan field lama_pinjam varchar(10)

16 Isikan table pinjaman

No_ref Kd_nasabah Jml-pinjam Tgl_tempo Lama_pinjam

Ref01 00011 5000000 2010-06-14 6

Ref02 00012 2000000 2010-08-25 12

Ref03 00013 1500000 2010-10-20 3

17 Lihat jumlah pinjam di atas 3000000

18 Lihat jumlah pinjam pada kd_nasabah 00012

19 Hapus isi field dengan no_ref03

20 Hapus table pinjaman

21 Lihat table pada database

e koperasi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 21

Sintaksis kedua

Keterangan Column_priv Select dan Insert izin akses kolom yang diberikan

Untuk melihat kolom mana saja yang diberikan izin akses select dan insert dengan perintah Sintaksis MySQL

Keterangan Column_name Kota dan KdPos kolom yang diberikan izin aksesColumn_priv Izin akses kedua kolom tersebut adalah select dan insert

Anda coba kewenangan apa saja yang dapat dilakukan oleh user ayyiKeluar dari mysqlDan login kembali dengan user ayyi

Lakukan perintah

Lakukan perintah select record yang ada pada tabel mahasiswa

Lihat database aktif

Lihat tabel aktif

Akatifkan database akademik

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 22

User ayyi tidak diizikan untuk menampilkan data pada tabel mahasiswaIzin akses nya adalah select untuk kolom kota dan kode posLakukan perintah select kota dan kodepos

Bagaimana dengan perintah delete tabel

Perintah delete ditolakBagaimana dengan perintah UPDATE kota

Bagimana dengan perintah insert

Untuk perintah update dan insert data tidak dapat dilakukan oleh user ayyi

Bagimana user ayyi dapat mengakses tabel mahasiswaKeluar dari MySQL dan login kembali menggunakan user rootDan berikan izin akses untuk tabel mahasiswa kepada user ayyi

Perintah ini memberikan status root kepada user ayyi hanya izin akses lengkap di databaseakademik tabel mahasiswa ( on akademikmahasiswa )

Coba keluar dan login kembali dengan user ayyiLakukan perintah update dan select

List data kota dan kode pos

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 23

Perintah update dapat dilakukan

Lakukan perintah select data keseluruhan

Bagaimana dengan menambah data gunakan perintah insert

Perintan insert dapat dilakukan dan jumlah data terdiri 6 record

Bagaimana dengan select untuk tabel mata kuliah dan kelas

Untuk mengakses tabel matakuliah dan kelas tidak di izinkan

Memberikan izin akses berdasarkan lokasi pengaksesAdmin atau root atau memberikan izin akses berdasarkan lokasi atau membatasi komputermana saja yang dapat mengakses MySQL serverContoh pemberian izin akses

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 24

Perlu diperhatikan format pemberian izin berhubungan dengan cara login ke MySQL contoh Jika pemberian izin akse dengan no IP komputer maka login juga harus mencantumkan no IP

Yang lebih fleksibel menggunakan tanda rdquordquo dapat diakses dimana saja ke server MySQL

Menghapus izin aksesMenggunakan perintah REVOKE penggunaan perintah revoke ini hanya menghapus izin aksesuntuk user tertentu bukan penghapus userUser yang bersangkutan tetap dapat login ke MySQL

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_user

User ayyi dapat mengakses tabel yang ada di database akademik

Sebagai contoh user ayyi dihapus izin akses untuk database akademik

Sintaksis

Jangan lupa diakhir dengan perintah flush

Kasus jika suatu root telah memberikan izin akses hanya untuk satu tabel seperti user ayyitelah dahulu diberikan all privileges kepada tabel mahasiswa maka untuk menghapusnyadisesuaikan dengan perintah grant

Untuk menghapus izin akses di tabel mahasiswa lakukan perintah (izin aksesnya sama denganperintah grant)

Konsep memberikan izin akses user ndash privileges user merupakan hal yang sangat penting dalammenyangkut masalah keamanan pada MySQL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 25

MODUL 5

VIEW

MAKSUD DAN TUJUAN

Agar mahasiswa1 Dapat membuat View2 Dapat Memanggil data melalui View3 Merubah definisi View4 Insert Update dan Delete data melalui View5 Menghapus (drop) view

MATERIProses pengolahan isi data di dalam table seperti membuat dan memanggil tabel menggunakan fungsiview

View adalah perintah query yang disimpan pada database dengan suatu nama tertentusehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang query tersebut

Syntax dasar perintah untuk membuat view adalah sebagai berikut

CREATE[OR REPLACE]VIEW view_name [(column_list)]AS select_statement

Kita menggunakan opsi OR REPLACE jika kita ingin mengganti view dengan nama yang samadengan perintah tersebut Jika tidak maka perintah CREATE VIEW akan menghasilkan errorjika nama view yang ingin dibuat sudah ada sebelumnya

Contoh Penggunaan

Kita akan membuat view dari relasi antara table film dan jenisfilm dari database rentaldengan nama view_harga Perintahnya adalah sebagai berikut

CREATE VIEW view_hargaASSELECT j1kode_film j1jenisj1judul j2hargaFROMfilm j1 JOIN jenisfilm j2 ON j1jenis= j2jenis

Eksekusi perintah berikut untuk memastikan view telah dibuat

SELECT FROM information_schemaviews WHERE table_name = view_harga

Terakhir query view tersebut untuk melihat hasilnya

SELECT FROM view_harga

Tugas

1 Buat Data Base baru dengan Koperasi

2 Lihat database

3 Masuk ke data base koperasi

4 Buat table Nasabah

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 26

Nama_field Tipe data size ket

Kd_nasabah Char 5 Primary key

Nama_nasabah varchar 35

Alamat varchar 35

Telepon varchar 15

Status enum (ldquotetaprdquordquotidak Tetaprdquo)

5 Lihat struktur tabl nasabah

6 Ubah typedata status menjadi varchar(20)

7 Hapus field status

8 Isi table nasabah

Kd_nasabah Nama_nasabah Alamat Telepon

00011 Ika Kepadangan 085730333999

00012 Rozi Depok 08586789380

00013 Ari Pasar Minggu 021986782

00014 Gali Sidoarjo 022456

9 Tampilkan data pada table nasabah

10 Tampilkan nasabah yang beralamat di depok

11 Ubah nama_nasabah dengan kd_nasabah 00012 menjdi Indriyani

12 Buat tabel Pinjaman

Nama field Tipe data size keterangan

No_Ref char

Kd_nasabah char

Jml-pimjam int

tempo date ldquo0000-00-00rdquo

13 Tambahkan primary key pada no_ref

14 Ganti tempo menjad tgl_tempo

15 Tambahkan field lama_pinjam varchar(10)

16 Isikan table pinjaman

No_ref Kd_nasabah Jml-pinjam Tgl_tempo Lama_pinjam

Ref01 00011 5000000 2010-06-14 6

Ref02 00012 2000000 2010-08-25 12

Ref03 00013 1500000 2010-10-20 3

17 Lihat jumlah pinjam di atas 3000000

18 Lihat jumlah pinjam pada kd_nasabah 00012

19 Hapus isi field dengan no_ref03

20 Hapus table pinjaman

21 Lihat table pada database

e koperasi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 22

User ayyi tidak diizikan untuk menampilkan data pada tabel mahasiswaIzin akses nya adalah select untuk kolom kota dan kode posLakukan perintah select kota dan kodepos

Bagaimana dengan perintah delete tabel

Perintah delete ditolakBagaimana dengan perintah UPDATE kota

Bagimana dengan perintah insert

Untuk perintah update dan insert data tidak dapat dilakukan oleh user ayyi

Bagimana user ayyi dapat mengakses tabel mahasiswaKeluar dari MySQL dan login kembali menggunakan user rootDan berikan izin akses untuk tabel mahasiswa kepada user ayyi

Perintah ini memberikan status root kepada user ayyi hanya izin akses lengkap di databaseakademik tabel mahasiswa ( on akademikmahasiswa )

Coba keluar dan login kembali dengan user ayyiLakukan perintah update dan select

List data kota dan kode pos

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 23

Perintah update dapat dilakukan

Lakukan perintah select data keseluruhan

Bagaimana dengan menambah data gunakan perintah insert

Perintan insert dapat dilakukan dan jumlah data terdiri 6 record

Bagaimana dengan select untuk tabel mata kuliah dan kelas

Untuk mengakses tabel matakuliah dan kelas tidak di izinkan

Memberikan izin akses berdasarkan lokasi pengaksesAdmin atau root atau memberikan izin akses berdasarkan lokasi atau membatasi komputermana saja yang dapat mengakses MySQL serverContoh pemberian izin akses

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 24

Perlu diperhatikan format pemberian izin berhubungan dengan cara login ke MySQL contoh Jika pemberian izin akse dengan no IP komputer maka login juga harus mencantumkan no IP

Yang lebih fleksibel menggunakan tanda rdquordquo dapat diakses dimana saja ke server MySQL

Menghapus izin aksesMenggunakan perintah REVOKE penggunaan perintah revoke ini hanya menghapus izin aksesuntuk user tertentu bukan penghapus userUser yang bersangkutan tetap dapat login ke MySQL

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_user

User ayyi dapat mengakses tabel yang ada di database akademik

Sebagai contoh user ayyi dihapus izin akses untuk database akademik

Sintaksis

Jangan lupa diakhir dengan perintah flush

Kasus jika suatu root telah memberikan izin akses hanya untuk satu tabel seperti user ayyitelah dahulu diberikan all privileges kepada tabel mahasiswa maka untuk menghapusnyadisesuaikan dengan perintah grant

Untuk menghapus izin akses di tabel mahasiswa lakukan perintah (izin aksesnya sama denganperintah grant)

Konsep memberikan izin akses user ndash privileges user merupakan hal yang sangat penting dalammenyangkut masalah keamanan pada MySQL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 25

MODUL 5

VIEW

MAKSUD DAN TUJUAN

Agar mahasiswa1 Dapat membuat View2 Dapat Memanggil data melalui View3 Merubah definisi View4 Insert Update dan Delete data melalui View5 Menghapus (drop) view

MATERIProses pengolahan isi data di dalam table seperti membuat dan memanggil tabel menggunakan fungsiview

View adalah perintah query yang disimpan pada database dengan suatu nama tertentusehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang query tersebut

Syntax dasar perintah untuk membuat view adalah sebagai berikut

CREATE[OR REPLACE]VIEW view_name [(column_list)]AS select_statement

Kita menggunakan opsi OR REPLACE jika kita ingin mengganti view dengan nama yang samadengan perintah tersebut Jika tidak maka perintah CREATE VIEW akan menghasilkan errorjika nama view yang ingin dibuat sudah ada sebelumnya

Contoh Penggunaan

Kita akan membuat view dari relasi antara table film dan jenisfilm dari database rentaldengan nama view_harga Perintahnya adalah sebagai berikut

CREATE VIEW view_hargaASSELECT j1kode_film j1jenisj1judul j2hargaFROMfilm j1 JOIN jenisfilm j2 ON j1jenis= j2jenis

Eksekusi perintah berikut untuk memastikan view telah dibuat

SELECT FROM information_schemaviews WHERE table_name = view_harga

Terakhir query view tersebut untuk melihat hasilnya

SELECT FROM view_harga

Tugas

1 Buat Data Base baru dengan Koperasi

2 Lihat database

3 Masuk ke data base koperasi

4 Buat table Nasabah

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 26

Nama_field Tipe data size ket

Kd_nasabah Char 5 Primary key

Nama_nasabah varchar 35

Alamat varchar 35

Telepon varchar 15

Status enum (ldquotetaprdquordquotidak Tetaprdquo)

5 Lihat struktur tabl nasabah

6 Ubah typedata status menjadi varchar(20)

7 Hapus field status

8 Isi table nasabah

Kd_nasabah Nama_nasabah Alamat Telepon

00011 Ika Kepadangan 085730333999

00012 Rozi Depok 08586789380

00013 Ari Pasar Minggu 021986782

00014 Gali Sidoarjo 022456

9 Tampilkan data pada table nasabah

10 Tampilkan nasabah yang beralamat di depok

11 Ubah nama_nasabah dengan kd_nasabah 00012 menjdi Indriyani

12 Buat tabel Pinjaman

Nama field Tipe data size keterangan

No_Ref char

Kd_nasabah char

Jml-pimjam int

tempo date ldquo0000-00-00rdquo

13 Tambahkan primary key pada no_ref

14 Ganti tempo menjad tgl_tempo

15 Tambahkan field lama_pinjam varchar(10)

16 Isikan table pinjaman

No_ref Kd_nasabah Jml-pinjam Tgl_tempo Lama_pinjam

Ref01 00011 5000000 2010-06-14 6

Ref02 00012 2000000 2010-08-25 12

Ref03 00013 1500000 2010-10-20 3

17 Lihat jumlah pinjam di atas 3000000

18 Lihat jumlah pinjam pada kd_nasabah 00012

19 Hapus isi field dengan no_ref03

20 Hapus table pinjaman

21 Lihat table pada database

e koperasi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 23

Perintah update dapat dilakukan

Lakukan perintah select data keseluruhan

Bagaimana dengan menambah data gunakan perintah insert

Perintan insert dapat dilakukan dan jumlah data terdiri 6 record

Bagaimana dengan select untuk tabel mata kuliah dan kelas

Untuk mengakses tabel matakuliah dan kelas tidak di izinkan

Memberikan izin akses berdasarkan lokasi pengaksesAdmin atau root atau memberikan izin akses berdasarkan lokasi atau membatasi komputermana saja yang dapat mengakses MySQL serverContoh pemberian izin akses

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 24

Perlu diperhatikan format pemberian izin berhubungan dengan cara login ke MySQL contoh Jika pemberian izin akse dengan no IP komputer maka login juga harus mencantumkan no IP

Yang lebih fleksibel menggunakan tanda rdquordquo dapat diakses dimana saja ke server MySQL

Menghapus izin aksesMenggunakan perintah REVOKE penggunaan perintah revoke ini hanya menghapus izin aksesuntuk user tertentu bukan penghapus userUser yang bersangkutan tetap dapat login ke MySQL

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_user

User ayyi dapat mengakses tabel yang ada di database akademik

Sebagai contoh user ayyi dihapus izin akses untuk database akademik

Sintaksis

Jangan lupa diakhir dengan perintah flush

Kasus jika suatu root telah memberikan izin akses hanya untuk satu tabel seperti user ayyitelah dahulu diberikan all privileges kepada tabel mahasiswa maka untuk menghapusnyadisesuaikan dengan perintah grant

Untuk menghapus izin akses di tabel mahasiswa lakukan perintah (izin aksesnya sama denganperintah grant)

Konsep memberikan izin akses user ndash privileges user merupakan hal yang sangat penting dalammenyangkut masalah keamanan pada MySQL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 25

MODUL 5

VIEW

MAKSUD DAN TUJUAN

Agar mahasiswa1 Dapat membuat View2 Dapat Memanggil data melalui View3 Merubah definisi View4 Insert Update dan Delete data melalui View5 Menghapus (drop) view

MATERIProses pengolahan isi data di dalam table seperti membuat dan memanggil tabel menggunakan fungsiview

View adalah perintah query yang disimpan pada database dengan suatu nama tertentusehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang query tersebut

Syntax dasar perintah untuk membuat view adalah sebagai berikut

CREATE[OR REPLACE]VIEW view_name [(column_list)]AS select_statement

Kita menggunakan opsi OR REPLACE jika kita ingin mengganti view dengan nama yang samadengan perintah tersebut Jika tidak maka perintah CREATE VIEW akan menghasilkan errorjika nama view yang ingin dibuat sudah ada sebelumnya

Contoh Penggunaan

Kita akan membuat view dari relasi antara table film dan jenisfilm dari database rentaldengan nama view_harga Perintahnya adalah sebagai berikut

CREATE VIEW view_hargaASSELECT j1kode_film j1jenisj1judul j2hargaFROMfilm j1 JOIN jenisfilm j2 ON j1jenis= j2jenis

Eksekusi perintah berikut untuk memastikan view telah dibuat

SELECT FROM information_schemaviews WHERE table_name = view_harga

Terakhir query view tersebut untuk melihat hasilnya

SELECT FROM view_harga

Tugas

1 Buat Data Base baru dengan Koperasi

2 Lihat database

3 Masuk ke data base koperasi

4 Buat table Nasabah

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 26

Nama_field Tipe data size ket

Kd_nasabah Char 5 Primary key

Nama_nasabah varchar 35

Alamat varchar 35

Telepon varchar 15

Status enum (ldquotetaprdquordquotidak Tetaprdquo)

5 Lihat struktur tabl nasabah

6 Ubah typedata status menjadi varchar(20)

7 Hapus field status

8 Isi table nasabah

Kd_nasabah Nama_nasabah Alamat Telepon

00011 Ika Kepadangan 085730333999

00012 Rozi Depok 08586789380

00013 Ari Pasar Minggu 021986782

00014 Gali Sidoarjo 022456

9 Tampilkan data pada table nasabah

10 Tampilkan nasabah yang beralamat di depok

11 Ubah nama_nasabah dengan kd_nasabah 00012 menjdi Indriyani

12 Buat tabel Pinjaman

Nama field Tipe data size keterangan

No_Ref char

Kd_nasabah char

Jml-pimjam int

tempo date ldquo0000-00-00rdquo

13 Tambahkan primary key pada no_ref

14 Ganti tempo menjad tgl_tempo

15 Tambahkan field lama_pinjam varchar(10)

16 Isikan table pinjaman

No_ref Kd_nasabah Jml-pinjam Tgl_tempo Lama_pinjam

Ref01 00011 5000000 2010-06-14 6

Ref02 00012 2000000 2010-08-25 12

Ref03 00013 1500000 2010-10-20 3

17 Lihat jumlah pinjam di atas 3000000

18 Lihat jumlah pinjam pada kd_nasabah 00012

19 Hapus isi field dengan no_ref03

20 Hapus table pinjaman

21 Lihat table pada database

e koperasi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 24

Perlu diperhatikan format pemberian izin berhubungan dengan cara login ke MySQL contoh Jika pemberian izin akse dengan no IP komputer maka login juga harus mencantumkan no IP

Yang lebih fleksibel menggunakan tanda rdquordquo dapat diakses dimana saja ke server MySQL

Menghapus izin aksesMenggunakan perintah REVOKE penggunaan perintah revoke ini hanya menghapus izin aksesuntuk user tertentu bukan penghapus userUser yang bersangkutan tetap dapat login ke MySQL

Bentuk umum REVOKE jenis_akses ON nama_database

FROM nama_user

User ayyi dapat mengakses tabel yang ada di database akademik

Sebagai contoh user ayyi dihapus izin akses untuk database akademik

Sintaksis

Jangan lupa diakhir dengan perintah flush

Kasus jika suatu root telah memberikan izin akses hanya untuk satu tabel seperti user ayyitelah dahulu diberikan all privileges kepada tabel mahasiswa maka untuk menghapusnyadisesuaikan dengan perintah grant

Untuk menghapus izin akses di tabel mahasiswa lakukan perintah (izin aksesnya sama denganperintah grant)

Konsep memberikan izin akses user ndash privileges user merupakan hal yang sangat penting dalammenyangkut masalah keamanan pada MySQL

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 25

MODUL 5

VIEW

MAKSUD DAN TUJUAN

Agar mahasiswa1 Dapat membuat View2 Dapat Memanggil data melalui View3 Merubah definisi View4 Insert Update dan Delete data melalui View5 Menghapus (drop) view

MATERIProses pengolahan isi data di dalam table seperti membuat dan memanggil tabel menggunakan fungsiview

View adalah perintah query yang disimpan pada database dengan suatu nama tertentusehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang query tersebut

Syntax dasar perintah untuk membuat view adalah sebagai berikut

CREATE[OR REPLACE]VIEW view_name [(column_list)]AS select_statement

Kita menggunakan opsi OR REPLACE jika kita ingin mengganti view dengan nama yang samadengan perintah tersebut Jika tidak maka perintah CREATE VIEW akan menghasilkan errorjika nama view yang ingin dibuat sudah ada sebelumnya

Contoh Penggunaan

Kita akan membuat view dari relasi antara table film dan jenisfilm dari database rentaldengan nama view_harga Perintahnya adalah sebagai berikut

CREATE VIEW view_hargaASSELECT j1kode_film j1jenisj1judul j2hargaFROMfilm j1 JOIN jenisfilm j2 ON j1jenis= j2jenis

Eksekusi perintah berikut untuk memastikan view telah dibuat

SELECT FROM information_schemaviews WHERE table_name = view_harga

Terakhir query view tersebut untuk melihat hasilnya

SELECT FROM view_harga

Tugas

1 Buat Data Base baru dengan Koperasi

2 Lihat database

3 Masuk ke data base koperasi

4 Buat table Nasabah

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 26

Nama_field Tipe data size ket

Kd_nasabah Char 5 Primary key

Nama_nasabah varchar 35

Alamat varchar 35

Telepon varchar 15

Status enum (ldquotetaprdquordquotidak Tetaprdquo)

5 Lihat struktur tabl nasabah

6 Ubah typedata status menjadi varchar(20)

7 Hapus field status

8 Isi table nasabah

Kd_nasabah Nama_nasabah Alamat Telepon

00011 Ika Kepadangan 085730333999

00012 Rozi Depok 08586789380

00013 Ari Pasar Minggu 021986782

00014 Gali Sidoarjo 022456

9 Tampilkan data pada table nasabah

10 Tampilkan nasabah yang beralamat di depok

11 Ubah nama_nasabah dengan kd_nasabah 00012 menjdi Indriyani

12 Buat tabel Pinjaman

Nama field Tipe data size keterangan

No_Ref char

Kd_nasabah char

Jml-pimjam int

tempo date ldquo0000-00-00rdquo

13 Tambahkan primary key pada no_ref

14 Ganti tempo menjad tgl_tempo

15 Tambahkan field lama_pinjam varchar(10)

16 Isikan table pinjaman

No_ref Kd_nasabah Jml-pinjam Tgl_tempo Lama_pinjam

Ref01 00011 5000000 2010-06-14 6

Ref02 00012 2000000 2010-08-25 12

Ref03 00013 1500000 2010-10-20 3

17 Lihat jumlah pinjam di atas 3000000

18 Lihat jumlah pinjam pada kd_nasabah 00012

19 Hapus isi field dengan no_ref03

20 Hapus table pinjaman

21 Lihat table pada database

e koperasi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 25

MODUL 5

VIEW

MAKSUD DAN TUJUAN

Agar mahasiswa1 Dapat membuat View2 Dapat Memanggil data melalui View3 Merubah definisi View4 Insert Update dan Delete data melalui View5 Menghapus (drop) view

MATERIProses pengolahan isi data di dalam table seperti membuat dan memanggil tabel menggunakan fungsiview

View adalah perintah query yang disimpan pada database dengan suatu nama tertentusehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang query tersebut

Syntax dasar perintah untuk membuat view adalah sebagai berikut

CREATE[OR REPLACE]VIEW view_name [(column_list)]AS select_statement

Kita menggunakan opsi OR REPLACE jika kita ingin mengganti view dengan nama yang samadengan perintah tersebut Jika tidak maka perintah CREATE VIEW akan menghasilkan errorjika nama view yang ingin dibuat sudah ada sebelumnya

Contoh Penggunaan

Kita akan membuat view dari relasi antara table film dan jenisfilm dari database rentaldengan nama view_harga Perintahnya adalah sebagai berikut

CREATE VIEW view_hargaASSELECT j1kode_film j1jenisj1judul j2hargaFROMfilm j1 JOIN jenisfilm j2 ON j1jenis= j2jenis

Eksekusi perintah berikut untuk memastikan view telah dibuat

SELECT FROM information_schemaviews WHERE table_name = view_harga

Terakhir query view tersebut untuk melihat hasilnya

SELECT FROM view_harga

Tugas

1 Buat Data Base baru dengan Koperasi

2 Lihat database

3 Masuk ke data base koperasi

4 Buat table Nasabah

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 26

Nama_field Tipe data size ket

Kd_nasabah Char 5 Primary key

Nama_nasabah varchar 35

Alamat varchar 35

Telepon varchar 15

Status enum (ldquotetaprdquordquotidak Tetaprdquo)

5 Lihat struktur tabl nasabah

6 Ubah typedata status menjadi varchar(20)

7 Hapus field status

8 Isi table nasabah

Kd_nasabah Nama_nasabah Alamat Telepon

00011 Ika Kepadangan 085730333999

00012 Rozi Depok 08586789380

00013 Ari Pasar Minggu 021986782

00014 Gali Sidoarjo 022456

9 Tampilkan data pada table nasabah

10 Tampilkan nasabah yang beralamat di depok

11 Ubah nama_nasabah dengan kd_nasabah 00012 menjdi Indriyani

12 Buat tabel Pinjaman

Nama field Tipe data size keterangan

No_Ref char

Kd_nasabah char

Jml-pimjam int

tempo date ldquo0000-00-00rdquo

13 Tambahkan primary key pada no_ref

14 Ganti tempo menjad tgl_tempo

15 Tambahkan field lama_pinjam varchar(10)

16 Isikan table pinjaman

No_ref Kd_nasabah Jml-pinjam Tgl_tempo Lama_pinjam

Ref01 00011 5000000 2010-06-14 6

Ref02 00012 2000000 2010-08-25 12

Ref03 00013 1500000 2010-10-20 3

17 Lihat jumlah pinjam di atas 3000000

18 Lihat jumlah pinjam pada kd_nasabah 00012

19 Hapus isi field dengan no_ref03

20 Hapus table pinjaman

21 Lihat table pada database

e koperasi

MODUL BASIS DATA 2012 FAKULTAS TEKNIK UMSIDA | 26

Nama_field Tipe data size ket

Kd_nasabah Char 5 Primary key

Nama_nasabah varchar 35

Alamat varchar 35

Telepon varchar 15

Status enum (ldquotetaprdquordquotidak Tetaprdquo)

5 Lihat struktur tabl nasabah

6 Ubah typedata status menjadi varchar(20)

7 Hapus field status

8 Isi table nasabah

Kd_nasabah Nama_nasabah Alamat Telepon

00011 Ika Kepadangan 085730333999

00012 Rozi Depok 08586789380

00013 Ari Pasar Minggu 021986782

00014 Gali Sidoarjo 022456

9 Tampilkan data pada table nasabah

10 Tampilkan nasabah yang beralamat di depok

11 Ubah nama_nasabah dengan kd_nasabah 00012 menjdi Indriyani

12 Buat tabel Pinjaman

Nama field Tipe data size keterangan

No_Ref char

Kd_nasabah char

Jml-pimjam int

tempo date ldquo0000-00-00rdquo

13 Tambahkan primary key pada no_ref

14 Ganti tempo menjad tgl_tempo

15 Tambahkan field lama_pinjam varchar(10)

16 Isikan table pinjaman

No_ref Kd_nasabah Jml-pinjam Tgl_tempo Lama_pinjam

Ref01 00011 5000000 2010-06-14 6

Ref02 00012 2000000 2010-08-25 12

Ref03 00013 1500000 2010-10-20 3

17 Lihat jumlah pinjam di atas 3000000

18 Lihat jumlah pinjam pada kd_nasabah 00012

19 Hapus isi field dengan no_ref03

20 Hapus table pinjaman

21 Lihat table pada database

e koperasi


Recommended