0% menganggap dokumen ini bermanfaat (0 suara)
51 tayangan26 halaman

Intruksional SQL

Dokumen tersebut memberikan penjelasan mengenai SQL (Structured Query Language) yang merupakan bahasa standar untuk mengakses dan memanipulasi database relasional. Terdiri dari pengantar SQL, struktur dasar seperti klausa select, from, dan where, serta penjelasan mengenai klausa-klausa lain seperti order by, limit, dan fungsi agregasi untuk memanipulasi data.

Diunggah oleh

Aries Wahyu
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPT, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
51 tayangan26 halaman

Intruksional SQL

Dokumen tersebut memberikan penjelasan mengenai SQL (Structured Query Language) yang merupakan bahasa standar untuk mengakses dan memanipulasi database relasional. Terdiri dari pengantar SQL, struktur dasar seperti klausa select, from, dan where, serta penjelasan mengenai klausa-klausa lain seperti order by, limit, dan fungsi agregasi untuk memanipulasi data.

Diunggah oleh

Aries Wahyu
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPT, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 26

INTRUKSIONAL SQL

Tujuan Instruksional
Tujuan Instruksional Umum
memahami fungsi SQL
Tujuan Instruksional Khusus
yaitu dapat melakukan fungsi
SQL
Pengantar SQL
DBMS umumnya menyediakan program khusus (utilitas/Utility) yang dapat digunakan
secara interaktif untuk melakukan berbagai operasi terhadap basis data, seperti
pembuatan table, penghapusan table, penambahan data, pengubahan data, pencarian
data, penghapusan data dan lain-lain. Namun di samping adanya program khusus itu,
DBMS juga umumnya menyediakan sekumpulan perintah (dalam bentuk commandline,
yakni perintah yang dituliskan pemakai) untuk maksud yang sama. Perintah-perintah ini
dapat diberikan (dan dikerjakan oleh DBMS) melalui utilitas lain yang juga disediakan
DBMS atau melalui program/aplikasi yang dibuat sendiri oleh pemakai. Kumpulan
perintah ini dapat disebut sebagai Bahasa Basis Data (Database Language).

Ada banyak sekali bahasa basis data yang pernah dibuat untuk masing-masing DBMS.
Namun akhirnya yang menjadi standar adalah SQL. SQL merupakan kependekan dari
Structured Query Languange (Bahasa Query yang Terstruktur). Istilah Query Languange
memang tidak tepat sama dengan istilah Bahasa Basis Data (Database Languange).
Bahasa Basis Data terdiri atas Data Definition Language (DDL) dan Data Manipulation
Language (DML).
Struktur Dasar
Sebuah ekspresi SQL dasar sebenarnya hanya terdiri atas 3 klausa, yaitu : select, from dan where :
•Klausa select digunakan untuk menetapkan daftar atribut (field) yang diinginkan sebagai hasil query.
•Klausa from digunakan untuk menetapkan table (atau gabungan table) yang akan ditelusuri selama
query data dilakukan.
•Klausa where, yang sifatnya opsional, digunakan sebagai predikat (criteria) yang harus dipenuhi dalam
memperoleh hasil query.

Sintaks (cara penulisan) dari ekspresi SQL dasar dengan 3 klausa tersebut adalah :

• Select A1 [ , A2, … , An]


From t1 [ , t2, … , tm]
[where P]

Dimana :
• A1, A2, …, An merupakan daftar atribut.
• t1, t2, …, tm merupakan daftar table.
• P merupakan predikat query.
• [ ] merupakan tanda optional (boleh digunakan, boleh tidak digunakan).
Struktur Select
Bentuk lain struktur select :

SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]


