Senin, 13 Juni 2011

BAHASA QUERY KOMERSIAL



     
    Structure Query Language (SQL) dipublikasikan oleh E.F. CODD (1970) mengenai model relational.

         Kemudian pada tahun 1974, D. Chamberlin dan R.F. Boyce mengembangkan bahasa query untuk memanipulasi dan mengekstrak data dari database relational.
         SQL adalah suatu bahasa yang berisi perintah-perintah untuk melakukan manipulasi database, seperti menghapus, mengubah, memilih, menggabungkan data.

         SQL merupakan suatu bahasa standar database yang efisien dan mudah dalam mempelajarinya dibandingkan dengan bahasa database lainnya.

         Beberapa program database yang menggunakan SQL antara lain : Oracle, DB2, Sybase, MySQL, Ms.Access, Ms.SQL Server, Informix, Ingres, Interbase, PostgreSQL.
         Data SQL-database adalah database yang bersifat relational dan dinamis.

         Relational karena dapat mengkaitkan / menghubungkan suatu kelompok informasi (field) dengan kelompok informasi yang lain dalam suatu database hingga membentuk satu kesatuan.

         Kelompok informasi (field) dalam SQL-database disebut tabel, yang terdiri dari baris dan kolom.
         SQL-database bersifat dinamis, artinya struktur tabel-nya dapat sewaktu-waktu berubah tanpa harus melakukan konversi data yang sudah ada.

         Sebuah database dapat memiliki banyak tabel, yang hanya dibatasi oleh kapasitas disk komputer.

         Struktur tabel terdiri dari baris (record/tuple/entitas) dan kolom (field/item/atribut).

         Baris terdiri dari semua data yang didefinisikan oleh kolom, sedangkan kolom berisikan tipe data yang akan disimpan dalam baris.
Sasaran SQL

         Menciptakan database dan struktur relasi.
         Melakukan manajemen data tingkat dasar.
         Membentuk query sederhana dan kompleks.
         Melakukan tugas-tugas dengan seminimal mungkin memakai struktur dan sintaks perintah yang relatif mudah dipelajari.
         Harus portabel (dapat bekerja pada berbagai mesin/komputer).
Jenis SQL :

    1. Interactive SQL
    2. Static SQL
    3. Dynamic SQL

Subdivisi SQL

    1. DDL (Data Defenition Language)
    2. DML (Data Manipulation Language)
    3. DCL ( Data Control Language)
Jenis SQL :

    1. Interactive SQL, data dalam SQL jenis ini selalu berubah dengan cepat seiring dengan penggunaannya yang sering / interaktif.

    1. Static SQL, data dalam SQL ini selalu tetap dalam periode waktu yang cukup lama. Biasanya berisi data-data yang mengalami waktu perubahan yang cukup lama.

    1. Dynamic SQL, data dalam jenis SQL ini berubah dalam periode waktu tertentu.
Subdivisi SQL

    1. DDL (Data Defenition Language)
            Merupakan kelompok perintah yang digunakan untuk melakukan pendefinisian database dan pendefinisian tabel.

            Dengan kelompok perintah dalam DDL ini, maka kita dapat membuat tabel, mengubah strukturnya, mengahpus tabel, membuat indeks untuk tabel, dan lain-lain yang berkenaan dengan pembentukan struktur database.
Subdivisi SQL

    1. DML (Data Manipulation Language)
            Merupakan kelompok perintah SQL yang digunakan untuk melakukan manipulasi data dalam database, menambahkan (insert), mengubah (update), menghapus (delete), mengambil dan mencari data (query).

            Perintah SQL standar seperti : select, insert, update, delete, create, drop dapat digunakan untuk menyelesaikan tugas yang diberikan berhubungan dengan data suatu database.
    1. DCL ( Data Control Language)
            Merupakan kelompok perintah SQL untuk memberikan hak otorisasi mengakses database, megalokasikan space, pendefinisian space, dan audit penggunaan database.

            Beberapa perintah dalam DCL seperti : COMMIT, ROLLBACK, GRANT, REVOKE.
            Termasuk di dalam DCL adalah perintah untuk melakukan pendefinisian user yang boleh mengakses database.
