Structured Query Language atau SQL merupakan sebuah kalimat yang tidak asing lagi bagi kita anak IT. SQL merupakan poin penting dalam sebuah studi teknik komputer. Keberadaan SQL sebagai sebuah bahasa pemrograman memiliki sejarah dan perkembangan yang panjang.
Tentu saja perkembangan tersebut dipengaruhi oleh perkembangan dunia teknologi yang dari tahun ke tahun semakin membaik dan terus diperbaharui. Nama SQL sendiri diperluas sebagai bahasa Query yang terstruktur. Awalnya, SQL disebut SEQUEL (Structured English Query Language).
Pengertian SQL
Pengertian SQl secara umum dalam dunia IT bisa diartikan sebagai bahasa yang digunakan dalam mengakses sebuah data. Khususnya untuk data yang memiliki basis relasional.
Tentu saja bahasa komputer dalam data basis relasional ini berdasarkan standar yang dikeluarkan oleh American National Standard Institute (ANSI).
Tipe Data SQL
Di dalam SQL sendiri kita harus mengenal tipe-tipe yang ada dalam SQL, berikut adalah tipe-tipe dalam SQL :
- Numeric
- Character-string
- Bit-string(image)
- Dataline
Dengan kita tau tipe-tipe yang ada di SQL kita dipermudah dalam mengelola data di SQL tersebut.
1. Tipe Data Numeric
Tipe data numeric ada 2 yaitu bilangan integer, dan bilangan real.
- Bilangan-bilangan integer :
Tipe Data | Ukuran Tempat | Rentang Nilai |
Byte | 1 byte | 0 s/d +225 |
Shortint | 1 byte | -28 s/d +127 |
Integer | 2 bytes | -32768 s/d 32767 |
Word | 2 bytes | 0 s/d 65535 |
Longint | 4 bytes | 2147483648 s/d 2147483647 |
- Bilangan-bilangan real
Tipe Data | Ukurangan Tempat | Rentang Nilai |
Real | 6 bytes | 2.9 x 10-39 s/d 1.7×1038 |
Single | 4 bytes | 1.5 x 1045 s/d 3.4 x 1038 |
Double | 8 bytes | 5.0 x 10-324 s/d 1.7 x 10308 |
Extended | 10 bytes | 3.4 x 10-4932 s/d 1.1 x 104932 |
Comp | 8 bytes | -9.2 x 1018 s/d 9.2 x 1018 |
Format number di deklarasi : DECIMA (i,j) atau DEC (i,j) atau Numeric (i,j)].
- i -> presisi (jml. Decimal digit)
- j-> scale (jml. Digit pecahan)
2. TIPE DATA CHARACTER-STRING :
- Fixed Length : CHAR(n) atau CHARACTER(n)
- Varying Length : VARCHAR(n) atau CHAR VARYING(n) Atau CHARACTER VARYING(n)
- n à jml. Maksimum dari CHARACTER (default n = 1)
- Nilai-nilai yang termasuk karakter adalah:
a) Karakter huruf : ‘a’..’z’,’A’..’Z’
b) Karakter angka : ‘0’..’9’
c) Karakter tanda baca : titik, koma, titik koma, titik dua dan sebagainya
d) Karakter khusus : $, %, #, @ dan sebagainya.
3. TIPE DATA BIT-STRING
- Fixed Length : BIT(n) , n = jml bit
- Varying Length : BIT VARYING(n) , n = jml bit maksimum (default n = 1)
- Disebut juga BLOB (Binary Large Object)
4. TIPE DATA DATE & TIME
- DATE mempunyai 10 posisi dengan format untuk komponen YEAR-MONT-DAY : YYYY-MM-DD
- TIME paling sedikit mempunyai 8 posisi untuk komponen HOUR-MINUTE-SECOND dengan format : HH-MM-SS
- Detail mengenai manipulasi dari tipe data DATE & TIME dapat mengacu pada Reference Manual SQL yang di pakai.
- Format oracle : DD-MON-YYYY HH:MI:SS
Schema dan Konsep Katalog di SQL
Schema SQL dapat di identifikasi dengan nama schema, dan menyertakan pengenal otorisasi untuk menunjukkan pengguna atau akun yang memiliki schema tersebut, serta deskriptor untuk setiap elemen dalam schema.
Elemen Schema mencakup tabel, batasan, tampilan, domain, dan konstruksi lain (seperti pemberian otorisasi) yang menjelaskan tentang schema.
SCHEMA
Berikut merupakan sintaks untuk CREATE SCHEMA adalah:
BUAT SCHEMA AUTHORIZATION schema_name
[create_table_statement] [create_view_statement] [pernyataan_hibahan];
Parameter atau Argumen :
- schema_name. Nama skema (yang sama dengan nama pengguna Oracle yang Anda gunakan untuk masuk).
- create_table_statement. Pilihan. Ini adalah pernyataan CREATE TABLE yang valid.
- create_view_statement. Pilihan. Ini adalah pernyataan CREATE VIEW yang valid.
- grant_statement. Pilihan. Ini adalah pernyataan GRANT yang valid.
Contoh :
CREATE SCHEMA AUTHORIZATION smithj
CREATE TABLE products ( product_id number(10) not null, product_name varchar2(50) not null, category varchar2(50), CONSTRAINT products_pk PRIMARY KEY (product_id) );
USER
USER sendiri adalah yang menjalankan SQL tersebut. Untuk membuat sebuah User baru :
- Sintax :
CREATE USER UserName IDENTIFIED BY UserPassword ;
- Membuka/Menutup Lock User :
ALTER USER UserName ACCOUNT LOCK ; ALTER USER UserName ACCOUNT UNLOCK ;
- Mengubah Password User :
ALTER USER UserName IDENTIFIED BY NewUserPassword ;
Privileges (Hak Akses)
Untuk privileges sendiri ada dua jenis untuk pengguna yaitu :
Sistem: Memungkinkan pengguna untuk melakukan tindakan tertentu dalam database.
Objek: Memungkinkan pengguna untuk mengakses dan memanipulasi objek tertentu.
Perintah SQL
Perintah atau instruksi tersebut umumnya ditentukan oleh user, adapun bahasa yang digunakan dibagi kedalam 2 (dua) macam, diantaranya sebagaimana yang ada di bawah ini :
1. DDL (Data Definition Language)
Yang pertama adalah bahasa DDL atau kepanjangannya Data Definition Language, yaitu dipakai untuk menggambarkan desain dari basis data secara menyuruh. DDL (Data Definition Language) dapat dipakai untuk membuat tabel baru, memuat indeks, maupun mengubah tabel. Hasil dari kompilasi DDL akan disimpan di kamus data. Itulah definisi dari DDL. Untuk syntax DDL biasanya menggunakan :
- CREATE
- ALTER
- DROP
Contoh :
CREATE TABLE [schema.] table (column datatype [DEAFULT expr][, ...]);
- Schema : sama dengan nama pemilik
- Table : nama tabel
- DEFAULT expr : menentukan suatu nilai default suatu nilai dihilangkan dalam pernyataan INSERT
- Column : nama kolom
- Datatype : tipe data dan panjang kolom
Menyertakan Constraint
Constraint – constraint menjalankan aturan – aturan (rules)pada tingkat tabel.
Constraint – constraint mencegah penghapusan suatu tabel jika ada Ketergantungan – ketergantungan (dependencies).
Berikut ini adalah tipe-tipe Constraint yang valid :
- NOT NULL
- UNIQUE
- PRIMARY KEY
- FOREIGN KEY
- CHECK
Contoh :
CREATE TABLE EMPLOYEE ( FNAME VARCHAR(9) NOT NULL, MINIT CHAR, LNAME VARCHAR(15) NOT NULL, SSN CHAR(9) NOT NULL, BDATE DATE, ADDRESS VARCHAR(30), SEX CHAR, SALARY DECIMAL(10,2), SUPERSSN CHAR(9), DNO INT NOT NULL DEFAULT 1, CONSTRAINT EMPPK PRIMARY KEY (SSN) )
Contoh :

Sintax Create Table
1. CREATE TABLE SUPPLIER
Create Table supp ( KD_SUPP CHAR(5) PRIMARY KEY, NM_SUPP VARCHAR(50) NOT NULL , ALMT_SUPP VARCHAR(100), TELP_SUPP VARCHAR(12), STATUS CHAR(1) CONSTRAINT SUPP_STS_CK CHECK (STATUS IN ('A','T')), KTP CHAR(12) UNIQUE );
2. CREATE TABLE BARANG
Create Table brg ( KD_BRG CHAR(5) PRIMARY KEY, NM_BRG VARCHAR(50) NOT NULL, JENIS VARCHAR(25), STOK NUMBER(5), KD_SUPP CHAR(5) CONSTRAINT BRG_KD_FK REFERENCES SUPPLIER(KD_SUPP) );
3. CREATE TABLE PASOKAN BARANG
Create Tabel Pbrg ( KD_SUPP CHAR(5) CONSTRAINT PBRG_SUPP_FK REFERENCES SUPPLIER(KD_SUPP), KD_BRG CHAR(5) CONSTRAINT PBRG_BRG_FK REFERENCES BARANG(KD_BRG), TGL_PASOK DATE DEFAULT SYSDATE, JML_PASOK NUMBER(5) NOT NULL, CONSTRAINT PBRG_PK PRIMARY KEY (KD_SUPP,KD_BRG) );
2. DML (Data Manipulation Language)
Dan yang kedua adalah DML atau kepanjangannya Data Manipulation Language, yaitu dipakai untuk memanipulasi daan pengambilan data pada suatu basis data, misalnya seperti penambahan data yang baru ke dalam suatu basis data, menghapus data pada suatu basis data dan mengubah data pada suatu basis data. Itulah definisi dar DML. Untuk syntax DML yaitu :
Untuk contoh sebagai berikut :
INSERT
Insert adalah memasukkan data kedalam table yang sudah kita buat. Contoh :
INSERT into <table_name|column1, column2, column3,.., columnN> VALUES (val_col1,val_col2,val_col3,…,val_coln)
Keterangan :
Table_name adalah nama dari suatu tabel column adalah nama dari kolom dalam tabel yang ditambah values adalah nilai yang sesuai untuk kolom
Contoh :

INSERT INTO Barang (kd_brg,nm_brg,jenis,stok) VALUES ('B001','Pepsodent','Pasta Gigi',500); INSERT INTO Barang (kd_brg,jenis,stok,nm_brg) VALUES ('B002', 'Pasta Gigi',200,'Ciptadent'); INSERT INTO Barang (kd_brg,jenis,stok,nm_brg)VALUES ('B003','Shampo',100,'Dove'); INSERT INTO Barang (kd_brg, nm_brg) VALUES ('B004','Sunsilk');
Contoh :

INSERT INTO Barang1 SELECT * FROM Barang ; INSERT INTO Barang2 (kd_brg,nm_brg,jenis,stok) SELECT * FROM Barang ; INSERT INTO Barang2 SELECT kd_brg,stok,nm_brg,jenis FROM Barang ;
UPDATE
Update yaitu menrubah atau mengupdate data yang telah kita buat di suatu table. Syntax sebagai berikut :
UPDATE <table_name> SET <column_name> = <value> [WHERE] <condition>
Keterangan :
- Table_name adalah nama dari suatu tabel.
- Column adalah nama dari kolom dalam tabel yang nilainya akan diubah
- Value adalah nilai baru yang sesuai untuk kolom
- Condition Barisbaris yang diidentifikasi untuk diupdate dan terdiri dari nama-nama kolom, ekspresi, konstanta, subqueries, dan operatoroperator pembanding
BARANG | ||
KOLOM | TIPEDATA | CONSTRAINT |
KD_BRG | CHAR(5) | PRIMARY KEY |
NM_BRG | VARCHAR(50) | NOT NULL |
JENIS | VARCHAR(25) | |
STOK | NUMBER(5) |
UPDATE Barang SET jenis = 'Pasta Gigi' ; UPDATE Barang SET stok = 200 WHERE kd_brg = 'B001' ; UPDATE Barang SET stok = 200,jenis = 'Shampo' WHERE kd_brg = 'B002' ;
DELETE
Delete yaitu menghapus data sesuai table yang kita pilih. Berikut syntax dari delete :
DELETE [from] <table_name> [WHERE] <condition>
Keterangan :
- Table_name adalah nama dari suatu tabel
- condition Barisbaris yang diidentifikasi untuk diupdate dan terdiri dari nama-nama kolom, ekspresi, konstanta, subqueries, dan operatoroperator pembanding
BARANG | ||
KOLOM | TIPEDATA | CONSTRAINT |
KD_BRG | CHAR(5) | PRIMARY KEY |
NM_BRG | VARCHAR(50) | NOT NULL |
JENIS | VARCHAR(25) | |
STOK | NUMBER(5) |
DELETE [FROM] Barang ;
DELETE Barang WHERE kd_brg = 'B001' ;
DELETE Barang WHERE jenis = 'Pasta Gigi' AND stok = 200 ;
Pengenalan SQL dan cara memanipulasi data yang dapat memanfaatkan Query untuk kebutuhan bisnis lainnya