Home » » Pengenalan Pemrograman SQL (Structured Query Language)

Pengenalan Pemrograman SQL (Structured Query Language)

Rabu, 29 Agustus 2012 | 0 komentar

SQL (Structured Query Language) merupakan sebuah bahasa pemograman non-prosedural yang digunakan dalam RDMS (Relation Database Management System).

Untuk apakah kita mempelajarinya ?

Pertama SQL merupakan bahasa de-facto bagi RDMS, termasuk yang populer saat ini seperti Oracle, Access, MySQL, Postgresql, Interbase, Sybase dan sebagainya. Selain itu SQL bersifat Powerfull dan efisien untuk mengakses data, dan yang menjadi lebih penting bahasa yang satu ini sangat mudah untuk dapat dipelajari oleh orang non-IT sekalipun, hal ini wajar karena seperti yang dapat kita buktikan bahwa kedekatannya akan bahasa manusia merupakan kelebihan yang dimiliki oleh SQL.

SQL adalah bahasa yang digunakan untuk membuat, memodifikasi, bahkan sampai menghapus data. SQL awalnya dikembangkan oleh E.F.Codd, dengan nama Structured English Query Langguage (SEQL,baca sequel). Walaupun penelitian tersebut dilakukan oleh orang IBM tidak serta merta mereka mengimplementasikannya. SQL mempunyai standard: ANSI SQL dan bagi setiap RDMS memiliki “dialek” dan extension tersendiri.

SQL merupakan sekumpulan bahasa yang masing-masing didisain untuk keperluan tertentu. Jenisnya antara lain:
  1. Data Definition Langguage (DDL), ia digunakan untuk membuat dan memodifikasi objek database. Pernyataan DDL terdiri atas CREATE, ALTER, DROP, RENAME, dan TRUNCATE.
  2. Data Manipulation Langguage (DML), ia digunakan untuk mengubah data yang ada didalam database. Pernyataan DML meliputi INSERT, UPDATE, SELECT dan DELETE. Beberapa tambahan untuk DML yang banyak digunakan dalam mengendalikan transaksi data, yaitu COMMIT, ROLLBACK, dan SAVEPOINT.
  3. Data Control Langguage (DCL), ia digunakan untuk memberikan hak dalam melakukan pekerjaan yang terkait dengan database dan hak untuk memanipulasi obyek database. Pernyataan yang termasuk dalam golongan antara lain GRANT dan REVOKE.
Untuk tahap awal ini sebaiknya kita membahas SELECT terlebih dahulu, karena yang satu ini merupakan suatu steatment yang sering digunakan. Agar steatment ini dapat kita gunakan maka terlebih dahulu kita membuat sebuah table (asumsi anda sudah memiliki database dan steatment bedialek ORA). Untuk pengolaan database dan table akan dibahas pada sesi selanjutnya secara spesifik lagi.

CREATE TABLE MAHASISWA (NIM CHAR(9), NAMA VARCHAR(25), TMP_LAHIR VARCHAR(25), TGL_LAHIR DATE, TINGGI NUMBER(3), CONSTRAINT PK_MAHASISWA PRIMARY KEY (NIM));
Lalu kita insert-kan beberapa data

INSERT INTO MAHASISWA VALUES (’000456678′, ‘ANDRI INDRAWAN’, ‘TANGERANG’, TO_DATE(’12-03-1985′,’DD-MM-YYYY’), 165);
Lakukan berulang-ulang hingga beberapa data yang kita inginkan berada pada tabel. Untuk mengecek apakah data tersebut sudah ada dalam tabel dan kita ingin memanipulasinya sedemikian rupa, simak pembahasan dibawah ini.