Fasilitas akses tersedia pada sistem menejemen databse yang memiliki fasilitas keamanan dengan membatasi user dan kewenangannya.

            Secara umum DCL merupakan bahasa yang digunakan untuk melakukan pengelolaan user agar dapat mengakses dan memanipulasi database, terutama perintah GRANT dan REVOKE.

            Perintah COMMIT dan ROLLBACK merupakan kelengkapan fasilitas dalam pembuatan aplikasi yang memungkinkan suatu transaksi yang terjadi untuk dapat segera disimpan atau dibatalkan .
PENGELOMPOKAN STATEMEN SQL

  1. Data Definition Language (DDL)

            CREATE  DATABASE                     DROP  DATABASE
            CREATE  TABEL                 DROP  TABEL
            CREATE  INDEX                 DROP  INDEX
            CREATE  VIEW                    DROP  VIEW
            ALTER  TABLE

  1. Data Manipulation Language (DML)
            INSERT, SELECT, UPDATE, DELETE
          1. Data Access (Data Control Language/DCL)

                            GRANT, REVOKE

          1. Data Integrity

                            RECOVER TABLE

          1. Auxiliary

                            UNLOAD, LOAD, RENAME COLUMN
A. CREATE (PEMBUATAN)

1.         Pembuatan Database
            Nama Database adalah yang dapat mewakili suatu kejadian dapat berupa nama organisasi atau perusahaan.
            Sintaks :  CREATE DATABASE (nama_database)
            Contoh :  Buat database dengan nama Mahasiswa
                        CREATE DATABASE MAHASISWA

2.         Pembuatan Tabel
            Sintaks :
            CREATE TABLE  nama_table (nama_kolom1 tipe_data_kolom1,nama_kolom2 tipe_data_kolom2,….)
            Contoh :
            Buat struktur tabel dengan nama tabel MHS dengan data NIM char(8), NAMA char(25), ALAMAT char(30)
            CREATE TABLE MAHASISWA  (NIM char(8) notnull, NAMA_MHS char(25) notnull,  ALAMAT_MHS char(30) notnull
3.         Pembuatan Index
            Sintaks : CREATE [UNIQUE] INDEX  nama_index 
            ON nama_table (nama_kolom) ;
            Contoh :
            Buat index data mahasiswa berdasarkan NIM dengan nama MHSIDX Dimana NIM tidak boleh sama
                        CREATE UNIQUE  INDEX MHSIDX ON MAHASISWA(NIM)

4.         Pembuatan View
            Sintaks :
            CREATE VIEW nama_view[(nama_kolom1,….)]
            AS SELECT statement
            [WITH CHECK OPTION] ;
            Contoh :
            Buat view dengan nama MHSVIEW yang berisi semua data mahasiswa
                        CREATE VIEW MHSVIEW
                        AS SELECT * FROM MAHASISWA
B. DROP (MENGHAPUS)
            1. Menghapus Database
                        Sintaks :  DROP DATABASE nama_db ;
                        Contoh : Menghapus database MAHASISWA
                                    DROP DATABASE MAHASISWA;

            2. Menghapus Tabel
                Sintaks : DROP  TABLE  nama_table ;
                        Contoh : Menghapus database MAHASISWA
                                    DROP TABLE MAHASISWA;

            3. Menghapus Index
                Sintaks : DROP  INDEX nama_index ;
                        Contoh : Menghapus database MAHASISWA
                                    DROP INDEX MHSIDX;

            4. Menhapus View
                Sintaks : DROP  VIEW  nama_view ;
                        Contoh : Menghapus database MAHASISWA
                                    DROP VIEW MHSVIEW;
C. ALTER TABLE (MERUBAH STRUKTUR TABEL)
            Sintaks :  ALTER TABLE nama_tabel
                        ADD (nama_kolom, jenis_kolom
                        [BEFORE nama_kolom])
                        MODIFY (nama_kolom, jenis kolom)
                        DROP (nama_kolom jenis kolom) );

