About Me

Statistik

Saturday, September 10, 2011

Structured Query Language


Nama / NIM : 10 41010 0208
Dosen : Tan Amelia
Tugas : SQL

SQL (Structured Query Languange) yang merupakan bahasa standar yang digunakan untuk sistem manajemen database relational. 
  • Asal muasal disebut SEQUEL (Structured English Query Lanaguage) yang dirancang dan diimplemantasikan oleh Pusat Penelitian IBM untuk eksperimen system basis disebut system R
  • Secara komersial telah digunakan sebagai high-level database Language untuk IBM DBZ
  • Merupakan bahasa untuk memanipulasi basis data relasional yang distandarisasi oleh ANSI dean ISO 

  • SQL 1 (ANSI 1986)
  • SQL 2 (disebut juga sebagai SQL-92)
  • Revisi + ekspansi terhadap SQL 1
  • SQL 3 ( + object-oriented database)
Sifat-sifat utama :
  • Declarative Language interface (Berisi statements yang menyatakan APA yang ingin dihasilkan).
  • Dapat digunakan baik sebagai DDL atau DML.
  • Dapat di-embedded dalam general purpose high-level language seperti PASCAL & C.

PENDEFINISIAN DATA DALAM SQL
  • Dalam kuliah hanya dibahas konsep-konsep utama &penting (Detail dapat dilihat dalam dokumen khusus mengenai sintaks – sintaks dalam SQL)
  • Istilah- Istilah TABEL,BARIS & KOLOM digunakan dalam SQL sebagai istilah – Istilah yang berkaitan dengan RELASI,TUPLE dan ATRTIBUTE
  • Perintah-perintah SQL, untuk pendefinisian data meliputi :
    • CREATE
    • DROP
    • ALTER
TIPE-TIPE DATA DLM SQL
  • Tipe-tipe data untuk attribute meliputi :
    • Numeric
    • Character-string 
    • Bit-string (image)
    • Date
    • Time
  • Tipe Data NUMERIC :
-          Bilangan- Bilangan integer : INTEGER (INT), SMALLINT
-          Bilangan- Bilangan real      : FLOAT, REAL, DOUBLE PRECISION
Formatted Number di Deklarasi :
         DECIMAL(i,j)atau (DEC(i,j) atau NUMERIC(i,j))
         i = presisi (jml. Decimal digit)
         j = scale (jml. Digit pecahan)
  •  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)
  • Tipe Data BIT-STRING :
    • Fixed Length     : BIT(n) , n = jml bit
    • Varying Length  : BIT VARYING(n) , n = jml bit maksimum (default n = 1)
  • 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.
  • Cara Mendefinisikan Tipe Data dari Attribute :
    •  langsung di spesifikasikan pada setiap attribute dalam statement CREATE TABLE
    • mendeklarasikan suatu tipe dari domain yang kemudian nama tipenya dapat digunakan dalam sejumlah attribute dengan domain yang sama:
         CREATE DOMAIN SSN_TYPE As CHAR(g)
# Memudahkan perubahan tipe data & menambah readability dari schema #

KONSEP SCHEMA & CATALOG DALAM SQL
  • Konsep ‘SQL SCHEMA’ digunakan untuk mengelompokan sejumlah table dan bentukan- bentukan lainnya yang dimiliki oleh satu aplikasi basis data yang sama
  • Satu SQL SCHEMA diidentifikasi oleh:
    1. Nama Schema
    2. Pengenal otorisasi (user atau account yang memiliki Schema)
    3. Elemen- Elemen Schema (table àtdk disimpan, view, domainàdeklarasi data, dll)
  • Catalog dlm SQL digunakan sbg kumpulan dari sejumlah Schema dlm lingkungan SQL
 
Perintah Create Table, Tipe-Tipe Data Dlm Sql Dan Constraints
  • Perintah CREATE TABLE digunakan untuk mendefinisikan satu relasi baru yang berisikan :
    • Nama relasi
    • Nama attribut- attributnya disertai dengan tipe-tipe datanya dan domain constraint/values 
    •  Key, entity integrity & referential integrity constraint
  • Tabel yang dihasilkan disebut ‘BASE TABLE’ , yaitu table yang secara nyata dibuat dan disimpan dlm file oleh DBMS
Statement MySQL
  •  DDL (Data Definition Languange)
Membuat database, menggunakannya, membuat table, menentukan index serta struktur penyimpanan tabel

-          CREATE DATABASE {nama database yang akan dibuat}.
Perintah ini digunakan untuk pada saat membuat database untuk pertama kali
-          USE {nama database yang akan digunakan}.
Untuk menggunakan database yang telah dibuat
      -          CREATE TABLE {nama tabel yang akan dibuat}.
 Membuat tabel yang diperlukan database.
  • DML (Data Manipulation System)
Melakukan manipulasi dan pengambilan data berupa penyisipan atau penambahan data baru, penghapusan data serta pengubahan data.

