SQL
Structured Query Language SQL (Structured Query Language) adalah Bahasa query yang digunakan untuk mengakses DBMS. Dengan bahasa yang standar, kita dapat mengakses data dimanapun, tanpa memperdulikan DBMS yang digunakan. Ada banyak sekali bahasa basis data yang pernah dibuat untuk masing-masing DBMS. Namun akhirnya yang menjadi standar adalah SQL.
Beberapa Relational DBMS yang menggunakan SQL, antara lain: Oracle, Sybase, Microsoft SQL Server, Access, MySQL, Postgre dan masih banyak lagi. SQL memiliki beberapa versi antara lain: SQL 1 atau dikenal sebagai SQL -86, SQL2 (SQL-92) dan SQL3 yang dikenal dengan SQL-99.
Struktur Dasar Sebuah ekspresi SQL dasar hanya terdiri atas 3 klausa, yaitu: select, from, where Klausa select digunakan untuk menetapkan daftar atribut (field) yang diinginkan sebagai hasil query Klausa form digunakan untuk menetapkan tabel yang akan ditelusuri selama query data dilakukan Klausa where, yang sifatnya optional, digunakan sebagai predikat (kriteria) yang harus dipenuhi dalam memperoleh hasil query. Select A1[ , A2, . . . , An] From t1 [ , t2, . . ., tm] [ where P]
Contoh: select nim, nama_mhs from mahasiswa select * where nim = ‘980002’
Kelompok Pernyataan SQL DDL ( Data Definition Language) DML ( Data Manipulation Language ) DCL (Data Control Language) Pengendali transaksi
DDL ( Data Definition Language) DDL merupakan kelompok perintah yang berfungsi untuk mendefinisikan atribut-atribut database, table, atribut (kolom), batasan-batasan terhadap suatu atribut serta hubungan antar table. Yang termasuk kelompok DDL ini adalah : CREATE untuk menciptakan table ataupun indeks ALTER untuk mengubah struktur table DROP untuk menghapus table ataupun indeks
DML ( Data Manipulation Language ) Adalah kelompok perintah yang berfungsi untuk memanipulasi data, misalnya untuk pengambilan, penyisipan pengubahan dan penghapusan data. Yang termasuk DML adalah SELECT memilih data INSERT menambah data DELETE menghapus data UPDATE mengubah data
1. Membuat Tabel Pernyataan CREATE TABLE digunakan untuk membuat sebuah tabel baru. Berikut ini merupakan bentuk sederhana CREATE TABLE: CREATE TABLE <nama tabel> (<kolom1><tipe data>, <kolom2><tipe data>, ……………………………………………. <kolom N><tipe data>)
CREATE TABLE <nama tabel> Bentuk pernyataan CREATE TABLE jika kita menggunakan batasan (constaints): Catatan: kita dapat memiliki kolom sebanyak yang kita inginkan dan batasan/ constraints bersifat optional CREATE TABLE <nama tabel> (<kolom1><tipe data>[<batasan>], <kolom2><tipe data>[<batasan>], ……………………………………………. <kolom N><tipe data>[<batasan>]) [ ]=optional
Contoh: CREATE TABLE Pegawai (no_id number(5), nm_depan varchar(15), Untuk membuat tabel baru, ketikkan CREATE TABLE diikuti dengan nama tabel, tanda ‘(‘, diikuti dengan nama kolom pertama, tipe data dan batasannya jika ada, lanjutkan untuk kolom berikutya, CREATE TABLE Pegawai (no_id number(5), nm_depan varchar(15), nm_belakang varchar(20), umur number(3), kota varchar(30), propinsi varchar(20));
Tipe-tipe data SQL yang sering digunakan: Deskripsi char(ukuran) String karakter dengan panjang tetap varchar(ukuran) String karakter dengan panjang bervariasi tapi panjang maksimal sesuai yang ditetapkan numeric(ukuran) Angka dengan maksimal digit sesuai yang ditetapkan integer Angka berupa integer date Tanggal time Waktu/jam
Ketika tabel dibuat, biasanya satu atau lebih kolom memiliki batasan-batasan tertentu. Suatu batasan biasanya berupa aturan yang terkait dengan kolom tersebut, data yang dimasukkan kedalam kolom harus sesuai dengan aturan tersebut. Sebagai contoh: batasan “unique” menentukan bahwa tidak boleh ada dua record yang memiliki nilai sama. Ada dua batasan lagi yang sering digunakan contohnya “not null” menentukan bahwa kolom tidak dapat bernilai kosong. “primary key” menentukan identifikasi unik untuk setiap record/ baris dalam sebuah tabel.
Contoh: CREATE TABLE Pegawai (no_id number(5) UNIQUE NOT NULL, nm_depan varchar(15), nm_belakang varchar(20), umur number(3), kota varchar(30), propinsi varchar(20), PRIMARY KEY (no_id));
2. Menghapus Tabel Pernyataan DROP TABLE digunakan untuk menghapus sebuah tabel dan seluruh record pada tabel tersebut. Untuk menghapus tabel secara menyeluruh termasuk semua record-nya, tulis DROP TABLE diikuti dengan nama tabel. Contoh: DROP TABLE <nama tabel>; DROP TABLE pegawai;
3. Modifikasi Struktur Tabel Untuk memodifikasi struktur dari suatu tabel digunakan pernyataan ALTER TABLE. Pernyataan ALTER TABLE dapat digunakan untuk menambah dan menghapus kolom maupun batasan-batasannya (constraint). ALTER TABLE <nama tabel>; ADD <nama kolom> <tipe data>[, …] | DROP <nama kolom> [, …]; tambah kolom ALTER TABLE pegawai ADD kode_pos char(5); Hapus kolom ALTER TABLE pegawai DROP propinsi;
4. Menambah Data Pernyataan INSERT digunakan untuk menambah atau menyisipkan data atau record pada sebuah tabel. Untuk menambahkan record kedalam tabel, tuliskan INSERT INTO diikuti dengan nama tabel. INSERT INTO <nama tabel> (<kolom1>, <kolom2>, …, <kolomN>) VALUES (<nilai1>, <nilai2>, …, <nilaiN>); INSERT INTO pegawai (no_id, nm_depan, nm_belakang, umur, kota, propinsi) VALUES (99023, ‘Agus’, ‘Maulana’, 45, ‘Jaksel’, ‘Jakarta’);
5. Mengambil Data Pernyataan SELECT digunakan untuk mengambil data tertentu yang sesuai dengan kriteria yang ditentukan. Berikut ini merupakan bentuk sederhana dari pernyataan SELECT SELECT <kolom1> (<kolom2>, …) FROM <nama tabel> [WHERE <kondisi>]; SELECT [ALL | DISTINCT] <kolom1>[,kolom2>] FROM <tabel1>[,<tabel2>] [WHERE <kondisi>] [GROUP BY <daftar kolom>] HAVING <kondisi>] [ORDER BY <daftar kolom [ASC | DESC];
Nama-nama kolom setelah keyword SELECT menentukan kolom-kolom yang akan dikembalikan sebagai hasil. Untuk memilih semua kolom, kita dapat menggunakan ALL atau “*”. Nama tabel setelah keyword FROM menentukan tabel mana yang akan diambil datanya. Klausa WHERE bersifat optional, digunakan untuk menentukan nilai data mana yang akan diambil berdasarkan kriteria yang ditentukan.
Pernyataan diatas hanya mengambil semua kolom dari tabel pegawai yang nm_depan-nya Eric. Pernyataan diatas akan mengambil kolom nm_belakang, kota dan umur dari tabel pegawai yang umurnya lebih dari 30. SELECT * FROM pegawai WHERE nm_depan =‘ERIC’; SELECT nm_belakang, kota, umur FROM pegawai WHERE umur>30;
6. Meng-update Data Pernyataan UPDATE digunakan untuk meng-update atau merubah record yang sesuai dengan kriteria yang telah ditentukan. Berikut ini merupakan bentuk pernyataan UPDATE UPDATE <nama tabel> SET <nama kolom1>=<nilai baru1> [,<nama kolom2>=<nilai baru2>..] [WHERE <nama kolom>OPERATOR <nilai> [and|or <nama kolom> OPERATOR <nilai>];
Contoh: pernyataan dibawah ini akan merubah kolom umur menjadi umur+1 pada tabel pegawai yang nm_depannya Mary dan nm_belakangnya Willy. UPDATE pegawai SET umur=umur+1 WHERE nm_depan=‘Mary’ and nm_belakang=‘Willy’;
7. Menghapus Data Pernyataan DELETE digunakan untuk menghapus record atau baris dari suatu tabel. Berikut ini merupakan bentuk pernyataan DELETE. Untuk menghapus record/baris dari suatu tabel, tulis “DELETE FROM” diikuti dengan nama tabel dan klausa WHERE yang berisi kondisi/ kriteria untuk menghapus. Jika klausa WHERE tidak disertakan, maka semua record pada tabel tersebut akan dihapus. DELETE FROM <nama tabel> WHERE <nama kolom> OPERATOR <nilai> [and | or <nama kolom> OPERATOR <nilai>];
Contoh: Pernyataan dibawah ini akan menghapus record dari tabel pegawai yang nm_depannya Mike atau Eric DELETE FROM pegawai WHERE nm_depan =‘Mike’ or nm_depan=‘Eric’;
8. Menggabungkan Tabel Kita dapat menggabungkan dua atau lebih tabel dalam satu hasil query dengan menggunakan pernyataan SELECT. Misalkan tabel pegawai sebelumnya akan digabungkan dengan tabel gaji. Tabel gaji No_id Gaji Tunjangan 99980 700000 99982 750000 99997 800000
Contoh: untuk menampilkan daftar nm_depan, nm_belakang, gaji, dan tunjangan dari tabel pegawai dan gaji SELECT pegawai.nm_depan, pegawai.nm_belakang, gaji.gaji, gaji.tunjangan FROM pegawai, gaji WHERE pegawai.no_id=gaji.no_id;
DCL ( Data Control Language ) Berisi perintah-perintah untuk mengendalikan pengaksesan data. Yang termasuk DCL adalah : GRANT memberikan kendali pada pengaksesan data. REVOKE mencabut kemampuan pengaksesan data LOCK TABLE mengunci table
Pengendali transaksi Adalah perintah-perintah yang berfungsi untuk mengendalikan pengeksekusian transaksi. Yang termasuk kelompok ini adalah : COMMIT menyetujui rangkaian perintah yang berhubungan erat yang telah berhasil dilakukan ROLLBACK membatalkan transaksi yang dilakukan karena adanya kesalahan atau kegagalan pada salah satu rangkaian perintah. SAVEPOINT TO untuk menandai tempat dimana suatu transaksi harus rollback.
Latihan Buat perintah untuk membuat tabel baru bernama BUKU dimana struktur tabelnya sebagai berikut. Column Name Data Type Size KODE Char 5 JUDUL Varchar 50 PENGARANG 20 PENERBIT 30 HARGA Int JUMLAH DISC
2. Inputkan data baru kedalam table BUKU dengan bentuk data seperti dibawah ini. 11111, Cara Cepat Belajar Komputer, Putri Yusviany, MediaKom, 40000,10, 5 22222, Dasar Pemograman Database, Dimas Putra, MediaKom, 50000, 5, 20 33333, Terapi air dan Manfaatnya, dr. Adinda, Pusat-Kes, 80000, 0, NULL 12312, Cara Membuat Aneka Hidangan Sate, Dewi Rifkiyah, 30000, NULL, NULL
3. Buat duplikat data dan struktur table untuk field kode, judul dan pengarang dari table BUKU ke table baru yang bernama BUKU_1 4. Hapus seluruh data di table BUKU_1 tanpa terkecuali