Contoh  :
1.         Tambahkan kolom JKEL dengan panjang 1 char pada tabel MHS
                        ALTER TABLE MAHASISWA ADD (JKEL char(1));

2.         Ubah panjang kolom MTKULIAH menjadi 30 char
                        ALTER TABLE MATAKULIAH MODIFY (MTKULIAH char(30));
           
  1. Hapus kolom JKEL dari data table MHS
                        ALTER TABLE MAHASISWA DROP (JKEL char(1));
DATA MANIPULATION LANGUAGE (DML)
1.         INSERT
            Sintaks : INSERT INTO Nama_tabel [(nama_kolom1,…)]
            Contoh :
            Masukan data matakuliah Berkas Akses dengan kode KK222  dan besarnya sks adalah 2
                   INSERT INTO MATAKULIAH VALUES(“KK222”,”Berkas Akses”, 2);

2.         UPDATE
            Sintaks : UPDATE nama_tabel
                                    SET  nama_kolom = value_1
                                    WHERE kondisi ;
            Contoh :
            Ubah alamat menjadi “Depok” untuk mahasiswa yang memiliki NIM “50096487”
                        UPDATE MAHASISWA
                        SET ALAMAT=”Depok” 
                        WHERE NIM=”50096487”;
3.         DELETE
            Sintaks : DELETE FROM nama_table
                                    WHERE kondisi
            Contoh :
            Hapus data nilai matakuliah “KK021” bagi mahasiswa yang mempunyai NIM “ 10296832”
                        DELETE FROM NILAI WHERE
                        NIM=”10296832” AND KD_MK=”KK021”
4.  SELECT
Sintaks : SELECT [DISTINCT/ALL] nama_kolom
                        FROM nama_tabel
                        [ WHERE condition ]
                        [ GROUP BY column_list ]
                        [ HAVING condition ]
                        [ ORDER BY column_list [ASC/DESC] ]
DATA ACCESS

  1. GRANT
            Sintaks :          GRANT hak_akses ON  nama_db
                                    [WITH GRANT OPTION]
                                    [AS GRANTOR] ;
                                   
                                    GRANT hak_akses ON  nama_tabel
                                    TO  nama_pemakai
                                    [WITH GRANT OPTION]
                                    [AS GRANTOR];

Contoh :
Berikan hak akses kepada Adi untuk menampikan nilai final test
                        GRANT SELECT (FINAL) ON NILAI TO ADI
  1. REVOKE

            Sintaks : REVOKE hak_akses ON nama_db
                        FROM nama_pemakai ;
                                   
                        REVOKE hak_akses ON  nama_tabel
                        FROM nama_pemakai ;

            Contoh :
            Tarik kembali dari Adi  hak akses untuk menampilkan nilai final test

            REVOKE SELECT (FINAL) ON NILAI FROM ADI
DATA INTEGRITY

RECOVER TABLE

            Sintaks :          RECOVER TABLE nama_tabel

            Contoh :         
            Kembalikan keadaan data mahasiswa seperti pada saat sebelum terjadi kerusakan

                                    RECOVER TABLE MAHASISWA;
AUXILIARY

1. UNLOAD
            Sintaks  :         UNLOAD TO “ nama_path”
                                    [DELIMITER “ Char_pemisah”]
                                    SELECT  statement ;
            Contoh :  
            Ubah semua data mahasiswa ke bentuk ASCII dan disimpan ke file teks di directory/home/adi

                  UNLOAD TO “/home/adi/teks”
                  DELIMITER “ ½” SELECT * FROM MAHASISWA;
2. LOAD
            Sintaks :          LOAD FROM “ nama_path”
                                    DELIMITER “char_pemisah”
                                    INSERT INTO nama_tabel [ nama_kolom] ;
            Contoh :
            Merubah file teks ke tabel MHS_2 di directory /home/adi :
                        LOAD FROM “/home/adi/teks”
                        DELIMITER “ ½” INSERT INTO MHS_2;