SELECT
Merupakan statement SQL yang paling banyak digunakan dalam RDMS dan merupakan ke kategori DML, adapun format umum dari statement ini yaitu SELECT [nama field] FROM [nama tabel] WHERE [kondisi], catatan:
Gunakan SELECT *, jika semua field ingin ditampilkan. Jika semua record ingin ditampilkan hilangkan bagian WHERE
Contoh: SELECT * FROM MAHASISWA;
    SELECT nama FROM mahasiswa; (hanya mengambil field nama saja)
    SELECT nim,nama FROM mahasiswa; (hanya mengambil nim,nama mahasiswa)
    Gabungan Field
        Oracle: SELECT nim||nama FROM MAHASISWA;        MySQL: SELECT concat(nim,nama) FROM MAHASISWA;        Access: SELECT nim+nama FROM MAHASISWA;

Select Distinct & Order By

SELECT DISTINCT TINGGI FROM MAHASISWA;
yaitu menampilkan tinggi yang unik / tidak ada duplikasi tinggi
SELECT * FROM MAHASISWA ORDER BY TINGGI;
yaitu data permintaan diurutkan berdasarkan tinggi badan
SELECT * FROM MAHASISWA ORDER BY TINGGI ASC, NAMA DESC; yaitu diurutkan berdasarkan tinggi secara ascending (menaik), berikutnya NAMA secara descending (menurun)

WHERE

SELECT nim,nama FROM mahasiswa WHERE nim=’123′;yaitu (hanya mengambil nim,nama mahasiswa dengan kondisi nim-nya adalah ’123′). Operator seleksi yang dapat digunakan:

=, >, <, >=, <=, <>, LIKE, BETWEEN

Operator lojik yang dapat digunakan:
AND, OR, NOT


Contoh:
SELECT * FROM MAHASISWA WHERE TINGGI>=150 AND TINGGI <=160;


Contoh:
SELECT * FROM MAHASISWA WHERE NOT((NIM = ’123′) OR (NIM = ’124′));


Untuk kondisi (where), penggunaan fungsi LIKE dalam upaya pengambilan suatu data yang mungkin serupa secara umum berformat.
SELECT [nama field] FROM [nama tabel] WHERE [kondisi (nama_field LIKE parameter_isi_field)]

Adapun dalam dialek yang dapat kita ketahui diantaranya:

Oracle, MySQL:


SELECT * FROM MAHASISWA WHERE NAMA LIKE ‘%NDR%’;
dimana % artinya: nol, satu atau lebih karater.
SELECT * FROM MAHASISWA WHERE NAMA LIKE ?ANDR_’;
dimana _ artinya : tepat satu karakter.

MS Access:
SELECT * FROM MAHASISWA WHERE NAMA LIKE ?*NDR*’;
dimana * artinya : nol, satu atau lebih karater.
SELECT * FROM MAHASISWA? WHERE NAMA LIKE ?ANDR?’;
dimana ? Artinya : tepat satu karater.
Sedangkan untuk kondisi pengambilan data dengan parameter terukur pasti dapat kita gunakan fungsi IN dan BETWEEN.
SELECT * FROM MAHASISWA WHERE nim IN (’123′,’124′);
yaitu tampilkan nim 123 dan nim 124.
SELECT * FROM MAHASISWA WHERE nim NOT IN (’123′,’124′); yaitu tampilkan selain nim 123, dan 124.
SELECT * FROM MAHASISWA WHERE tinggi BETWEEN 150 AND 160; yaitu tampilkan mahasiswa dengan tinggi antara 150 dan 160.

Dalam menggunakan SELECT dan WHERE, terdapat beberapa fungsi khusus yang dapat kita gunakan dalam pengambilan data termanipulasi. Adapun fungsi yang paling umum dan sering digunakan ialah fungsi string dan tanggal.

Fungsi String

UPPER digunakan untuk mengubah isi field bertipe data char/ varchar jadi huruf besar.
select UPPER(NAMA) from MAHASISWA where UPPER(NAMA) = ‘ANDRI’;
Catatan untuk konstanta string, di dalam ORA penggunaan fungsi ini senantiasa harus menggunakan satu tanda petik ‘ ‘ sedangkan dalam MySQL dapat satu maupun dua tanda petik ” ” dan ”.
select UPPER(NAMA) from MAHASISWA where UPPER(NAMA) = “ANDRI”; 
Selain fungsi UPPER masih terdapat fungsi yang lainnya, LOWER, LENGTH, SUBSTR, dan khusus untu ORA ada fungsi INITCAP yaitu fungsi untuk title case (huruf pertama kapital).

