MODUL REFERENSI SISTEM BASIS DATA
SQL MySQL on Ubuntu
DEPARTEMEN TEKNIK INFORMATIKA UNIVERSITAS NASIONAL Update 852011
KATA PENGANTAR Banyak di kalangan mahasiswa tentunya tidak menyadari, betapa pentingnya mengasah kembali matakuliah yang berhubungan dengan software development yaitu 'basis data' . Seringkali mahasiswa mengejar skil bahasa pemrograman tanpa mengasah kembali kemampuan memanajemen data. Ini kemampuan dasar yang mesti dibekali. Dengan begitu kita dapat membangun aplikasi yang tentunya menggunakan basis data. Apapun bahasa pemrogramannya, databasenya SQL.
Penyusun
Slamet Nurhadi
Informasi: Sistem Operasi : Linux Ubuntu 10.10 Database : MySql Server 5.1 Cara menginstall : $ sudo aptget install mysqlserver Masuk ke dalam server: $ mysql u root p masukan password jika anda menggunakannya.
BAB 1 PENDAHULUAN SQL Jenis SQL: 1.Interactive => langsung dapat dioperasikan 2.Embedded => disisipkan ke dalam program Pengelompokan statement SQL 1.(DDL) Data definition Language DATABASE CREATE
TABLE INDEX VIEW
ALTER TABLE 2.(DML) Data Manipulation Language INSERT, SELECT, UPDATE, DELETE 3.Data Aceess GRANT, REVOKE 4.Data Integrity RECOVER TABLE 5.Auxiliary UNLOAD, LOAD, RENAME COLUMN
DROP
MEMBUAT DATABASE Sintaks : CREATE DATABASE nama_database; contoh : CREATE DATABASE DatabasePertamaku; MENGHAPUS DATABASE Sintaks : DROP DATABASE nama_database; contoh : DROP DATABASE DatabasePertamaku;
MELIHAT DATABASE sintaks: show databases;
MEMBUAT TABLE
Sintaks :
CREATE TABLE NamaTabel (NamaKolom1 TipeDataKolom1, NamaKolom2 TipeDataKolom2);
contoh : CREATE TABLE Teman (nama char(10), alamat varchar(50), email char(20));
MELIHAT TABLE sintaks: show tables;
MENGHAPUS TABEL sintaks: DROP TABLE NamaTabel; Contoh: DROP TABLE Teman;
DESAIN DATABASE Database Keanggotaan club Film yang berisi keanggotaan yang lengkap, Mungkin anda tahu bagaimana aktifitas Keanggotaan club seperti Meeting dan Attend. Dan membagi 2 bagian (pemisahan tabel) menjadi seperti ini, informasi keanggotaan berisi sebagai berikut: Nama Lengkap Tanggal Lahir Alamat Email Tanggal Bergabung dan, daftar aktifitas pertemuan, lokasi dan siapa yang menghadiri. Berisi informasi sebagai berikut: Tanggal Pertemuan Lokasi Member ini hadir? Jika anda hanya membuat digabungkan tabel yang ada, maka akan terlihat seperti ini Nama Lengkap Tanggal Lahir Alamat Email Tanggal Bergabung Tanggal Pertemuan Lokasi Member ini hadir?
Jika Informasi diatas dijadikan kolom pada tabel maka akan menjadi seperti ini
Nama
Tgl.Lahir
Alamat
Email
Tgl. Tgl. Bergabung Petemuan
Lokasi
Member hadir?
Adi
10/02/90 jl.Manggi adi@mail 01/01/11 02/04/11 Semarang Y s .com
Dian
11/04/90 jl.Durian dian@mai 05/12/10 02/04/11 Semarang Y l.com
Andre 02/05/90 jl.Jambu
andre@ma 08/05/10 02/04/11 Semarang Y il.com
Bagaimana juga kolom ini bermasalah, bagaimana jika member menghadiri setiap pertemuan ? Nama
Tgl.Lahir
Alamat
Email
Tgl. Tgl. Bergabung Pertemuan
Lokasi
Member hadir?
Adi
10/02/90
jl.Mangg adi@mail 01/01/11 02/04/11 Semarang Y is .com
Adi
10/02/90
jl.Mangg adi@mail 01/01/11 05/05/11 Yogya is .com
Dian
11/04/90
jl.Duria dian@mai 05/12/10 02/04/11 Semarang N n l.com
Dian
11/04/90
jl.Duria dian@mai 05/12/10 05/05/11 Yogya n l.com
Y
Y
Andre 02/05/90
jl.Jambu andre@ma 08/05/10 02/04/11 Semarang Y il.com
Andre 02/05/90
jl.Jambu andre@ma 08/05/10 05/05/11 Yogya il.com
Y
Apakah ini masalah ? Pertama ketidakpastian data terduplikasi (ganda). Setiap waktu Pertemuan anda butuh pencatatan yang tidak hanya detail pertemuan tapi juga informasi member yang detail.
Membagi menjadi 2 bagian tabel berisi member detail Nama Lengkap Tanggal Lahir Alamat Email Tanggal Bergabung berisi menghadiri pertemuan Nama Lengap Tanggal Pertemuan Lokasi Member ini hadir? Jika dibuat tabelnya akan terlihat seperti ini Tabel member Nama
Tgl.Lahir
Alamat
Email
Tgl. Bergabung
Adi
10/02/90
jl.Manggis
[email protected]
01/01/11
Dian
11/04/90
jl.Durian
[email protected]
05/12/10
jl.Jambu
[email protected]
08/05/10
Andre 02/05/90 Tabel Pertemuan Nama
Tgl. Pertemuan
Lokasi
Membe r hadir?
Adi
02/04/11
Semarang Y
Adi
05/05/11
Yogya
Dian
02/04/11
Semarang N
Dian
05/05/11
Yogya
Andre
02/04/11
Semarang Y
Andre
05/05/11
Yogya
Y Y Y
Disini ada 2 buah tabel: tabel member dan tabel pertemuan. Pada tabel member detail tidak boleh ada yang terduplikasi, dan hanya boleh kolom “nama” yang berlebih, yang mana untuk menglink-an 2 tabel bersamaan
MEMBUAT SEBUAH CONTOH DATABASE Jika anda sudah membuat nama Database maka gunakan nama database yang tersedia dan buatlah tabel sebagai berikut
saya menggunakan nama database dengan nama DatabasePertamaku. Menggunakan Database Sintaks : use DatabasePertamaku dan sekarang buat tabel seperti gambar dibawah ini buat tabel dengan nama MemberDetails dengan nama kolom sebagai berikut Sintaks : CREATE TABLE NamaTabel (NamaKolom1 TipeDataKolom1, NamaKolom2 TipeDataKolom2); Kolom
Tipe Data
MemberId
integer
FirstName
nvarchar(50)
LastName
nvarchar(50)
DateOfBirth
date
Street
varchar(100)
City
varchar(75)
State
varchar(75)
ZipCode
varchar(12)
Email
varchar(200)
DateOfJoining
date
Kemudian buat tabel Attendance dengan nama kolom sebagai berikut
Kolom
Tipe Data
MeetingDate
date
Location
varchar(200)
MemberAttended
char(1)
MemberId
integer
Kemudian buat tabel Film dengan nama kolom sebagai berikut
Kolom
Tipe Data
FilmId
integer
FilmName
varchar(100)
YearReleased
integer
PlotSummary
varchar(2000)
AvailableOnDVD
char(1)
Rating
integer
CategoryId
integer
DELETE FROM MemberDetails WHERE MemberId = 4;
Kemudian buat tabel Category dengan nama kolom sebagai berikut
Kolom
Tipe Data
CategoryId
integer
Category
varchar(100)
Kemudian buat tabel FacCategory dengan nama kolom sebagai berikut
Kolom
Tipe Data
CategoryId
integer
MemberId
integer
Setelah anda membuat tabel maka lihatlah semua tabel pada database anda. Setelah itu tabel yang telah dibuat. masukan data pada setiap kolom. Semuanya akan dibahas pada bab 2.
BAB 2 ENTER DATA SQL Sintaks : INSERT INTO NamaTabel (NamaKolom) VALUES (DataValue); contoh : INSERT INTO Category (CategoryId, Category) VALUES (1, 'Thriller');
Lalu lanjutkan sehingga menjadi seperti ini INSERT INTO Category (CategoryId, Category) VALUES (2, 'Romance'); INSERT INTO Category (CategoryId, Category) VALUES (3, 'Horror'); INSERT INTO Category (CategoryId, Category) VALUES (4, 'War'); INSERT INTO Category (CategoryId, Category) VALUES (5, 'Scifi'); INSERT INTO Category (CategoryId, Category) VALUES (6, 'Historical')
MENGINSERT DATA BARU INSERT INTO MemberDetails ( MemberId, FirstName, LastName, DateOfBirth, Street, City, State, ZipCode, Email, DateOfJoining ) VALUES ( 1, ‘Katie’, ‘Smith’, ‘19770109’, ‘Main Road’, ‘Townsville’, ‘Stateside’, ‘123456’, ‘
[email protected]’, ‘20040223’ ); INSERT INTO MemberDetails ( MemberId,
FirstName, LastName, DateOfBirth, Street, City, State, ZipCode, Email, DateOfJoining ) VALUES ( 2, ‘Bob’, ‘Robson’, ‘19870109’, ‘Little Street’, ‘Big City’, ‘Small State’, ‘34565’, ‘
[email protected]’, ‘20040313’ ); INSERT INTO MemberDetails ( MemberId, FirstName, LastName, DateOfBirth, Street, City, State, ZipCode, Email, DateOfJoining ) VALUES ( 4, ‘Sandra’, ‘Gelis’, ‘19670805’, ‘47 Upper Road’, ‘New Town’, ‘New State’,
‘19122’, ‘
[email protected]’, ‘20040222’ );
Mysql browser dapat dijalankan di windows, silahkan anda mencari .exe nya. Jika anda ingin memakai Mysql browser pada Ubuntu anda cukup melakukan instalasi secara online dengan kode sebagai berikut: $ sudo aptget install mysqlquerybrowser dan hasilnya sebagai berikut ini
MENGHAPUS RECORD PADA TABLE
Sintaks: DELETE FROM MemberDetails WHERE MemberId = 4;
INSERT INTO MemberDetails ( MemberId, FirstName, LastName, DateOfBirth, Street, City, State, ZipCode, Email, DateOfJoining ) VALUES ( 4, 'Steve', 'Gee', '19670805', '45 Upper Road', 'New Town', 'New State', '19122', '
[email protected]',
'20050422' );
Lalu tambahkan data membernya, lihat dibawah ini
INSERT INTO MemberDetails ( MemberId, FirstName, LastName, DateOfBirth, Street, City, State, ZipCode, Email, DateOfJoining ) VALUES ( 7, 'John', 'Jackson', '19740527',
'Long Lane', 'Orange Town', 'New State', '88992', '
[email protected]', '20051121' ) ; mysql> INSERT INTO MemberDetails ( MemberId, FirstName, LastName, DateOfBirth, Street, City, State, ZipCode, Email, DateOfJoining ) VALUES ( 8, 'Jack', 'Jackson', '17540609', 'Main Street', 'Big City', 'Mega State', '34566', '
[email protected]', '20050602' ) ; mysql> INSERT INTO MemberDetails ( MemberId, FirstName, LastName, DateOfBirth, Street,
City, State, ZipCode, Email, DateOfJoining ) VALUES ( 9, 'Seymor', 'Bots', '17560830', 'Long Street', 'Village', 'Platinum State', '65422', '
[email protected]', '20050717' ) ;