Upload
vannhu
View
214
Download
0
Embed Size (px)
Citation preview
SQL (Structured Query Language)
BAB I
PENDAHULUAN
Sistem managemen basis data ( DBMS ) pada umumnya menyediakan utilitas yang dapat
digunakan secara interaktif untuk melakukan berbagai operasi terhadap basis data, seperti
pembuatan tabel, penghapusan tabel, penambahan data, pengubahan data, pencarian data,
penghapusan data, dan lain sebagainya. Untuk kepentingan yang sama DBMS juga memberikan
fasilitas command line, yaitu suatu sekumpulan perintah-perintah yang dituliskan oleh pemakai
sendiri untuk menunjang kepentingannya. Keistimewaan dari command line adalah bahwa
perintah-perintah ini dapat diinputkan dan dieksekusi oleh DBMS melalui utilitas lain yang juga
disediakan oleh DBMS atau melalui program atau aplikasi yang diciptakan oleh pemakai sendiri.
Kumpulan dari perintah-perintah inilah yang kemudian disebut dengan bahasa basis data (
database language ). Perusahaan pembuat perangkat lunak ( vendor ) untuk mengelola basis
data dan development tool yang fungsinya untuk menulis aplikasi basa data terkadang belum
tentu membuat DBMS sendiri, oleh karena itu untuk mempermudah pemakai diperlukan bahasa
basis data yang sifatnya standart, sehingga pemakai dapat menggunakan bahasa tersebut untuk
mengakses data dimanapun, tanpa mempedulikan DBMS yang digunakan. Atau sebaliknya
pemakai dapat mengakses data ysng dikelola oleh suatu DBMS tanpa mempedulikan
development tool yang digunakan. Dengan demikian dapat tercipta ketidak bergantungan antara
DBMS dan development tool.
Terdapat berbagai bahasa basis data yang digunakan oleh masing-masing DBMS, namun
dari sekian banyaknya bahasa tersebut, yang digunakan sebagai standart bahasa adalah SQL (
structured query language ). Pada dasarnya SQL terdiri dari dua kategori bahasa yang masing-
masing diantaranya memiliki karakteristik dan fungsi yang berbeda, kategori yang pertama
adalah DDL ( data definition language ) dan kategori kedua adalah DML ( data manipulation
language ).
Sebagai sebuah standart, SQL mengalami beberapa perubahan seiring dengan
perkembangan teknologi basis data yang ditunjang dengan perkembangan teknologi komputer.
SQL dibuat pada tahun 1970 dengan nama sequel. Standarisasi yang pertama dibuat pada tahun
1986 oleh ANSI ( american national standards institute ) dan ISO ( international standards
organization ) dengan nama SQL-86. Pada tahun 1989 SQL-86 diperbaharui dengan SQL-89.
Standart terakhir yang dibuat dan berlaku sampai sekarang adalah SQL-92 yang dukeluarkan
pada tahun 1992.
Meskipun SQL cenderung merujuk pada query lqnguage, namun perintah-perintah yang
menjadi standart bukan hanya perintah perintah yang berhubungan dengan query data saja.
Selain mencakup DML, SQL juga telah dilengkapi dengan perintah-perintah yang tergolong DDL
dan perintah kontrol transaksi ( transaction control ).
BAB II
DASAR-DASAR SQL
SQL menyediakan peritah dan fungsi dalam jumlah yang cukup banyak untuk menunjang
aktifitas yang berhubungan dengan penelitian dan manipulasi data pada DBMS. Berikut ini akan
diuraikan mengenai dasar-dasar SQL;
v JENIS DEKLARASI PADA SQL
Deklarasi atau perintah dalam SQL dikategorikan menjadi dua yaitu DDL ( data
definition language ) dan DML ( data manipulation language ), kategori ini didasarkan
pada karakteristik dan fungsi dari masing-masing.
A. DDL ( data definition language )
DDL adlah bagian dari SQL yang digunakan untuk mendefinisikan data dan
obyek pada basis data. Perintah-perintah yang tergolong pada kategori ini adalah:
PERINTAH KETERANGAN
CREATE TABLE
CREATE INDEX
ALTER TABLE
DROP TABLE
DROP INDEX
GRANT
Membuat tabel
Membuat index
Mengubah atau menyisipkan kolom ke tabel
Menghapus tabel dari basis data
Menghapus index
Memberi izin akses pada pemakai
B. DML ( data manipulation language )
DML adalah bagian dari SQL yang digunakan untuk memulihkan dan
memanipulasi data. Perintah ini digunakan untuk memberikan query dan perubahan yang
dilakukan di dalam tabel. Perintah-perintah yang tergolong dalam kategori ini adalah :
PERINTAH KETERANGAN
SELECT
INSERT
DELETE
UPDATE
Perintah utama dari SQL. Digunakan untuk memilih
data dari tabel
Menyisipkan baris pada tabel
Menghapus baris pada tabel
Mengubah isi kolom pada tabel
COMMIT
ROLLBACK
Menuliskan perubahan pada disk
Membatalkan perubahan dari perintah COMMIT
v TIPE-TIPE DATA
Tipe data digunakan ketika membuat suatu tabel, pemakai harus menentukan informasi
tertentu pada saat pembuatan tabel. Ada beberapa tipe data yang disimpan dalam basis
data, diantaranya adalah :
INTEGER KETERANGAN
BIT
INT
SMALLINT
TINYINT
DECIMAL / NUMERIC
MONEY
SMALLMONEY
FLOAT
REAL
DATETIME
SMALLDATETIME
Integer dengan niali 0 atau 1
Nilai interger antara –2.147.483.648 s/d
2.147.483.647
Nilai antara –32.768 s/d 32.767
Nilai antara 0 s/d 255
Akurasi angka tetap antara –10^38-1s/d 10^38-1
Data moneter dari –2^63 s/d 2^63-1, dengan
tingkat akurasi hingga sepersepuluh ribu unit
moneter
-214.748,3648 s/d 214.748,3647 dengan tingkat
akurasi sepersepuluh ribu unit moneter
-1.79E+308 s/d 1.79E+308
-3.40E+38 s/d 3.40E+38
1 januari 1753 s/d 31 desember 9999
1 januari 1900 s/d 6 juni 2079
RUPA-RUPA KETERANGAN
CURSOR
TIMESTAMP
UNIQUEIDENTIFIER
Referensi ke kursosr
Angka eklusif yang dikenali oleh basas data
Pengenal global yang eklusif
STRING KETERANGAN
CHAR
VARCHAR
TEXT
Field tetap dengan ukuran max 8000 byte
Field tetap dengan ukuran max 8000 byte
Variabel dengan ukuran 2^31-1 byte
UNICODE STRING KETERANGAN
NCHAR
NVARCHAR
NTEXT
Karakter unicode dengan ukuran 4000 byte
Karter unicode dengan ukuran berfariasi 4000 byte
Variaber berukuran 2^30-1 byte
BINARY STRING KETERANGAN
BINARY
VARBINARY
IMAGE
Ukuran tetap hingga 8000 byte
Ukuran bervariasi 8000 byte
Ukuran bervariasi hingga 2^31-1 byte
v EKSPRESI DAN OPERATOR
Pada SQL operator bertindak berdasarkan operand, yaitu elemen yang dianalisa oleh
operator. Terdapat dua jenis operator, yaitu operator unary yang bertindak berdasarkan satu
operand saja, dan operator binary yang bertindak berdasarkan dua atau lebih operator.
Apabila pada sebuah ekspresi terdapat lebih dari satu operator, maka operator-operator
tersebut akan dievaluasi berdasarkan urutan sebagai berikut ;
♦ + ( positif ), - ( negatif ), ~ ( bitwise NOT )
♦ * ( perkalian ), / ( pembagian ), % ( modulus )
♦ + ( penjumlahan ), + ( penggabungan ), - ( pengurangan )
♦ +, >, <, >=, <=, <>, !=, !>, !<
♦ ^ ( bitwise exclusive OR ), & ( bitwise AND ), | ( bitwise OR )
♦ NOT
♦ AND
♦ ALL, ANY, BETWEEN, IN, LIKE, OR, SOME
♦ = ( penugasan )
BAB III
STRUKTUR DASAR SQL
Sebuah ekspresi SQL dasar sebenarnya hanya terdiri dari tiga klausa yaitu; klausa
where, from, dan where.
• Klausa select : digunakan untuk menetapkan daftar atribut yang diinginkan
sebagai query.
• Klausa from : digunakan untuk menetapkan tabel ( atau gabungan tabel ) yang akan
ditelusuri selama query data dilakukan.
• Klausa where : digunakan untuk predikat ( sebagai kriteria ) yang harus
dipenuhi dalam memperoleh hasil query.
Sintaks ( cara penulisan ) pada ekspresi SQL dasar yang memanfaatkan tiga klausa
tersebut adalah :
select A1 [ ,A2, …,An]
from T1 [ , T2, …,Tn]
[ where P ]
keterangan :
• A1, A2, …, An : daftar atribut
• T1, T2, …, Tn :daftar tabel
• P : predikat query
• [ ] : tanda opsional ( boleh digunakan boleh tidak )
A. KLAUSA SELECT
Sesuai dengan penjelasan diatas bahwa klausa select digunakan untuk menetapkan
daftar atribut yang dinginkan sebagai hasil query, maka berikut ini akan dijelaskan lebih
lanjut tentang klausa select dengan menyertakan contohnya.
Sebagai contoh pada tabel mahasiswa berikut;
TABEL 1 : MAHASISWA
NIM NAMA SEX ASAL TGL.LHR FAK PRODI
9961001 BUDI L KUDUS 02/02/80 MIPA BIOLOGI
9961002 NINA P BLORA 03/11/79 SASTRA INDONESIA
9961003 ABI L ACEH 30/10/78 TI TI
9961004 DONI L BANTUL 23/07/81 MIPA ILKOM
9961005 ANI P PATI 07/06/78 MIPA ILKOM
Contoh perintah select:
v Contoh 1
select NAMA
from MAHASISWA
Ekspresi diatas memerintahkan untuk menampilkan nama mahasiswa dari tabel
mahasiswa yang telah ada. Sehingga tampilannya :
NAMA
BUDI
NINA
ABI
DONI
ANI
v Contoh 2
select NIM, NAMA, SEX
from MAHASISWA
Ekspresi diatas memberikan perintah untuk menampilkan NIM, nama mahasiswa, dan
jenis kelaminnya dari tabel mahasiswa. Tampilannya :
NIM NAMA SEX
9961001 BUDI L
9961002 NINA P
9961003 ABI L
9961004 DONI L
9961005 ANI P
v Contoh 3
select distinct SEX
from MAHASISWA
Pada tabel mahasiswa tersebut jenis kelamin ditulis secara berulang-ulang, dengan
perintah distinct ini maka penulisan kan ditulis sekali saja. Kasus lain ; misalkan dalam sebuah
tabel mahasiswa terdapat nama mahasiswa yang sama maka bila menggunakan ekspresi
distinct maka nama yang sama hanya ditampilkan satu saja. Keunikan diatas hanya untuk nilai
atribut yang disebutkan dalam klausa select, bukan pada keseluruhan atribut yang ada di tabel
yang disebutkan pada klausa form. Tampilan dari contoh di atas adalah :
SEX
L
P
v Contoh 4
select *
from MAHASISWA
Ekpresi diatas menampilkan seluruh atribut yang ada pada tabel yang disebutkan pada
klausa form. Tampilannya :
NIM NAMA SEX ASAL TGL_LHR FAK PRODI
9961001 BUDI L KUDUS 02/02/80 MIPA BIOLOGI
9961002 NINA P BLORA 03/11/79 SASTRA INDONESIA
9961003 ABI L ACEH 30/10/78 TI TI
9961004 DONI L BANTUL 23/07/81 MIPA ILKOM
9961005 ANI P PATI 07/06/78 MIPA ILKOM
v Contoh 5
select NIM, NAMA as NAMA_MHS, SEX as JENIS_KELAMIN
from MAHASISWA
Fungsi dari ekspresi as pada select adalah untuk mengganti tampilan header ( kepala
tampilan tabular ). Tampilannya menjadi :
NIM NAMA_MHS JENIS_KELAMIN
9961001 BUDI L
9961002 NINA P
9961003 ABI L
9961004 DONI L
9961005 ANI P
B. KLAUSA WHERE
Klausa ini digunakan untuk menetapkan predikat atau kriteria yang harus dipenuhi dalam
menampilkan query. Klausa ini boleh tidak digunakan, yang artinya query dilakukan untuk
semua record di dalam tabel yang disebutkan pada klausa from. Berikut ini akan diberikan
contoh beserta penjelasan dari pemanfaatan klausa where. Contoh- contoh yang akan
diberikan mengacu pada tabel kuliah berikut ini ;
TABEL 2 : KULIAH KODE_KUL NAMA_KULIAH SEMESTER SKS KODE_DOSEN
M001 BASIS DATA 6 3 L022
M002 OR-KOM 3 3 L023
P001 SIMULASI 6 2 L024
F001 SISTEM BERKAS 4 3 L025
K001 PANCASILA 3 2 L026
v Contoh 1
select *
from KULIAH
where KODE_KUL = ‘ M001 ‘
Ekpresi diatas digunakan untuk menampilkan semua atribut untuk mata kuliah dengan
kode mata kuliah M001. Nilai M001 diapit dengan tanda kutip tunggal. Penggunaan tanda kutip
ini berlaku untuk nilai yang bertipe string ( sesuai dengan type dari atribut kode kuliah ).
Sehingga tampilannya adalah :
KODE_KUL NAMA_KULIAH SEMESTER SKS KODE_DOSEN
M001 BASIS DATA 6 3 L022
v Contoh 2
Select *
From KULIAH
Where SEMESTER = 6 and SKS >= 3
Ekspresi diatas menerapkan penggunaan predikat dengan operator relasi, serta
mengkombinasikannya dengan operator logika. Maksud dari ekspresi diatas adalah menampilkan
semua atribut dari tabel kuliah yang termasuk dalam kriteria semester 6 dan memiliki jumlah sks
lebih dari atau sama dengan 2. Nilai 6 dan 3 diatas tidak diapit dengan tanda kutip tunggal. Hal
ini dikarenakan nilai tersebut bertype numeric ( sesuai dengan type atributnya ). Tampilannya :
KODE_KUL NAMA_KULIAH SEMESTER SKA KODE_DOSEN
M001 BASIS DATA 6 3 L022
P001 SIMULASI 6 2 L024
v Contoh 3
select *
from KULIAH
where SEMESTER between 3 and 5
Query dengan kriteria yang berbentuk range nilai tertentu dapat menggunakan
tambahan klausa between. Pada contoh diatas akan menampilkan record-record kuliah yang
diselenggarakan antara semester 3 s/d semster 5. Tampilannya adalah :
KODE_KUL NAMA_KULIAH SEMESTER SKS KODE_DOSEN
M002 OR-KOM 3 3 L023
F001 SISTEM BERKAS 4 3 L025
K001 PANCASILA 3 2 L026
v Contoh 4
Select *
From KULIAH
Where NAMA_KULIAH like ‘ S%’
Untuk atribut yang bertype string dapat melakukan pencarian dengan pola tertentu,
dengan memanfaatkan karakter percent ‘ % ‘atau ‘ _ ‘, dengan menambahkan klausa like pada
klausa where. Pada contoh diatas akan menampilkan record-record KULIAH yang nama mata
kuliahnya diawali dengan huruf ‘ S ‘. Sehingga tampilannya adalah :
KODE_KUL NAMA_KULIAH SEMESTER SKS KODE_DOSEN
P001 SIMULASI 6 2 L024
F001 SISTEM BERKAS 4 3 L025
v Contoh 5
Select *
from KULIAH
where NAMA_KULIAH like ‘ _ A% ‘
Ekspresi diatas akan menampilkan record-record pada tabel kuliah tentang mata kuliah
yang huruf / karakter dari nama mata kuliah nya adalah ‘ A ‘. Tamplannya adalah :
KODE_KUL NAMA_KULIAH SEMESTER SKS KODE_DOSEN
M001 BASIS DATA 6 3 L022
K001 PANCASILA 3 2 L026
C. KLAUSA FROM
Klausa ini digunakan untuk menetapkan tabel yang kita jadikan sebagai sumber pencarian
data. Basis data terdiri dari beberapa tabel yang saling berhubungan, oleh karena itu sering kali
dibutuhkan query dari satu tabel atau dari lebih dari satu tabel sekaligus. Atribut-atribut yang
akan kita tampilkan dalam hasil query tidak hanya berasal dari satu tabel , namun bisa jadi dari
sejumlah tabel, pada kasus seperti inilah klausa from akan sangat berperan penting. Pada
contoh-contoh terdahulu hanya ditampilkan query dari satu tabel. Namun untuk ulasan kali ini
akan diberikan contoh query yang menggambarkan hubungan antar tabel.
TABEL 3 : DOSEN
KODE_DOSEN NAMA_DOSEN STATUS ASAL
L022 ISMAYA TETAP MEDAN
L023 GUNAWAN TETAP LAMPUNG
L024 BUDIHARJO KONTRAK SRAGEN
L025 WARDATI TETAP SEMARANG
L026 HARTATI KONTRAK JAKARTA
Tabel dosen diatas akan direlasikan dengan tabel kuliah yang telah dibuat sebelumnya.
v Contoh 1
select *
from KULIAH, DOSEN
where KULIAH . KODE_DOSEN = DOSEN . KODE_DOSEN
Untuk melakukan query antara dua tabel atau lebih, tidak bisa dilakukan dengan
sembarangan. Tabel_tabel yang akan dijadikan query haruslah memiliki hubungan. Pada contoh
diatas hubungan pada tabel kuliah dengan tabel dosen diwakili oleh kode dosen, dimana atribut
ini dimiliki oleh kedua tabel tersebut. Tampilannya adalah :
KODE_KUL NAMA_KULIAH SEMESTER SKS KODE_DOSEN NAMA_DOSEN STATUS ASAL
M001 BASIS DATA 6 3 L022 ISMAYA TETAP MEDAN
M002 OR_KOM 3 3 L023 GUNAWAN TETAP LAMPUNG
P001 SIMULASI 6 2 L024 BUDIHARJO KONTRAK SRAGEN
F001 SISTEM BERKAS 4 3 L025 WARDATI TETAP SEMARANG
K001 PANCASILA 3 2 L026 HARTATI KONTRAK JAKARTA
v Contoh 2
Select *
from KULIAH K, DOSEN D
where K . KODE_DOSEN = D . KODE_DOSEN
Ekspresi diatas merupakan contoh penggunaan alias, dimana tabel kuliah dialiaskan dengan
K dan tabel dosen dialiaskan dengan D. tampilan yang akan diperoleh sama dengan tampilan
diatas.
v Contoh 3
select K.KODE_KUL, K.NAMA_KULIAH, D.NAMA_DOSEN
from KULIAH K, DOSEN D
where K . KODE_DOSEN = D . KODE_DOSEN
Ekspresi di atas akan menampilkan record-record pada atribut kode kuliah, nama mata
kuliah dari tabel kuliah dan record-record dari atribut nama dosen dari tabel dosen. Tampilannya
adalah :
KODE_KUL NAMA_KULIAH NAMA_DOSEN
M001 BASIS DATA ISMAYA
M002 OR-KOM GUNAWAN
P001 SIMULASI BUDIHARJO
F001 SISTEM BERKAS WARDATI
K001 PANCASILA HARTATI
v Contoh 4
select K . KODE_KUL as KODE, K . NAMA_KULIAH as KULIAH, D .
NAMA_DOSEN as DOSEN
from KULIAH K, DOSEN D
where K . KODE_DOSEN = D . KODE_DOSEN
and SEMESTER = 4
Ekspresi diatas akan menampilkan record-record pada atribut kode kuliah dengan nama
baru yaitu kode, atribut nama kuliah dengan nama baru yaitu kuliah dan atribut nama dosen
dengan nama baru yaitu dosen. Atribut- atribut tersebut diambil dari tabel kuliah dan tabel
dosen, dengan syarat kuliah yang ditampilkan diajarkan pada semester 4. Tampilanya adalah :
KODE KULIAH DOSEN
F001 SISTEM BERKAS WARDATI
D. PENGURUTAN HASIL QUERY
Pengurutan record-record hasil query disesuaikan dengan struktur penyimpanan yang kita
terapkan pada tabel query. Terdapat dua jenis struktur penyimpanan, yaitu :
1. Struktur penyimpanan heap
Dimana pada struktur penyimpaanan ini hasil query akan ditampilkan berdasarkan
kronologis ( waktu ) penyimpanan.
2. Struktur penyimpanan sekuensial berindeks
Pada struktur penyimpanan ini hasil query akan ditampilkan sesuai dengan atribut
yang menjadi dasar indeks.
Terdapat dua jenis mode pengurutan, yaitu pengurutan naik dan pengurutan turun. Kedua
mode pengurutan tersebut sama-sama mengunakan klausa order by, hanya saja pada
pengurutan turun ditambahkan dengan klausa desc pada klausa order by nya. Berikut ini
adalah contoh pengurutan hasil query;
v Contoh 1
Select *
from KULIAH
order by NAMA_KULIAH
Ekspresi diatas akan menampilkan query dengan urutan naik berdasarkan nama mata
kuliah. Tampilannya adalah :
KODE_KUL NAMA_KULIAH SEMESTER SKS KODE_DOSEN
M001 BASIS DATA 6 3 L022
M002 OR-KOM 3 3 L023
K001 PANCASILA 3 2 L026
P001 SIMULASI 6 2 L024
F001 SISTEM BERKAS 4 3 L025
v Contoh 2
select *
from KULIAH
order by NAMA_KULIAH desc
Ekspresi diatas akan menampilkan query dengan urutan turun berdasarkan nama mata
kuliah. Tampilannya adalah :
KODE_KUL NAMA_KULIAH SEMESTER SKS KODE_DOSEN
F001 SISTEM BERKAS 4 3 L025
P001 SIMULASI 6 2 L024
K001 PANCASILA 3 2 L026
M002 OR-KOM 3 3 L023
M001 BASIS DATA 6 3 L022
Contoh penggunaan klausa dasar SQL, yang melibatkan empat buah tabel sekaligus,
yaitu tabel MAHASISWA, tabel KULIAH, tabel DOSEN serta tabel NILAI;
TABEL 4 : NILAI
NIM KODE_KUL KODE_NILAI
9961001 M001 B
9961001 P001 A
9961002 M002 C
9961002 P001 C
9961003 K001 A
9961004 F001 A
9961004 M002 C
9961005 F001 C
9961005 K001 B
Contoh berikut akan menampilkan kartu hasil studi dari seorang mahasiswa berdasarkan
pada NIM nya.
select
N . NIM, M . NAMA as NAMA_MHS, K . NAMA_KUL, D . NAMA_DOSEN, N . KODE_NILAI
from
MAHASISWA M,
KULIAH K,
DOSEN D,
NILAI N
where N . NIM = M . NIM and
N . KODE_KUL = K . KODE_KUL and
D . KODE_DOSEN = K . KODE_DOSEN and NIM = ‘9961001’
BAB IV
FUNGSI AGREGASI
Fungsi agregasi digunakan untuk menampilkan kebutuhan perolehan data seperti
menampilkan banyaknya record, total nilai suatu atribut, rata-rata nilai atribut, nilai atribut
terbesar atau terkecil , dan lain sebagainya. Macam-macam fungsi agregasi dalam SQL adalah
sebagai berikut :
• Count ; fungsi ini digunakan untuk mendapatkan nilai banyaknya record dari
query.
• Sum ; fungsi ini digunakan untuk mendapatkan nilai total suatu atribut bertipekan
numeric dari query.
• Avg ; fungsi ini digunakan untuk mendapatkan nilai rata-rata suatu atribut
bertipe numeric hasil query.
• Max ; fungsi ini digunakan untuk mendapatkan nilai terbesar dari suatu atribut
hasil query
• Min ; fungsi ini digunakan untuk mendapatkan nilai terkecil dari suatu atribut
hasil query.
Berikut ini akan diberikan contoh-contoh penggunaan fungsi agregasi dalam klausa SQL:
v Contoh 1
Menampilkan banyaknya record dosen
select count ( * )
from DOSEN
v Contoh 2
Menampilkan banyaknya mata kuliah pada semester enam
select count (* )
from KULIAH
where SEMESTER = ‘ 6 ’
v Contoh 3
Menampilkan total sks disemester enam
select sum ( SKS )
from KULIAH
where SEMESTER = ‘ 6 ‘
v Contoh 4
Menampilkan rata-rata sks untuk tiap-tiap semester
select avg ( SKS ) from KULIAH
v Contoh 5
Menampilkan mahasiswa dengan usia termuda
select max ( TGL_LHR )
from MAHASISWA
v Contoh 6
Menampilkan mahasiswa dengan usia tertua
select min ( TGL_LHR )
from MAHASISWA
BAB V
MANIPULASI DATA PADA SQL
Manipulasi data pada SQL merupakan tindakan pengubahan nilai-nilai data pada tabel
yang telah ada sebelumnya. Manipulasi data terdiri dari tindakan penambahan record pada tabel,
pengubahan nilai-nilai atribut, dan penghapusan record.
A. PENAMBAHAN RECORD
Sintak :
insert into T( A1, A2, …, An )
values ( V1, V2, …, Vn )
Keterangan :
• T : merupakan nama tabel yang akan ditambah nilai record pada atributnya.
• A : merupakan nama nama tribut pada tabel yang akan ditambah nilai recordnya.
• V : merupakan nilai-nilai record yang akan dimasukkan.
v Contoh 1
insert into KULIAH (KODE_KUL, NAMA_KULIAH, SEMESTER, SKS, KODE_DOSEN )
values (‘ S001’, ‘KEWIRAAN’, 4, 2, ‘L026’)
Tampilannnya :
TABEL 5 : KULIAH
KODE_KUL NAMA_KULIAH SEMESTER SKS KODE_DOSEN
M001 BASIS DATA 6 3 L022
M002 OR-KOM 3 3 L023
P001 SIMULASI 6 2 L024
F001 SISTEM BERKAS 4 3 L025
K001 PANCASILA 3 2 L026
S001 KEWIRAAN 4 2 L026
Untuk mendapatkan hasil yang sama ekspresi-ekspresi pada contoh klausa SQL diatas
dapat disingkat menjadi sebagai berikut :
insert into KULIAH
values (‘S001’, ‘KEWIRAAN’, 4, 2, ‘L026’)
v Contoh 2
insert into KULIAH
values (‘S002’, ‘ KALKULUS’, 4, 3, ‘L027’)
insert into DOSEN
values (‘L027’, ‘FARIDA’, ‘ KONTRAK’, ‘ KALIMANTAN’)
Tampilannya :
TABEL 6 : KULIAH
KODE_KUL NAMA_KULIAH SEMESTER SKS KODE_DOSEN
M001 BASIS DATA 6 3 L022
M002 OR-KOM 3 3 L023
P001 SIMULASI 6 2 L024
F001 SISTEM BERKAS 4 3 L025
K001 PANCASILA 3 2 L026
S001 KEWIRAAN 4 2 L026
S002 KALKULUS 4 3 L027
TABEL 7 : DOSEN
KODE_DOSEN NAMA_DOSEN STATUS ASAL
L022 ISMAYA TETAP MEDAN
L023 GUNAWAN TETAP LAMPUNG
L024 BUDIHARJO KONTRAK SRAGEN
L025 WARDATI TETAP SEMARANG
L026 HARTATI KONTRAK JAKARTA
L027 FARIDA KONTRAK KALIMANTAN
v Contoh 3
insert into MAHASISWA (NIM, NAMA, SEX, FAK, PRODI )
values ( 9961055, ‘ MAHARANI’, ‘ P’, ‘MIPA’, ‘ ILKOM’ )
Tampilannya :
TABEL 8 : MAHASISWA
NIM NAMA SEX ASAL TGL.LHR FAK PRODI
9961001 BUDI L KUDUS 02/02/80 MIPA BIOLOGI
9961002 NINA P BLORA 03/11/79 SASTRA INDONESIA
9961003 ABI L ACEH 30/10/78 TI TI
9961004 DONI L BANTUL 23/07/81 MIPA ILKOM
9961005 ANI P PATI 07/06/78 MIPA ILKOM
9961055 MAHARANI P MIPA ILKOM
B. PENGHAPUSAN RECORD
Sintak :
delete from T
where ( kondisi / keadaan )
Keterangan :
• T : nama tabel yang akan dihapus salah satu atau beberapa dari
record dalam atributnya.
• Kondisi / keadaan : atribut-atribut beserta record-record yang akan dihapus. Jika
klausa where tidak digunakan maka penghapusan akan dilakukan pada semua record di
dalam tabel.
v Contoh 1
delete from KULIAH
where KODE_DOSEN = ‘L026’ AND KODE_KUL = ‘
K001’
Tampilannya :
TABEL 9 : KULIAH
KODE_KUL NAMA_KULIAH SEMESTER SKS KODE_DOSEN
M001 BASIS DATA 6 3 L022
M002 OR-KOM 3 3 L023
P001 SIMULASI 6 2 L024
F001 SISTEM BERKAS 4 3 L025
S001 KEWIRAAN 4 2 L026
S002 KALKULUS 4 3 L027
v Contoh 2
delete from KULIAH
where KODE_ DOSEN= ‘L026’
Tampilannya :
TABEL 2 : KULIAH
KODE_KUL NAMA_KULIAH SEMESTER SKS KODE_DOSEN
M001 BASIS DATA 6 3 L022
M002 OR-KOM 3 3 L023
P001 SIMULASI 6 2 L024
F001 SISTEM BERKAS 4 3 L025
S002 KALKULUS 4 3 L027
C. PENGUBAHAN NILAI-NILAI ATRIBUT
Pengubahan nilai atribut dapat menggunakan perintah update, perintah ini berfungsi
memperbaharui atau meng-update satu atau lebih dari satu baris atau sekelompok baris didalam
tabel.
Sintak :
update T
set KOLOM = VALUES
where ( kondisi / keadaan )
Keterangan :
• T : nama tabel yang akan mengalami perubahan record
• KOLOM : nama atribut pada tabel yang akan mengalami perubahan nilai record
• VALUES : nilai baru record pada atribut dalam tabel yang akan menggantikan nilai
lama.
• Kondisi / keadaan : keadaan yang menentukan record nama yang akan mengalami
update / perubahan nilai. Jika klausa where tidak digunakan pada ekspresi maka,
perubahan akan dilakukan pada semua record di dalam tabel.
v Contoh 1
update MAHASISWA
set ASAL = ‘ KENDARI’
where NIM = 9961003
Tampilannya :
TABEL 10 : MAHASISWA
NIM NAMA SEX ASAL TGL.LHR FAK PRODI
9961001 BUDI L KUDUS 02/02/80 MIPA BIOLOGI
9961002 NINA P BLORA 03/11/79 SASTRA INDONESIA
9961003 ABI L KENDARI 30/10/78 TI TI
9961004 DONI L BANTUL 23/07/81 MIPA ILKOM
9961005 ANI P PATI 07/06/78 MIPA ILKOM
v Contoh 2
update MAHASISWA
set FAK = ‘ TI’, PRODI = ‘T_KIMIA’
where NIM = 9961002
Tampilannya :
TABEL 11 : MAHASISWA
NIM NAMA SEX ASAL TGL.LHR FAK PRODI
9961001 BUDI L KUDUS 02/02/80 MIPA BIOLOGI
9961002 NINA P BLORA 03/11/79 SASTRA INDONESIA
9961003 ABI L KENDARI 30/10/78 TI TI
9961004 DONI L BANTUL 23/07/81 MIPA ILKOM
9961005 ANI P PATI 07/06/78 MIPA ILKOM
v Contoh 3
update DOSEN
set NAMA_DOSEN = NAMA_DOSEN + ‘ , Ssi ’
where STATUS = ‘ TETAP’
Tampilannya :
TABEL 12 : DOSEN
KODE_DOSEN NAMA_DOSEN STATUS ASAL
L022 ISMAYA, Ssi TETAP MEDAN
L023 GUNAWAN, Ssi TETAP LAMPUNG
L024 BUDIHARJO KONTRAK SRAGEN
L025 WARDATI, Ssi TETAP SEMARANG
L026 HARTATI KONTRAK JAKARTA
L027 FARIDA KONTRAK KALIMANTAN
BAB VI
PEMBUATAN TABEL BARU
Perintah-perintah yang berkaitan dengan pendefinisian obyek-obyek basis data dan
pembuatan tabel baru merupakan perintah-perintah yang tergolong dalam DDL ( data definition
language ). Sebelum memulai membuat suatu tabel baru perlu diketahui tentang tipe data
standart SQL yang berlaku. Bab yang terdahulu telah dibahas mengenai tipe-tipe data yang
berlaku pada SQL. Pada dasarnya terdapat banyak sekali tipe data yang berlaku pada SQL
namun hanya beberapa saja diantaranya yang diakui sebagai tipe data standart, dan diizinkan
untuk digunakan pada periode standarisasi. Berikut ini adalah tipe-tipe data standart yang
berlaku dalam SQL-92 :
• Char (n) : untuk atribut bernilai string dengan panjang tetap
• Varchar (n) : untuk atribut bernilai string dengan penjang fleksibel
• Int atau integer : untuk atribut berniali integer 2 byte
• Smallint : untuk stribut berniali integer 1 byte
• Numeric (p,d) : untuk atribut berniali pecahan fixed point
• Real, double, precision : untuk atribut bernilai pecahan floating point
• Float (n) : untuk atribut bernilai pecahan floating point dengan presisi n
digit
• Date : untuk atribut bernilai penanggalan
• Time : untuk atribut bernilai waktu
Sintak klausa pembuatan tabel baru :
crete table T ( A1 D1, A2 D2, …, An Dn )
Keterangan :
• T : merupakan nama tabel yang akan dibuat
• A1, A2, …, An : merupakan nama-nama tribut yang akan terdapat di dalan tabel
• D1, D2, …, Dn : merupakan domain nialai mesing-masing atribut tersebut yang
ditentukan berdasarkan tipe datanya.
SQL :
1. Perintah dasar (bentuk dasar & bentuk lengkap)
2. Opsi DISTINCT
3. Mengganti tampilan judul kolom (alias untuk nama kolom)
4. Kondisi dengan Klausa WHERE dan HAVING
5. Kondisi jamak dengan operator AND, OR dan BETWEEN
6. Pola string dengan wildchar %, _ dan operator LIKE
7. Query dari beberapa tabel menggunakan WHERE
8. Aliasing nama tabel
9. Query dengan Operasi JOIN dan UNION
10. Pengurutan hasil Query
11. Query dengan fungsi agregasi
12. UPDATE, DELETE dan INSERT
13. SUBQUERY
JOIN :
mysql> help join
Name: 'JOIN'
Description:
MySQL supports the following JOIN syntaxes for the
table_references part of SELECT statements and multiple-table
DELETE and UPDATE statements:
table_reference, table_reference
table_reference [INNER | CROSS] JOIN table_reference [join_condition]
table_reference STRAIGHT_JOIN table_reference
table_reference LEFT [OUTER] JOIN table_reference [join_condition]
table_reference NATURAL [LEFT [OUTER]] JOIN table_reference
{ OJ table_reference LEFT OUTER JOIN table_reference
ON conditional_expr }
table_reference RIGHT [OUTER] JOIN table_reference [join_condition]
table_reference NATURAL [RIGHT [OUTER]] JOIN table_reference
table_reference is defined as:
tbl_name [[AS] alias]
[[USE INDEX (key_list)]
| [IGNORE INDEX (key_list)]
| [FORCE INDEX (key_list)]]
join_condition is defined as:
ON conditional_expr | USING (column_list)
Examples:
mysql> SELECT table1.* FROM table1
-> LEFT JOIN table2 ON table1.id=table2.id
-> WHERE table2.id IS NULL;
mysql>