Contoh: 
substr(‘ANDRI INDRAWAN’,2,4) hasilnya adalah ‘NDRI’ (mulai dari karakter dua sebanyak tiga karakter)
Fungsi Tanggal
Secara default fungsi tanggal dalam ORA (TGL_LAHIR dalam type STRING) yaitu:
select * from MAHASISWA where TGL_LAHIR = ’30-01-1975′;

Sedangkan dalam dalam MySQL (TGL_LAHIR dalam type STRING) berformat
select * from MAHASISWA where TGL_LAHIR = ’1975-01-30′;

Dalam ORA, konversi data bertipe data string (char/varchar) ke date (tanggal) menggunakan TO_DATE, begitupun sebaliknya untuk date ke string menggunakan TO_CHAR
select * from MAHASISWA where TGL_LAHIR = TO_DATE(’1975-01-30′,’YY-MM-DD’);
select TO_CHAR(TGL_LAHIR,’DD-MM-YYYY HH24:MI:SS’) from MAHASISWA;


Dalam MySQL, konversi data string ke date menggunakan STR_TO_DATE
select * from MAHASISWA where TGL_LAHIR = STR_TO_DATE(’30-01-1975′,’%d-%m-%Y’);

Sendangakan untuk tipe data DATETIME dalam MySQL menggunakan DATE_FORMAT
select DATE_FORMAT(TGL_LAHIR, ‘%d-%m-%Y? %H:%m:%s’) from MAHASISWA;

Hasilnya akan berupa : 07-07-2005 19:20:12

Selain hal yang diatas, dibawah ini adalah beberapa point yang penting dalam fungsi tanggal di ORA dan MySQL:

    Tanggal hari ini:
        MySQL: CURDATE()
        ORA: sysdate

    Mengambil tanggal,bulan atau tahun:
        contoh: EXTRACT (year from [namafield]);
    ORA: ADD_MONTHS, LAST_DAY, MONTHS_BETWEEN, NEXT_DAY, ROUND, dst.
    MySQL: DATE_ADD,DATE_SUB,EXTRACT, dst.

Khusus untuk Oracle :
Oracle menyimpan tanggal dalam bentuk gabungan tanggal dan waktu (jam menit det) yaitu Tipe DATE
Tanggal menjadi bagian integer, waktu menjadi bagian pecahan. Tanggal dapat digunakan dengan operator =, <, >,<=,>=.
Jika tanggal disimpan dalam bentuk tanggal dan waktu. Contoh: 30-12-2005 15:20:20
Maka untuk menghasilkan nilai TRUE pada pencarian, harus juga menggunakan waktu atau menggunakan TRUNC (jika hanya tanggal yang diperlukan)
 
Contoh:
select * from tamu where trunc(waktu_checkin) = ’30-12-2005′ ;
Perlu diketahui sebelumnya bahwa penggunaan/ penulisan sintaks SQL itu tidak bersifat case sensitive, dimana SELECT itu sama dengan select dalam pengertiannya.
Yah itu lah beberapa keguanaan SELECT, SELECT-WHERE, dan fungsi yang menyertainya, namun perlu diingat bahwa dalam DML masih ada yang lainnya, yaitu INSERT, UPDATE dan DELETE. Apalagi jika kita juga hendak membicarakan DDL dan DCL, pasti akan lebih asyik dan banyak lagi yang perlu kita bahas.
Share this article :

Tidak ada komentar:

Posting Komentar

 
Support : Creating Website | Johny Template | Mas Template
Copyright © 2012. MethaPhore++ - All Rights Reserved
Template Modify by Creating Website
Proudly powered by Blogger