Materi SQL
Materi SQL
Perintah CREATE
User
CREATE USER nama_User identified by Password;
Table
CREATE TABLE nama_tabel
(
nama_kolom tipe_data batasan,
)
Index
Index digunakan untuk meningkatkan kinerja dari basis data.
CREATE INDEX nama_index ON nama_tabel (kolom ASC/DESC)
Perintah DROP
◘ DROP Table nama_table;
SQL> drop table pegawai;
menambah kolom/field
ALTER TABLE NamaTable
ADD (NamaField TipeField Batasan
.. .. .. );
mengubah kolom yang sudah ada
ALTER TABLE NamaTable
Modify (NamaField TipeField Batasan
.. .. .. );
-1-
DATA MANIPULATION LANGUAGE (DML)
Data Manipution Language (DML) digunaan untuk memanipulasi data yang tersimpan
dalam database. DML yang terdiri atas :
INSERT
Memasukan sebuah record baru ke dalam sebuah table
Syntax :
INSERT INTO NamaTable VALUES [nilai 1, nilai2 ,…]
UPDATE
Untuk modifikasi record, dengan syntax sebagai berikut :
Syntax :
UPDATE NamaTable
SET NamaField = NilaiBaru
WHERE Kondisi ;
DELETE
Untuk menghapus satu atau beberapa record dalam suatu table.
Syntax :
DELETE FROM NamaTable
WHERE Kondisi ;
Select
Merupakan instruksi yang paling banyak digunakan dalam SQL. Digunakan untuk
memilih spesifik kolom dari satu atau beberapa tabel.
Syntax :
SELECT field1, field2, …
FROM NamaTabel
WHERE kondisi;
Where
Seleksi dapat dilakukan tidak pada seluruh record, melainkan hanya pada record
yang memenuhi syarat.
Bentuk klausa where adalah :
? Tampilkan nama, kota dan gaji bagi pegawai yang berasal dari Surabaya atau
Jember dan mempunyai gaji lebih dari 600000.
SQL> select nama,kota,gaji
2 from pegawai
3 where (kota='Surabaya' or kota='Jember') and gaji>600000;
SUSUNAN DATA
Order By
Digunakan untuk mengurutkan (sort) data bedasarkan urutan yang dipilih, asc(naik)
atau desc (turun).
Contoh :
? Tampilkan nama pegawai dengan urutan a-z (asc)
-3-
SQL> select nama from pegawai
2 order by nama asc;
Distinct
Untuk menghilangkan nilai ganda, sehingga jika ada nilai yang sama, akan
ditampilkan hanya satu kali.
SQL> select distinct kota from pegawai;
FUNGSI-FUNGSI AGREGASI
AVG
Untuk mencari rata-rata dari seluruh record dengan kualifikasi tertentu (harus
bertipe numerik).
Contoh-contoh berikut mengacu pada tabel pegawai yang telah dibuat
sebelumnya.
? Tampilkan gaji rata-rata dari seluruh pegawai.
SQL> select avg(gaji) from pegawai;
Count
Untuk menghitung jumlah record dengan kualifikasi tertentu.
COUNT(*) menyatakan : Hitung jumlah seluruh record pada suatu tabel yang
berlaku.
Contoh :
? Tampilkan banyaknya pegawai
SQL> select count(*) "Jumlah Pegawai"
2 from pegawai;
Jumlah Pegawai
--------------
6
SUM
Untuk menjumlah nilai dari field tertentu (harus bertipe numerik).
Contoh :
? Tampilkan jumlah seluruh gaji pegawai
SQL> select sum(gaji) "total gaji" from pegawai;
-4-
GROUP BY
Group by menyeleksi himpunan yang dihitung berdasarkan fungsi spesifik,
misal AVG, COUNT, atau lainnya.
Untuk memberikan gambaran secara jelas, akan diberikan contoh-contoh query
sebagai berikut :
Contoh-contoh :
? Ingin diketahui setiap matakuliah diikuiti oleh berapa mahasiswa (peserta)
SQL> select kode, count(nim)"PESERTA"
2 from mhskuliah
3 group by kode;
? Ingin diketahui nilai rata-rata setiap setiap mahasiswa
SQL> select nim,avg(nilai)"NILAI RATA-RATA"
2 from mhskuliah
3 group by nim;
GROUP BY … … HAVING
HAVING berlaku untuk kelompok query GROUP BY, berfungsi sebagaimana
WHERE.
Hanya group yang mempunyai kriteria tersebut yang akan diproses, sedangkan
pada WHERE yang diproses adalah setiap record dalam tabel.
Contoh-contoh :
? Ingin diketahui NIM mahasiswa yang nilai rata-ratanya diatas 75
SQL> select nim,avg(nilai)"NILAI RATA-RATA"
2 from mhskuliah
3 group by nim
4 having avg(nilai)>75;
JOIN
Merupakan suatu teknik untuk mengakses record dari beberapa tabel dan
menggabungkan hasilnya.
Hal yang perlu diperhatikan untuk menggunakan JOIN antara lain :
Tampilan yang diinginkan seperti apa
Melibatkan tabel apa saja
Struktur Foreign Key dari tabel asal ke tabel yang direferensinya harus
sudah didefinisikan dengan benar
Tes hasil join (jumlah record pada hail join harus sesuai)
Dari tiga buah tabel yang telah dibuat, perlu didefinisikan masing primary key
serta foreign key nya. Primary key adalah nama field yang diberi garis bawah.
Keterkaitan antar key tersebut dapat dilihat pada skema berikut :
-5-
Tabel mhs
NIM NAMA ALAMAT KOTA TGL_LAHIR JK
Tabel matakuliah
KODE NAMA_MK SKS SEMESTER
Tabel mhskuliah
NIM KODE NILAI TAHUN
MENGGUNAKAN ALIAS
Alias digunakan untuk menyederhanakan penulisan, agar tidak terlalu panjang.
Sebagai contoh query berikut :
SQL> select mhs.nama,mhskuliah.nilai
2 from mhs,mhskuliah,matakuliah
3 where nilai>75 and
4 mhskuliah.nim=mhs.nim and
5 mhskuliah.kode=matakuliah.kode;
dapat ditulis sebagai :
SQL> select m.nama, mhk.nilai
2 from mhs m, matakuliah mk, mhskuliah mhk
3 where nilai>75 and
4 mhk.nim=m.nim and
5 mhk.kode=mk.kode;
VIEW
View biasa dikenal sebagai virtual tabel, yaitu tabel yang dibangun dari satu atau
beberapa tabel yang sudah ada. Secara fisik VIEW tidak membuat penyimpanan
data seperti tabel, melainkan hanya menyimpan referensi/pointer ke record pada
tabel-tabel yang berkaitan.
Syntax :
CREATE VIEW NamaView (Field1, Field2, … ) AS
SELECT … …
Jadi VIEW dibuat dengan cara menambahkan klausa CREATE VIEW … AS
sebelum SELECT
-6-
Contoh :
? Buat view dengan nama MyView untuk menampilkan nim, nama, dan nilai
dari mahasiwa yang nilainya dibawah rata-rata diurutkan naik berdasarkan
nama
SQL> create view MyView as
2 select mhk.nim,m.nama,mhk.nilai
3 from mhs m, mhskuliah mhk, matakuliah mk
4 where mhk.nim=m.nim and
5 mhk.kode=mk.kode and
6 mhk.nilai< (select avg(nilai) from mhskuliah);
Mengubah VIEW
Untuk dapat mengubah VIEW secara langsung tanpa harus menghapus terlebih
dahulu, digunakan kata kunci CREATE OR REPLACE VIEW. Dengan instruksi ini,
jika terdapat view dengan nama sama, maka akan digantikan oleh view yang
terbaru.
Syntax :
create or replace view MyView as
… …
Menghapus VIEW
VIEW dapat di hapus dengan instruksi DROP
SQL> drop view MyView;
-7-
NIMNYA NAMANYA KOTANYA
------ -------------------- --------------------
110001 Rudi S Surabaya
110002 Joko kuncoro Surabaya
Ternyata, walaupun insert berhasil dilakukan, karena tidak ada “WITH CHECK
OPTION”. Tetapi view yang telah dibuat tidak mampu menghasilkan kondisi
record yang paling mutahir (terupdate). Hal ini disebabkan saat pembuatan view,
terdapat klausa where kota=‘Surabaya’, sehingga terjadi ketidak
konsistenan saat insert where kota=’Bogor’,
Untuk menghindari permasalahan ini, maka saat pembuatan view harus disertai
klausa “WITH CHECK OPTION” “with CheckOption” sebagai berkut :
SQL> Create or replace view Viewku (Nimnya,Namanya,Kotanya) as
2 Select nim,nama, kota
3 from mhs
4 where kota='Surabaya'
5 with check option;
Selanjutnya dilakukan insert record pada viewku sebagai berikut :
Contoh-Contoh :
-8-
9. Tampilkan nim, nama, dan nilai dari mahasiwa yang nilainya dibawah rata-
rata diurutkan naik berdasarkan nama
Tabel–tabel yang digunakan untuk contoh :
Tabel Pegawai
NIP NAMA ALAMAT KOTA GAJI
------ --------------- --------------- --------------- ---------
112230 Burhanudin Jl.Kawi 34 Surabaya 750000
112235 Kristina Jl.Jawa 22 Surabaya 600000
112237 Ninis Jl.Semeru 76 Ponorogo 800000
112220 Anton Subagyo Jl.Janoko 100 Jakarta 1000000
112215 Rina P Jl.Maluku 12 Jember 500000
112240 Ali Mustofa Nganjuk
Tabel Mhs
NIM NAMA ALAMAT KOTA TGL_LAHIR JK
------ ---------------- -------------------- ---------- ---------- ----
110001 Rudi S Jl.Kertajaya 34 Surabaya 10-05-1986 L
110002 Joko kuncoro Jl.Mangga 20 Surabaya 03-02-1989 L
110004 Titin W Jl.Sadewo 34 Ponorogo 01-11-1987 P
110009 Ali Kusuma Jl.Kalimantan 134 Bandung 10-05-1983 L
110007 Anita Sari Jl.Kucing 22 Bogor 30-12-1987 P
110003 Bela Saphira Jl.Lawu 22 Bandung 17-08-1983 P
Tabel Matakuliah
KODE NAMA_MK SKS SEMESTER
------ -------------------- --------- ----------
IF1211 Pemrograman 3 4
IF1213 Basis Data 3 4
MA1201 Kalkulus 2 2
MA1204 Aljabar 2 3
IF1221 Oracle 3 4
MU1233 Bahasa Inggris 2 1
Tabel MhsKuliah
-9-