* | expression [ AS output_name ] [, ...]
[ FROM from_item [, ...] ]
[ WHERE condition ]
[ GROUP BY expression [, ...] ]
[ HAVING condition [, ...] ]
[ { UNION | INTERSECT | EXCEPT } [ ALL ] select ]
[ ORDER BY expression [ ASC | DESC | USING
operator ] [, ...] ]
[ FOR UPDATE [ OF tablename [, ...] ] ]
[ LIMIT { count | ALL } ]
[ OFFSET start ]
Klausa Select
• Untuk melihat semua kolom dari suatu tabel :
SELECT * FROM nasabah;

• Untuk melihat kolom-kolom tertentu:


SELECT nama_nasabah FROM nasabah;

SELECT id_nasabah, nama_nasabah FROM nasabah;

• Secara umum:
SELECT <nama kolom,...> FROM <nama tabel>;

AS digunakan untuk mengganti nama kolom pada tampilan SELECT.


Contoh:
SELECT nama_nasabah AS "Nama Nasabah"
FROM nasabah;

SELECT nama_nasabah AS "Nasabah", alamat_nasabah AS "Alamat Nasabah"


FROM nasabah;
Klausa Form
Klausa ini digunakan untuk menetapkan tabel yang kita jadikan sebagai sumber (lokasi) pencarian data. Sebagaimana
kita ketahui, basis data terdiri atas sejumlah tabel yang saling berhubungan. Karena itu, akan seringkali ada kebutuhan
untuk melakukan query tidak hanya dari satu tabel, tapi dengan merelasikan beberapa tabel sekaligus. Upaya ini
dilakukan karena atribut-atribut yang kita harapkan sebagai hasil query tidak hanya tersedia di sebuah tabel, tapi berada
di sejumlah tabel. Contoh-contoh sebelumnya hanya menunjukkan query terhadap sebuah tabel. Sebagai hasil
implementasi, tabel Kuliah terdiri atas atribtu-atribut (field) kode_kul, nama_kul, sks, semester dan kode_dos. Jika kita
ingin menampilkan data kuliah beserta dosen-dosen yang mengajarkannya, maka kita tidak hanya dapat melakukan
query dari tabel Kuliah saja, karena data seperti nama dosen tidak tersimpan di tabel ini, tetapi berada di tabel Dosen.

Untuk memenuhi keinginan itu, kita dapat menggunakan ekspresi SQL berikut :
select *
from kuliah, dosen
where kuliah.kode_dos = dosen.kode_dos

Perlu diperhatikan, melakukan query terhadap 2 tabel atau lebih tidak bisa dilakukan sembarangan. Tabel-tabel yang
menjadi sumber query harus memiliki keterhubungan (relasi). Pada perintah di atas, keterhubungan itu diwakili oleh
kesamaan nilai pada atribut kode_dos dan kita tahu bahwa atribut ini dimiliki oleh kedua tabel. Ekspresi
‘kuliah.kode_dos’ menunjukkan nilai kode_dos yang berasal dari tabel Kuliah dan ‘dosen.kode_dos’ menunjukkan nilai
kode_dos yang berasal dari tabel Dosen.
Klausa Form
Kita dapat menggunakan nama alias untuk tabel-tabel pada klausa from untuk
menyederhanakan penulisan. Ekspresi query di atas, dengan hasil yang sama, dapat pula
dinyatakan dengan ekspresi sebagai berikut :

select *
from kuliah k, dosen d
where k.kode_dos = d.kode_dos

Terhadap sumber data (tabel query) yang banyak, tanda * (asterisk) pada klausa select akan
mengacu pada semua atribut yang ada di semua tabel yang disebutkan pada klausa from.
Jika kita hanya ingin menampilkan atribut-atribut tertentu saja, maka nama tabel atau
aliasnya dapat kita gunakan untuk memperjelas asal atribut yang kita tampilkan tersebut,
misalnya :

select k.kode_kul, k.nama_kul, d.nama_dos


from kuliah k, dosen d
where k.kode_dos = d.kode_dos
Klausa Where
Digunakan untuk membatasi hasil SELECT yang ditampilkan berdasarkan kondisi yang ditentukan.
Contoh:

SELECT nama_nasabah FROM nasabah


WHERE nama_nasabah = 'Ali Topan’;

SELECT nama_nasabah, alamat_nasabah


FROM nasabah
WHERE id_nasabah = 2;

•Bisa menggunakan >, <, <> (atau !=), >=, <=


•Gunakan AND atau OR untuk lebih dari satu kondisi:

SELECT * FROM nasabah


WHERE nama_nasabah = 'Rina Marsudi'
AND alamat_nasabah = 'Jl. Kusumanegara 30’;

SELECT * FROM nasabah


WHERE nama_nasabah = 'Ali Topan'
OR id_nasabah = 2;
Klausa Where
• Pencarian NULL

1. Gunakan IS NULL untuk mencari NULL:

SELECT * FROM rekening


WHERE kode_cabang IS NULL;

2. Gunakan IS NOT NULL untuk mencari yang tidak NULL:

SELECT * FROM rekening


WHERE kode_cabang IS NOT NULL;

• Pencarian String
1) Gunakan LIKE untuk mencari string tertentu:
SELECT * FROM nasabah
WHERE nama_nasabah LIKE 'Ali Topan’;

2) Bisa menggunakan %, berarti cocok untuk semua substring


SELECT * FROM nasabah
WHERE alamat_nasabah LIKE '%negara%’;

3) Bisa menggunakan _ untuk 1 huruf. Tanda ‘_’ berarti cocok untuk semua karakter pada posisi yang sesuai

SELECT * FROM nasabah


WHERE nama_nasabah LIKE 'Ali T_p_n’;
Klausa Where
1. Menggunakan tambahan klausa between dengan criteria yang berbentuk range
nilai tertentu dengan, misalnya untuk menampilkan record-record kuliah yang
diselenggarakan antara semester 3 hingga semester 5 :

Select *
from kuliah
where semester between 3 and 5;

2. Untuk pencarian yang case insensitive (tidak mempedulikan huruf besar atau
kecil), gunakan ILIKE:

SELECT * FROM nasabah


WHERE nama_nasabah ILIKE '% marsudi';
Order By
Digunakan untuk mengurutkan hasil SELECT.

1)Untuk mengurutkan dari kecil ke besar:


SELECT * FROM nasabah
ORDER BY nama_nasabah;

2) Untuk mengurutkan dari besar ke kecil:


SELECT * FROM nasabah
ORDER BY nama_nasabah DESC;

Jika ada WHERE, maka ORDER BY ditaruh sesudah WHERE.

3) Untuk melakukan pengurutan lebih dari satu kolom, pisahkan dengan tanda koma:
SELECT * FROM nasabah_has_rekening
ORDER BY no_rekening, id_nasabah;

4) Menentukan DESC untuk kolom(-kolom) tertentu, misalnya:

SELECT * FROM nasabah_has_rekening


ORDER BY no_rekening, id_nasabah DESC;

SELECT * FROM nasabah_has_rekening


ORDER BY no_rekening DESC, id_nasabah;
Limit & Offset

Digunakan untuk membatasi jumlah baris yang ditampilkan dalam SELECT.


a. Hanya menampilkan 3 baris pertama:
SELECT * FROM nasabah
ORDER BY id_nasabah
LIMIT 3;

b. Menampilkan 2 baris setelah melewati 2 baris pertama:


SELECT * FROM nasabah
ORDER BY id_nasabah
LIMIT 2 OFFSET 2;

Penggunaan LIMIT sebaiknya selalu digunakan bersama dengan ORDER BY, sehingga
urutan yang ditampilkan akan selalu konsisten. LIMIT dan OFFSET sangat berguna dalam
tampilan yang berbasis web (misalnya dengan menggunakan PHP atau JSP) agar tampilan
data tidak terlalu besar dan bisa lebih rapi. Tampilan data yang banyak bisa diatur dan dibagi
menjadi beberapa halaman (pages).
Fungsi Agregasi
Data agregasi menggunakan fungsi-fungsi berikut ini :
•count untuk mendapatkan nilai banyaknya record hasil query,
•sum untuk mendapatkan nilai total suatu atribut numeric hasil query,
•avg untuk mendapatkan nilai rat-rata suatu atribut numeric hasil query,
•max untuk mendapatkan nilai terbesar dari suatu atribut hasil query,
•min untuk mendapatkan nilai terkecil dari suatu atribut hasil query.

Berikut adalah contoh-contoh penggunaan fungsi agregasi tersebut :


1. Menampilkan banyaknya record mahasiswa :
select count (*) from mahasiswa;

2. Menampilkan banyaknya mahasiswa angkatan 98 :


select count (*) from mahasiswa where nim like ‘98%’

3. Menampilkan total sks untuk kuliah di semester 2 :


select sum(sks) from kuliah where semester = 2;

4. Menampilkan rata-rata sks untuk semua mata kuliah :


select avg(sks) from kuliah;

5. Menampilkan indeks nilai terbesar yang diperoleh mahasiswa untuk mata kliah dengan kode kuliah ‘IF-110’ :
select max(indeks_nilai)
from nilai
where kode_kul = ‘IF-110’
6. Menampilkan tanggal lahir paling tua yang ada di tabel mahasiswa :
select min(tgl_lahir) from mahasiswa
Manipulasi Data
1. Penambahan Record
Sintaks SQL untuk penambahan record baru ke sebuah tabel adalah :
Insert into t [(A1, A2, …, An)]
Values (v1, v2, …, vn)
Di mana :
•t adalah nama tabel yang akan mengalami penambahan record
•A1, A2, …, An adalah nama-nama atribut yang akan diisi nilai
•v1, v2, …, vn adalah nilai-nilai yang akan mengisi atribut-atribut tersebut

Berikut ini adalah contoh perintah SQL untuk melakukan penambahan record baru ke tabel
Mahasiswa :
Insert into Mahasiswa (nim, nama_mhs, alamat_mhs, tgl_lahir)
Values (‘980011’, ‘Siti Zubaedah’, ‘Jl. Guntur Kulon 12, Bogor’, ‘02/03/1973’)
Atau :
Insert into Mahasiswa
Values (‘980011’, ‘Siti Zubaedah’, ‘Jl. Guntur Kulon 12, Bogor’, ‘02/03/1973’)

Jika kita melakukan penambahan record baru dengan perintah berikut :


Insert into Mahasiswa (nim, nama_mhs, alamat_mhs)
Values (‘980011’, ‘Siti Zubaedah’, ‘Jl. Guntur Kulon 12, Bogor’)

Maka atribut tgl_lahir yang tidak disebutkan dalam perintah insert tersebut akan diisi dengan
nilai null.
Manipulasi Data
2. Pengubahan Record
Sintaks SQL untuk pengubahan nilai atribut pada suatu record dari sebuah tabel adalah :
update t
set assignment
[ where P]
Di mana :
•t adalah nama tabel yang akan mengalami pengubahan record
•assignment adalah ekspresi pemberian nilai baru untuk suatu atribut yang akan kita
ubah
•P merupakan predikat atau criteria untuk pemilihan record yang akan dikenai
perubahan, jika klausa where ini tidak digunakan, maka perubahan akan dilakukan
pada semua record di dalam tabel t

Berikut ini adalah perintah SQL untuk mengubah nilai atribut sks untuk mata kuliah
tertentu :
update kuliah
set sks = 4
where kode_kul = ‘IF-310’
Manipulasi Data
3. Penghapusan Record
Sintaks SQL untuk penghapusan record dari sebuah tabel adalah :
delete from t
[ where P ]
Di mana :
•t adalah nama tabel yang akan mengalami penghapusan record
•P merupakan predikat atau criteria untuk menentukan record mana saja yang akan dikenai
penghapusan, jika klausa where ini tidak digunakan, maka penghapusan akan dilakukan
pada semua record di dalam tabel t

