Structure Query Language (SQL) dipublikasikan oleh E.F. CODD (1970) mengenai model relational.
• Kemudian pada tahun 1974, D. Chamberlin dan R.F. Boyce mengembangkan bahasa query untuk memanipulasi dan mengekstrak data dari database relational.
• SQL adalah suatu bahasa yang berisi perintah-perintah untuk melakukan manipulasi database, seperti menghapus, mengubah, memilih, menggabungkan data.
• SQL merupakan suatu bahasa standar database yang efisien dan mudah dalam mempelajarinya dibandingkan dengan bahasa database lainnya.
• Beberapa program database yang menggunakan SQL antara lain : Oracle, DB2, Sybase, MySQL, Ms.Access, Ms.SQL Server, Informix, Ingres, Interbase, PostgreSQL.
• Data SQL-database adalah database yang bersifat relational dan dinamis.
• Relational karena dapat mengkaitkan / menghubungkan suatu kelompok informasi (field) dengan kelompok informasi yang lain dalam suatu database hingga membentuk satu kesatuan.
• Kelompok informasi (field) dalam SQL-database disebut tabel, yang terdiri dari baris dan kolom.
• SQL-database bersifat dinamis, artinya struktur tabel-nya dapat sewaktu-waktu berubah tanpa harus melakukan konversi data yang sudah ada.
• Sebuah database dapat memiliki banyak tabel, yang hanya dibatasi oleh kapasitas disk komputer.
• Struktur tabel terdiri dari baris (record/tuple/entitas) dan kolom (field/item/atribut).
• Baris terdiri dari semua data yang didefinisikan oleh kolom, sedangkan kolom berisikan tipe data yang akan disimpan dalam baris.
Sasaran SQL
• Menciptakan database dan struktur relasi.
• Melakukan manajemen data tingkat dasar.
• Membentuk query sederhana dan kompleks.
• Melakukan tugas-tugas dengan seminimal mungkin memakai struktur dan sintaks perintah yang relatif mudah dipelajari.
• Harus portabel (dapat bekerja pada berbagai mesin/komputer).
Jenis SQL :
- Interactive SQL
- Static SQL
- Dynamic SQL
Subdivisi SQL
- DDL (Data Defenition Language)
- DML (Data Manipulation Language)
- DCL ( Data Control Language)
Jenis SQL :
- Interactive SQL, data dalam SQL jenis ini selalu berubah dengan cepat seiring dengan penggunaannya yang sering / interaktif.
- Static SQL, data dalam SQL ini selalu tetap dalam periode waktu yang cukup lama. Biasanya berisi data-data yang mengalami waktu perubahan yang cukup lama.
- Dynamic SQL, data dalam jenis SQL ini berubah dalam periode waktu tertentu.
Subdivisi SQL
- DDL (Data Defenition Language)
Merupakan kelompok perintah yang digunakan untuk melakukan pendefinisian database dan pendefinisian tabel.
Dengan kelompok perintah dalam DDL ini, maka kita dapat membuat tabel, mengubah strukturnya, mengahpus tabel, membuat indeks untuk tabel, dan lain-lain yang berkenaan dengan pembentukan struktur database.
Subdivisi SQL
- DML (Data Manipulation Language)
Merupakan kelompok perintah SQL yang digunakan untuk melakukan manipulasi data dalam database, menambahkan (insert), mengubah (update), menghapus (delete), mengambil dan mencari data (query).
Perintah SQL standar seperti : select, insert, update, delete, create, drop dapat digunakan untuk menyelesaikan tugas yang diberikan berhubungan dengan data suatu database.
- DCL ( Data Control Language)
Merupakan kelompok perintah SQL untuk memberikan hak otorisasi mengakses database, megalokasikan space, pendefinisian space, dan audit penggunaan database.
Beberapa perintah dalam DCL seperti : COMMIT, ROLLBACK, GRANT, REVOKE.
Termasuk di dalam DCL adalah perintah untuk melakukan pendefinisian user yang boleh mengakses database.
Fasilitas akses tersedia pada sistem menejemen databse yang memiliki fasilitas keamanan dengan membatasi user dan kewenangannya.
Secara umum DCL merupakan bahasa yang digunakan untuk melakukan pengelolaan user agar dapat mengakses dan memanipulasi database, terutama perintah GRANT dan REVOKE.
Perintah COMMIT dan ROLLBACK merupakan kelengkapan fasilitas dalam pembuatan aplikasi yang memungkinkan suatu transaksi yang terjadi untuk dapat segera disimpan atau dibatalkan .
PENGELOMPOKAN STATEMEN SQL
- Data Definition Language (DDL)
CREATE DATABASE DROP DATABASE
CREATE TABEL DROP TABEL
CREATE INDEX DROP INDEX
CREATE VIEW DROP VIEW
ALTER TABLE
- Data Manipulation Language (DML)
INSERT, SELECT, UPDATE, DELETE
- Data Access (Data Control Language/DCL)
GRANT, REVOKE
- Data Integrity
RECOVER TABLE
- Auxiliary
UNLOAD, LOAD, RENAME COLUMN
A. CREATE (PEMBUATAN)
1. Pembuatan Database
Nama Database adalah yang dapat mewakili suatu kejadian dapat berupa nama organisasi atau perusahaan.
Sintaks : CREATE DATABASE (nama_database)
Contoh : Buat database dengan nama Mahasiswa
CREATE DATABASE MAHASISWA
2. Pembuatan Tabel
Sintaks :
CREATE TABLE nama_table (nama_kolom1 tipe_data_kolom1,nama_kolom2 tipe_data_kolom2,….)
Contoh :
Buat struktur tabel dengan nama tabel MHS dengan data NIM char(8), NAMA char(25), ALAMAT char(30)
CREATE TABLE MAHASISWA (NIM char(8) notnull, NAMA_MHS char(25) notnull, ALAMAT_MHS char(30) notnull
3. Pembuatan Index
Sintaks : CREATE [UNIQUE] INDEX nama_index
ON nama_table (nama_kolom) ;
Contoh :
Buat index data mahasiswa berdasarkan NIM dengan nama MHSIDX Dimana NIM tidak boleh sama
CREATE UNIQUE INDEX MHSIDX ON MAHASISWA(NIM)
4. Pembuatan View
Sintaks :
CREATE VIEW nama_view[(nama_kolom1,….)]
AS SELECT statement
[WITH CHECK OPTION] ;
Contoh :
Buat view dengan nama MHSVIEW yang berisi semua data mahasiswa
CREATE VIEW MHSVIEW
AS SELECT * FROM MAHASISWA
B. DROP (MENGHAPUS)
1. Menghapus Database
Sintaks : DROP DATABASE nama_db ;
Contoh : Menghapus database MAHASISWA
DROP DATABASE MAHASISWA;
2. Menghapus Tabel
Sintaks : DROP TABLE nama_table ;
Contoh : Menghapus database MAHASISWA
DROP TABLE MAHASISWA;
3. Menghapus Index
Sintaks : DROP INDEX nama_index ;
Contoh : Menghapus database MAHASISWA
DROP INDEX MHSIDX;
4. Menhapus View
Sintaks : DROP VIEW nama_view ;
Contoh : Menghapus database MAHASISWA
DROP VIEW MHSVIEW;
C. ALTER TABLE (MERUBAH STRUKTUR TABEL)
Sintaks : ALTER TABLE nama_tabel
ADD (nama_kolom, jenis_kolom
[BEFORE nama_kolom])
MODIFY (nama_kolom, jenis kolom)
DROP (nama_kolom jenis kolom) );
Contoh :
1. Tambahkan kolom JKEL dengan panjang 1 char pada tabel MHS
ALTER TABLE MAHASISWA ADD (JKEL char(1));
2. Ubah panjang kolom MTKULIAH menjadi 30 char
ALTER TABLE MATAKULIAH MODIFY (MTKULIAH char(30));
- Hapus kolom JKEL dari data table MHS
ALTER TABLE MAHASISWA DROP (JKEL char(1));
DATA MANIPULATION LANGUAGE (DML)
1. INSERT
Sintaks : INSERT INTO Nama_tabel [(nama_kolom1,…)]
Contoh :
Masukan data matakuliah Berkas Akses dengan kode KK222 dan besarnya sks adalah 2
INSERT INTO MATAKULIAH VALUES(“KK222”,”Berkas Akses”, 2);
2. UPDATE
Sintaks : UPDATE nama_tabel
SET nama_kolom = value_1
WHERE kondisi ;
Contoh :
Ubah alamat menjadi “Depok” untuk mahasiswa yang memiliki NIM “50096487”
UPDATE MAHASISWA
SET ALAMAT=”Depok”
WHERE NIM=”50096487”;
3. DELETE
Sintaks : DELETE FROM nama_table
WHERE kondisi
Contoh :
Hapus data nilai matakuliah “KK021” bagi mahasiswa yang mempunyai NIM “ 10296832”
DELETE FROM NILAI WHERE
NIM=”10296832” AND KD_MK=”KK021”
4. SELECT
Sintaks : SELECT [DISTINCT/ALL] nama_kolom
FROM nama_tabel
[ WHERE condition ]
[ GROUP BY column_list ]
[ HAVING condition ]
[ ORDER BY column_list [ASC/DESC] ]
DATA ACCESS
- GRANT
Sintaks : GRANT hak_akses ON nama_db
[WITH GRANT OPTION]
[AS GRANTOR] ;
GRANT hak_akses ON nama_tabel
TO nama_pemakai
[WITH GRANT OPTION]
[AS GRANTOR];
Contoh :
Berikan hak akses kepada Adi untuk menampikan nilai final test
GRANT SELECT (FINAL) ON NILAI TO ADI
- REVOKE
Sintaks : REVOKE hak_akses ON nama_db
FROM nama_pemakai ;
REVOKE hak_akses ON nama_tabel
FROM nama_pemakai ;
Contoh :
Tarik kembali dari Adi hak akses untuk menampilkan nilai final test
REVOKE SELECT (FINAL) ON NILAI FROM ADI
DATA INTEGRITY
RECOVER TABLE
Sintaks : RECOVER TABLE nama_tabel
Contoh :
Kembalikan keadaan data mahasiswa seperti pada saat sebelum terjadi kerusakan
RECOVER TABLE MAHASISWA;
AUXILIARY
1. UNLOAD
Sintaks : UNLOAD TO “ nama_path”
[DELIMITER “ Char_pemisah”]
SELECT statement ;
Contoh :
Ubah semua data mahasiswa ke bentuk ASCII dan disimpan ke file teks di directory/home/adi
UNLOAD TO “/home/adi/teks”
DELIMITER “ ½” SELECT * FROM MAHASISWA;
2. LOAD
Sintaks : LOAD FROM “ nama_path”
DELIMITER “char_pemisah”
INSERT INTO nama_tabel [ nama_kolom] ;
Contoh :
Merubah file teks ke tabel MHS_2 di directory /home/adi :
LOAD FROM “/home/adi/teks”
DELIMITER “ ½” INSERT INTO MHS_2;
3. RENAME
Sintaks : RENAME COLUMN nama_kolom_lama
TO nama_kolom_baru
Contoh :
Ganti nama kolom ALAMAT yang ada pada tabel MAHASISWA menjadi KOTA
RENAME COLUMN MAHASISWA ALAMAT TO KOTA
QUERY KOMERSIAL
LANJUTAN
Fungsi Agregat
Fungsi Agregat merupakan fungsi yang disediakan oleh SQL untuk melakukan ringkasan data, BUKAN menampilkan data baris-per-baris seperti halnya perintah SELECT.
Fungsi agregat dapat disisipkan pada perintah SELECT, bisa juga sebagai pernyataan SELECT secara khusus yang digunakan untuk melakukan manipulasi sederhana ataupun untuk mendapatkan informasi dari suatu tabel.
MENGGUNAKAN FUNGSI AGREGAT :
1. COUNT
Merupakan suatu fungsi yang digunakan untuk mengetahui jumlah record dari suatu tabel. Jumlah record yang ditampilkan adalah jumlah record berdasarkan perintah SELECT. Apabila perintah SELECT tidak disertai dengan kondisi, maka hasil dari COUNT akan berupa seluruh record dari tabel yang diacu pada perintah SELECT tersebut.
Bentuk dasar : count(namafield atau *)
2. SUM
Merupakan suatu fungsi yang digunakan untuk melakukan penjumlahan isi field yang bertipe numerik, yang namanya disebutkan pada namafield yang dijadikan parameter.
Bentuk dasar : sum(namafield)
3. AVG
Merupakan suatu fungsi yang digunakan untuk mendapatkan nilai rata-rata suatu field yang bertipe numerik, yang namanya disebutkan pada namafield yang dijadikan parameter.
Bentuk dasar : avg(namafield
4. MIN
Merupakan suatu fungsi yang digunakan untuk mendapatkan nilai terkecil (minimum) dari field yang bertipe numerik, yang namanya disebutkan pada namafield yang dijadikan parameter.
Bentuk dasar : min(namafield)
5. MAX
Merupakan suatu fungsi yang digunakan untuk mendapatkan nilai terbesar (maksimum) dari field yang bertipe numerik, yang namanya disebutkan pada namafield yang dijadikan parameter.
Bentuk dasar : max(namafield)
SUBQUERY
Adalah subselect yang dapat digunakan di klausa WHERE dan HAVING dipernyataan select luar untuk menghasilkan tabel akhir.
Aturan-aturan untuk membuat subquery, yaitu :
- Klausa Order By tidak boleh digunakan di subquery, Order By hanya dapat digunakan di pernyataan Select luar.
- Klausa subquery Select harus berisi satu nama kolom tunggal atau ekspresi kecuali untuk subquery-subquery menggunakan kata kunci EXIST
- Secara default nama kolom di subquery mengacu ke nama tabel di klausa FROM dari subquery tersebut.
- Saat subquery adalah salah satu dua operan dilibatkan di pembandingan, subquery harus muncul disisi kanan pembandingan
Penggunanaan ANY dan ALL
Jika subquery diawali kata kunci ALL, syarat hanya akan bernilai TRUE jika dipenuhi semua nilai yang dihasilkan subquery itu.
Jika subquery diawali kata kunci ANY, syaratnya akan bernilai TRUE jika dipenuhi sedikitnya satu nilai yang dihasilkan subquery tersebut.
Penggunanaan EXIST DAN NOT EXIST
EXIST akan mengirim nilai TRUE jika dan hanya jika terdapat sedikitnya satu baris di tabel hasil yang dikirim oleh subquery dan EXIST mengirim nilai FALSE jika subquery mengirim tabel kosong.
Untuk NOT EXIST kebalikan dari EXIST.
Aplikasi yang digunakan sebagai contoh adalah phptriad-mysql front
Dari Address ketik : http://localhost/phpmyadmin
Tampilan password ketik root dan untuk password ketik password