3. RENAME
            Sintaks : RENAME COLUMN nama_kolom_lama
                           TO nama_kolom_baru
            Contoh :
            Ganti nama kolom ALAMAT yang ada pada tabel MAHASISWA menjadi KOTA
                        RENAME COLUMN MAHASISWA ALAMAT TO KOTA



QUERY KOMERSIAL
LANJUTAN
Fungsi Agregat
Fungsi Agregat merupakan fungsi yang disediakan oleh SQL untuk melakukan ringkasan data, BUKAN menampilkan data baris-per-baris seperti halnya perintah SELECT.

Fungsi agregat dapat disisipkan pada perintah SELECT, bisa juga sebagai pernyataan SELECT secara khusus yang digunakan untuk melakukan manipulasi sederhana ataupun untuk mendapatkan informasi dari suatu tabel.
MENGGUNAKAN FUNGSI AGREGAT :
1. COUNT
Merupakan suatu fungsi yang digunakan untuk mengetahui jumlah record dari suatu tabel. Jumlah record yang ditampilkan adalah jumlah record berdasarkan perintah SELECT. Apabila perintah SELECT tidak disertai dengan kondisi, maka hasil dari COUNT akan berupa seluruh record dari tabel yang diacu pada perintah SELECT tersebut.

Bentuk dasar : count(namafield atau *)
2. SUM
Merupakan suatu fungsi yang digunakan untuk melakukan penjumlahan isi field yang bertipe numerik, yang namanya disebutkan pada namafield yang dijadikan parameter.

Bentuk dasar : sum(namafield)
3. AVG
Merupakan suatu fungsi yang digunakan untuk mendapatkan nilai rata-rata suatu field yang bertipe numerik, yang namanya disebutkan pada namafield yang dijadikan parameter.

Bentuk dasar : avg(namafield
4. MIN
Merupakan suatu fungsi yang digunakan untuk mendapatkan nilai terkecil (minimum) dari field yang bertipe numerik, yang namanya disebutkan pada namafield yang dijadikan parameter.

Bentuk dasar : min(namafield)
5. MAX
Merupakan suatu fungsi yang digunakan untuk mendapatkan nilai terbesar (maksimum) dari field yang bertipe numerik, yang namanya disebutkan pada namafield yang dijadikan parameter.

Bentuk dasar : max(namafield)
SUBQUERY
            Adalah subselect yang dapat digunakan di klausa WHERE dan HAVING dipernyataan select luar untuk menghasilkan tabel akhir.

Aturan-aturan untuk membuat subquery, yaitu :
  1. Klausa Order By tidak boleh digunakan di subquery, Order By hanya dapat digunakan di pernyataan Select luar.
  2. Klausa subquery Select harus berisi satu nama kolom tunggal atau ekspresi kecuali untuk subquery-subquery menggunakan kata kunci EXIST
  3. Secara default nama kolom di subquery mengacu ke nama tabel di klausa FROM dari subquery tersebut.
  4. Saat subquery adalah salah satu dua operan dilibatkan di pembandingan, subquery harus muncul disisi kanan pembandingan
Penggunanaan ANY dan ALL
Jika subquery diawali kata kunci ALL, syarat hanya akan bernilai TRUE jika dipenuhi semua nilai yang dihasilkan subquery itu.

Jika subquery diawali kata kunci ANY, syaratnya akan bernilai TRUE jika dipenuhi sedikitnya satu nilai yang dihasilkan subquery tersebut.

Penggunanaan EXIST DAN NOT EXIST
EXIST akan mengirim nilai TRUE jika dan hanya jika terdapat sedikitnya satu baris di tabel hasil yang dikirim oleh subquery dan EXIST mengirim nilai FALSE jika subquery mengirim tabel kosong.
Untuk NOT EXIST kebalikan dari EXIST.
Aplikasi yang digunakan sebagai contoh adalah phptriad-mysql front

Dari Address ketik : http://localhost/phpmyadmin

Tampilan password ketik  root dan untuk password ketik password

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites