SQL (Structure Query Language) PERTEMUAN 9 SQL (Structure Query Language) Betha Nurina Sari, M.Kom
SQL Structure Query Language (SQL) merupakan komponen bahasa relational database system. SQL merupakan bahasa baku (ANSI/SQL), non procedural, dan berorientasi himpunan (set-oriented language). SQL dapat digunakan baik secara interaktif atau ditempelkan (embedded) pada sebuah program aplikasi.
Tipe Data SQL Beberapa tipe data dalam SQL yang sering dipakai: Keterangan INT Angka -2147483648 s/d 2147483647 FLOAT Angka Pecahan DATE Tanggal Format:YYYY-MM-DD DATETIME Tanggal dan waktu format: CHAR String dan panjang tetap sesuai dg yg ditentukan,panjangnya 1-255 karakter VARCHAR String dg panjang yg berubah-ubah sesuai dg yg disimpan saat itu.Panjangnya 1-255 karakter BLOB Teks dg panjang maksimum 65535 karakter LONGBLOB Teks dengan panjang maksimum 4294967295 karakter
Komponen SQL
Komponen SQL Data Definition Language (DDL) Digunakan untuk mendefinisikan data dengan menggunakan perintah : create, drop, alter. Data Manipulation Language (DML) Digunakan untuk memanipulasi data dengan menggunakan perintah : select, insert, update, delete. Data Control Language (DCL) Digunakan untuk mengontrol hak para pemakai data dengan perintah : grant, revoke
Data Definition Language (DDL) Create Database Tabel Index View Alter Drop
CREATE DATABASE Pembuatan Database Sintaks : CREATE DATABASE nama_db ; Contoh : CREATE DATABASE FASILKOM ;
CREATE TABLE Pembuatan Tabel Sintaks : CREATE TABLE nama_tabel (nama_kolom1 type_kolom1, nama_kolom2 type _kolom2, …); Contoh : CREATE TABLE MAHASISWA (NPM char(8) notnull, NAMA char(25) notnull, ALAMAT char(30) notnull);
Spesifikasi Data : NULL, NOT NULL, NOT NULL WITH DEFAULT dapat diinterpretasikan sebagai nilai yang tidak diketahui atau tidak tersedianya suatu nilai. Null bukan berarti kosong (blank) atau 0 (Nol) NOT NULL : pemakai atau program harus memberikan nilai-nilai pada saat memasukkan record NOT NULL WITH DEFAULT : nilai default disimpan pada saat record dimasukkan tanpa nilai yang ditentukan untuk kolom ini.
NOT NULL WITH DEFAULT : Nilai default-nya : Nol untuk tipe field NUMERIC Blank untuk tipe field CHARACTER CURRENT DATE untuk tipe field DATE CURRENT TIME untuk tipe field TIME
CREATE INDEX Pembuatan Index Sintaks : CREATE [UNIQUE] INDEX nama_index ON nama_tabel (nama_kolom); Contoh : CREATE UNIQUE INDEX ID_MHS ON MAHASISWA(NPM);
INDEX Dengan indeks memungkinkan suatu tabel untuk : diakses dengan urutan tertentu tanpa harus merubah urutan fisik dari datanya diakses secara cepat melalui indeks yang dibuat berdasar nilai field tertentu.
CREATE VIEW Pembuatan View Sintaks : CREATE VIEW nama_view [(nama_kolom1, …, …)] AS SELECT statement [WITH CHECK OPTION]; Contoh: CREATE VIEW MHSVIEW AS SELECT NPM,NAMA,JUR FROM MAHASISWA;
VIEW View merupakan bentuk alternatif penyajian data dari satu atau lebih tabel. View dapat berisi semua atau sebagian kolom yang terdapat pada tabel dimana kolom tersebut didefinisikan Tujuan membuat view : Meningkatkan keamanan data Meningkatkan kemandirian data Penyederhanaan bagi end user (data yang sedikit, nama-nama kolom yang baru dan dapat dibaca dengan lebih baik)
ALTER TABLE Merubah Struktur Tabel Sintaks : ALTER TABLE nama_tabel ADD (nama_kolom type_kolom [BEFORE nama_kolom]) MODIFY (nama_kolom type_kolom) DROP (nama_kolom type_kolom); contoh : ALTER TABLE MAHASISWA ADD(JK char(1));
DROP Sintaks : DROP DATABASE nama_db; DROP TABLE nama_tabel; DROP INDEX nama_index; DROP VIEW nama_view; Dengan perintah itu obyek lain yang berhubungan dengan tabel tersebut otomatis akan dihapus atau tidak akan berfungsi seperti : semua record dalam tabel akan terhapus index dan view pada tabel akan hilang deskripsi tabel akan hilang
DROP TABLE Digunakan untuk menghapus relasi (tabel dasar) dan definisinya Relasi yang dihapus tentu tidak dapat lagi dioperasikan dengan operasi SQL Contoh: DROP TABLE MAHASISWA;
Data Manipulation Language (DML) Insert Delete Update Select
INSERT Fungsi : menambah baris (record) baru Sintaks : INSERT INTO tbname (col1, ...) VALUES (value1, ...) Catatan : Sintaks tersebut dapat digunakan jika jumlah kolom = jumlah nilai, tetapi jika dalam tabel semua kolom akan diisi dapat digunakan sintaks berikut ini : Sintaks : INSERT INTO tbname VALUES (value1, value2, ...) Nilai-nilai diisikan sebanyak kolom yang terdapat di tabel tersebut.
INSERT CONTOH : Insert into MAHASISWA (nim, nama, ttl, jk, alamat) values (“10106001”, ”Arya Santoso”, 1983-12-01, “l”, “Dago - Bandung”) atau Insert into MAHASISWA values (“10106001”, ”Arya Santoso”, 1983-12-01, “l”, “Dago - Bandung”)
UPDATE Fungsi : merubah record Sintaks : UPDATE tbname SET field = ekspresi WHERE kondisi Contoh : UPDATE MAHASISWA SET Alamat = “Karawang” WHERE NPM = ‘14098'
DELETE Fungsi : menghapus record Sintaks : DELETE FROM tbname WHERE kondisi Contoh : DELETE FROM MAHASISWA Hapus semua data dalam tabel Mahasiswa, namun struktur tabel tetap ada. DELETE FROM MAHASISWA WHERE NPM='10312‘ Hapus data mahasiswa pada tabel mahasiswa yang mempunyai nim ‘10312’
SELECT Perintah SQL dasar disebut mapping atau blok SELECT-FROM-WHERE Sintaks umum SELECT : diikuti daftar atribut FROM : diikuti daftar tabel WHERE : diikuti dengan kondisi Contoh : SELECT FROM MAHASISWA WHERE Alamat=“Karawang”
SELECT Contoh : Tampilkan tanggal lahir dan alamat dari pegawai yang namanya ‘John Smith’ SELECT BDATE, ADDRESS FROM EMPLOYEE WHERE FNAME=’John’ AND LNAME=’Smith’
SELECT Fungsi : menampilkan record Sintaks : SELECT [DISTINCT] colname FROM tbname [WHERE kondisi] [GROUP BY kondisi] [HAVING kondisi] [ORDER BY kondisi]
PENGGUNAAN DISTICT SQL tidak memperlakukan relasi sebagai himpunan, sehingga tupel dapat terduplikasi. Untuk menghilangkan tuple yang terduplikasi dalam relasi hasil query maka digunakan kata kunci DISTINCT. Contoh : Query 10: SELECT GAJI FROM KARYAWAN Query 11: SELECT DISTINCT GAJI FROM KARYAWAN
Data Control Language (DCL) GRANT : Perintah ini digunakan untuk memberikan hak/izin akses oleh administrator server kepada user. Hak akses berupa hak membuat (CREATE), mengambil (SELECT), menghapus (DELETE), mengubah (UPDATE), dan hak khusus lainnya. REVOKE : Perintah ini menghilangkan atau mencabut hak akses yang telah diberikan kepada user oleh administrator
GRANT Sintaks umum : GRANT hak_akses ON nama_tabel TO user; GRANT ALL PRIVILAGES ON nama_db.* TO “user” IDENTIFIED BY “password” Contoh : GRANT SELECT ON MAHASISWA TO ANANDA; GRANT ALL ON FASILKOM.* TO ADMIN;
REVOKE Sintaks umum REVOKE hak_akses ON nama_tabel FROM user; REVOKE hak_akses ON nama_db.nama_tabel FROM user; Contoh : REVOKE SELECT ON FASILKOM.MAHASISWA FROM ANANDA; REVOKE ALL ON FASILKOM.DOSEN FROM PUBLIC;
NEXT>>> SQL (2)