Berikut ini adalah perintah SQL untuk menghapus record kuliah tertentu :
delete from kuliah
where kode_kul = ‘IF-310’

Berikut ini adalah perintah SQL untuk menghapus beberapa record di tabel kuliah :
delete from kuliah
where kode_kul like ‘MA%’

sedang perintah SQL berikut ini adalah untuk menghapus semua record dari table Kuliah
(sehingga tabel Kuliah menjadi kosong) :
delete from kuliah;
Manipulasi Data
3. Penghapusan Record
Sintaks SQL untuk penghapusan record dari sebuah tabel adalah :
delete from t
[ where P ]
Di mana :
•t adalah nama tabel yang akan mengalami penghapusan record
•P merupakan predikat atau criteria untuk menentukan record mana saja yang akan dikenai
penghapusan, jika klausa where ini tidak digunakan, maka penghapusan akan dilakukan
pada semua record di dalam tabel t

Berikut ini adalah perintah SQL untuk menghapus record kuliah tertentu :
delete from kuliah
where kode_kul = ‘IF-310’

Berikut ini adalah perintah SQL untuk menghapus beberapa record di tabel kuliah :
delete from kuliah
where kode_kul like ‘MA%’

sedang perintah SQL berikut ini adalah untuk menghapus semua record dari table Kuliah
(sehingga tabel Kuliah menjadi kosong) :
delete from kuliah;
Manipulasi Data
4. Kontrol Transaksi
Operasi-operasi manipulasi data merupakan bagian dari suatu transaksi. Transaksi sendiri
bisa terdiri atas satu atau beberapa operasi menipulasi data. Perintah-perintah menipulasi
data tidak akan benar-benar disimpan (ditulis di dalam disk) jika kita belum memberikan
perintah control transaksi. Perintah control transaksi itu adalah :

commit [ work ]

rollback [ work ]
Jika perintah commit digunakan, maka semua operasi manipulasi basis data akan ke
dalam disk dan transaksi dinyatakan selesei. Sedang jika perintah rollback yang kita
gunakan, maka semua operasi manipulasi basis data yang belum di-commit, akan
dibatalkan (tidak jadi disimpan ke dalam disk). Klausa work sifatnya opsional dan tidak
berpengaruh terhadap pengertian kedua perintah tersebut.
Data Definition Language
Data Definition Language (DDL) berkaitan dengan perintah-perintah untuk pendefinisian objek-
objek basis data. Salah satu objek terpenting adalah tabel. Berikut ini adalah Sintaks SQL untuk
melakukan pembuatan tabel baru di dalam basis data :

create table t (A1 D1, A2 D2, … , An Dn)


di mana :
• t adalah nama tabel yang akan dibuat
• A1, A2, …, An adalah nama-nama atribut yang akan terdapat di dalam tabel t
• D1, D2, …, Dn adalah domain nilai masing-masing atribut tersebut yang ditentukan

berdasarkan tipe datanya


Berikut ini adalah contoh perintah SQL untuk membuat tabel Mahasiswa :
create table mahasiswa
(nim char(6),
nama_mhs varchar(30),
alamat_mhs varchar(60),
tgl_lahir date)
Data Definition Language

tabel yang telah dibuat juga dapat dibatalkan keberadaannya (penghapusan


tabel) dengan menggunakan perintah SQL dengan sintaks berikut ini :
drop table t
contoh penghapusan terhadap tabel Mahasiswa :
drop table mahasiswa
Data Definition Language
Jika terhadap tabel yang kita buat, ingin kita sertakan pula adanya Indeks Primer berdasarkan
atribut tertentu di dalam tabel, maka klausa primary key dapat kita gunakan.

