DIKTAT KULIAH
2013
Wahju Tjahjo S.
1
PENDAHULUAN
Beberapa produk DBMS yang cukup terkenal saat ini adalah Microsoft SQL
Server, MySQL, ORACLE dan PostgreeSQL. Semua DBMS tersebut
menggunakan perintah yang sama yaitu SQL (Structure Query Language).
Pendekatan yang digunakan dalam diktat ini menggunakan perintah
Transact SQL yang diketik dalam Query Analyzer. SQL Server 2000
merupakan produk DBMS yang dibuat oleh Microsoft.
SQL Server 2000 menawarkan beberapa fitur di dalam mengelola database.
Ada dua fitur yang biasa digunakan yaitu:
MENGGUNAKAN ENTERPRISE MANAGER
Fitur ini relatif mudah digunakan karena mode pengelolaan database
menggunakan fitur GUI (Graphical User Interface). Jadi cukup menggunakan
metode click dan drag mouse, anda dapat mengelola database dengan
mudah.
Wahju Tjahjo S.
Wahju Tjahjo S.
1. Diagram
Merupakan sebuah diagram yang digunakan untuk mendisain sebuah
relasi antar tabel dalam database.
2. Tables
Menyimpan reocrd data. Tabel adalah inti dari sebuah database yang
dikelompokkan dalamm bentuk baris dan kolom.
3. Views
Sebuah tabel virtual yang digunakan untuk mengakses data tertentu pada
sebuah tabel. Data penting yang tidak ditampilkan secara public dapat
disembunyikan dengan menggunakan view.
4. Store Procedure
Sekumpulan perintah SQL yang tersimpan dalam server database dan
dapat dieksekusi melalui perintah execute atau tombol F5.
5. Users
Pengguna yang diberi hak untuk mengakses database pada server.
6. Function
Sekumpulan perintah SQL yang dapat mengembalikan nilai.
Wahju Tjahjo S.
QUERY ANALYZER
Sebelum menggunakan fitur Query Analyzer anda harus melakukan koneksi
ke SQL Server, dengan langkah pilih Start All Programs Microsoft
SQL Server Query Analyzer. Silahkan pilih mode Windows
Authentication OK. Jika memilih SQL Server Authentication maka isi
login dan password pada waktu instalasi SQL Server 2000 pertama kali.
Jendela kerja Query Analyzer terbagi menjadi dua panel. Panel atas adalah
panel SQL Editor, sedangkan panel bawah adalah panel hasil. Jika terlihat
hanya panel atas maka tekan tombol Hide Result disebelah Tools Database.
Untuk mencoba mengetikkan perintah SQL pertama kali pada panel SQL
Editor ketikkan perintah berikut:
Use contoh
Wahju Tjahjo S.
MENGGUNAKAN KOMENTAR
Pada SQL Server 2000 ada fitur komentar yang dapat disisipkan pada
perintah SQL. Komentar dideklarasikan dengan dua cara pada Query
Analyzer.
1. Memberikan komentar satu baris. Caranya dengan memberikan tanda -(double dash) di depan baris perintah SQL. Contoh:
-- mengaktifkan databse contoh
use contoh
2. Memberikan komentar lebih dari dua baris pada SQL. Caranya dengan
memberikan tanda /* dan diakhiri tanda */.
/*
perintah ini akan menampilkan
seluruh data pegawai dari tabel
biodata tanpa kriteria
*/
select * from biodata
Wahju Tjahjo S.
2
REGISTER DATABASE
Wahju Tjahjo S.
3. Lakukan pilihan seperti gambar 2.2 lalu tekan Next. Pada menu
berikutnya pilih Add the SQL Server(s) to an . Jika ingin
meregistrasikan server database pada group yang telah ada atau pilih
Create a new untuk mendefinisikan group server anda sendiri. Lalu
pilh Next.
4. Tekan Finish yang menandakan proses register database telah
selesai, lalu pilih Close.
Wahju Tjahjo S.
Wahju Tjahjo S.
3
KONSEP SQL
SQL adalah salah satu bahasa generasi ke-4 (4th GL) yang awalnya
dikembangkan oleh IBM di San Jose Research Laboratory. SQL generasi ke4 bersifat request oriented dan non-prosedural sehingga mudah untuk
dipelajari. SQL terdiri atas:
1. DDL (Data Definition Language), yaitu bahasa yang memiliki
kemampuan untuk mendefinisikan data yang berhubungan dengan
pembuatan dan penghapusan obyek. Seperti CREATE, DROP dan
ALTER.
2. DML (Data Manipulation Langauge), yaitu bahasa yang berhubungan
dengan proses manipulasi data. Seperti INSERT, SELECT, UPDATE
dan DELETE.
TIPE DATA
Tipe data yang didukung oleh SQL Server 2000 yaitu:
1. Numeric untuk menampung data angka terdiri dari bigint, int,
smallint, tinyint, bit, decimal dan numeric.
2. Money untuk menampung data nilai mata uang terdiri dari money dan
smallmoney.
3. Numeric Precission untuk menampung data angka dengan presisi
tinggi yaitu float dan real.
4. Date Time untuk menampung data tanggal waktu terdiri dari datetime
dan smalldatetime.
5. Strings untuk menampung data karakter terdiri dari char, varchar
dan text.
6. Unicode Character Strings untuk menampung data karakter dengan
ukuran tertentu terdiri dari nchar, nvarchar dan ntext.
7. Binary Strings untuk menampung data binary terdiri dari binary,
varbinary dan image.
8. Serta tipe data lainnya seperti cursor, timestamp dan
uniqueidentifier.
OPERATOR
Hampir semua operator yang ada pada bahasa pemrograman dapat
digunakan pada SQL Server 2000. Berikut urutan operator berdasarkan
urutan evaluasi:
1. + (positif), - (negatif) dan ~ (bitwise NOT).
2. * (perkalian), / (pembagian) dan % (modulus).
3. + (penjumlahan), + (penggabungan dan (pengurangan).
4. = > < >= <= <> != !> !<
5. ALL, ANY, BETWEEN, IN LIKE, OR dan SOME
6. = (penugasan)
Wahju Tjahjo S.
10
4
DATABASE
MEMBUAT DATABASE
Berikut ini contoh perintah dasar untuk membuat database menggunakan
perintah SQL Editor.
create database praktek
on primary (name=dbdat,
filename=c:\program
server\mssql\data\dbdat.mdf,
size=10,
maxsize=50,
filegrowth=2)
log on
(name=dblog,
filename=c:\program
server\mssql\data\dblog.ldf,
size=3,
maxsize=20,
filegrowth=1)
files\microsoft
sql
files\microsoft
sql
Wahju Tjahjo S.
11
Untuk melihat format lengkap anda dapat melihat di SQL Server Books
Online. Untuk melihat daftar database yang ada pada SQL Server 2000
ketikkan perintah:
Exec sp_helpdb
Jika database yang dihapus lebih dari satu maka gunakan tanda koma ( , ).
Contoh:
Drop database praktek, latihan, tugas
Perintah-perintah SQL yang anda berikan pada SQL Editor dapat anda
simpan dengan cara File Save, seperti gambar 4.2. File dapat disimpan
dalam format .sql, .tql atau .txt file hasil penyimpanan tersebut dapat dibuka
langsung di Notepad atau Ms. Word.
LATIHAN
Buatlah dua buah database pada SQL Editor, yang satu dengan pengaturan
dan satunya lagi tanpa pengaturan. Kemudian dari database yang sudah
anda buat dapat diamati pada jendela Query Analyzer atau Windows
Explorer. Langkah berikutnya hapuslah database yang anda buat.
Wahju Tjahjo S.
12
5
TABEL
MEMBUAT TABEL
Pada SQL Server 2000 ada dua jenis tabel yaitu permanen dan temporary.
Tabel temporary adalah tabel yang diletakkan di RAM sedangkan tabel
permanen yaitu tabel yang diletakkan pada disk. Jumlah kolom/field yang
mampu diciptakan oleh SQL Server 2000 mencapai 1024 field. Untuk melihat
format lengkap cara membuat tabel anda dapat melihat di SQL Server
Books Online.
Secara umum perintah membuat tabel:
Create table biodata (
Nim int identity (1,1),
Nama varchar(20) not null,
Jk char(1),
Tgllahir datetime,
Status bit default 1,
Ag
varchar(1)
constraint
in(I,K,P,B,H)),
Primary key (nim))
agama
check
(ag
Penjelasan:
1. Not Null, menyatakan bahwa sebuah field nilainya tidak diketahui. Not
Null tidak boleh dipakai pada field yang memiliki sifat identity atau primary
key.
2. Identity, menyatakan field akan diisi nilai secara otomatis dengan
kenaikan 1 dimulai dari angka 1 (lihat 1,1). Identity setara auto_increment
pada MySQL.
3. Default value, artinya nilai default status mhs adalah 1, dapat diartikan
bahwa 1 = belum menikah, dan nilai 0 = menikah.
4. Constraint, memberlakukan integritas data dan menjaga kualitas data.
Pada field ag hanya nilai (I,K,P,B,H) yang boleh
diinputkan. Contraint dilakukan pada saat menciptakan tabel.
5. Rules, fungsinya sama dengan constraint namun rules dilakukan jika
tabel seudah terbentuk.
Untuk melihat apakah sebuah tabel telah terdaftar pada database, ketikkan
perintah:
Select * from information_schema.tables
Wahju Tjahjo S.
13
Berikut ini beberapa contoh cara menciptakan tabel, yang dapat anda coba
pada SQL Editor. Selamat mencoba ! dan jangan lupa penyimpan perintah
SQL tersebut untuk dipelajari di rumah.
TUGAS
Buatlah database dengan nama perbankan. Kemudian berikan perintah use
perbankan. Dan kerjakan tabel dibawah sebagai latihan.
Create table cabang
(kdcabang char(5) not null,
nmcabang varchar(15) not null,
alamat varchar(60) not null default null,
primary key (kdcabang))
create table biodata
(idnasabah int not null,
nmnasabah varchar(25) not null,
alamat varchar(60) default null
primary key (idnasabah))
Type
Int
Varchar
Width
20
Description
PK, Not Null
Not Null, Unique
Type
Int
Varchar
Width
15
Description
PK, Not Null
Not Null
Empat buah tabel yang anda buat diatas merupakan tabel master yaitu untuk
menyimpan data induk dan proses manipulasi datanya tidak tergantung tabel
lain. Selanjutnya di bawah ini anda diminta membuat tabel transaksi yang
proses input datanya tergantung tabel lain.
Wahju Tjahjo S.
14
2. Primary Key, merupakan kunci primer yang bersifat unik dan hanya
dapat dibuat per tabel.
3. Foreign Key..References, merupakan kunci tamu/relasi. Berasal dari
kunci primer pada tabel master yang diletakkan pada tabel transaksi.
Batasan Foreign Key hanya bisa merujuk field yang memiliki batasan
Primary Key atau Unique pada tabel yang dirujuk.
4. Unique, fungsi sama dengan Primary Key. Perbedaannya terletak pada
Primary Key hanya dapat dibuat satu kali pada sebuah tabel dan Unique
dapat dibuat beberapa kali pada sebuah tabel. Jika anda menginginkan
beberapa field bersifat unik maka deklarasikan dengan Unique yang tidak
termasuk dalam field Primary Key.
5. Identity, digunakan untuk memberikan nilai unik dengan kenaikan nilai
tertentu. Digunakan bersamaan dengan Primary Key dan bertipe numeric.
Hanya satu field yang bersifat identity dalam sebuah tabel. Anda harus
menentukan nilai awal dan nilai akhir atau tidak keduanya. Jika tidak
ditentukan maka defaultnya bernilai (1,1).
6. Default, nilai default dapat diterapkan pada semua field kecuali field
bertipe TimeStamp atau Identity.
TUGAS
Nama Tabel: Rekening
Nama Field
Norek
Kdcabang
Pin
Saldo
Type
Int
Char
Char
Int
Width
5
(6)
-
Description
PK, Not Null
FK
Not Null
-
Type
Int
Int
Width
-
Description
FK
FK
Type
Int
Int
Int
Char
Datetime
Int
Width
10
-
Description
PK, Not Null
FK
FK
Not Null
Not Null
Not Null
Tips:
Untuk mengeksekusi beberapa perintah SQL sekaligus tambahkan perintah
GO pada bagian akhir perintah.
Create table rekening
(norek int not null primary key,
kdcabang char(5) references cabang(kdcabang) on delete cascade
on update cascade,
Wahju Tjahjo S.
15
Type
Int
Varchar
Int
Char
Datatime
Datetime
Varchar
Int
Numeric
Width
40
1
60
7,2
Description
PK, Identity, Not Null
Not Null
FK dari tabel bagian, Not Null
Not Null, Default Null
Not Null
Not Null
FK dari tabel kota
Not Null
cekagama
check
(agama
Bila anda ingin menambah field nama di tabel pegawai dengan constraint
Unique maka perintahnya:
Alter table pegawai add unique(nama)
Alter column, digunakan untuk mengubah struktur field pada suatu tabel.
Misal anda ingin mengubah lebar field nama(60) menjadi nama(100).
Contoh:
Wahju Tjahjo S.
16
Untuk menghapus tabel yang berada pada database lain anda harus
menyebutkan nama database diikuti dengan ekstensi .dbo dan nama dari
tabel tersebut. kecuali anda telah menggunakan perintah use. Contoh:
Drop table kampusku.dbo.biodata
Wahju Tjahjo S.
17
6
DATABASE DIAGRAM
Database diagram digunakan untuk mengetahui relasi yang terjadi antar
tabel di dalam sebuah database. Membuat database diagram dilakukan
melalui Enterprise Manager. Setelah anda menjalankan Enterprise Manager
lakukan langkah berikut:
1. Pilih database yang akan dibuat diagramnya. Misal database perbankan.
Pada obyek database perbankan, klik kanan kemudian pilih menu New
Database Diagram.
Wahju Tjahjo S.
18
7
DATA MANIMULATION
LANGUAGE
Perbedaan DML dan DDL adal pada obyek yang dikelolanya. Jika DDL yang
dikelola adalah obyek database, tabel, view, trigger dan store procedure.
Sedangkan DML yang dikelola adalah record.
INSERT
Perintah INSERT digunakan untuk menyisipkan record dalam tabel/view.
Penyisipan record tergantung pada waktu menciptakan tabel beserta
constraintnya. Jika field dideklarasikan NOT NULL maka field tersebut harus
diisi. Contoh:
Insert
into
barang
Mainan,Buah,15000)
values
(KT01,Kartu
Atau bila tidak semua record diisi maka fieldnya harus disebutkan. Contoh:
Insert into barang (kdbrg,nmbrg,hrgsat) values
(KT01,Kartu Mainan,15000)
TUGAS
Tuliskan record berikut ini ke tabel masing-masing pada database
perbankan. Sebagai latihan jangan lupa sebelum menggunakan database
anda harus memberikan perintah use <namadatabase>.
Idnasabah
1
2
3
4
5
6
7
8
9
Ali Wardana
Susiana
Jaka Nugraha
Fitriana Kusumawati
Nilawati
Mulawarman
Purwanti
Indah Rinawati
Laila Mirawardani
Wahju Tjahjo S.
19
Kdcabang
B1
B2
B3
Norek
101
102
103
104
105
106
107
108
109
B1
B1
B3
B1
B3
B1
B2
B2
B1
111111
222222
333333
444444
555555
666666
777777
888888
999999
250000
125000
575000
300000
300000
750000
525000
150000
125000
1
2
3
3
4
4
5
5
Notransaksi
Norek
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
105
103
101
106
107
104
101
102
105
107
103
104
107
105
104
101
103
102
107
Wahju Tjahjo S.
104
103
105
106
101
107
102
107
Debit
Debit
Kredit
Debit
Kredit
Kredit
Kredit
Debit
Kredit
Debit
Debit
Debit
Kredit
Debit
Kredit
Kredit
Debit
Debit
Debit
2003-03-10
2003-03-10
2003-03-12
2003-03-13
2003-03-13
2003-03-15
2003-03-15
2003-03-16
2003-03-18
2003-03-19
2003-03-19
2003-03-19
2003-03-20
2003-03-21
2003-03-22
2003-03-22
2003-03-22
2003-03-25
2003-03-26
Jml
20000
15000
20000
20000
35000
15000
35000
20000
20000
35000
15000
35000
35000
20000
15000
20000
15000
35000
20000
20
20
21
22
23
24
25
26
27
28
29
30
106
103
105
102
104
103
101
103
102
101
105
3
2
3
5
1
2
4
2
5
4
3
Kredit
Kredit
Kredit
Debit
Debit
Debit
Debit
Kredit
Kredit
Debit
Debit
2003-03-27
2003-03-28
2003-03-28
2003-03-28
2003-03-28
2003-03-29
2003-03-29
2003-03-29
2003-03-30
2003-03-30
2003-03-30
35000
35000
20000
35000
15000
20000
20000
20000
35000
35000
20000
UPDATE
Perintah update digunakan untuk mengubah data/record dari tabel. Berikut
formatnya :
Update namatabel set namakolom = databaru where [kondisi]
Contoh berikut menjelaskan akan mengupdate data dari tabel cabang pada
kolom alamat, dimana semua alamat lama akan diganti dengan Jl. Gejayan.
Upadate cabang set alamat = Jl. Gejayan
Jika record yang diubah lebih dari satu gunakan tanda koma ( , ) berikut
formatnya:
Update namatabel set namakolom1=nilai1, namakolom2=nilai2,
Where [kondisi]
Contoh:
Update biodata set jur=TI, nilai=B, angkatan=2007 where
jk=L
Wahju Tjahjo S.
21
Bila ingin menghapus semua record dalam tabel, anda tidak perlu
menyertakan kondisi pada klausa where.
SELECT
Digunakan untuk menampilkan record yang berada dalam tabel sesuai
dengan kriteria tertentu. Format perintah select sebagai berikut:
Select (field1,field2, .) from tabelasal where [kondisi]
group by [ekspresi] Having [kondisi]
order by [ekspresi] [asc | desc]
Untuk menampilkan semua record yang ada dalam tabel rekening yang
saldonya lebih dari 350000, perintahnya:
Select * from rekening where saldo > 350000
Wahju Tjahjo S.
Fungsi
Perkalian
Pembagian
Sisa pembagian
Penjumlahan
Pengurangan
22
Keterangan
Sama dengan
Lebi besar
Lebih kecil
Lebih besar atau sama dengan
Lebih kecil atau sama dengan
Tidak sama dengan
Fungsi
atau pembalik nilai.
Atau
Dan
Exclusve or
Keterangan
Data dianggap benar bila nilainya salah
Data dianggap benar bila salah satu bernilai
benar
Data dianggap benar bila kedua nilai benar
Data dianggap benar bila hanya data pertama
bernilai benar
Kondisi2
False
True
False
True
Hasil
False
True
True
True
Kondisi2
False
True
False
True
Hasil
False
False
False
True
Hasil
False
True
Berikut ini perintah untuk menampilkan data dari tabel nasabah yang
memiliki id=2 dan nama nasabah=Budi.
Select
*
from
nama_nasabah=Budi
nasabah
where
id_nasabah=2
and
Perintah di bawah ini menampilkan data dari tabel nasabah yang berasal dari
kota=Solo atau nasabah berjenis kelamin=L.
Select * from nasabah where kota=Solo or jk=L
Wahju Tjahjo S.
23
Perintah di bawah ini akan menampilkan semua record dari tabel rekeking
yang nasabahnya mempunyai saldo tabungan antara 250000 dan 400000.
Jika diluar jangkauan batasan tersebut record tidak ditampilkan.
Select * from rekening where saldo between 250000 and 400000
Berikut ini akan ditampilkan record dari tabel rekening yang nasabahnya
memiliki rekening di kantor cabang yang kode cabangnya di dalam B2 dan
B3.
Select * from rekening where kode_cabang in (B1,B2)
ALIAS
Klausa alias digunakan untuk mengganti nama kolom tabel yang dihasilkan
dari perintah select. Format dasarnya:
Select field1 as nama1, field2 as nama2, from tabelasal
Contoh:
Select id_nasabah as ID, nama_nasabah as Nama Lengkap,
jk as Kelamin from nasabah
FUNGSI AGREGAT
Beberapa fungsi agregat yang didukung oleh SQL Server yaitu: SUM, AVG,
COUNT, MIN dan MAX.
1. SUM, digunakan untuk melakukan penjumlahan nilai record pada
suatu field. Fungsi ini hanya dapat digunakan pada data bertipe
integer/nuemric.
2. AVG, digunakan untuk mencari nilai rata-rata dari record dalam satu
field.
3. COUNT, digunakan untuk menghitung jumlah record yang ada dalam
tabel.
4. MIN, digunakan untuk menampilkan nilai record terkecil yang ada
dalam satu field.
5. MAX, digunakan untuk menampilkan nilia record terbesar yang ada
dalam satu field.
Berikut ini contoh-contoh penggunaan fungsi agregat:
Menampilkan jumlah semua saldo nasabah dari tabel rekening perintahnya:
Select sum(saldo) as Total Saldo from rekening
Select avg(saldo),min(saldo) from rekening
Select count(*) as Jumlah Record from nasabah
Wahju Tjahjo S.
24
DISTINCT
Fungsi ini digunakan untuk menampilkan data hanya satu kali dari data yang
berulang dalam penampilannya. Formatnya sebagai berikut:
Select distinct (namafield) from tabelasal
Contoh:
Select * from rekening
Select distinct(kode_cabang) from rekening
MENGURUTKAN DATA
Mengurutkan record menggunakan perintah ORDER BY [ASC | DESC].
Pengurutan berlaku untuk tipe data string dan integer/numeric. Jika dalam
pengurutan tidak disebutkan jenis pengurutannya maka decara default diset
urut naik. Jika ada klausa WHERE maka order by diletakkan setelah
WHERE.
Cobalah beberapa perintah berikut:
Select * from nasabah order by nama_nasabah
Select * from nasabah order by nama_nasabah desc
Select * from nasabah order by id_nasabah, alamat
Select * from nasabah_rek order by norek, id_nasabah desc
Select * from nasabah_rek order by norek desc, id_nasabah
PENGELOMPOKAN RECORD
Untuk menampilkan pengelompokan record gunakan GROUP BY. Berikut ini
contoh perintah dari GROUP BY.
Select * from nasabah group by (alamat)
Wahju Tjahjo S.
25
PENCARIAN STRING
Untuk pencarian record dengan kriteria tertentu dapat menggunakan klausa
LIKE. Klausa LIKE digunakan bersamaan dengan WHERE. Berikut ini
contohnya:
Select * from nasabah where alamat like Jl. Taman siswa
Select * from nasabah where nama_nasabah like Budi
h%
Keterangan
Cocok dengan karakter apa saja yang
mengandung karakter h.
Cocok dengan karakter yang berakhiran h.
Bentuk ini hanya berlaku untuk tipe data
VARCHAR.
Cocok dengan karakter yang berawalan h.
TUGAS
Tugas terprogram diberikan oleh dosen.
Wahju Tjahjo S.
26
8
BACKUP DATABASE
Proses backup dapat dilakukan dengan dua cara yaitu:
1. Menggunakan Enterprise Manager
2. Menggunakan backup secara manual
MANUAL
Backup secara manual perlu memperhatikan hal berikut:
1. Anda harus mengetahui lokasi letak file database yang selama ini
digunakan. Secara default lokasi berada pada C:\Program
Files\Microsoft SQLServer\MSSQLl\Data\.
2. Anda harus mengetahui ekstensi file database SQL Server 2000.
Ketika membuat database secara otomatis akan diciptakan dua buah
jeni file yaitu: .MDF dan .LOG.
Proses backup secara manual sama halnya anda mengkopi-paste file dari
Windows Explorer. Dari lokasi database SQL Server anda dapat langsung
mengkopi file database .MDF dan .LOG ke drive lain, misal D:\ atau ke
Flashdisk. Untuk mengembalikan/restore lakukan proses copy-paste seperti
halnya anda mengcopy file.
ENTERPRISE MANAGER
Proses backup menggunakan Enterprise Manager langkahnya sebagai
berikut:
1. Jalankan Enterprise Manager Start Program Microsoft SQL
Server Enterprise Manager.
2. Berikutnya pilih Database. Selanjutnya pilih database yang akan di
backup lalu klik kanan pilih All Tasks Backup Database.
3. Pada jendela SQL Server Backup pilih Database complete
Add.
4. Pada jendela Select Backup Destination pilih File Name karena
hasil backup akan disimpan dalam bentuk file. Pada bagian tersebut
ketik nama file backup dan masukkan lokasi folder tujuan backup
selanjutnya klik OK.
5. Setelah itu lokasi penyimpanan backup akan terdaftar pada bagian
Destination, Backup to klik OK setelah itu proses backup dilakukan.
6. Jika selesai klik OK.
TUGAS
Sebagai latihan lakukan backup database yang sudah anda buat dan amati
hasilnya. Proses backup dapat anda lakukan dengan kedua cara yaitu
manual dan melalui Enterprise Manager. Amati hasilnya. Fasilitas ini dapat
anda manfaatkan untuk meng-backup pekerjaan anda setelah selesai kuliah.
Lakukan secara rutin.
Wahju Tjahjo S.
27
9
RESTORE DATABASE
Restore database dapat dilakukan dengan dua cara yaitu:
1. Menggunakan cara manual
2. Menggunakan Enterprise Manager
MANUAL
Cara manual dapat dilakukan seperti anda mengkopi-paste file pada
Windows Explorer. Untuk merestore dari folder asal lakukan klik Paste pada
folder tujuan semula yaitu: C:\Program Files\Microsoft SQL
Server\MSSQL\Data\.
ENTERPRISE MANAGER
Untuk me-restore database yang sudah du backup langkahnya sebagai
berikut:
1. Pilih Start Program Microsoft SQL Server Enterprise
Manager. Setelah itu pilih obyek Database.
2. Klik kanan pada obyek Database, kemudian pilih All Tasks
Restore Database.
3. Pada jendela Restore Database pada bagian Restore as database
pilih nama database yang akan direstore. Pada bagian Restore pilih
Database atau pilih Filegroups or File jika yang di-restore adalah file
dan pilih From device jika yang di-restore adalah database/file yang
berasal dari CD/DVD/HD. Pada kelompok Parameters bagian Show
backups of database pilih ama backup database yang akan diresotore. Kemudian pada bagian First backup to restore, pilih file
backup database dari database yang telah dipilih sebelumnya di
bagian Show backups of database.
Catatan: jika anda pernah melakukan backup lebih dari sekali untuk
database yang sama, maka bagian tersebut akan terdaftar beberapa
file backup database.
4. Setelah semua parameter terisi maka pilih OK, kemudian tunggu
proses backup dilakukan selesai. Jika proses selesai akan muncul
pesan konfirmasi lalu klik OK.
TUGAS
Sebagai latihan lakukan proses restore dari database yang sudah anda
backup. Amati hasilnya. Fasilitas ini dapat anda manfaatkan untuk meresotre pekerjaan anda setelah sampai di rumah. Lakukan secara rutin.
Wahju Tjahjo S.
28
10
JOIN ANTAR TABEL
Join merupakan sebuah operasi yang digunakan untuk mendapatkan data
gabungan dari dua tabel atau lebih. Pada SQL Server terdapat tiga jenis join
yaitu:
Cross Join (cartesian)
Menghasilkan kombinasi semua baris yang terdapat dalam tabel, baik yang
berpasangan maupun tidak berpasangan. Meskipun join ini tidak pernah
digunakan namun Cross Join merupakan dasar dari join antar tabel.
Inner Join
Join ini hanya menghasilkan output berupa kombinasi baris-baris yang
berpasangan saja, baris lainnya akan dieleminasi dan baris lain yang tidak
mempunyai pasangan juga akan disingkirkan.
Outer Join
Hampir sama dengan Inner Join perbedaannya terletak pada baris yang tidak
mempunyai pasangan akan turut diproses. Outer Join masih dibagi menjadi
tiga lagi:
1. Left Outer Join
2. Right Outer Join
3. Full Outer Join
CROSS JOIN
Perintah dasarnya:
Select * from tabel1, tabel2, tabel3, ..
atau
select * from tabel1.field1, tabel2.field1, tabel3.field1, ..
contoh:
select * from nasabah, cabang_bank
select * from nasabah.idnasabah, nasabah.nama_nasabah,
cabang_bank.nama_cabang from nasabah, cabang_bank
Wahju Tjahjo S.
29
INNER JOIN
Di bawah ini diberikan beberapa contoh Inner Join, cobalah pada Query
Analyzer dan amai hasilnya. Jika perlu kembangkan perintah-perintah
tersebut.
Select * from nasabah, nasabah_rek
where nasabah.idnasabah = nasabah_rek.idnasabah
select * from rekening, nasabah_rek
where rekening.norek = nasabah.norek
select a.nama_nasabah, b.kode_cabang, c.norek
from nasabah a, rekening b, nasabah_rek c
where a.idnasabah = c.idnasabah and b.norek = c.norek
select * from nasabah a inner join nasabah_rek b
on a.idnasabah = b.idnasabah
select * from rekening a join nasabah_rek b on a.norek =
b.norek
select a.nama_nasabah, b.kode_cabang, c.norek
from nasabah a join nasabah_rek c
on a.idnasabah = c.idnasabah join rekening b on b.norek =
c.norek
OUTER JOIN
Berikut ini contoh penggunaan Left Outer Join:
Select * from nasabah left join nasabah_rek
on nasabah.idnasabah = nasabah_Rek.idnasabah
select a.nama_nasabah, b.kode_cabang, c.norek
from nasabah a left join nasabah_rek c
on a.idnasabah = c.idnasabah left join rekening b
on b.norek = c.norek
Berikut ini contoh perintah untuk melihat perbedaan antara Inner Join dan
Outer Join, contoh:
Select a.norek, b.nama_cabang
from rekening a inner join cabang_bank b
on a.kode_cabang = b.Kode_cabang
Wahju Tjahjo S.
30
Contoh lainnya:
Select a.norek, b.nama_cabang from rekening a
left outer join cabang_bank b on a.kode_cabang = b.kode.cabang
Select a.norek, b.nama_cabang from rekening a
right
outer
join
cabang_bank
b
on
a.kode_cabang
b.kode.cabang
secara sederhana dapat disimpulkan bahwa Cross Join merupakan jenis join
yang tidak memakai persyaratan. Sementara jenis join lainnya memerlukan
persyaratan. Persyaratan yang dimaksud disini yaitu data pada kolom FK
(kunci relasi) di tabel transaksi harus sama dengan data pada kolom PK
(kunci primer) di tabel master.
Persyaratan tersebut dapat ditulis sebagai berikut atau sebaliknya:
TabelMaster.KunciPrimary = TabelTransaksi.KunciForeign
Oleh sebab itu keharusan FK dan PK yang saling berhubungan maka Inner
Join dan Outer Join hanya dapt dilakukan pada tabel yang memiliki relasi
saja. Sementara Cross Join dapat dilakukan pada sembarang/semua tabel.
TUGAS
Sebelum menerima tugas dari dosen pelajari sekali lagi Bab 10 Join Antar
Tabel diatas, agar lebih mudah dalam memahami dan menerima tugas yang
diberikan.
Nama Tabel Buku
Nama Field
Idbuku
Idterbit
Judul
Penulis
Harga
Tipe Data
Varchar
Varchar
Varchar
Varchar
Integer
Nama Field
Idterbit
Namaterbit
Alamat
Tipe Data
Varchar
Varchar
Varchar
Lebar
2
2
100
30
6
Keterangan
Nomor identitas buku
Nomor identitas penerbit
Judul buku
Nama penulis buku
Harga satuan buku
Keterangan
Nomor identitas penerbit
nama penerbit
Alamat penerbit
Wahju Tjahjo S.
Tipe Data
Varchar
Varchar
Date
Integer
Lebar
2
5
8
2
Keterangan
Nomor identitas buku
Nomor nota penjualan
Tanggal penjualan buku
Jumlah buku yang terjual
31
11
VIEW
View adalah sebuah virtual tabel/tabel sementara yang isinya diciptakan
dengan perintah SQL. View merupakan cara alternatif untuk melihat data dari
satu atau banyak tabel di dalam database.
MENCIPTAKAN VIEW
Format dari perintah view yaitu:
Create view namaview (daftarfield) as ekspresiselect
Sedangkan untuk melihat hasil dari view yang telah dibuat gunakan perintah
berikut:
Select * from namaview
Wahju Tjahjo S.
32
View juga dapat diciptakan yang berasal dari banyak tabel, berikut ini
contohnya:
Create view viewtransaksi as
select b.norek, a.nama_nasabah, a.alamat_nasabah
from nasabah a, nasabah_rek b, rekening c
where b.norek = c.norek and a.idnasabah = b.idnasabah
Perintah di atas dapat di tulis seperti di bawah dan hasilnya sama. Pahami
baik-baik.
create view viewnasabahrek as
select b.norek, a.nama_nasabah, a.alamat_nasabah
from nasabah a join nasabah_rek b
on a.idnasabah = b.idnasabah
join rekening c on c.norek = b.norek
Selain perintah diatas anda juga dapat membuat view yang berasal dari:
1. Join antara tabel view.
2. Join antara view view.
Sejauh ini ada sudah membuat view yang terdapat pada database
perbankan yaitu:
1. Viewtamsis
2. Viewcabang
3. Viewtransaksi
4. Viewnasabahrek
Untuk melihat daftar view yang sudah dibuat ketikkan perintah berikut:
Select * from sysobjects where type = view and name like
view%
Wahju Tjahjo S.
33
MENGHAPUS VIEW
Perintah dasar menghapus view:
Drop namaview1, namaview2, .
Contoh:
Drop viewtransaksi
TUGAS
Tugas akan diberikan oleh dosen dengan tema membuat view yang berasal
dari materi Bab 10
Wahju Tjahjo S.
34
12
STORE PROCEDURE
Store procedure merupakan sekumpulan perintah SQL yang tersimpan
dalam sebuah nama dan diproses dalam satu kesatuan. Store procedure
mirip dengan procedure atau function pada bahasa pemrograman yang
dapat dieksekusi tersendiri. Kemiripan tersebut antara lain:
1. Dapat menerima parameter sebagai input dan mengembalikan nilai
dalam bentuk parameter output kepada yang memanggilnya.
2. Mengandung sekumpulan perintah program yang melakukan operasi
di dalam dataabase, termasuk memanggil prosedur lainnya.
3. Mengembalikan
suatu
nilai
pada
pemanggilnya
untuk
mengindikasikan kesuksesan atau kegagalan prosedur dan alasan
mengapa prosedur tersebut gagal.
Keuntungan menggunakan store procedure yaitu:
1. Pemrograman menjadi lebih modular. Artinya prosedur hanya dibuat
sekali tersimpan dalam database dan dapat dipanggil berkali-kali dari
bahasa pemrograman, seperti Delphi, VFP, PHP, JAVA atau VB.
2. Store procedure dapat dimodifikasi tanpa harus mengubah kode
program (Delphi, JAVA, VFP atau PHP) yang memanggil store
procedure tersebut.
3. Eksekusi program lebih cepat.
4. Mengurangi padatnya lalulintas data dalam jaringan komputer.
Efeknya akan terasa ketika menggunakan aplikasi client/server.
Karena hanya mengirimkan store procedure saja dari pada mengirim
perintah SQL yang berpuluh-puluh baris.
5. Dapat digunakan untuk mekanisme keamanan. Artinya user dapat
diberi hak menjalankan store procedure walaupun user tersebut tidak
memiliki hak akses menjalankan SQL di dalam store procedure.
Dalam membuat store procedure terdapat beberapa aturan sebagai berikut:
1. Store procedure hanya dibuat pada database yang aktif saja.
2. Nama store procedure harus sesuai dengan aturan-aturan membuat
variabel.
3. Untuk menjalankan store procedure menggunakan perintah
EXECUTE atau EXEC.
Perintah dasar store procedure yaitu:
Create procedure namaprosedur
@parameter1 tipedata,
@parameter2 tipedata,
.
. Output
as perintah_SQL
Wahju Tjahjo S.
35
Berikut ini contoh perintah membuat store procedure dimana jika lupa
mengisi parameternya sudah ditentukan, namun jika diisikan parameter lain
tetap dapat dieksekusi sesuai dengan parameter yang dimasukkan.
Create procedure sp_trans
@kodecabang varchar(25) = BPR Cahaya Madani
as
select nasabah.nama_nasabah, cabang_bank.nama_cabang
from nasabah, cabang_bank, nasabah_rek
where nasabah.idnasabah = nasabah_rek.idnasabah
and rekening.norek = nasabah_Rek.norek
and rekening.kode_cabang = cabang_bank.kode_cabang
and cabang_bank.kodecabang = @kodecabang
Wahju Tjahjo S.
36