Perjanjian
ACCESS tidak membedakan huruf besar atau kecil (case insensitive) Semua sama : SELECT, select, Select Termasuk Nama Object : SISWA,
siswa, Siswa dianggap sama kecuali
LITERAL menggunakan tanda “…”, tergantung penulisan: “Ini”, “INI”,”ini” dianggap berbeda
Perjanjian String adalah sesuatu yang berada
dalam/diapit tanda petik ganda atau tunggal
Nama obyek tidak boleh mengandung spasi Jika terpaksa menggunakan spasi, maka dapat
menggunakan tanda kurung persegi [ ... ] Contoh : [Nama Depan], [Dosen Pembimbing]
Dalam contoh program, key word (ditulis sesuai dengan yang tertulis) dicetak dalam huruf besar (boleh ditulis huruf kecil) Contoh : SELECT kolom FROM tabel WHERE a=b
Perjanjian String, bilangan dapat digabung
dengan tanda gabung ampersand (&) “Nama : “ & nama & “ umur “ & umur
Setiap perintah SQL harus diakhiri dengan tanda titik koma (;) Kecuali yang dituliskan sebagai string
parameter pada suatu bahasa pemrograman tertentu, tidak diperlukan tanda titik koma
ACCESS 2003 juga tidak memerlukan tanda titik koma
Tabel - Database Pada percobaan-percobaan berikut
akan menggunakan DBMS ACCESS 2003
Nama Database Siswa.mdb Nama-nama Tabel
Siswa Data Master Dosen Data Master TA Data Transaksi Jurusan Data Master Dual Dummy Table
Konsep: ERD
Siswa Dosen
TAN M
PEMBIMBIN
GBIMBINGAN
Judul
PerwalianN 1
WALISISWANRP
Alamat
Umur
Kelas
Nama
Lahir
NamaNIP
Alamat
Gaji
Jurusan
JurusanSiswa
JurusanDosen
NN
1 1
KodeJurusan
Kajur
Sekjur
1
11
1
Atasan
N
1
Pendahuluan
SQL - Standard Database Relasi SQL Structured Query Language SEQUEL Structured English
QUEry Language Perintah untuk operasi Database
dalam bentuk Berupa satu perintah tunggal untuk
satu operasi yang ditulis dalam satu baris (biasanya) perintah
Sejarah SQL Pertama kali dibuat oleh IBM, dan
digunakan dalam DB2 Pertama kali distandardisasi oleh ANSI
tahun 1986 (ANSI SQL 1986) Diperbaiki dalam standard SQL ’92
kemudian SQL’99 Terakhir ??? ACCESS 2003 menggunakan stadard SQL
’92
DBMS DBMS - Database Management System Software untuk manajemen database Software yang disertakan pembuat
database/pihak lain untuk menjalankan sistem database
Secara umum, kalau mengatakan DBMS, artinya File Database Database Engine/Server Database Perintah-perintah Database (SQL atau
lainnya) Administrasi Database Dan sebagainya
DBMS dan SQL SQL dalam DBMS tertentu tidak dapat
murni mengikuti standard SQL karena Tergantung DBMS Tergantung Kemampuan Tergantung Riwayat/Sejarah
Akibatnya, secara umum Sebagian SQL akan standard/sama untuk
semua DBMS Sebagian SQL akan berbeda untuk semua
DBMS Diperlukan pengetahuan tertendiri untuk
masing-masing DBMS
Apakah tidak bisa mengoperasikan database tanpa SQL ?
Cara umum untuk menjalankan database tanpa perintah SQL adalah dengan menggunakan cara Navigasi Database atau RecordSet Membuka Tabel Menentukan Filter Mencari Mengubah/Menghapus/Menambah data Bergeser/berpindah/navigasi pointer/cursor
naik atau turun Mendeteksi awal atau akhir record (baris) Menutup tabel
Sering juga dikenal dengan nama Cursor
Mengapa Harus SQL ?Apa kelebihan SQL ? SQL adalah perintah yang berbentuk satu
perintah untuk satu proses/operasi database Lebih mudah memberikan perintah dibandingkan
harus mengoperasikan database (misalkan dengan cara navigasi)
Memiliki variasi perintah yang cukup banyak Memungkinkan melakukan operasi yang sangat
beragam Standard, mudah mengoperasikan SQL pada
berbagai jenis DBMS (seharusnya) Saat ini, kompatibilitasnya masih terbatas
Pembagian Perintah SQL Data Retrieval Digunakan untuk
mengambil/membaca Database SELECT
DDL (Data Definition Language) Digunakan untuk menyatakan suatu Database
CREATE, ALTER, DROP, RENAME, TRUNCATE DML (Data Manipulation Language) Digunakan
untuk pengubahan Database INSERT, UPDATE, DELETE, MERGE
Transaction Control Digunakan untuk mengendalikan Transaksi
COMMIT, ROLLBACK, SAVEPOINT DCL (Data Control Language) Digunakan untuk
mengendalikan Database GRANT, REVOKE
Penulisan SQL SELECT Dasar Pembagian/Kemampuan perintah
SELECT Proyeksi : Memilih Kolom
dinyatakan dalam klausa SELECT Seleksi : Memilih Baris
dinyatakan dalam klausa WHERE Join : Penggabungan tabel
dinyatakan klausa FROM Format :
SELECT *|{[DISTINCT] kolom|ekspresi [AS alias],…} FROM tabel [AS alias]
Proyeksi – Seleksi – Join
NRP
NAMA
ALAMAT
KELAS
JURUSAN
123 Eko Malang 3 1
124 Dian Blitar 2 1
KODE JURUSAN
KAJUR SEKJUR
1 ELKA 222 333
JOIN
Proyeksi
Seleksi
JURUSANSISWA
Cari NAMA dan ALAMAT dari SISWA yang JURUSAN ELKA
Klausa SELECT - Proyeksi
SELECT artinya memilih kolom mana yang akan ditampilkan (proyeksi)
Dapat terdiri dari : List Kolom List Semua Kolom (*) Ekspresi (operasi aritmatika) Fungsi (memanggil fungsi) Alias (AS Nama atau AS [Nama Alias]) Distinct
Hasil Query
Hasil MenjalankanPerintah SQL
Klik pada Panah untukkembali ke Mode Perintah SQL
Klik SQL View
Contoh Klausa SELECT List Kolom
SELECT nama, alamat FROM siswa SELECT siswa.nama, dosen.nama FROM
siswa,dosen List Semua Kolom (*)
SELECT * FROM siswa SELECT siswa.*, dosen.nama FROM
siswa,dosen Ekspresi (operasi aritmatika)
SELECT gaji*0.1+5000 FROM dosen
Contoh Klausa SELECT (lanj.)
Fungsi (memanggil fungsi) SELECT ucase(nama), format(lahir,”DD-MM-
YYYY”) FROM siswa SELECT cint((now-lahir)/365.25) FROM siswa
Alias (AS Nama atau AS [Nama Alias]) SELECT nama AS Mahasiswa FROM siswa SELECT gaji*0.1 AS bonus FROM dosen SELECT nama AS [Dosen Pembimbing] FROM
dosen Distinct – menampilkan satu untuk yang
sama SELECT DISTINCT kelas FROM siswa
Klausa FROM – Tabel/Join FROM menunjukkan nama Tabel
yang akan ditampilkan/dioperasikan
Dapat berupa Tabel tunggal Join Query Inline view Alias
Contoh Klausa FROM Tabel tunggal
SELECT * FROM siswa SELECT * FROM dosen
Join SELECT * FROM siswa, dosen
Query SELECT * FROM qsiswa
Inline view SELECT * FROM (SELECT * FROM siswa)
Alias SELECT * FROM dosen AS d1, dosen AS d2
Contoh Perintah SQL Melihat seluruh isi suatu tabel
SELECT * FROM siswa; Melihat hanya sebagian kolom dari suatu tabel
SELECT nama,alamat FROM siswa; Melihat sekaligus melakukan operasi pada suatu
kolom dan memberikan alias pada suatu kolom SELECT nama AS Dosen,gaji,gaji*0.10 AS Bonus FROM
dosen; Melakukan penggabungan dengan suatu literal
dan kolom SELECT “Nama : “ & nama FROM siswa;
Mengambil hanya nilai-nilai yang berbeda/membatasi hasil yang muncul (semua siswa bekerja pada jurusan apa saja)
SELECT DISTINCT jurusan FROM siswa;
Soal/Tugas Tampilkan gaji semua dosen dalam
bentuk rupiah Contoh Nama Gaji ANDI Rp. 5000000 Daftar gaji pada tabel dalam dollar
Tampilkan Kemungkinan nilai nominal gaji berapa saja yang dibayarkan
Klausa WHERE - Seleksi Memilih baris data mana saja yang akan
ditampilkan (seleksi) Format :
SELECT *|{[DISTINCT] kolom|ekspresi [AS alias],…} FROM table [WHERE kondisi];
WHERE menyatakan batasan apa saja yang diberikan
Kondisi : Perbandingan - =, <>, >, <. <=, >= Range - IN(…), BETWEEN … AND … Boolean - AND, OR, NOT NULL - IS NULL, IS NOT NULL Kemiripan Like ? Untuk satu huruf, * untuk
semua/segala
Contoh Klausa WHERE Perbandingan - =, <>, >, <. <=,
>= SELECT * FROM dosen WHERE
nama=“Joko” SELECT * FROM dosen WHERE gaji>200
Range - IN(…), BETWEEN … AND … SELECT * FROM siswa WHERE kelas
BETWEEN 2 AND 3 Boolean - AND, OR, NOT
SELECT * FROM data WHERE a=10 AND b=20
Contoh Klausa WHERE (lanj.)
NULL - IS NULL, IS NOT NULL SELECT * FROM dosen WHERE atasan IS
NULL Kemiripan LIKE ? Untuk satu huruf, * untuk
semua/segala SELECT * FROM siswa WHERE nama LIKE "?ntok
Maringis" SELECT * FROM siswa WHERE nama LIKE “B*” SELECT * FROM siswa WHERE nama LIKE “?A*”
Soal/Tugas
Tampilkan daftar siswa kelas 2 dan 3
Cari daftar mahasiswa yang memiliki kata wati pada namanya dan tampilkan hanya nama dan alamatnya
Klausa ORDER BY Menyatakan hasil akan diurutkan
menurut kolom mana (bisa lebih dari satu kolom) ASC (atau tidak disebutkan/default)
menyatakan urutan naik DESC menyatakan urutan turun
Format : SELECT *|{[DISTINCT] kolom|ekspresi
[AS alias],…} FROM table [WHERE kondisi] [ORDER BY kolom [ASC|DESC]];
Contoh Perintah SQL Membaca data semua siswa dengan kelas 3
SELECT * FROM siswa WHERE kelas=3; Membaca data lengkap siswa dengan nama
Dimas Ananto SELECT * FROM siswa WHERE nama="Dimas Ananto";
Membaca dosen yang memiliki gaji >= 200 dollar SELECT * FROM dosen WHERE gaji>=200;
Membaca data dosen memiliki gaji dari 100 sampai 200 dollar
SELECT * FROM dosen WHERE gaji BETWEEN 100 AND 200;
Membaca data siswa yang memiliki huruf kedua dari nama adalah ‘D’, dan urutkan berdasarkan nama dengan urutan menurun
SELECT * FROM siswa WHERE nama like "?D*“ ORDER BY nama DESC;
Fungsi Single-Row Input fungsi dari satu baris/record, dan
menghasilkan satu per baris Input banyak baris, menghasilkan
banyak baris yang sama Mengolah data items Dapat menerima argumen dan
menghasilkan satu nilai Mengeluarkan nilai untuk setiap baris data Dapat mengubah tipe data Dapat dalam bentuk bersarang (nested) Dapat menerima argumen berupa data
kolom atau suatu ekspresi
Contoh Fungsi Single-row Karakter (lcase, ucase, initcap, concat, instr)
SELECT lcase(nama) FROM dosen; Bilangan (cint, int, mod)
SELECT gaji,cint(gaji/100) FROM dosen; Tanggal (now, date, time, add_months,
round, trunc) SELECT now,now+1 AS besok FROM dual;
Konversi implisit, atau eksplisit (val, cdate, cstr) SELECT format(date,"dd-mm-yyyy") FROM dual;
Soal/Tugas
Tampilkan tanggal 1 minggu kemudian
Tampilkan Nama dan Tanggal Lahir dengan format DD-MM-YYYY dari siswa yang tidak memiliki dosen wali
Fungsi Multi-Row
Melakukan operasi pada sekelompok baris data untuk menghasilkan sebuah data
Input fungsi dari banyak baris, menghasilkan satu atau banyak baris (Gouping, Fungsi Agregat)
Contoh Fungsi Multi-row
count(*) count(nama_kolom) Sum(nama_kolom) Min(nama_kolom) max(nama_kolom) avg(nama_kolom)
Soal/Tugas Hitung jumlah seluruh siswa Hitung jumlah pegawai yang tidak
memiliki atasan Hitung total gaji dosen dalam rupiah Berapa gaji terendah, gaji tertinggi
dan rata-rata gaji dosen Hitung jumlah siswa tiap jurusan Hitung total gaji dosen tiap jurusan
Menggabungkan Tabel (Join) Alasan
Sering diperlukan melakukan beberapa operasi database untuk mendapatkan suatu informasi yang diinginkan
Perintah SQL dibatasi hanya berupa satu perintah/operasi saja untuk mendapatkan suatu hasil yang diinginkan
Tidak dapat menggunakan beberapa perintah/operasi sekaligus
Diperlukan cara untuk menggabungkan beberapa perintah/operasi menjadi satu perintah/operasi tunggal
Contoh Alasan Join Pertanyaan
Siapa nama dosen wali dari siswa yang namanya Yuliwati
Jawab Cari Dosen Wali Yuliwati dari tabel Siswa
SELECT [dosen wali] FROM siswa WHERE nama= “Yuliwati”
Ternyata informasi Dosen Wali dari tabel Siswa masih dalam bentuk Kode NIP=1235
Cari mama Dosen Wali pada tabel Dosen menggunakan kunci pencarian NIP
SELECT nama FROM dosen WHERE NIP=1235
Contoh Alasan Join (lanj.) Dengan menggunakan join,
pertanyaan sebelumnya dapat dicari dengan sekali perintah/proses saja Cari nama dosen wali siswa dari tabel
siswa sekaligus tabel dosen, yang nama siswa=“Yuliwati” dan kode dosen wali siswa = kode NIP dari dosen
SELECT s.Nama as Siswa, d.Nama as Wali FROM siswa as s, dosen as d WHERE s.nama=“Yuliwati” AND s.wali=d.nip
Join (lanjutan)
Kegunaan : Digunakan untuk menampilkan dari
banyak tabel Mengkombinasikan seluruh
kemungkinan data antar banyak tabel Mendapatkan informasi yang
tersimpan pada tabel lain (melakukan relasi antara satu tabel dengan tabel lainnya)
Jenis Join Cross/kartesian join inner/equi join
natural join join using
non equi join outer join
left outer join right outer join full outer join
ACCESS 2003 tidak memiliki Full Outer Join self join
Kartesian/Cross Join
Digunakan untuk mendapatkan berbagai kemungkinan kombinasi
Hasil Join Kolom berupakan gabungan dari
semua tabel yang di-join Baris merupakan semua kombinasi
(jumlah perkalian) dari semua baris yang di-join
Contoh SELECT * FROM siswa, dosen
Contoh : Cross Join
SELECT * FROM A, B Kolom dijadikan satu antara A dan B Baris data dikombinasikan (4x4=16)
Inner/Equi Join Digunakan untuk mendapatkan
informasi dari beberapa tabel berdasar relasi yang sesuai
Inner artinya informasi relasi ada pada setiap tabel SELECT * FROM siswa INNER JOIN dosen
ON siswa.wali=dosen.nip Equi artinya relasi dinyatakan dengan
bentuk persamaan (sama dengan, =) SELECT * FROM siswa, dosen WHERE
wali=nip
Contoh : Inner/Equi Join
SELECT * FROM A INNER JOIN B ON A.X=B.V
SELECT * FROM A, B WHERE A.X=B.V Hasil baris, nilai X yang sama dengan V
Inner/Non Equi Join Sama dengan Inner/Equi Join, hanya
menggunakan bentuk pertidak samaan, atau sering dalam bentuk range
Inner Join SELECT * FROM siswa INNER JOIN dosen ON
siswa. wali>dosen.nip Non Equi Join artinya relasi dinyatakan
dengan bentuk pertidaksamaan (>, <, <>, >=,<=) SELECT * FROM nilai,konversi WHERE
na>=min AND na<=max SELECT * FROM nilai,konversi WHERE na
BETWEEN min AND max
Outer Join
Digunakan untuk mendapatkan informasi dari suatu tabel yang data-nya sesuai dan tidak sesuai
Left Outer Join
Mencari informasi yang relasi ada pada ke dua sisi tabel dan yang relasi tabel yang data pada sisi kiri tidak dijumpai pada sisi kanan
Tampilkan data siswa yang memiliki dosen wali sekaligus yang tidak SELECT * FROM siswa LEFT JOIN dosen
ON siswa.wali=dosen.nip
Contoh : Left Outer Join
SELECT * FROM A LEFT JOIN B ON A.X=B.V
Seluruh data A ditampilkan dan data B yang sesuai dengan relasi X=V
Yang tidak sesuai, kosongkan
Right Outer Join
Mencari informasi yang relasi ada pada ke dua sisi tabel dan yang relasi tabel yang data pada sisi kanan tidak dijumpai pada sisi kiri
Tampilkan data dosen yang sebagai dosen wali dan yang tidak SELECT * FROM siswa RIGHT JOIN
dosen ON siswa.wali=dosen.nip;
Contoh : Right Outer Join
SELECT * FROM A RIGHT JOIN B ON A.X=B.V
Seluruh data B ditampilkan dan data A yang sesuai dengan relasi X=V
Yang tidak sesuai, kosongkan
Self Join
Sama dengan join lainnya, hanya melibatkan tabel yang sama
SELECT d.nama as Dosen, a.nama as Atasan FROM dosen as d, dosen as a WHERE d.atasan=a.nip
Contoh Join Kartesian, untuk mendapatkan seluruh kombinasi data
SELECT * FROM siswa, dosen; Inner, relasi antar tabel dengan nilai data yang sama
tepat SELECT * FROM siswa INNER JOIN dosen ON
siswa.wali=dosen.nip Nonequijoin, untuk mencari/membandingkan nilai
antara SELECT * FROM nilai,konversi WHERE na>=min AND
na<=max; outer join, relasi dengan tabel yang kemungkinan nilai
datanya tidak ada SELECT * FROM siswa LEFT JOIN dosen ON
siswa.wali=dosen.nip; self join, relasi dengan diri sendiri
SELECT d.nama as Dosen, a.nama as Atasan FROM dosen as d, dosen as a WHERE d.atasan=a.nip
Soal/Tugas
Tampilkan Nama siswa lengkap dengan nama Jurusan
Tampilkan Nama siswa pada Jurusan “Elektronika” dan “Elektro Industri”
Tampilkan Nama siswa yang ketua jusannya “Mamat Darmawan”
Klausa GROUP BY Mengoperasikan sekelompok baris
data menjadi bentuk group data Fungsi Group (Multi-row Function)
AVG, COUNT, MAX, MIN, SUM, … Format :
SELECT [kolom,] fungsi_group(kolom),… FROM tabel [WHERE kondisi] [GROUP BY kolom] [HAVING kondisi_group] [ORDER BY kolom];
Aturan Group Penggunaan Multi-row Function tidak
harus menggunakan klausa GROUP BY
Contoh SELECT max(kelas) FROM siswa GROUP BY
jurusan Boleh
SELECT count(*) FROM siswa SELECT sum(gaji) AS [Total Gaji], min(gaji)
AS [Gaji Terendah], max(gaji) AS [Gaji Tertinggi] FROM dosen WHERE jurusan=1
Aturan Group (lanjutan) Penggunaan Single-row Function
bersama-sama dengan Multi-row Function harus menggunakan klausa GROUP BY List pada GROUP BY sama dengan semua
Single-row Function yang digunakan Contoh
SELECT jurusan,sum(gaji) FROM dosen GROUP BY jurusan
Salah SELECT kelas,count(*) FROM siswa
Aturan Group (lanjutan)
Penggunaan klausa GROUP BY harus menggunakan Multi-row Function
Contoh SELECT count(*) FROM siswa GROUP BY
kelas Salah
SELECT nama FROM siswa GROUP BY jurusan
Aturan Group (lanjutan) Penggunaan klausa GROUP BY
tidak harus menggunakan Single-row Function
Contoh SELECT wali, count(nama) FROM
siswa GROUP BY wali Boleh
SELECT count(*) FROM siswa GROUP BY kelas
Klausa HAVING
Identik dengan klausa WHERE Digunakan untuk membatasi
jumlah /memilih baris yang tampil Klausa WHERE digunakan pada
operasi Single-row Klausa HAVING digunakan pada
operasi Multi-row
Aturan Klausa HAVING
Penggunaan klausa GROUP BY tidak harus menggunakan klausa HAVING
Contoh SELECT count(*) FROM siswa GROUP BY
kelas HAVING count(*)>10 Boleh
SELECT count(*) FROM siswa GROUP BY kelas
Aturan Klausa HAVING (lanj.)
Penggunaan klausa HAVING tidak harus menggunakan GROUP BY
Contoh SELECT sum(gaji) FROM dosen GROUP
BY jurusan HAVING sum(gaji)>500 Boleh
SELECT count(*) FROM siswa HAVING count(*)>10
Aturan Klausa HAVING (lanj.)
Seleksi Single-row harus menggunakan klausa WHERE
Contoh SELECT sum(gaji) FROM dosen GROUP
BY jurusan WHERE jurusan=1 Salah
SELECT sum(gaji) FROM pegawai GROUP BY jurusan HAVING jurusan=1
Aturan Klausa HAVING (lanj.)
Seleksi Multi-row harus menggunakan Klausa HAVING
Contoh SELECT sum(gaji) FROM dosen GROUP
BY jurusan HAVING sum(gaji)<500 Salah
SELECT sum(gaji) FROM dosen GROUP BY jurusan WHERE sum(gaji)<500
Contoh Group Menghitung jumlah dosen setiap jurusan dan
mengurutkan hasilnya berdasar nomor jurusan SELECT Jurusan,count(nip) as Jumlah FROM dosen
GROUP BY jurusan ORDER BY jurusan; Menghitung total gaji pegawai dari
departemen nomor 2, 3, dan 4, tetapi hanya menampilkan yang total setiap jurusannya lebih besar dari 500 dollar SELECT Jurusan,sum(sal) as [Total Gaji] FROM
dosen WHERE jurusan IN(2,3,4) GROUP BY jurusan having sum(sal)>500 ORDER BY jurusan;
Soal/Tugas
Tampilkan total gaji dalam rupiah yang harus dibayarkan pada jurusan “Elektronika” dan “Teknik Komputer”
Tampilkan Jumlah siswa tiap Jurusan lengkap dengan nama Jurusan-nya
Subquery Mencari sesuatu yang berasal dari hasil
query lainnya Petunjuk
Subquery diawali dengan kurung buka dan diakhiri dengan kurung tutup
Subquery diletakkan pada sisi kanan dari suatu perbandingan
Penggunaan order by dalam subquery tidak diperlukan, kecuali untuk melakukan analisa top-n
Gunakan operator yang sesuai dengan hasil dari subquery. Single-row operator dengan single-row subquery, multiple-row operator dengan multiple-row subquery
Contoh Subquery Siapa saja pegawai yang gajinya lebih besar dari
gaji Adam ? Untuk itu, harus dicari dulu, berapa gaji Adam ?
SELECT * FROM dosen WHERE gaji>(SELECT gaji FROM dosen WHERE nama="Permata Sari");
Hasil subquery harus satu baris, menggunakan perbandingan
SELECT * FROM dosen WHERE gaji=(SELECT gaji FROM dosen WHERE nama="Permata Sari");
Hasil subquery boleh banyak baris, menggunakan range
SELECT * FROM dosen WHERE gaji in (SELECT gaji FROM dosen WHERE jurusan=2)
Salah, karena operator perbandingan digunakan pada subquery yang menghasilkan banyak baris
SELECT * FROM dosen WHERE gaji=(SELECT gaji FROM dosen WHERE jurusan=2);
Soal/Tugas
Tampilkan Nama siswa yang memiliki satu jurusan dengan siswa yang bernama “Titik Priyanti”
Inline View
Digunakan untuk mengantikan list Tabel menjadi perintah QUERY
Untuk melakukan operasi yang tidak berasal dari tabel aslinya
Menyederhanakan perintah yang rumit
Contoh Inline View Membaca data pegawai dengan nomor
departemen>2, yang berasal dari suatu inline view SELECT * FROM (SELECT nama,jurusan FROM
dosen) WHERE jurusan>2 Melakukan operasi join hasil dari suatu inline
view SELECT d.*,j.jurusan FROM (SELECT nama,jurusan
FROM dosen WHERE gaji>100) as d,(SELECT kode,jurusan FROM jurusan WHERE kode>2) as j WHERE d.jurusan=j.kode
Melakukan manipulasi data pada suatu inline view UPDATE (SELECT nama,gaji FROM dosen WHERE
jurusan=2) SET gaji=100 WHERE gaji=110
Parameter Value
Subsitusi Variabel Memasukkan suatu nilai parameter tiap kali
menjalankan perintah SQL Contoh
SELECT * FROM dosen WHERE gaji>BatasGaji; SELECT Nama, format(lahir,"DD-MM-YYYY") as
[Tanggal Lahir] FROM siswa WHERE ucase(nama) like "*" &
ucase([Masukkan Nama Siswa :]) & "*"
Menggunakan Operator SET UNION
Digunakan untuk menggabungkan hasil dari lebih dari satu query
Hasil dari setiap query harus memiliki kolom yang sama
UNION - tidak semua (yang kembar dibuang)
UNION ALL - semua
Contoh
Menggabungkan semua hasil dari dosen yang bekerja pada jurusan 2 dan jurusan 3
Hasilnya sama dengan perintah SELECT * FROM dosen WHERE jurusan IN (2,3)
ORDER BY jurusan SELECT * FROM dosen WHERE jurusan=2 UNION ALL SELECT * FROM dosen WHERE jurusan=3;
Memanipulasi Data
DML - Data Manipulation Language Menambah baris data baru Mengubah isi suatu baris data Menghapus suatu baris data
Transaksi adalah kumpulan dari perintah DML yang membentuk suatu suatu kerja tertentu
Contoh Operasi DML
INSERT INTO jurusan (kode,jurusan,kajur,sekjur) VALUES (8,”Akutansi”,1230,1237);
INSERT INTO jurusan VALUES (9,”Perpajakan”,1233,1239);
UPDATE jurusan SET jurusan=“Keuangan” WHERE kode=8;
DELETE FROM jurusan WHERE kode IN (8,9);
Soal/Tugas
Tampilkan data Kelas dari siswa yang ketua jurusannya bernama “Bromantoro Diarwanto” dan dosen wali “Guna Mardi”
Ubah data kelas dari siswa tersebut menjadi kelas 4
Membuat dan Mengatur Tabel
CREATE TABLE nama (kolom tipe konstrain,kolom tipe konstrain konstrain,[Nama Kolom] tipe konstrain,…,kolom tipe konstrain,CONSTRAINT namak konstrain (kolom));
Tipe
BOOLEAN INTEGER, LONG, CURRENCY,
SINGLE, DOUBLE atau NUMBER CHAR, VARCHAR atau TEXT DATE MEMO VARIANT (default)
Pengertian Konstrain Kegunaan :
Memberikan aturan pada tingkat table Membatasi Manipulasi tertentu pada Tabel Menjaga Integritas Data Menjaga Validitas Data
Jenis NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY
Penjelasan Konstrain NOT NULL
Suatu kolom harus memiliki nilai tertentu (tidak boleh kosong) UNIQUE
Suatu kolom harus tidak boleh memiliki nilai yang sama (tetapi boleh null)
…, kolom tipe NOT NULL UNIQUE, … …, CONSTRAINT nama_konstrain UNIQUE (kolom), ...
PRIMARY KEY Suatu kolom dinyatakan sebagai kunci utama dari suatu tabel Otomatis dianggap UNIQUE dan NOT NULL …, kolom tipe NOT NULL PRIMARY KEY, ... ..., CONSTRAINT nama_konstrain PRYMARY KEY(kolom), ...
FOREIGN KEY Menyatakan suatu kolom harus sesuai dengan kolom lain dari suatu
tabel …, kolom tipe REFERENCES tabel(kolom), … …, CONSTRAINT nama_k FOREIGN KEY(kolom) REFERENCES
tabel(kolom), ...
Contoh Membuat TabelCREATE TABLE dosen(
nip varchar(15) not null primary key,nama varchar(50) not null
);CREATE TABLE siswa(
nrp varchar(15) not null primary key,nama varchar(50) not null,wali varchar(15) references dosen(nip)
);CREATE INDEX nama_siswa ON siswa(nama);