SQL (STRUCTURED QUERY LANGUAGE)
1. Jenis-jenis deklarasi SQL Deklarasi atau perintah SQL dibagi menjadi DDL, dan DML berdasarkan kepada fungsinya. a. DDL (Data Definition Language) Merupakan
perintah-perintah
yang
berkaitan
dengan
penciptaan
atau
penghapusan objek. Di dalam kategori ini terdapat perintah-perintah sebagai berikut :
Perintah
Keterangan
CREATE TABLE
Membuat tabel
CREATE INDEX
Membuat indeks
ALTER TABLE
Mengubah atau menyisipkan kolom ke dalam
DROP TABLE
tabel Menghapus tabel dari database
b. DML (Data Manipulation Language) Adalah bagian dari SQL yan g digunakan untuk memulihkan dan memanipulasi data. Perintah-perintah ini bertanggung jawab untuk melakukan query dan perubahan yang dilakukan di dalam tabel.
Perintah
Keterangan
SELECT
Memilih atau menampilkan tabel
INSERT
Menyisipkan baris dari tabel
DELETE
Menghapus baris dari tabel
UPDATE
Mengubah isi dari kolom (field) pada tabel
2. Tipe-Tipe Data
Tipe
Keterangan
Bit
Integer dengan nilai 0 atau 1
Int
Nilai integer dengan nilai -2.147.483.648 s/d 2.147.483.647
SmallInt
Nilai integer dengan nilai -32.768 s/d 32.767
TinyInt
Nilai integer dengan nilai -128 s/d 127
Decimal atau Numeric Angka dengan akurasi tetap antara -10^38-1 s/d 10^38-1 Float
-1.79E+308 s/d 1.79E+308
Real
-3.40E38 s/d 3.40E+38
DateTime
1 Januari 1753 sampai 31 Desember 9999
TimeStamp
kombinasi tanggal dan waktu
Char
field tetap dengan ukuran maksimal 8000 byte
VarChar
field tetap dengan ukuran maksimal 8000 byte
Text
variabel dengan ukuran hingga 2^31-1 (2.147.483.647) byte
3. Operator Aritmatika Operator
aritmetika
mempunyai
derajat
pengerjaan
pengerjaannya sebagai berikut :
Prioritas
Operator
Keterangan
1
*
Perkalian
2
/
Pembagian
3
%
Sisa Pembagian (bilangan
4
+
bulat)
5
-
Penjumlahan Pengurangan
yang
berbeda.
Urutan
MATERI 01 OPERASI DASAR SQL
1. Menciptakan Tabel Syntax :
CREATE TABLE nama_tabel( kolom_1 tipe_data([ukuran]), kolom_2 tipe_data([ukuran]), …, kolom_3 tipe_data([ukuran]) ); Contoh :
CREATE TABLE mahasiswa ( Nim char(13), Nama char(25), Alamat char(15) ); 2. Memasukkan Data Syntax :
INSERT INTO nama_tabel VALUES (‘value_1’, value_2, …, value_n); Contoh :
INSERT INTO mahasiswa VALUES (’04.01.53.0010’, ‘RENO’, ‘SEMARANG’); Pernyataan INSERT memungkinkan untuk memasukkan data pada kolom tertentu saja. Contoh :
INSERT INTO mahasiswa (nim, nama) VALUES (’04.01.53.0011’, ‘BOBI’);
Pernyataan INSERT memungkinakan untuk memasukkan data secara sekaligus. Contoh :
INSERT INTO mahasiswa VALUES (’04.01.53.0015’,’DONI’,’SEMARANG’), (’04.01.53.0016’,’DIDI’,’SEMARANG’), (’04.01.53.0017’,’RANI’,’SEMARANG’), (’04.01.53.0018’,’DONI’,’LIA’) ); Note : Untuk memasukkan tipe data yang terformat seperti DATE dan TIME : a. DATE Format : yyyy-mm-dd Contoh : ‘1985-04-04’ atau ‘19850404’ b. TIME Format : hh:mm:ss Contoh : ‘20:00:34’ atau ‘200034’
3. Melihat Isi Tabel Syntax :
SELECT * FROM nama_tabel; Contoh :
SELECT * FROM mahasiswa;
4. Mengganti Struktur Tabel Syntax : Æ Menambah Kolom Baru
ALTER TABLE nama_tabel ADD nama_kolom tipe_kolom([ukuran]); Æ Menghapus Kolom
ALTER TABLE nama_tabel DROP nama_kolom; Æ Mengubah Tipe Kolom
ALTER TABLE nama_tabel MODIFY nama_kolom tipe_data_baru([ukuran]); Æ Mengubah Nama dan Tipe Kolom
ALTER TABLE nama_tabel CHANGE nama_kolom_lama nama_kolom_baru tipe_data_baru ([ukuran]); Contoh :
ALTER TABLE mahasiswa ADD jenis_kelamin VARCHAR(1); ALTER TABLE mahasiswa ADD umur INTEGER; ALTER TABLE mahasiswa DROP umur; ALTER TABLE mahasiswa MODIFY jenis_kelamin INTEGER; ALTER TABLE mahasiswa CHANGE jenis_kealamin Kelamin CHAR(1);
5. Mengetahui Struktur Data Tabel Syntax :
SHOW TABLES; DESC nama_tabel; atau DESCRIBE nama_tabel; Contoh :
SHOW TABLES;
DESC mahasiswa; atau DESCRIBE mahasiswa;
6. Menghapus Tabel Syntax :
DROP nama_tabel; Contoh :
DROP mahasiswa;
MATERI 02 INPUT DATA
1. Menentukan Kunci Primer Jika bermaksud menyebutkan kunci primer terhadap suatu kolom, maka perlu menyertakan PRIMARY KEY pada pendefinisian kolom.
Contoh :
CREATE TABLE kuliah ( Kode char(5) NOT NULL PRIMARY KEY, Nama char(25) NOT NULL, Waktu TIME ); Untuk
membuat kunci primer yang tersusun lebih dari satu kolom, pendefinisian
PRIMARY KEY dilakukan dengan sedikit berbeda. Contoh :
CREATE TABLE kuliah ( Kode char(5) NOT NULL, Nama char(25) NOT NULL, Waktu TIME, PRIMARY KEY (Kode, Waktu) ); 2. Membuat Nilai Unik(Tidak kembar) Contoh :
CREATE TABLE kuliah ( Kode char(5) NOT NULL PRIMARY KEY, Nama char(25) NOT NULL UNIQUE, Waktu TIME );
3. Memberi Nilai Bawaan Contoh :
CREATE TABLE kuliah ( Kode char(5) NOT NULL PRIMARY KEY, Nama char(25) NOT NULL, Kelas char(5) DEFAULT ‘PAGI’, Waktu TIME);
MATERI 03 MEMANIPULASI DATA
1. Mengubah Nilai Kolom Dengan UPDATE Syntax :
UPDATE nama_tabel SET kolom_1=’nilai_baru_1’, Kolom_2=’nilai_baru_2’, . . ., kolom_n=’nilai_baru_n [WHERE kondisi]’; Contoh :
UPDATE kuliah SET nama=’Pemrograman Web’ WHERE kode=’TI671’; 2. Menghapus Data Dengan DELETE Syntax :
DELETE FROM nama_tabel [WHERE kondisi]; Contoh :
DELETE FROM kuliah WHERE kode=’12345’;
MATERI 04 MENAMPILKAN DATA TABEL
1. Menampilkan Semua Kolom dan Semua Baris Syntax :
SELECT * FROM nama_tabel; Contoh :
SELECT * FROM kuliah;
2. Menampilkan Kolom Tertentu Contoh :
SELECT kode, nama FROM kuliah; 3. Memperoleh Data Yang Unik Contoh :
SELECT DISTINCT kelas FROM kuliah; 4. Memilih Baris Tertentu Syntax :
WHERE kondisi; Contoh :
SELECT * FROM kuliah WHERE kelas=’PAGI’;
5. Operatol Relasional Adalah operator yang digunakan untuk melakukan pembandingan antara dua buah nilai. Operator
Keterangan
=
Sama dengan
>
:Lebih dari
<
Kurang dari
>=
Lebih dari atau sama dengan
<=
Kurang dari atau sama dengan
<>
Tidak sama dengan
Contoh :
SELECT * FROM kuliah WHERE kelas<>’PAGI’; 6. Operator Boolean a. Operator OR Operator OR digunakan untuk melakukan query dengan kondisi majemuk. Syntax :
kondisi_1 OR kondisi_2 Kondisi 1
Kondisi 2
Keterangan
Benar
Benar
Benar
Benar
Salah
Benar
Salah
Benar
Benar
Salah
Salah
Salah
Contoh :
SELECT * FROM kuliah WHERE kelas=’PAGI’ OR nama=’OOP’;
b. Operator AND Syntax :
kondisi_1 AND kondisi_2 Kondisi 1
Kondisi 2
Keterangan
Benar
Benar
Benar
Benar
Salah
Salah
Salah
Benar
Salah
Salah
Salah
Salah
Contoh :
SELECT * FROM kuliah WHERE kelas=’PAGI’ AND nama=’OOP’; c. Operator NOT Operator NOT digunakan untuk membalik nilai. Syntax :
NOT kondisi Ekspresi
Keterangan
NOT Benar
Salah
NOT Salah
Benar
Contoh :
SELECT * FROM kuliah WHERE NOT kelas=’PAGI’;
MATERI 05 OPERATOR LAINNYA
1. Operator BETWEEN dan NOT BETWEEN Operator ini digunakan untuk menangani operasi “jan gkauan”. Contoh :
SELECT * FROM kuliah WHERE kelas BETWEEN ‘060000’ AND ‘210000’; 2. Operator IN dan NOT IN Operator ini berguna untuk melakukan pencocokan data dengan salah satu yang ada pada data tabel. Contoh :
SE:LECT * FROM kuliah WHERE nama IN (‘OOP’,’OS’,’MULTIMEDIA’); 3. Operator LIKE dan NOT LIKE Operator ini bermanfaat untuk mencari data dengan ketentuan yang kurang pasti. Dalam melakukan pencarian dengan operator ini, perlu disebutkan tanda wildcard untuk pencarian. Æ Tanda garis bawah ( _ ) berarti sebuah karakter apa saja. Æ Tanda persen ( % ) berarti cocok dengan nol atau lebih karakter apa saja. Contoh :
SELECT * FROM kuliah WHERE kelas LIKE ‘P_GI’; SELECT * FROM kuliah WHERE nama LIKE ‘Pemrograman%’; 4. Operator IS NULL dan IS NOT NULL Operator ini digunakan ntuk menampilkan record yang mempunyai field bernilai NULL maupun bukan. Contoh :
SELECT * FROM kuliah WHERE kelas IS NULL;
MATERI 06 MENGATUR TAMPILAN DATA
1. Mengurutkan Data dengan ORDER BY Contoh :
SELECT * FROM kuliah ORDER BY kelas; Note : Æ Untuk mengurutkan data secara menurun(descending) atau dari besar ke kecil, maka pada akhir perintah tambahakan DESC. Contoh : SELECT * FROM kuliah ORDER BY kelas DESC; Pengurutan data juga dapat dilakukan berdasarkan beberapa kolom. Contoh :
SELECT * FROM kuliah ORDER BY kode, kelas;
Kolom yang dijadikan sebagai acuan pengurutan data dapat disebutkan bukan dengan nama saja, melainkan dapat juga melalui nomor kolom. Contoh :
SELECT * FROM kuliah ORDER BY 2; 2. Mengelompokkan Data dengan GROUP BY Pada satu tabel, fungsi dari GROUP BY hampir sama dengan ORDER BY ditambah dengan fungsi DISTINCT. Contoh :
SELECT nama, kelas, kode FROM kuliah GROUP BY kelas; 3. Kalusa HAVING Pemakaian klausa HAVING terkait dengan fungsi GROUP BY. Fungsi HAVING yaitu untuk menentukan kondisi bagi GROUP BY. Kelompok yang memenuhi HAVING saja yang akan ditampilkan.
Contoh :
SELECT kelas, kode FROM kuliah GROUP BY kode HAVING kelas<>’PAGI’; Perintah di atas merupakan alternatif dari perintah :
SELECT kelas, kode FROM kuliah WHERE kelas<>’PAGI’ GROUP BY kelas; 4. Fungsi Agregat Adalah fungsi yang disediakan oleh SQL untuk menghasilkan sebuah nilai berdasarkan sejumlah data. Fungsi Agregat
Keterangan
AVG
Memperoleh nilai rata-rata
COUNT
Menghitung cacah data
MAX
Menghasilkan nilai terbesar
MIN
Menghasilkan nilai terkecil
SUM
Memperoleh penjumlahan data
a. Fungsi AVG Fungsi AVG (berasal dari kata average) berguna untuk memperoleh nilai rata-rata. Contoh :
SELECT AVG(gaji) FROM karyawan; b. Fungsi COUNT Fungsi COUNT berguna untuk melakukan pencacahan terhadap data. Contoh :
SELECT COUNT(gaji) FROM karyawan; c. Fungsi MAX Fungsi MAX berguna untuk memperoleh nilai yang terbesar. Contoh :
SELECT MAX(gaji) FROM karyawan; d. Fungsi MIN Fungsi MIN berguna untuk memperoleh nilai yang terkecil. Contoh :
SELECT MIN(gaji) FROM karyawan;
e. Fungsi SUM Fungsi ini berguna untuk melakukan penjumlahan data. Contoh :
SELECT SUM(gaji) FROM karyawan; 5. Klausa LIMIT Klausa LIMIT bermanfaat untuk membatasi jumlah baris yang dihasilkan oleh suatu query. Syntax :
LIMIT jumlah Contoh :
SELECT nip, nama_peg FROM pegawai LIMIT 10;
MATERI 07 EKSPRESI PADA QUERY
1. Pemakaian Ekspresi pada Kolom Keluaran Contoh :
SELECT nama_peg, 1.2*gaji FROM pegawai; 2. Memberi Nama Lain Terhadap Kolom Keluaran Contoh :
SELECT nama_peg, 1.2*gaji AS gajibaru FROM pegawai; 3. Menambahkan Teks pada baris keluaran Pernyataan SELECT memungkinkan pemakai menambahkan suatu teks pada baris-baris keluaran. Contoh :
SELECT ‘gaji ‘,nama_peg,’ sebesar ‘,gaji,’ rupiah’ FROM pegawai; 4. Pemakaian SELECT tanpa klausa FROM Pemakaian SELECT tanpa FROM berguna untuk mengevaluasi ekspresi tertentu yang tidak ada kaitannya dengan tabel. Contoh :
SELECT 34.5 >= 34.46; 5. Pengonversian Tipe Data Kadangkal diperlukan untuk melakukan konversi data dari satu tipe data ke tipe data yang lain, dikarenakan : Æ jika tidak dikonversi, operasi pembandingan tertentu tidak dapat dilakukan. Æ supaya data bisa ditangani oleh program lain. Syntax :
CAST (nama_kolom AS tipe_data)
Contoh :
SELECT nama, CAST(nilai AS INTEGER) AS NilaiAkhir FROM ujian; 6. Fungsi Nilai SQL menyediakan sejumlah fungsi nilai yang mempunyai ciri ‘pemanggilannya tanpa disertai tanda kurung’. Beberapa diantaranya : Æ CURRENT_DATE : menghasilkan tanggal sekarang Æ CURRENT_TIME : menghasilkan waktu sekarang Æ CURRENT_TIMESTAMP : menghasilkan tanggal dan waktu sekarang Contoh :
SELECT nama, CURRENT_DATE - tgl_lahir / 365 AS Usia FROM mahasiswa;
MATERI 08 QUERY ANTAR TABEL
1. Query dengan Dua Buah Tabel Contoh :
SELECT main.id_bin, film.judul, main.peran FROM main, film WHERE main.kode_film=film.kode_film; 2. Menggunakan Alias Syntax :
SELECT alias1.kolom, alias2.kolom FROM tabel1 alias1, tabel2 alias2 WHERE kondisi; Contoh :
SELECT M.id_bin, F.judul, M.peran FROM main M, film F WHERE M.kode_film=F.kode_film; 3. Self Join Merupakan upaya penggabungan dari tabel yang sama. Contoh :
SELECT X.nama, Y.nama FROM mahasiswa X, mahasiswa Y WHERE X.kelamin=’P’ AND Y.kelamin=’W’; 4. Operator UNION Operator ini berguna untuk menggabungkan hasil dari dua buah query. Contoh :
SELECT * FROM hewanair UNION [ALL] SELECT * FROM hewandarat;
MATERI 09 OPERATOR JOIN
1. Operator [INNER | CROSS] JOIN dan STRAIGHT_JOIN Operator [INNER | CROOS] JOIN dan STRAIGHT_JOINberguna untuk malakukan operasi perkalian kartesian. Syntax :
tabelA [[INNER | CROSS] JOIN | STRAIGHT_JOIN] tabelB Contoh :
SELECT * FROM tabel1 CROSS JOIN tabel2; 2. Operator NATURAL JOIN Operator ini akan nmelakukan operasi penggabungan tabel dengan memperlakukan nama-nama kolom yang sama sebagai kolom penghubung antar tabel. Contoh :
SELECT mahasiswa.nama, kuliah.nama FROM mahasiswa NATURAL JOIN kuliah; Identik dengan :
SELECT mahasiswa.nama, kuliah.nama FROM mahasiswa, kuliah WHERE mahasiswa.nim=kuliah.nim; 3. Operator [LEFT | RIGHT | FULL [OUTER]] JOIN Æ LEFT OUTER JOIN :
bila baris yang terletak di sebelah kiri operator ini ada yang tidak memiliki pasangan dengan tabel yang terletak di sebelah kanan operator ini, baris ini tetap disertakan dalah hasil penggabungan.
Æ RIGHT OUTER JOIN : bila baris pada tabel yang terletak di sebelah kanan operator ini ada yang tidak memiliki pasangan dengan tabel yang terletak di sebelah kiri operator ini, baris ini tetap disertakan dalam hasil penggabungan. Æ FULL OUTER JOIN :
merupakan penggabungan dari LEFT OUTER JOIN dan RIGHT OUTER JOIN.
MATERI 10 SUBQUERY
Subquery merupakan bentuk query yang terletak dalam query yang lain. Contoh :
SELECT * FROM pegawai WHERE gaji=(SELECT MAX(gaji) FROM pegawai) 1. Operator [NOT] IN Contoh :
SELECT nama FROM kuliah WHERE nim IN (SELECT DISTINCT nim FROM mahasiswa); 2. Operator [NOT] EXISTS Contoh :
SELECT nama FROM kuliah WHERE EXISTS (SELECT * FROM mahasiswa WHERE nim=kuliah.nim); 3. Operator ANY dan SOME Syntax :
SELECT nama_kolom FROM nama_tabel WHERE nama_kolom operator_relasional ANY (subquery); Contoh :
SELECT nama, gaji FROM pegawai WHERE gaji>ANY (SELECT gaji FROM pegawai); 4. Operator ALL Operator ALL digunakan untuk melakukan pembandingan dengan subquery. Kondisi dengan ALL menghasilkan nilai benar jika pembandingan menghasilkan benar untuk setiap nilai dalam subquery.
Contoh :
SELECT nama, gaji FROM pegawai WHERE gaji < ALL (SELECT gaji FROM pegawai WHERE depart=’Akunting’);