-          INSERT
Perintah           : INSERT INTO namatabel (field1,[field2,[...]]) VALUES (nilai1[,nilai2,[....]);
-          UPDATE
Perintah           :   UPDATE namatabel SET field1=nilai1, field2=nilai2[...] WHERE kondisi;
-          DELETE
Perintah           : DELETE FROM namatabel WHERE kondisi;
-          SELECT
Perintah           : SELECT * FROM namatabel;
(*) untuk memilih seluruh field bila hanya beberapa yang akan digunakan sebutkan fieldnya. Penggunaan SELECT dengan berbagai kondisi . 
  • Menggunakan operator IS NULL dan IS NOT NULL
Operator IS NULL digunakan untuk mencari nilai yang kosong dalam suatu kolom, sedangkan IS NOT NULL digunakan untuk mencari nilai yang tidak kosong.
Contoh :
SELECT * FROM tabel WHERE dataku IS NULL;
SELECT * FROM tabel WHERE dataku IS NOT NULL;
  • Mengurutkan data dengan ORDER BY
Contoh :
SELECT * FROM tabel ORDER BY nama;
  • Mengurutkan data secara Descending
Contoh :
SELECT * FROM tabel ORDER BY nama DESC
  •  DCL (Data Control Languange)
DCL adalah perintah untuk melakukan pendefinisian pemakai yang boleh mengakses database dengan berbagai macam previlage. DCL terdiri atas sekelompok perintah SQL untuk memberikan hak untuk mengakses database, mengalokasikan space, pendefinisan space dan pengauditan penggunaan database. Biasanya hal ini tersedia pada sistem manajemen database yang memiliki fasilitas keamanan denga membatasi pemakai dan kewenangannya
  
EKSPRESI Dalam Syntax SQL
·         FROM
           Untuk mendefenisikan tabel yang menjadi sumber data dari suatu perintah seleksi
           Contoh : SELECT * FROM Pelajar

·         WHERE
           Untuk mendefenisikan kondisi pengambilan data dari suatu perintah seleksi
           Contoh :  
SELECT * FROM Pelajar
WHERE No_Induk = ‘00311217’;
·          GROUP BY
           Untuk Mengelompokkan data berdasarkan ekspresi group
           Syntax  : 
SELECT <kolom1, kolom2, ... , kolomN>
                                    FROM <nama_tabel>
                                    WHERE <kondisi>
                                    GROUP BY <group_kolom>;

           Contoh :  
SELECT a.No_Induk, b.Nama, c.Nl_Angka
FROM Pelajar.a, Nilai b
WHERE a.No_Induk=c.No_Induk and b.kode=c.kode
GROUP BY a.No_Induk, b.Nama, c.Nl_Angka;
·         ORDER BY
           Untuk mengurutkan data hasil seleksi
           Syntax  : 
SELECT <kolom1, kolom2, ... , kolomN>
                                    FROM <nama_tabel>
                                    WHERE <kondisi>
                                    ORDER BY <nama_kolom> [DESC];
           Contoh :  
SELECT * FROM Pelajar
                                    ORDER BY No_Induk;
·         HAVING
           Untuk mendefenisikan batasan seleksi berdasarkan GROUP BY
           Syntax  : 
SELECT <kolom1, kolom2, ... , kolomN>
                                    FROM <nama_tabel>
                                    WHERE <kondisi>
                                    GROUP BY <group_kolom>
                                    HAVING <batasan_group>;

           Contoh :  
SELECT a.No_Induk, b.Nama, c.Nl_Angka
FROM Pelajar.a, Nilai b
WHERE a.No_Induk=c.No_Induk and b.kode=c.kode
GROUP BY a.No_Induk, b.Nama, c.Nl_Angka
HAVING Nilai>80;
PREDIKAT Dalam Syntax SQL
·         COMPARISON
·         Pembanding dua nilai dengan syarat type data yang dibandingkan harus sama
·         Sama dengan   ( = )
·         Tidak sama dengan  ( <>  )
·         Lebih kecil    ( <  )
·         Lebih besar  ( >  )
·         Lebih kecil dan sama dengan  ( >=  )
·         Lebih besar dan sama dengan  ( <=  )

·         BETWEN
Pembanding untuk mengecek apakah suatu nilai berada dalam range tertentu atau tidak
Syntax  : 
... BETWEEN ... AND ...
                        ... NOT BETWEEN ... AND ...
Contoh : Menampilkan data nilai pada range 80 dan 100
                        SELECT * FROM Nilai
                        WHERE Nl_Angka BETWEEN 80 AND 100;
·         IN
Untuk melakukan pengecekan apakah suatu nilai terdapat dalam suatu himpunan
Syntax  : 
IN ( ...  )
IN SELECT ...
Contoh :  Select * FROM Pelajar a
WHERE a.No_Induk IN (SELECT b.No_Induk FROM Nilai b);

·         LIKE / NOT LIKE
Untuk membandingkan data dengan pola / struktur tertentu, untuk satu karakter dipakai     ( _ )
dan string ( % )
Syntax  : 
... <kolom> LIKE <struktur>
... <kolom> NOT LIKE <struktur>
  Contoh :  
SELECT * FROM Pelajar
WHERE Nama LIKE ‘We%’;
·         IS NULL / IS NOT NULL
Untuk membandingkan suatu nilai dengan NULL
Syntax  : 
... <kolom> IS NULL
... <kolom> IS NOT NULL

 Contoh : 
SELECT * FROM Pelajar
WHERE Kelas IS NULL
·         EXIST
Untuk pengecekan apakah suatu query memiliki hasil atau tidak
Syntax  :         
 ..WHERE EXIST (SELECT ... )
Contoh :   
SELECT * FROM Pelajar a
WHERE EXIST (
SELECT b.No_Induk FROM Nilai b 
WHERE a.No_Induk=b.No_Induk);

0 comments: