Sejarah SQL
SQL
pertama kali dikenalkan oleh labotarium IBM di San Jose dan pertama
dikembangkan akhir tahun 70-an pertama kalinya SQL dikembangkan untuk
produk-produk IBM–DB 2 dan RDMS (Relational Database Management
System), yang kemudian pada akhir akhir ini dapat bekerja untuk berbagai
macam platform.
SQL adalah
bahasa non-prosedural yang bertentangan dengan bahasa prosedural ke tiga
seperti COBOL dan C. Perbedaan bahasa prosedural dengan non-prosedural
adalah pada pandangannya, pada bahasa prosedural pembuatan perintah
program didasarkan pada “how” yaitu bagaimana suatu hasil dapat
diperoleh. Sedangkan pada bahasa non–prosedural didasarkan pada “what”
yaitu apa yang akan ditampilkan. Karekfenistik dari RDBMS adalah bahasa
database yang didasarkan pada himpunan (set). Sehingga SQL dapat
diartikan sebagai proses himpunan data dalam kelompok-kelompok tertentu.
Ada dua
perusahaan terkenal, ANSI (The American National Standards Institute)
dan ISO (The International Standards Organization), mempromosikan SQL
standard untuk Industri. Standard ANSI-92 merupakan standard SQL yang
banyak dikenal dan dikembangkan.
SQL didukung oleh berbagai bahasa programan, seperti : Visual Basic, C++, Builder, Delphi, Oracle, mySQL, PostGreeSQL,
dan Java. Dengan Menggunakan perintah - perintah SQL, kita dapat memanipulasi data dalam sebuah database melalui
baris - baris program yang kita tuliskan.
1. Jenis - Jenis Perintah SQL
Perintah - perintah SQL dapat dikelompokan dalam 2 kategori, yaitu Data Definition Language (DDL) dan Data Manipulation
Language(DML).
a.Data Definition Language
Data Definition Language merupakan perintah - perintah yang digunakan untuk membuat tabel dan mendefinisikan struktur
database (menambah/mengubah/hapus). CREATE, DROP, ALTER merupakan beberapa contoh perintah kategorii DDL tersebut.
CREATE : Untuk membuat tabel dan database.
DROP : Untuk menghapus tabel database.
ALTER : Untuk mengubah strukktur tabel yang telah dibuat, baik menambah field(ADD), mengganti nama field(CHANGE)
ataupun mengganti nama (RENAME).
b. Data Manipulation Language
Data manipulation language merupakan perintah yang digunakan untuk memanipulasi database (melihat, menelusuri, filtering
summarize, perhitungan, dll). DML merupakan metode query yang dapat digunakan setelah database dibuat. Bebearapa perintah
yang termasuk kategori DML adalah SELECT, INSERT, UPDATE dan DELETE.
SELECT : Mengekstrak/mengambil data dari sebuah database
INSERT : Digunakan untuk menyisipkan data baru kedalam database
UPDATE : Digunakan untuk melakukan pengubahan/peremajaan terhadap data yang ada pada tabel.
DELETE : Digunakn untuk penghapusan data pada tabel database. penghaspusan ini dapat dilakukan secara sekaligus
(seluruh isi tabel) maupun hanya beberapa set record.
Kedua bentuk perintah SQL diatas dapat digunakan pada semua model database (basis data) yang mendukungnya, baik yang berbasis
Unix maupun Windows. pada sistem operasi windows, misalnya : SQL Dapat diterapkan pada aplikaso DBMS semacam Microsoft
Acces atau pada file database hasil apliaksi desktop database yang bernama paradox.
SEJARAH
Kelebihan dan Kekurangan dari My SQL
Kelebihan :
- Dapat bekerja di beberapa platform yang berbeda seperti LINUX, Windows, MacOS, FreeBSD, Solaris, dll.
- Dapat dikoneksikan pada bahasa C, C++, Java , Perl, PHP, dan Python.
- Mempunyai lebih banyak tipe data seperti : signed/unsigned integer yang memiliki panjang data sebesar 1,2,3,4 dan 8 byte. FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME, DATETIME, TIMESTAMP, YEAR, SET, dan tipe ENUM.
- Mendukung penuh terhadap kalimat SQL GROUP BY dan ORDER BY . Mendukung terhadap fungsi penuh ( COUNT ( ), COUNT(DISTINCT), AVG( ), STD ( ), SUM ( ), MAX ( ), AND MIN ( ) ).
- Mendukung terhadap LEFT OUTHER JOIN dengan ANSI SQL dan sintak ODBC.
- Mendukung ODBC for windows 95' (dengan source program). Semua fungsi ODBC 2.5 dan sebagainya. Sebagai contoh kita dapat menggunakan Access untuk connect ke MySQL server.
- Menggunakan GNU automake, autoconf, dan LIBTOOL untuk portabilitas.
- Kita dapat menggabungkan beberapa table dari database yang berbeda dalam query yang sama. Structure table MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE dibandingkan DBMS lainnya.
- Ditulis dengan menggunakan bahasa C dan C++. Diuji oleh compiler yang sangat jauh berbeda.
- Privilege (hak) dan password sangat fleksibel dan aman serta mengijinkan "Host-Based" Verifikasi. Memiliki beberapa lapisan keamanan , seperti subnet mask, nama host, dan izin akses user dengan sistem perijinan yang mendetail serta sandi/password terenkripsi.
- Program dapat running di semua OS,PHP MySQL berjalan secara web base, itu artinya semua operating system yang memiliki web browser dapat menggunakan aplikasi ini, dan semua OS tentu saja selalu memiliki web browser, Windows dengan internet explorer, Linux dengan Mozilla, Macintosh dengan safari, dan handphone dengan opera mini. Sangat mobile dan flexibel.
- Sangat cocok dan mudah diterapkan pada komputer berjaringan , program PHP MySQL cukup diinstall di salah satu komputer pada jaringan yang dalam hal ini adalah komputer server, pada komputer client, kita tidak usah menginstalasikan program apapun lagi. Pada komputer client kita cukup mengarahkan web browser ke komputer server dan program dapat langsung running, apabila program error(walau kemungkinan sangat kecil sekali) program cukup di maintenance di pihak komputer server yang terinstalasikan program tanpa harus memaintenance komputer client juga. sangat mudah dan simple.
- Tidak ada virus yang menginfeksi program PHP, sampai saat ini program PHP belum dapat diinfeksi virus, kebanyakan virus menginfeksi file berekstensi *.exe dan *.dll, sangat awet dan aman.
- Sangat stabil disemua operating system program PHP walau dipakai dalamwaktu yang sangat lama tidak akan memberatkan sistem dan tidak akan mempengaruhi komputer untuk berjalan sangat lambat, sangat cocok diterapkan pada komputer yang selalu nyala 24 jam
- Sangat multi user, program PHP tidak akan bentrok dengan pengguna lain yang sama-sama menggunakan program dalam satu jaringan karena MySQL merupakan turunan dari konsep SQLMulti user
- Merupakan DBMS yang gratis/open source berlisensi GPL (Generic Public License).
- Cocok untuk perusahaan dengan skala yang kecil.
- Tidak membutuhkan spesifikasi hardware yang tinggi untuk bisa menjalankan MySQL ini bahkan dengan spesifikasi hardware yang minimal sekalipun.
- MySQL dapat melakukan koneksidengan komputer client menggunakan protokol TCP/IP, Unix Socket (UNIX), atau Named Pipes(Windows NT).
- MySQL memiliki antar muka/interface terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application progamming interface).
- Command and function MySQL memiliki fungsi dan operator secara penuh yang mendukung perintah select dan where dalam query.
- Untuk koneksi kebahasa pemrograman visual seperti VB(Virus Basic), delphi, dan foxpro, MySQL kurang support, karena koneksi ini menyebabkan field yang dibaca harus sesuai dengan koneksi dari program visual tersebut, dan ini yang menyebabkan MySQL jarang dipakai dalam program visual.
- Data yang ditangani belum begitu besar. Tidak cocok baik menyimpan data maupun untuk memproses data.
- Program hanya dapat running di windows. Itupun untuk windows lama,untuk windows terbaru seperti Vista,Visual Basic sangat tidak stabil berjalan di platform tersebut,banyak kantor yang dapat menghubungkan laptop pegawai mereka untuk bergabung dalam sistem jaringan kantor.Bagaimana untuk pengguna Macintosh maupun Linux? Program tidak dapat dijalankan di laptop mereka. Walaupun bisa, program harus diinstall terlebih dahulu menggunakan emulator.
- Tidak Praktis apabila diterapkan pada jaringan komputer. Itu dikarenakan VB program yang berdiri sendiri yang berarti harus diinstalasikan pada tiap komputer pada jaringan tersebut. Bayangkan apabila ada puluhan komputer? ada berapa lama waktu untuk instalasi dan pemeliharaannya?
- Aplikasi yang rentan terkena virus, program yang dibuat menggunakan Visual Basic adalah berupa execution program(*.exe) yang dapat terinfeksi virus seperti virus Sality, program menjadi rusak dan tidak bisa dijalankan. apabila program terinfeksi tersebut di scan oleh antivirus, program akan dihapus dari sistem, sangat tidak aman untuk sebuah program yang menjadi tulang punggung perusahaan.
- Mudah hang dan crash, program dari VB seringkali menjadi not responding lalu mati tiba-tiba.
- Tidak multi user, apabila dalam satu jaringan komputer menggunakan program dalam satu waktu, salah satu user harus mengalah sampai user yang lain selesai menggunakan program.
- Memiliki keterbatasan kemampuan kinerja dalam server ketika data yang disimpan telah melebihi batas maksimal kemampuan daya tampung server karena tidak menerapkan konsep Technology Cluster Server.
KELEBIHAN & KEKURANGAN
Belajar Sintak dasar SQL (Structured Query Language)
1. Membuat Table Baru
2. Menghapus Table
- Syntax : CREATE TABLE nama_table ( field1 type(size),field2 type(size), …)
- Contoh :
CREATE TABLE karyawan (
firstname char(15) not null,
lastname char(15) not null,
ssn char(9) not null,
bdate date,
address char(30) ,
sex char(1),
salary decimal(10.2))
Sintaks: DROP TABLE nama_table3. Memperbaharui field (Menambah / mengurangi field)
Contoh: DROP TABLE karyawan
4. Menyisipkan Data Baru
- Menambah kolom/field baru
ALTER TABLE nama_table
ADD field TYPE(SIZE)
- Menghapus kolom/field
ALTER TABLE nama_table
DROP COLUMN field
5. Menampilkan Data
- INSERT INTO nama_table (field1, field2 ,…) VALUES (nilai1, nilai2 ,…)
- INSERT INTO nama_table VALUES (nilai1, nilai2 ,…)
Contoh :
- INSERT INTO KARYAWAN (nama, pekerj aan, gaji, mkerja)VALUES ("SUNARDI" ,"STAF AHLI" ,1500000,3)
- INSERT INTO KARYAWAN VALUES ("SUNARDI" ,"STAF AHLI" ,1500000,3)
6. Menghapus Data /Baris
- Semua Data.
SELECT *FROM NAMA_TABLE
- Menampilkan field tertentu.
SELECT FIELD1,FIELD2,… FROM NAMA_TABLE
- Menampilkan data dengan urutan tertentu.
SELECT FIELD1,FIELD2,… FROM NAMA_TABLE ORDER BY FIELD
Gunakan DESC setelah FIELD untuk pengurutan TURUN
- Menampilkan data-data tertentu
SELECT FIELD FROM NAMA_TABLE WHERE <KONDISI>
Contoh :
- SELECT * FROM KARYAWAN WHERE NAMA LIKE “S*”
- SELECT *FROM KARYAWAN WHERE GAJI > 1000000
- SELECT *FROM KARYAWAN WHERE GAJI > 500000 AND GAJI <2000000
atau
- SELECT *FROM KARYAWAN WHERE GAJI BETWEEN 500000 AND 2000000
- SELECT * FROM KARYAWAN WHERE NAMA LIKE “S*” or NAMA LIKE “A*”
- SELECT * FROM KARYAWAN WHERE NAMA NOT LIKE “S*"
DELETE FROM nama_table
WHERE <kondisi>
7. Memperbaiki/edit Data/Baris
UPDATE nama_tableSelamat mencoba dan belajar sobat, sintak ini bisa di terapkan dalam pemrograman SQL silahkan baca Cara mengkoneksikan ODBC Query Tool dengan Microsoft Acces Database, sehingga kita dapat mempelajarinya sebagai programer SQL pemula. Jika ada pertanyaan silakan komentar dibawah ini.
SET <kondisi1/pengganti>
WHERE <kondisi2/yg diganti>
SINTAK / SCRIPT
A. Fungsi-Fungsi SQL (lanjutan)
Ada dua tipe dari fungsifungsi
1. SingleRow Functions
Fungsi-fungsi ini hanya digunakan pada baris-baris
tunggal dan mengembalikan satu hasil per baris.
Ada tipe-tipe berbeda dari singlerow functions. Pelajaran ini mencakup hal-hal berikut :
- Character (karakter) : Menerima input karakter dan dapat mengembalikan baik nilai-nilai karakter ataupun angka.
- Number (angka) : Menerima masukkan angka dan mengembalikan nilai-nilai angka
- Date (tanggal) : Bekerja pada nilai-nilai dari tipe data DATE (semua date functions mengembalikan suatu nilai dari tipe data DATE kecuali fungsi MONTHS_BETWEEN, yang mengembalikan suatu angka.)
- Conversion (konversi) : Mengkonversi suatu nilai dari satu tipe data ke tipe data lainnya.
- General (umum) : (fungsi-fungsi umum) :
- NVL
- NVL
- 2
- NULLIF
- COALESCE
- CASE
- DECODE
- Single Rows Functions
- Usersupplied
- constant (Konstanta yang disediakan oleh user)
- Nilai variable
- Nama Kolom
- Ekspresi
- Aksi pada setiap baris yang dikembalikan di dalam query
- Mengembalikan satu hasil per baris
- Memungkinkan pengembalian suatu nilai data dari suatu tipe berbeda daripada satu yang direferensikan.
- Mungkin menerima satu atau lebih argumentargumen
- Dapat digunakan didalam klausaklausa
2. Multiplerow Functions
Fungsi-fungsi dapat memanipulasi kelompok dari baris-baris untuk memberi suatu hasil baris-baris per kelompok. Fungsi-fungsi ini dikenal juga sebagai group functions (dibahas pada pelajaran selanjutnya).
- CaseManipulation Functions
- ·LOWER : Konversi mixedcase (bentuk campuran) atau karakterkarakter string huruf besar ke huruf kecil
- ·UPPER : Konversi mixedcase atau karakterkarakter string huruf kecil ke huruf besar
- ·INITCAP : Konversi huruf pertama setiap kata ke huruf besar dan hurufhuruf selanjunya ke huruf kecil
FROM employees;
- Menggunakan Fungsi-Fungsi CaseManipulation
. . . WHERE last_name= ‘ Higgins’
Nama pada output muncul seperti nama itu disimpan di dalam database. Untuk menampilkan nama dimana hanya huruf pertama dalam bentuk huruf besar, gunakan fungsi UPPER pada pernyataan SELECT.
SELECT employee_id, UPPER (last_name), department_id
FROM employees
WHERE INITCAP(last_name) = ‘Higgins’;
- Fungsi-Fungsi CharacterManipulation
- ·CONCAT : Menggabungkan bersama nilai-nilai ( Anda dibatasi untuk menggunakan dua
- ·SUBSTR : Memotong suatu rangkaian dari panjang tertentu
INSTR : Menemukan posisi numerik dari suatu karakter nama
LPAD : Mengisi nilai karakter rightjustified (perataan kanan)
RPAD : Mengisi nilai karakter leftjustified(perataan kiri)
TRIM : Memotong karakter-karakter bagian awal atau bagian akhir (atau keduaduanya) dari suatu rangkaian karakter ( jika trim_character atau trim_source adalah suatu karakter literal, Anda harus mengapitnya didalam tanda petik tunggal.)
- Menggunakan Fungsi-Fungsi CharacterManipulation.
SELECT employee_id, CONCAT (first_name, last_name) NAME,
LENGTH (last_name), INSTR (last_name, ‘a’) “Contains ‘a’?”
FROM employees
WHERE SUBSTR (last_name, 1,1) = ‘n’;
- Fungsi ROUND
- DUAL Table
Table-tabel aktual.
- Fungsi TRUNC
- Fungsi MOD
- Format Tanggal Oracle
- Fungsi SYSDATE
Contoh
Menampilkan tanggal saat ini menggunakan tabel DUAL.
SELECT SYSDATE
FROM DUAL;
- Dates Functions
- ·MONTHS_BETWEEN (date1, date2) : Mencari jumlah bulan diantara date1 dan date2. Hasilnya bisa jadi positif atau negatif. Jika date1 lebih awal daripada date2, hasilnya adalah positif ; jika date1 lebih awal daripada date2, hasilnya adalah negatif . Sebagian dari hasil bukan bilangan bulat (noninteger) menunjukkan suatu bagian dari bulan.
NEXT_DATE (date, ’char’) : (‘char’) setelah date menemukan suatu tanggal dari suatu hari tertentu pada suatu minggu. Nilai dari char bisa angka yang mewakili suatu hari atau suatu karakter string.
LAST_DAY (date) : Mencari hari terakhir dari suatu tanggal dalam suatu bulan yang berisi date.
ROUND (date[,’fmt’] ) : Mengembalikan pembulatan date ke suatu unit yang ditentukan oleh model format fmt. Jika model format fmt dihilangkan, date dibulatkan ke hari terdekat.
TRUNC (date[,’fmt’] ) : Mengembalikan date dengan bagian suatu waktu dari suatu hari yang dipotong ke unit yang ditentukan oleh model format fmt.
- Menggunakan Fungsi NVL
penghasilan bulanan dengan 12 kemudian menambah prosentase komisi kepada hasil :
SELECT last_name, salary, commission_pct,
(salary*12) + (salary*12*commission_pct) AN_SAL
FROM employees;
- Menggunakan Fungsi NVL2
mengembalikan ekspresi kedua. Jika ekspresi pertama null, maka ekspresi ketiga yang akan
dikembalikan.
Sintak
NVL (expr1, expr2, expr3)
Dalam sintak :
·expr1 adalah nilai atau ekspresi asal yang mungkin berisi null.
·expr2 adalah nilai yang dikembalikan jika expr1 bukan null.
·expr3 adalah nilai yang dikembalikan jika expr1 adalah null.
- Penggunaan Fungsi NULLIF
Sintak
NULLIF(expr1, expr2)
Dalam sintak :
·expr1 adalah nilai asal yang dibandingkan dengan expr2.
·expr2 adalah nilai asal yang dibandingkan dengan expr1 (Jika tidak sama dengan expr1,
maka expr1 yang dikembalikan).
- Menggunakan Fungsi COALESCE
Sintak
COALESCE (epr1, expr2,…exprn)
Dalam sintak:
expr1 mengembalikan ekspresi expr1 jika ia bukan null.
- ·expr2 mengembalikan ekspresi expr2 jika ekspresi pertama null dan ekspresi expr2 bukan null.
- ·exprn mengembalikan ekspresi exprn jika ekspresiekspresi sebelumnya null.
- Ekspresi-Ekspresi Kondisional
dalam pernyataan SQL adalah ekspresi CASE dan fungsi DECODE.
- Ekspresi CASE
SQL tanpa meminta prosedurprosedur. Dalam ekspresi CASE sederhana, server Oracle mencari pasangan WHEN . . . THEN pertama dimana expr adalah sama dengan comparison_expr dan mengembalikan return_expr.
- Fungsi DECODE
yang digunakan dalam beragam bahasa. Fungsi DECODE mengkodekan expression setelah membandingkannya dengan setiap nilai search. Jika ekspresi sama dengan search, result akan dikembalikan. Jika nilai default
FUNGSI
SQL adalah singkatan dari Structured Query Language. Sedangan pengertian SQL adalah suatu bahasa (language) yang digunakan untuk mengakses data di dalam sebuah database relasional. SQL sering juga disebut dengan istilah query, dan bahasa SQL secara praktiknya digunakan sebagai bahasa standar untuk manajemen database relasional. Hingga saat ini hampir seluruh server database atau software database mengenal dan mengerti bahasa SQL.