Berikut ini adalah contoh ekspresi SQL untuk pembuatan tabel Mahasiswa sekaligus dengan
pendefinisian Indeks Primer berdasarkan nim :
create table mahasiswa
(nim char(6),
nama_mhs varchar(30),
alamat_mhs varchar(60),
tgl_lahir date,
primary key (nim));

Jika jumlah atribut yang membentuk Indeks Primer ada lebih dari satu, seperti yang ada di tabel
Nilai, contoh ekspresi SQL-nya adalah :
create table nilai
(nim char(6),
Kode_kul char(6),
Indeks_kul char(1),
tgl_lahir date,
primary key (nim, kode_kul));
Data Definition Language
Struktur sebuah tabel juga dapat kita ubah, tanpa harus menghapus dan kemudian membangunnya
kembali dengan definisi struktur yang baru. Perintah pengubahan struktur selain lebih praktis, juga
tidak mengakibatkan hilangnya data yang sudah ada di dalam tabel (jika memang sudah terisi
data). Perubahan struktur ini dapat berupa penambahan atribut atau pengurangan/penghapusan
atribut tertentu. Sintaks SQL untuk perubahan struktur tabel yang berbentuk penambahan atribut
baru ke tabel t adalah :

alter table t add A D

di mana t mewakili tabel, A mewakili nama atribut dan D mewakil tipe data untuk atribut A
tersebut.
Sedang untuk penghapusan atribut dari tabel t, sintaks SQL-nya adalah :
alter table t drop A

Berikut ini adalah contoh ekspresi SQL untuk penambahan atribut baru bernama ip di tabel
Mahasiswa :
alter table mahasiswa add ip numeric (5, 2)

Jika atribut ip ingin dihapus dari tabel Mahasiswa, ekspresi SQL-nya :


alter table mahasiswa drop ip
Latihan dan Evaluasi
Tugas
Tabel : tblpengarang

kd_peng Nama Alamat Kota Jenkel

1 Asadi Jl. Beo 34 Yogya P

2 Rian H. Jl. Solo 123 Yogya P

3 Suadi Marwan Jl. Semangka II/1 Bandung P

4 Siti Halimah Jl. Sukaria 5 Solo W

5 Amir Hamzah Jl. Gajah Mada 18A Kudus P

6 Suparman Jl. Setia 1 Jakarta P

7 Jaja M Jl. Hangtuah 3 Bandung P

8 Saman Jl. Gedong Kuning Yogya P

9 Anwar Junaidi Jl. Tidar 6A Magelang P

10 Fatmawati Jl. Renjana 4 Bogor W


Tabel : tblbuku

Kd_buku Judul Kd_peng

1 Pemrograman C++ 1

2 Pengantar Basis Data 1

3 Panduan Microsoft Office 2

4 Pemrograman Visual dBASE 1

5 System Pakar 4

6 Pemrograman Web 3

7 Visual C++ 6

8 Qbasic 5

9 Pemrograman Pascal 8

10 Pemrograman Delphi 8
1. Tuliskan pernyataan untuk membuat indeks dengan nama
idx_nip yang dikenakan terhadap kolom NIP pada tabel
tblpegawai.
2. Bagaimana cara menghapus indeks idx_nip yang baru saja
Anda ciptakan?
3. Bagaimana perintahnya agar panjang Nama (pada tabel
tblpegawai) tidak lagi berupa 25 karakter, melainkan
menjadi 35 karakter?
4. Bagaimana caranya agar semua kota Yogya yang ada pada
tabel tblpengarang diubah menjadi Yogyakarta?
5. Apa perintah untuk menghapus data pegawai pada tabel
tblpegawai yang NIP-nya adalah 123456?
6. Bagaimana cara untuk menghapus tabel tblpegawai. Apa
perintahnya?

Anda mungkin juga menyukai