Modul praktek database Mysql 2014 MODUL PRAKTEK DATABASE created by : Kom E‟ 13 Asri Muharina (132406060) Asri widyadhari (132406210) Nia Aulia sitorus (132406214) Sheila Ulfa H (132406215) D3 Teknik informatika,Universitas Sumatera Utara
Modul praktek database Mysql
2014
MODUL
PRAKTEK
DATABASE
created by : Kom E‟ 13
Asri Muharina (132406060)
Asri widyadhari (132406210)
Nia Aulia sitorus (132406214)
Sheila Ulfa H (132406215)
D3 Teknik informatika,Universitas Sumatera Utara
Modul praktek database Mysql
2014
BAB 1
PENGENALAN DATABASE
Sejarah MySQL
MySQL pada awalnya diciptakan pada tahun 1979, oleh Michael "Monty" Widenius, seorang
programmer komputer asal Swedia. Monty mengembangkan sebuah sistem database
sederhana yang dinamakan UNIREG yang menggunakan koneksi low-level ISAM database
engine dengan indexing. Pada saat itu Monty bekerja pada perusahaan bernama TcX di
Swedia.
TcX pada tahun 1994 mulai mengembangkan aplikasi berbasis web, dan berencana
menggunakan UNIREG sebagai sistem database. Namun sayangnya, UNIREG dianggagap
tidak cocok untuk database yang dinamis seperti web.
TcX kemudian mencoba mencari alternatif sistem database lainnya, salah satunya adalah
mSQL (miniSQL). Namun mSQL versi 1 ini juga memiliki kekurangan, yaitu tidak
mendukung indexing, sehingga performanya tidak terlalu bagus.
Dengan tujuan memperbaiki performa mSQL, Monty mencoba menghubungi David Hughes
(programmer yang mengembangkan mSQL) untuk menanyakan apakah ia tertarik
mengembangkan sebuah konektor di mSQL yang dapat dihubungkan dengan UNIREG ISAM
sehingga mendukung indexing. Namun saat itu Hughes menolak, dengan alasan sedang
mengembangkan teknologi indexing yang independen untuk mSQL versi 2.
Dikarenakan penolakan tersebut, David Hughes, TcX (dan juga Monty) akhirnya
memutuskan untuk merancang dan mengembangkan sendiri konsep sistem database baru.
Sistem ini merupakan gabungan dari UNIREG dan mSQL (yang source codenya dapat bebas
digunakan). Sehingga pada May 1995, sebuah RDBMS baru, yang dinamakan MySQL
dirilis.
David Axmark dari Detron HB, rekanan TcX mengusulkan agar MySQL di „jual‟ dengan
model bisnis baru. Ia mengusulkan agar MySQL dikembangkan dan dirilis dengan gratis.
Modul praktek database Mysql
2014
Pendapatan perusahaan selanjutnya di dapat dari menjual jasa “support” untuk perusahaan
yang ingin mengimplementasikan MySQL. Konsep bisnis ini sekarang dikenal dengan istilah
Open Source.
Pada tahun 1995 itu juga, TcX berubah nama menjadi MySQL AB, dengan Michael
Widenius, David Axmark dan Allan Larsson sebagai pendirinya. Titel “AB” dibelakang
MySQL, adalah singkatan dari “Aktiebolag”, istilah PT (Perseroan Terbatas) bagi perusahaan
Swedia.[3]
MySQL adalah Sebuah program database server yang mampu menerima dan
mengirimkan datanya sangat cepat, multi user serta menggunakan peintah dasar SQL (
Structured Query Language ).
MySQL Merupakan sebuah database server yang free, artinya kita bebas
menggunakan database ini untuk keperluan pribadi atau usaha tanpa harus membeli atau
membayar lisensinya. MySQL pertama kali dirintis oleh seorang programmer database
bernama Michael Widenius . Selain database server, MySQl juga merupakan program yang
dapat mengakses suatu database MySQL yang berposisi sebagai Server, yang berarti program
kita berposisi sebagai Client. Jadi MySQL adalah sebuah database yang dapat digunakan
sebagai Client mupun server
Keistimewaan MySQL
MySQL memiliki beberapa keistimewaan, antara lain :
1. Portabilitas. MySQL dapat berjalan stabil pada berbagai sistem operasi seperti
Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak
lagi.
2. Perangkat lunak sumber terbuka. MySQL didistribusikan sebagai perangkat lunak
sumber terbuka, dibawah lisensi GPL sehingga dapat digunakan secara gratis.
3. Multi-user. MySQL dapat digunakan oleh beberapa pengguna dalam waktu yang
bersamaan tanpa mengalami masalah atau konflik.
4. 'Performance tuning', MySQL memiliki kecepatan yang menakjubkan dalam
menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per
satuan waktu.
Modul praktek database Mysql
2014
5. Ragam tipe data. MySQL memiliki ragam tipe data yang sangat kaya, seperti signed
/ unsigned integer, float, double, char, text, date, timestamp, dan lain-lain.
6. Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh yang
mendukung perintah Select dan Where dalam perintah (query).
7. Keamanan. MySQL memiliki beberapa lapisan keamanan seperti level subnetmask,
nama host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi
terenkripsi.
8. Skalabilitas dan Pembatasan. MySQL mampu menangani basis data dalam skala
besar, dengan jumlah rekaman (records) lebih dari 50 juta dan 60 ribu tabel serta 5
miliar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada
tiap tabelnya.
9. Konektivitas. MySQL dapat melakukan koneksi dengan klien menggunakan protokol
TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).
10. Lokalisasi. MySQL dapat mendeteksi pesan kesalahan pada klien dengan
menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa Indonesia
belum termasuk di dalamnya.
11. Antar Muka. MySQL memiliki antar muka (interface) terhadap berbagai aplikasi dan
bahasa pemrograman dengan menggunakan fungsi API (Application Programming
Interface).
12. Klien dan Peralatan. MySQL dilengkapi dengan berbagai peralatan (tool)yang dapat
digunakan untuk administrasi basis data, dan pada setiap peralatan yang ada
disertakan petunjuk online.
13. Struktur tabel. MySQL memiliki struktur tabel yang lebih fleksibel dalam
menangani ALTER TABLE, dibandingkan basis data lainnya semacam PostgreSQL
ataupun Oracle.
Bahasa pemrograman
Terdapat beberapa API (Application Programming Interface) tersedia yang memungkinkan
aplikasi-aplikasi komputer yang ditulis dalam berbagai bahasa pemrograman untuk dapat
mengakses basis data MySQL antara lain: bahasa pemrograman C, C++, C#, bahasa
pemrograman Eiffel, bahasa pemrograman Smalltalk, bahasa pemrograman Java, bahasa
pemrograman Lisp, Perl, PHP, bahasa pemrograman Python, Ruby, REALbasic dan Tcl.
Sebuah antarmuka ODBC memanggil MyODBC yang memungkinkan setiap bahasa
Modul praktek database Mysql
2014
pemrograman yang mendukung ODBC untuk berkomunikasi dengan basis data MySQL.
Kebanyakan kode sumber MySQL dalam ANSI C.
Penggunaan
MySQL sangat populer dalam aplikasi web seperti MediaWiki (perangkat lunak yang dipakai
Wikipedia dan proyek-proyek sejenis) dan PHP-Nuke dan berfungsi sebagai komponen basis
data dalam LAMP. Popularitas sebagai aplikasi web dikarenakan kedekatannya dengan
popularitas PHP, sehingga seringkali disebut sebagai Dynamic Duo.
Tipe – tipe Data pada MySQL
<p>Your browser does not support iframes.</p>
Macam-macam Tipe Data pada MySQL (Mai Se Kuel) sebenarnya mempunyai beberapa
jenis, secara umum tipe-tipe data MySQL ini ada empat (4), diantaranya yaitu:
1. Tipe Data Numeric.
2. Tipe Data String.
3. Tipe Data Date.
4. Tipe Data Kelompok Himpunan.
Jenis-jenis tipe data pada MySQL diatas merupakan tipe data yang harus kita pelajari dimana
kita sedang belajar Database, karena sebagai modal awal dalam pembelajaran Database
menggunakan MySQL, maka lebih baik kita harus tahu dan mengerti masing-masing
kegunaan tipe-tipe data pada MySQL tersebut.
Modul praktek database Mysql
2014
Tipe Data Numeric
Tipe data numerik yaitu tipe data yang digunakan untuk menyimpan data numeric (angka).
1. TINYINT
Penggunaan : digunakan untuk menyimpan data bilangan bulat positif dan negatif.
Jangkauan : -128 s/d 127
Ukuran : 1 byte (8 bit).
2. SMALLINT
Penggunaan : digunakan untuk menyimpan data bilangan bulat positif dan negatif.
Jangkauan : -32.768 s/d 32.767
Ukuran : 2 byte (16 bit).
3. MEDIUMINT
Penggunaan : digunakan untuk menyimpan data bilangan bulat positif dan negatif.
Jangkauan : -8.388.608 s/d 8.388.607
Ukuran : 3 byte (24 bit).
4. INT
Penggunaan : digunakan untuk menyimpan data bilangan bulat positif dan negatif.
Jangkauan : -2.147.483.648 s/d 2.147.483.647
Ukuran : 4 byte (32 bit).
Modul praktek database Mysql
2014
5. BIGINT
Penggunaan : digunakan untuk menyimpan data bilangan bulat positif dan negatif.
Jangkauan : ± 9,22 x 1018
Ukuran : 8 byte (64 bit).
6. FLOAT
Penggunaan : digunakan untuk menyimpan data bilangan pecahan positif dan negatif presisi
tunggal.
Jangkauan : -3.402823466E+38 s/d -1.175494351E-38, 0, dan
1.175494351E-38 s/d 3.402823466E+38.
Ukuran : 4 byte (32 bit).
7. DOUBLE
Penggunaan : digunakan untuk menyimpan data bilangan pecahan positif dan negatif presisi
ganda.
Jangkauan : -1.79...E+308 s/d -2.22...E-308, 0, dan 2.22...E-308 s/d 1.79...E+308.
Ukuran : 8 byte (64 bit).
8. REAL
Penggunaan : digunakan untuk menyimpan data bilangan pecahan positif dan negatif presisi
ganda.
Jangkauan : -1.79...E+308 s/d -2.22...E-308, 0, dan 2.22...E-308 s/d 1.79...E+308.
Ukuran : 8 byte (64 bit).
9. DECIMAL
Penggunaan : digunakan untuk menyimpan data bilangan pecahan positif dan negatif.
Jangkauan : -1.79...E+308 s/d -2.22...E-308, 0, dan 2.22...E-308 s/d 1.79...E+308.
Ukuran : 8 byte (64 bit).
10. NUMERIC
Penggunaan : digunakan untuk menyimpan data bilangan pecahan positif dan negatif.
Jangkauan : -1.79...E+308 s/d -2.22...E-308, 0, dan 2.22...E-308 s/d 1.79...E+308.
Ukuran : 8 byte (64 bit).
Modul praktek database Mysql
2014
----------------------------------------------------------------------------------------------------------------
------------------
Tipe Data Date dan Time
Tipe data date dan time yaitu tipe data yang digunakan untuk menyimpan data tanggal dan
waktu.
1. DATE
Penggunaan : digunakan untuk menyimpan data tanggal.
Jangkauan : 1000-01-01 s/d 9999-12-31 (YYYY-MM-DD)
Ukuran : 3 byte.
2. TIME
Penggunaan : digunakan untuk menyimpan data waktu.
Jangkauan : -838:59:59 s/d +838:59:59 (HH:MM:SS)
Ukuran : 3 byte.
3. DATETIME
Penggunaan : digunakan untuk menyimpan data tanggal dan waktu.
Jangkauan : '1000-01-01 00:00:00' s/d '9999-12-31 23:59:59'
Ukuran : 8 byte.
4. YEAR
Penggunaan : digunakan untuk menyimpan data tahun dari tanggal.
Jangkauan : 1900 s/d 2155
Ukuran : 1 byte.
----------------------------------------------------------------------------------------------------------------
------------------
Tipe Data String (Text)
Modul praktek database Mysql
2014
Tipe data string yaitu tipe data yang digunakan untuk menyimpan data string (text).
1. CHAR
Penggunaan : digunakan untuk menyimpan data string ukuran tetap.
Jangkauan : 0 s/d 255 karakter
2. VARCHAR
Penggunaan : digunakan untuk menyimpan data string ukuran dinamis.
Jangkauan : 0 s/d 255 karakter (versi 4.1), 0 s/d 65.535 (versi 5.0.3)
3. TINYTEXT
Penggunaan : digunakan untuk menyimpan data text.
Jangkauan : 0 s/d 255 karakter (versi 4.1), 0 s/d 65.535 (versi 5.0.3)
4. TEXT
Penggunaan : digunakan untuk menyimpan data text.
Jangkauan : 0 s/d 65.535 (216 - 1) karakter
5. MEDIUMTEXT
Penggunaan : digunakan untuk menyimpan data text.
Jangkauan : 0 s/d 224 - 1 karakter
6. LONGTEXT
Penggunaan : digunakan untuk menyimpan data text.
Jangkauan : 0 s/d 232 - 1 karakter
----------------------------------------------------------------------------------------------------------------
------------------
Tipe Data BLOB (Biner)
Tipe data blob digunakan untuk menyimpan data biner.
Modul praktek database Mysql
2014
1. BIT (sejak versi 5.0.3)
Penggunaan : digunakan untuk menyimpan data biner.
Jangkauan : 64 digit biner
2. TINYBLOB
Penggunaan : digunakan untuk menyimpan data biner.
Jangkauan : 255 byte
3. BLOB
Penggunaan : digunakan untuk menyimpan data biner.
Jangkauan : 216 - 1 byte
4. MEDIUMBLOB
Penggunaan : digunakan untuk menyimpan data biner.
Jangkauan : 224 - 1 byte
5. LONGBLOB
Penggunaan : digunakan untuk menyimpan data biner.
Jangkauan : 232 - 1 byte
----------------------------------------------------------------------------------------------------------------
------------------
Tipe Data yang Lain
Selain tipe data di atas, MySQL juga menyediakan tipe data yang lain, diantaranya adalah :
1. ENUM
Penggunaan : enumerasi (kumpulan data).
Jangkauan : sampai dengan 65535 string.
2. SET
Penggunaan : combination (himpunan data).
Modul praktek database Mysql
2014
Jangkauan : sampai dengan 255 string anggotas.
1.1. Mengenal SQL ( Structured Query Language )
SQL ( Structured Query Language ) adalah sebuah bahasa permintaan database yang
terstruktur. Bahasa SQL ini dibuat sebagai bahasa yang dapat merelasikan beberapa tabel
dalam database maupun merelasikan antar database. SQL dibagi menjadi tiga bentuk Query,
yaitu :
1.1.1. DDL ( Data Definition Language )
DDL adalah sebuah metode Query SQL yang berguna untuk mendefinisikan data
pada sebuah Database, Query yang dimiliki DDL adalah :
· CREATE : Digunakan untuk membuat Database dan Tabel
· Drop : Digunakan untuk menghapus Tabel dan Database
· Alter : Digunakan untuk melakukan perubahan struktur tabel yang telah dibuat, baik
menambah Field ( Add ), mengganti nama Field ( Change ) ataupun menamakannya kembali
( Rename ), dan menghapus Field ( Drop ).
1.1.2. DML ( Data Manipulation Language )
DML adalah sebuah metode Query yang dapat digunakan apabila DDL telah terjadi, sehingga
fungsi dari Query DML ini untuk melakukan pemanipulasian database yang telah dibuat.
Query yang dimiliki DML adalah :
· INSERT : Digunakan untuk memasukkan data pada Tabel Database
· UPDATE : Digunakan untuk pengubahan terhadap data yang ada pada Tabel Database
· DELETE : Digunakan untuk Penhapusan data pada tabel Database
1.1.3. DCL ( Data Control Language )
Modul praktek database Mysql
2014
DCL adalah sebuah metode Query SQL yang digunakan untuk memberikan hak otorisasi
mengakses Database, mengalokasikan space, pendefinisian space, dan pengauditan
penggunaan database. Query yang dimiliki DCL adalah :
· GRANT : Untuk mengizinkan User mengakses Tabel dalam Database.
· REVOKE : Untuk membatalkan izin hak user, yang ditetapkan oleh perintah
GRANT
· COMMIT : Mentapkan penyimpanan Database
· ROLLBACK : Membatalkan penyimpanan Database
Administrasi User dengan Grant dan Revoke
(catatan : mendefinisikan user dengan grant tidak perlu menggunakan database mysql dan
bila username yang kita tuliskan dalam perintah grant sudah ada berarti menambah hak, bila
belum ada maka dibuat user baru)
•Mendefinisikan user dengan hak penuh (sama dengan user root)
mysql> grant all on *.* to ti..ar1@localhost identified by 'ti..ar1' with grant option;
•Menghapus hak penuh
mysql> revoke all on *.* from ti..ar1@localhost identified by 'ti..ar1';
mysql> update user set grant_priv='N' where user='ti..ar1';
•Menghapus definisi user
mysql> delete from user where user='ti..ar1';
• Mendefinisikan user dan hak ke semua database (select dan insert)
mysql> grant select,insert on *.* to ti..ar1@localhost identified by 'ti..ar1';
• Menambah hak (update dan delete)
Modul praktek database Mysql
2014
mysql> grant update,delete on *.* to ti..ar1@localhost identified by 'ti..ar1';
• Menghapus hak (insert dan update)
mysql> revoke insert,update on *.* from ti..ar1@localhost identified by 'ti..ar1';
• Mendefinisikan user dan hak ke database tertentu
mysql> grant select,delete on pjual.* to ti..ar2@localhost identified by 'ti..ar2';
(catatan : haknya hanya select dan delete ke semua tabel pada database pjual)
mysql> grant all on xpjual.* to ti..ar2@localhost identified by 'ti..ar2';
(catatan : haknya select, insert, update, dst. ke semua tabel pada database pjual)
•Menghapus hak (select, insert, update, dst. )
mysql> revoke all on xpjual.* from ti..ar2@localhost identified by 'ti..ar2';
• Mendefinisikan user dan hak ke tabel tertentu
mysql> grant all on pjual.barang to ti..ar3@localhost identified by 'ti..ar3';
(catatan : haknya adalah
Select,Insert,Update,Delete,Create,Drop,References,Index,Alter)
mysql> grant all on pjual.detrans to ti..ar3@localhost identified by 'ti..ar3';
mysql> grant select, insert on pjual.pelanggan to ti..ar3@localhost identified by 'ti..ar3';
(catatan : haknya hanya select dan insert)
•Menambah hak (update dan delete)
mysql> grant update, delete on pjual.pelanggan to ti..ar3@localhost identified by
'ti..ar3';
Modul praktek database Mysql
2014
•Menghapus hak (insert dan update)
mysql> revoke insert,update on pjual.pelanggan from ti..ar3@localhost identified by
'ti..ar3';
• Mendefinisikan user dan hak ke kolom (field) tertentu
mysql> grant select(kode,nama), insert(kode,nama)
–> on pjual.barang to ti..ar4@localhost identified by 'ti..ar4';
Untuk pengujian dapat dilakukan dengan :
mysql> select * from barang; (error)
mysql> select kode,nama from barang;
mysql> insert into barang(kode,nama,harga)
–> values('C22','CELANA',150000); (error)
mysql> insert into barang(kode,nama)
–> values('C22','CELANA');
mysql> update barang set nama='T SHIRT'
–> where kode='C22'; (error)
•Menambah hak (update)
mysql> grant update(kode,nama) on pjual.barang
–> to ti..ar4@localhost identified by 'ti..ar4';
Untuk pengujian dapat dilakukan dengan :
mysql> update barang set nama='T SHIRT' where kode='C22';
•Menambah hak ke kolom lain
Modul praktek database Mysql
2014
mysql> grant select(harga), insert(harga), update(harga)
–> on pjual.barang to ti..ar4@localhost identified by 'ti..ar4';
Untuk pngujian dapat dilakukan dengan :
mysql> update barang set harga=150000 where kode='C22';
•Menghapus hak dari suatu kolom (update)
mysql> revoke update(nama,harga) on pjual.barang
–> from ti..ar4@localhost identified by 'ti..ar4';
•Menghapus hak dari suatu kolom (semua hak)
mysql> revoke select(harga), insert(harga) on pjual.barang
–> from ti..ar4@localhost identified by 'ti..ar4';
Query Data (Select)
Bentuk umum select :
SELECT daftar_select
FROM daftar_tabel
[WHERE kondisi_pencarian]
[GROUP BY daftar_group_by]
[HAVING kondisi_pencarian]
[ORDER BY daftar_order [ASC|DESC]]
[LIMIT daftar_limit]
Modul praktek database Mysql
2014
BAB 2
MACAM-MACAM FUNGSI MYSQL
2.1. Mengaktifkan direktori mysql server
Untuk dapat menggunakan MySQL terlebih dahulu aktifkan Server MySQL dengan
menghidupkan MySQL. Program MySQL yang digunakan pada modul ini adalah XAMPP V
3.2.1.Untuk masuk kedalam server MySQL, bukalah command Prompt. Maka anda dapat
masuk ke dalam direktori MySQL. seperti dibawah ini.
2.2. Membuat database baru
Dalam kasus ini sebagai contoh pembuatan database baru adalah membuat database
rumah sakit.maka akan tampak seperti dibawah ini :
Modul praktek database Mysql
2014
2.3.Mengaktifkan database
Untuk mengaktifkan database tersebut kita menggunakan use .seperti yang terlihat
pada gambar :
2.4.Memasukkan Field kedalam database
Setelah masuk ke dalam database anda dapat membuat sebuah tabel yang berisi
field.seperti dibawah ini:
Maka hasilnya akan seperti ini :
Untuk menampilkan struktur yang tadi kita buat kita menggunakan Desc.
Modul praktek database Mysql
2014
2.5.Memasukkan Record
Setelah melihat struktur table tadi tentunys kita akan memasukkan record didalamnya,dengan
cara seperti dibawah ini :
2.6.Menampilkan data dari sebuah tabel
2.7. Membuat view
view merupakan bentuk alternatif penyajian data dari satu tabel atau lebih, beberapa
tujuan membuat view adalah meningkatkan keamanan data serta penyederhanaan bagi para
pengguna.
Modul praktek database Mysql
2014
Contoh sintak Create view namaview (kolom1, kolom2, . . . .) as select statement from
namatabel [with check option]
Keterangan : Namaview : nama view yang dibuat Column : nama atribut untuk view
Statement : atribut yang dipilih dari tabel database Namatabel : nama tabel yang ada pada
basis data
2.8.Drop
pada SQL adalah perintah yang di gunakan untuk menghapus data – data yang telah di
simpan pada database.
Drop tabel yaitu menghapus tabel Contoh sintak Drop table namatabel Drop view
menghapus view yang telah di buat Contoh sintak Drop view namaview
Drop index Menghapus index Contoh sintak Drop index namaindex hal yang perlu di
ingat adalah penghapusan atau penggunaan perintah view tidak dapat di urungkan.
2.9. ALTER
kegunaan dari perintah alter adalah untuk merubah atribut pada suatu tabel Contoh
sintak : Alter table namatabel Modify (namakolom typekolom) untuk mengganti type
kolom dan nama kolom. alter table namatabel add (namakolom type kolom[[before,
namakolom]]) menambah kolom. alter table namatabel drop (namakolom typekolom) untuk
menghapus kolom pada sebuah tabel.
2.10. Menampilkan Data dengan Pengurutan Sorting (ORDER BY)
Fungsi ini digunakan untuk melakukan pengurutan data, sehingga data dari sebuah atau
beberapa tabel dapat tampil berurutan sesuai keinginan. Pengurutan data terbagi menjadi dua:
· ASC (pengurutan dengan Ascending)
· DESC (pengurutan dengan Descending)
Sintax yang digunakan adalah :
SELECT * FROM nama_tabel ORDER BY kolom Type
Modul praktek database Mysql
2014
2.11. Menampilkan Data dengan Pengelompokkan data (GROUP BY)
Group By adalah fungsi untuk mengelompokkan data dalam sebuah kolom yang ditunjuk.
Fungsi ini akan menghasilkan kelompok data dengan menghilangkan data yang sama dalam
satu tabel. Maka apabila dalam satu kolom terdapat beberapa data yang sama maka data yang
akan ditampilkan
hanya salah satu. Sintax yang digunakan seperti berikut :
SELECT * FROM nama_tabel GROUP BY nama_kolom;
2.12. Menampilkan sesuai dengan Fungsi Stastistic
2.12.1. Fungsi COUNT
Fungsi ini biasanya digunakan untuk melakukan pengecekan jumlah data dalam sebuah tabel
yang isinya ratusan hingga ribuan, sehingga kita tidak dapat menghitungnya secara manual.
MySQL memiliki perintah untuk mengatasinya yaitu dengan menggunakan COUNT().
Sintaxnya seperti berikut :
SELECT COUNT (*) FROM nama_tabel;
2.12.2. Fungsi SUM
SUM berfungsi untuk mencari nilai total dalam suatu kolom pada sebuah tabel didalam
database. Query pada MySQL adalah SUM(). SIntax yang digunakan seperti berikut :
SELECT SUM(nama_kolom) FROM nama_tabel;
2.13. Menampilkan Data Sesuai dengan Fungsi String
2.13.1 Fungsi LEFT (x,n)
Berfungsi mengambil data berdasarkan string dari sejumlah n karakter dari string X dari kiri.
Sintax yang digunakan seperti berikut :
Modul praktek database Mysql
2014
SELECT * FROM nama_tabel WHERE LEFT(nama_kolom,jumlah_karakter)=”karakter”;
2.13.2. Fungsi RIGHT (x,n)
Fungsi Right hamper sama dengan fungsi LEFT hanya Query RIGHT Berfungsi mengambil
data berdasarkan string dari sejumlah n karakter dari string X dari Kanan. Sintax yang
digunakan seperti berikut :
SELECT * FROM nama_tabel WHERE
RIGHT(nama_kolom,jumlah_karakter)=”karakter”;
2.13.3. Fungsi MID (x,n,z)
Berfungsi mengambil data berdasarkan string dari sejumlah dari string X n karakter sejumlah
n karakter dari posisi kiri. Sintax yang digunakan seperti berikut :
SELECT * FROM nama_tabel WHERE
MID(nama_kolom,posisi_n,jumlah_karakter)=”karakter”;
2.13.4. Menampilkan data dengan nilai tertinggi dalam sebuah tabel (MAX)
Untuk mencari nilai tertinggi pada suatu data didalam database. SQL menyediakan
fungsi MAX. Query yang digunakan seperti berikut :
SELECT MAX(nama_kolom) FROM nama_tabel;
2.13.5. Menampilkan data dengan nilai terendah dalam sebuah tabel (MIN)
Untuk mencari nilai terendah pada suatu data didalam database. SQL menyediakan
fungsi MIN. Query yang digunakan seperti berikut :
SELECT MIN(nama_kolom) FROM nama_tabel;
Modul praktek database Mysql
2014
BAB 3
JOIN ANTAR TABLE
3.1 PENDAHULUAN
Join merupakan sebuah operasi yang digunakan untuk mendapatkan data gabungan dari dua
buah tabel atau lebih. Operasi ini digunakan dalam perintah SELECT dan biasanya dipakai
untuk memperoleh detail data dari tabel – tabel yang saling terkait (memiliki relasi).
Misalnya karena tabel mahasiswa hanya memuat kode_kelas saja tanpa nama kelas maka kita
harus melakukan join antara tabel mahasiswa dengan tabel kelas yang memuat kolom
nama_kelas.
3.2 JENIS OPERASI JOIN
Secara umum terdapat tiga jenis operasi join, yaitu: Cross join, Inner join dan Outer join.
3.2.1 Cross Join / Cartesian Join
Join jenis ini menghasilkan kombinasi semua baris yang terdapat dalam tabel – tabel yang
digabungkan baik yang berpasangan maupun yang tidak berpasangan. Pada kenyataan join
jenis ini tidak akan pernah dipakai. Meskipun begitu join jenis inilah yang merupakan dasar
dari perintah join. Berikut ini contoh dari perintah cross join:
SELECT * FROM Mahasiswa, KRS
SELECT Mahasiswa.Nama, Mata_Kuliah.Nama_MK FROM
Mahasiswa, Mata_Kuliah
SELECT A.NIM, A.Nama, B.Nama_MK, C.Nilai FROM Mahasiswa A,
Modul praktek database Mysql
2014
3.2.2 Inner Join
Join jenis ini hanya menghasilkan kombinasi semua baris yang memiliki pasangan saja. Baris
yang tidak memiliki pasangan tidak akan ditampilkan. Cara penulisan perintah inner join ada
beberapa cara, yaitu:
1. SELECT Daftar_Kolom FROM Tabel1, Tabel2 WHERE
Tabel1.Primary_key = Tabel2.Foreign_key
SELECT * FROM Mahasiswa, KRS WHERE Mahasiswa.NIM =
KRS.NIM
2. SELECT Daftar_Kolom FROM Tabel1 INNER JOIN Tabel2 ON
Tabel1.Primary_key = Tabel2.Foreign_key
SELECT * FROM Mahasiswa INNER JOIN KRS ON
Mahasiswa.NIM = KRS.NIM
3. SELECT Daftar_Kolom FROM Tabel1 JOIN Tabel2 ON
Tabel1.Primary_key = Tabel2.Foreign_key
SELECT * FROM Mahasiswa JOIN KRS ON Mahasiswa.NIM =
KRS.NIM
3.2.3 Outer Join
Hampir sama denagn inner join, hanya saja baris yang tidak memiliki pasangan tetap akan
ditampilkan. Join jenis ini di bagi lagi menjadi 3, yaitu:
a. Left Outer Join
_ Baris – baris yang tidak memiliki pasangan pada tabel yang ada
disebelah kiri kata “JOIN” akan tetap ditampilkan. Contoh:
SELECT * FROM Mahasiswa LEFT OUTER JOIN KRS ON
Mahasiswa.NIM = KRS.NIM
b. Right Outer Join
_ Baris – baris yang tidak memiliki pasangan pada tabel yang ada
disebelah kanan kata “JOIN” akan tetap ditampilkan.
SELECT * FROM Mahasiswa LEFT OUTER JOIN KRS ON
Modul praktek database Mysql
2014
Mahasiswa.NIM = KRS.NIM
c. Full Outer Join
_ Baris – baris yang tidak memiliki pasangan pada semua tabelakan
tetap ditampilkan.
SELECT * FROM Mahasiswa FULL OUTER JOIN KRS ON
Mahasiswa.NIM = KRS.NIM
Catatan:
Untuk penulisan sintak OUTER JOIN, kata OUTER bisa dihilangkan /
tidak disertakan.
3.2.4. Union Join
Union didukung oleh MySQL mulai dari versi 4.0. Pemakaian union dapat
menyederhanakan perintah persyaratan OR yang bertingkat. Bila dalam sebuah query
menghasilkan pemakaian perintah OR yang lebih dari satu sehingga dapat membuat bingung,
sebagai gantinya digunakan perintah UNION.
Union dapat dikatakan sebagai perintah untuk menggabungkan hasil query sql yang
fungsinya sama dengan perintah OR. Agar lebih jelas, perhatikan contoh berikut ini.
Contoh :
– Tampilkan nip, nama dan gaji dari pegawai yang bekerja di bagian akuntansi dan SDM.
(anggap
saja perintah sql yang digunakan sudah kompleks)
Modul praktek database Mysql
2014
Bila menggunakan perintah OR, maka perintah sqlnya akan seperti dibawah ini :
select i.nip,i.nama,p.gaji from infoprib i join pekerjaan p on
i.nip=p.nip where p.kode_bag="3" or p.kode_bag="4";
Tetapi perintah OR dapat diganti dengan perintah UNION dan bila di jalankan akan
menghasilkan hal yang sama.
(select i.nip,i.nama,p.gaji from infoprib i join pekerjaan p on
i.nip=p.nip where p.kode_bag="3") UNION
(select i.nip,i.nama,p.gaji from infoprib i join pekerjaan p on
i.nip=p.nip where p.kode_bag="4")Union Join
Union didukung oleh MySQL mulai dari versi 4.0. Pemakaian union dapat menyederhanakan
perintah
persyaratan OR yang bertingkat. Bila dalam sebuah query menghasilkan pemakaian perintah
OR yang lebih dari satu sehingga dapat membuat bingung, sebagai gantinya digunakan
perintah UNION.
Union dapat dikatakan sebagai perintah untuk menggabungkan hasil query sql yang
fungsinya sama dengan perintah OR.
Agar lebih jelas, perhatikan contoh berikut ini.
Contoh :
– Tampilkan nip, nama dan gaji dari pegawai yang bekerja di bagian akuntansi dan SDM.
(anggap
saja perintah sql yang digunakan sudah kompleks)
Bila menggunakan perintah OR, maka perintah sqlnya akan seperti dibawah ini :
select i.nip,i.nama,p.gaji from infoprib i join pekerjaan p on
i.nip=p.nip where p.kode_bag="3" or p.kode_bag="4";
Tetapi perintah OR dapat diganti dengan perintah UNION dan bila di jalankan akan
menghasilkan hal yang sama.
(select i.nip,i.nama,p.gaji from infoprib i join pekerjaan p on
i.nip=p.nip where p.kode_bag="3") UNION
(select i.nip,i.nama,p.gaji from infoprib i join pekerjaan p on
i.nip=p.nip where p.kode_bag="4")
Modul praktek database Mysql
2014
BAB 4
RELASI ANTAR TABLE
4.1. Jenis Relasi
Merupakan hubungan yang terjadi pada suatu tabel dengan tabel yang lainnya,
yang berfungsi untuk mengatur operasi suatu database. Hubungan yang dapat dibentuk
dapat mencakupi 3 (tiga) macam hubungan yaitu ;
a. One-To-One (1 – 1)
Mempunyai pengertian “Setiap baris data pada tabel pertama dihubungkan hanya ke satu
baris data pada tabel ke dua”.
b. One-To-Many (1 – )
Mempunyai pengertian “Setiap baris data dari tabel pertama dapat dihubungkan ke satu
baris atau lebih data pada tabel ke dua “.
c.Many-To-Many ( – )
Mempunyai pengertian “Satu baris atau lebih data pada tabel pertama bisa dihubungkan
ke satu atau lebih baris data pada tabel ke dua “.
4.2. Membuar Relasi
1. Bukalah database PENJUALAN.MDB, anda yang disimpan pada folder kerja anda
masing-masing.
2. Klik menubar Tools à Klik Relationship atau Klik icon Relationship [ ] pada
database toolbar
4. Tampilkan tabel satu persatu dengan cara klik tombol Add.
5. Jika semua tabel berada pada jendela Relationships klik tombol Close, maka akan
Modul praktek database Mysql
2014
6. Selanjutnya hubungkan masing-masing tabel dan tentukan Referential Integritynya
a. Tabel Barang dengan Tabel DataJual
b. Tabel Penjualan dengan Tabel DataJual
4.3. Referential Integrity
Referential Integrity merupakan suatu aturan terhadap relasi antar tabel untuk menjamin
validasi hubungan antara record-record didalam tabel-tabel yang terkait. Dan secara otomatis
akan memastikan relasi tersebut ada atau tidaknya record pada sisi Many (tabel yang
terhubung dengan tabel Utama ) yang foregn key nya tidak memiliki pasangan ditabel sisi
One (Tabel Utama)
4.3.1. Model Relasi Referential Integrity
Ada dua model relasi terhadap Referential Integrity, dengan memilih salah satu atau
kedua pilihan, yaitu :
· Cascade Update Related Fields
· Cascade Delete Related Records
a. Cascade Update Related Fields
Setiap perubahan pada Primary Key, pada tabel Utama , maka secara otomatis
mengubah nilai pada record-record yang berkesesuaian didalam tabel yang memiliki
relasi dengan tabel Utama
b. Cascade Delete Related Records
Setiap penghapusan record Primary Key pada tabel Utama, maka akan
mengakibatkan penghapusan record-record yang berkesesuaian didalam tabel yang
memiliki relasi dengan tabel Utama.
4.3.1. Aturan-Aturan Referential Integrity
Modul praktek database Mysql
2014
1. Field yang dihubungkan dari tabel utama haruslah berupa Primary Key.
2. Kedua field yang saling behubungkan harus memiliki Tipe data dan lebar data yang
sama.
3. Tidak dibenarkan penghapusan record pada tabel utama yang telah dihubungkan
dengan tabel yang direlasikan.
4. Tidak diperbolehkan melakukan penambahan record pada tabel relasi bila record
tersebut berisi data atau fakta yang belum ada pada tabel utama.