Selasa, 27 September 2011

PBD - Contoh dari Stored Procedures, Functions dan Trigger pada SQL Server.

NIM/ NAMA : 10410100218/ Achmad Vierdan Habibi
Tugas : Tugas PBD
Dosen : Tan Amelia

1)
Procedure Penghitungan Total Pendapatan
create procedure TotalPendapatan
as
begin
declare @total1 numeric;
declare @total2 numeric;

set @total1 = (select sum(harga) 'Total Desember 2010'
from peminjaman
where tanggalpinjam between '12/1/2010' and '12/31/2010')

set @total2 = (select sum(harga) 'Total Januari 2011'
from peminjaman
where tanggalpinjam between '1/1/2011' and '1/31/2011')

print 'Total Pendapatan Bulan Desember 2010 = ' + convert(varchar, @total1)
print 'Total Pendapatan Bulan Januari 2011 = ' + convert(varchar, @total2)
end

exec TotalPendapatan

2)
-- Procedure Penentuan Mobil Yang Paling Diminati
alter procedure Minat
as
begin
declare @minat numeric;
declare @nomor varchar(10);
declare @nama varchar(10);

select @nomor=nomorpolisi, @minat=count(nomorpolisi)
from peminjaman
group by nomorpolisi
having count(nomorpolisi) = (select max(Hitung)
from (select nomorpolisi,count(nomorpolisi) 'Hitung'
from peminjaman
group by NomorPolisi) Tabel)

set @nama = (select namamobil from mobil where nomorpolisi = @nomor)

print 'Mobil yang paling diminati = ' + @nama + ' sebanyak ' + convert(varchar, @minat)
end

exec Minat

3)
CREATE PROCEDURE SupplierCountry
@Country varchar(15)
AS SELECT SupplierID, CompanyName, Country
FROM [Suppliers]
WHERE Country = @Country

EXEC SupplierCountry 'UK'
4)
ALTER PROC Coba_product
@CountryName VARCHAR(25), @SumOfStock INT OUTPUT
AS
SELECT Suppliers.SupplierID, Suppliers.Country,Products.UnitsInStock,
SUM (ProductID) AS SumOfProducts
FROM Suppliers, Products
WHERE Country like @CountryName and UnitsInStock like@SumOfStock
GROUP BY Suppliers.SupplierID, Country, UnitsInStock

5)
ALTER PROCEDURE QuantityOrder
(@total SMALLINT OUTPUT )
AS
SELECT OrderID,ProductID,UnitPrice,Quantity,count(Quantity)
as SumOfOrderDetails
FROM [Order Details]
WHERE Quantity like @total
group by OrderID,ProductID,UnitPrice, Quantity


EXEC QuantityOrder '15'

Function
1)
SET SERVEROUTPUT ON
DECLARE
X VARCHAR2(20);
BEGIN
X := tulis_teks;
DBMS_OUTPUT.PUT_LINE(X);
END;

2)
SET SERVEROUTPUT ON
DECLARE
H INTEGER;
BEGIN
H := pangkat(2, 3);
DBMS_OUTPUT.PUT_LINE(‘Hasil = ‘ || TO_CHAR(H));
END;

3)
CREATE OR REPLACE FUNCTION kuadrat (X NUMBER)
RETURN NUMBER AS
HASIL NUMBER(10);
BEGIN
HASIL := X * X;
RETURN HASIL;
END;

4)

Trigger
1)
CREATE TRIGGER tr_status ON daftarnilai
FOR INSERT, UPDATE
AS
DECLARE @kode char(4)
DECLARE @nilai float
SELECT @kode = kode, @nilai = nilai FROM daftarNilai
IF @nilai >= 60
UPDATE daftarSiswa SET status = ‘Lulus’ WHERE kode=@kode
ELSE UPDATE daftarSiswa SET status = ‘Tidak Lulus’ WHERE kode=@kode
go

Senin, 19 September 2011

PBD - Stored Procedures, Functions dan Trigger pada SQL Server.

Nama / NIM : Achmad Vierdan Habibi / 10410100218
Dosen : Tan Amelia
Tugas : membuat tulisan tentang materi Stored Procedures, Functions dan Trigger pada SQL Server.


Stored Procedure adalah kumpulan perintah SQL yang diberi nama dan disimpan di server. Stored Procedure biasanya berisi perintah-perintah umum yang berhubungan dengan database pada server, dan menghasilkan sekumpulan record. Stored Procedure ditulis dalam bentuk sebuah script. Dalam SQL Server store procedure memiliki kemampuan antara lain :

  1. Menerima parameter input dan mengembalikan beberapa nilai parameter output dari procedure yang dipanggil.
  2. Mengandung statement pemrograman yang melakukan operasi terhadap database termasuk memanggil store procedure lain.
  3. Memberikan status yang mengindikasikan keberhasilan atau kegagalan eksekusi store procedure
Keuntungan pemakaian store procedure adalah :
  • Merupakan pemrograman modular
  • Store procedure dibuat sekali dan dapat dipakai berulang untuk komputasi yang sama
  • Memungkinkan eksekusi lebih cepat
  • Ketika pertama kali dijalankan store procedure akan tersimpan dalam memori. Sehingga memungkinkan eksekusi berikutnya lebih cepat.
  • Mengurangi trafik jaringan
  • Barisan kode transact SQL yang seharusnya dilewatkan jaringan, akan digantikan dengan statement tunggal pemanggilan store procedure
  • Dapat digunakan sebagai mekanisme sekuriti
  • Pengguna dimungkinkan mengeksekusi Store procedure, walau mungkin tidak dapat mengeksekusi procedure didalamnya secara langsung.
FUNCTION
Function atau fungsi dalam perintah SQL digunakan untuk menghasilkan sebuah nilai atau output. Ada berbagai macam fungsi yang ada pada SQL.

Fungsi Agregasi/Agregates
Fungsi yang dihasilkan dari sebuah group data. 
  • SUM : Untuk menjumlah suatu kolom tertentu yang telah definisikan dalam perintah select.
Sintak :
SELECT SUM (nama_kolom) FROM nama_tabel
[WHERE = Kondisi]
Contoh :
SELECT SUM (SKS) FROM Mata_Kuliah

  • COUNT : Untuk menghitung jumlah baris dalam sebuah tabel.
Sintak :
SELECT COUNT nama_kolom FROM nama_tabel
[WHERE]
Contoh :
SELECT COUNT (*) FROM mahasiswa
SELECT COUNT (SKS) FROM Mata_Kuliah
  • AVG : Untuk menghitung nilai rata – rata dari suatu kolom tertentu yang telah definisikan dalam perintah select
Sintak :
SELECT AVG nama_kolom FROM nama_tabel
[WHERE]
Contoh :
SELECT AVG (SKS) FROM Mata_Kuliah
  • MIN : Untuk mengetahui nilai terkecil dari sebuah kolom tertentu dalam perintah select
Sintak :
SELECT MIN nama_kolom FROM nama_tabel
[WHERE]
Contoh :
SELECT MIN (SKS) FROM Mata_Kuliah
  • MAX : Untuk mengetahui nilai terbesar dari sebuah kolom tertentu dalam perintah select
Sintak :
SELECT MAX nama_kolom FROM nama_tabel
[WHERE]
Contoh :
SELECT MAX (SKS) FROM Mata_Kuliah


Fungsi Waktu

  • GETDATE : Untuk menampilkan tanggal sekarang
Contoh :
SELECT GETDATE()
  • DATEADD : Untuk memambah jumlah hari, tanggal atau tahun yang ditentukan.
Sintak :
DATEADD (datepart, jumlah, tanggal)
Contoh :
SELECT DATEADD (day, 10, getdate())
SELECT DATEADD (Month, 10, getdate())
  • DATEDIFF : Untuk mengetahui rentan waktu (bisa hari, bulan, tahun)
Sintak :
DATEDIFF (datepart,tanggal_awal, tanggal_akhir)
Contoh :
SELECT DATEDIFF (month, '01/01/2007','01/01/2008')
  • DATENAME : Untuk menampilkan nama hari, bulan atau tahun.
Sintak :
DATENAME (datepart, tanggal)
Contoh :
SELECT DATENAME (month, getdate()) AS 'BulanSekarang'

Fungsi Aritmatika
  • SQRT : Untuk mencari akar dari niai tertentu
Contoh :
SELECT SQRT (100)
  • CEILING : Untuk pembulatan ke atas dari angka decimal
Contoh :
SELECT CEILING (25.25)
Keterangan : Akan menghasilkan nilai 26
  • FLOOR : Untuk pembulatan ke bawah dari angka decimal
Contoh :
SELECT FLOOR (25.25)
Keterangan : Akan menghasilkan nilai 25

Fungsi Karakter
  • LOWER dan UPPER 
  • LOWER : mengubah huruf besar ke huruf kecil
  • UPPER : mengubah huruf kecil ke huruf besar
Contoh :
1. SELECT LOWER (Nama) FROM Mahasiswa
2. SELECT UPPER (Nama) FROM Mahasiswa
  • LEN : Untuk menghitung jumlah karakter
Contoh :
SELECT Nama, LEN (Nama) FROM Mahasiswa
  • LTRIM dan RTRIM
  • LTRIM : memotong karakter spasi di kiri string
  • RTRIM : memotong karakter spasi di kanan string
Contoh :
SELECT LTRIM (' Sistem Basis Data')
SELECT RTRIM ('Sistem Basis Data ')
Keterangan :
Akan menghasilkan “Sistem Basis Data”
  • SUBSTRING : Mengambil beberapa karakter dari sebuah deretan string
Contoh :
SELECT SUBSTRING ('Sistem Basis Data',8,5)
Keterangan :
Mengambil string dari karakter ke 8 sebanyak 5 karakter.
Hasilnya adalah ‘Basis’
  • LEFT dan RIGHT
  • LEFT : Mengambil beberapa karakter dari kiri
  • RIGHT : Mengambil beberapa karakter dari kanan
Contoh :
SELECT LEFT ('Sistem Basis Data',6)
Keterangan : Mengambil string sebanyak 6 karakter dari sebelah kiri.
Hasilnya adalah ‘Sistem



TRIGGER
Trigger adalah Stored Procedure khusus yang dijalankan secara otomatis pada saat atau sesudah modifikasi data. Perintah-perintah yang akan mengaktifkan Trigger adalah UPDATE, INSERT, dan DELETE. Trigger dipakai untuk menjaga integritas data dan mengimplementasikan aturan bisnis yang kompleks. Trigger dibuat dengan memakai bahasa Transact-SQL atau SQL Enterprise Manager. Tugas-tugas manajemen Trigger meliputi mengubah, mengganti nama, menampilkan, menghapus dan membuat Trigger tidak aktif.

Trigger memakai dua tabel maya yaitu Inserted dan Deleted untuk mendeteksi modifikasi data. Untuk memprogram Trigger, Anda harus mendalami kedua tabel tersebut dan bahasa Transact-SQL. Untuk menjaga integritas data, Anda dapat memakai beberapa alternatif, yaitu Trigger atau Konstrain (Rule). Anda juga dapat memakai kunci utama dan kunci unik untuk mengidentifikasi baris dalam sebuah tabel secara unik. Anda juga dapat memakai nilai default dan domain untuk membatasi nilai-nilai yang diperbolehkan pada sebuah kolom. Referential Integrity dipakai untuk menjamin keabsahan hubungan antar tabel. Sebaliknya Anda memakai konstrain-konstrain tersebut sebelum memilih Trigger, karena Trigger dapat melakukan proses yang lebih rumit tetapi beban sistem lebih berat.


Pakailah Trigger untuk kasus-kasus berikut:
- Jika pemakaian cara deklaratif tidak dapat memenuhi kebutuhan yang diperlukan. Misalnya, buatlah Trigger untuk mengubah sebuah nilai numerik dalam tabel jika sebuah record di dalam tabel tersebut dihapus.
- Sebuah perubahan harus mengubah tabel-tabel lain yang terhubung. Misalnya jika data order ditambahkan, tabel lain yang menyimpan data stok akan berubah.
- Jika database didenormalisasi dan memerlukan cara otomasi untuk mengubah data redundan yang ada dibeberapa tabel.
- Jika sebuah nilai pada sebuah tabel harus divalidasi dengan data pada tabel lain.
- Jika diperlukan pesan kesalahan dan penangganan kesalahan secara khusus.
Kemampuan-kemampuan yang dimiliki Trigger:
- Trigger dapat menjaga referential integrity dengan melakukan perubahan data atau penghapusan kunci tamu (Foreign Key) di dalam database.
- Trigger dapat bekerja pada beberapa kolom dalam sebuah database bahkan pada objek di luar database. Anda juga dapat memakai Trigger pada View.
- Sebuah Trigger dapat melakukan beberapa aksi dan Trigger dapat diaktifkan oleh beberapa event. Misalnya Anda membuat sebuah Trigger yang akan diaktifkan jika terjadi proses INSERT, UPDATE atau DELETE. Dengan perintah Transact-SQL, Anda dapat mendefinisikan aturan bisnis untuk tiap event.
Selain kemampuan-kemampuan tersebut, Trigger juga mempunyai keterbatasan. Trigger tidak dapat dibuat pada sebuah tabel sistem atau temporer, meskipun perintah di dalama Trigger mengacu ke tabel sistem atau tabel temporer.
Trigger tidak dapat diaktifkan secara manual, tetapi diaktifkan secara otomatis jika terjadi event INSERT, UPDATE, dan DELETE. Dalam Trigger selalu berisi satu atau beberapa event tersebut sebelum perintah Transact-SQL didefinisikan. Tipe-tipe Trigger sesuai dengan event-nya. Misalnya Anda membuat sebuah Trigger UPDATE sehingga jika terjadi pengubahan data pada sebuah tabel, Trigger tersebut dapat diaktifkan. Sebuah Trigger dapat diaktifkan oleh beberapa event.
Pada saat terjadi INSERT atau UPDATE yang diaktifkan Trigger, Trigger menyimpan data baru atau data hasil modifikasi di dalam sebuah tabel yang bernama INSERTED. Jika terjadi DELETE yang mengaktifkan Trigger, data yang dihapus akan tersimpan ditabel yang bernama Deleted. Tabel tersebut berada dimemori dan dibaca oleh Trigger dengan perintah-perintah Transact-SQL. Kemampuan ini penting anda ketahui, karena pada umumnya Trigger membandingkan data dalam tabel Inserted dan Deleted dengan data baru sebelum proses Commit. Dengan kedua tabel tersebut, Trigger dapat melakukan proses Roll-Back.

Selasa, 13 September 2011

Tugas PBO-01



Class Tape Compo
Memiliki Atribut :
  • Volume => 1 - 10
  • Tuning => 87.00 - 108.95
  • Spiker
  • Bass => 1 - 10
  • Treble => 1 - 10 
Memiliki method :
  • TapeDinyalakan( );
  • TapeDimatikan( );
  • VolumeDiperbesar( );
  • VolumeDiperkecil( );
Class Tape player
Memiliki Atribut :
  • Judul kaset =>
Memiliki Method :

  • TapeDinyalakan( );
  • TapeDimatikan( );
  • VolumeDiperbesar( );
  • VolumeDiperkecil( );
  • GantiCasette( );
Class Radio
Memiliki Atribut :
  • Frekuensi
  • Nama Frekuensi
Memiliki method :
  • TapeDinyalakan( );
  • TapeDimatikan( );
  • GantiFrekuensi( );
  • VolumeDiperbesar( );
  • VolumeDiperkecil( );
Class VCD/DVD player
Memiliki Atribut :
  • Kepingan CD
Memiliki Method :
  • TapeDinyalakan( );
  • TapeDimatikan( );
  • VolumeDiperbesar( );
  • VolumeDiperkecil( );
  • GantiKepingan( );
Class Button
Memiliki Atribut :
  • Play
  • Pause
  • next
  • previous
  • stop
  • record

Kamis, 08 September 2011

Resume PBO-02

Creating Class (pembuatan class)

Class adalah template untuk pembuatan obyek. sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek.

Class memiliki anggota :

  • Atribut
  • Method
contoh pembuatan class :

Kita akan membuat Class dengan nama Lampu

  • Class Lampu memiliki atribut :
  • – status => 0 atau 1
  • – merek => ‘phillips’ atau ‘national’
  • Class Lampu memiliki method :
  • – lampuDinyalakan( );
  • – lampuDimatikan( );
Cara Membuat Class dijava :
  • Jalankan Dr. Java
  • Kemudian pilih menu File => New
  • Pilih Java File
  • Kemudian anda diminta untuk memasukkan nama file (otomatis akan diberi ekstensi .java tempat menyimpan class yang akan dibuat.
  • Beri nama yang sama dengan nama Class yang akan dibuat, lalu tekan tombol Save
Deklarasi class dapat dilakukan dengan sintak :
<modifier> class <namaclass> {
[deklarasi atribut]
[deklarasi method]
Deklarasi atribut sebagai berikut :
<modifier> <tipe> <nama atribut> ;
Deklarasi method dapat dilakukan dengan cara :
<modifier> <return type> <nama_method> ([daftar
argumen])
{
}

public class Lampu {
    int status; 
    String merek;
    void lampuDinyalakan() {
            status=1;
   }
    void lampuDimatikan() {
            status=0;
   }
}

Perhatikan : hanya ada satu class dengan modifier public. Dengan nama class yang sama dengan nama file tempat listing program disimpan.

Meng-create Obyek dari suatu Class
• Sesuai definisi awal, class adalah template untuk membuat obyek
• Sekarang kita akan membuat sebuah obyek yang berasal dari class Lampu
• Nama obyeknya misal : lampuku
• Cara penulisan :
namaClass namaObyek=new namaClass();
• Membuat obyek lampuku dari
Class Lampu
Lampu lampuku = new Lampu();

• Obyek dapat diletakkan di class yang lain.
• Class yang lain ini bisa ditempatkan pada file yang sama dengan nama Class

• Atau obyek diletakkan di class lain dan dalam file yang berbeda
• (ingat) : nama file sama dengan nama class, dan hanya satu nama class yang memiliki modifier public














main method dalam JAVA
• Main method dalam JAVA, tempat
kita menempatkan obyek,
menampilkan suatu hasil ke layar,
dsb adalah :
public static void main(String [] args) {
……….
}
• Seharusnya disinilah kita menempatkan obyek lampuku yang dibuat dari class Lampu
• Setelah obyek ditempatkan dalam main method, maka kita bisa memanggil method dari class Lampu (lampuku.lampuDinyalakan();)
• Untuk menampilkan pada layar menggunakan : System.out.println(………);

Constructor
Constructor merupakan metode khusus yang memiliki nama sama dengan kelasnya. Jika kita tidak mengkodekan sebuah constructor, JAVA akan membuat sebuah constructor default untuk kita. Constructor default tidak melakukan apa-apa, namun memungkinkan semua variabel yang tidak diinisialisasi dalam deklarasi diberi suatu nilai default.

class Mahasiswa {
   private String nama = ""; 
   private int nim = 0;
   private static int NIM = 0;
   private double ipk = 0.0;

   public Mahasiswa() { this.nim = ++NIM; }
   
   public Mahasiswa(String na, double i) {
     this.nama = na;
     this.ipk = i;
     this.nim = ++NIM; }
   public void LihatData() {
System.out.println("Nama : " + nama + "\tNIM : " + nim +
"\tIPK : " + ipk ); }
}

public class MahasiswaInfo {
    public static void main(String args[]) {
         Mahasiswa mhs1 = new Mahasiswa( "Dinda“ , 3.4 );
         Mahasiswa mhs2 = new Mahasiswa( "Ninda“ , 3.25 );
         Mahasiswa mhs3 = new Mahasiswa();
         mhs1.LihatData();
         mhs2.LihatData();
         mhs3.LihatData();
   }
}




RELASI ANTAR CLASS
Pemrograman berorientasi obyek adalah sekumpulan class-clas yang saling berintarksi. Ada banyak cara
suatu class dapat berinteraksi dengan class lainnya, seperti pewarisan (GenSpec), agregasi (WholePart) dan
asosiasi (instance/ message connection) 


    1. Asosiasi, yaitu hubungan statis antar class. Umumnya menggambarkan class yang memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain. Panah navigability menunjukkan arah query antar class
    2. Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas..”). Beberapa Class dapat mempunyai hubungan agregasi jika salah salah satu Class berisi atribut-atribut yang ada pada Class lain.
    3. Pewarisan, yaitu hubungan hirarkis antar class. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metoda class asalnya dan menambahkan fungsionalitas baru, sehingga ia disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi.
    4. Hubungan Dinamis, yaitu rangkaian pesan (message) yang di-passing dari satu class kepada class lain. Hubungan dinamis dapat digambarkan dengan menggunakan sequence diagram.





    Resume PBO-01

    • OOP adalah program kumpulan objek yang tersusun dari struktur data/ fields dan method/ operation.

    Data :

    1. identitas
    2. information
    Operation :

    1. perilaku
    2. kemampuan
    3. proses
    Paradigma Dasar PBO(Pemrograman Berorientasi Obyek) :

    1. ABSTRACTION(Permodelan) : Proses filter dalam rangka melakukan bagaimana membawa sesuatu dari real menjadi program.
    2. ENCAPSULATION = information hidding/ implementation hidding : Memisahkan data dan proses dari area publik. bersifat private.
    3. INHERITANCE(Pewarisan) : Bahwa sebuah class dapat diturunkan menjadi class yang lain. Begitu juga sebuah class bisa menjadi turunan dari class yang lain. Semua sifat induk di wariskan kedalam class anaknya.
    4. POLIMORLY
    Class Diagram, terdiri dari :

    • Nama Class -> identitas
    • Data -> kumpulan data
    • Method -> operation
    contoh :
    Nama class -> Person
    Data -> nama ; String
                 usia ; int
    method -> person( )

    Class adalah Blueprint of Object. Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi).


    Object adalah perwujudan dari class


    Access modifier adalah sebuah penanda yang bisa diletakkan didepan method atau variabel
    Access modifier :

    1. Private -> tidak dapat dipanggil dari luar class yang bersangkutan
    2. Protected -> private kecuali turunannya saja/ hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang mewarisinya
    3. Package -> masih dalam satu folder
    4. Public -> umum

    PBD-Tutorial atau Panduan Lapangan untuk materi SQL

    NIM/ Nama : 10410100218/ Achmad Vierdan Habibi
    Dosen : Tan Amelia
    Tugas : 111 – PBD Kelas P5 – M1

    TUTORIAL SQL

    • Ketika seseorang user menginginkan untuk memperoleh beberapa informasi dari sebuah file database, dia bisa menggunakan sebuah query.
    • Sebuah query adalah sebuah permintaan user untuk memperoleh data atau informasi pada kondisi tertentu.
    • SQL adalah sebuah bahasa query yang mengijinkan user menetapkan kondisinya.


    • SQL adalah bahasa query baku untuk DBMS
    • Awalnya diterapkan pada DBMS besar seperti Oracle dan Informix, sekarang juga pada DBMS berbasis PC seperti dBASE dan FoxPro.
    • SQL bersifat sebagai bahasa tingkat tinggi (high level). Pemakai hanya menyebutkan hasil yang diinginkan dan optimasi pelaksanaan query dilakukan oleh DBMS.
    • Bahasa SQL terbagi dalam dua bagian besar, yaitu: DDL (Data Definition Language) dan DML (Data Manipulation Language)
    • DDL mendefinisikan struktur database, seperti pembuatan database, pembuatan tabel dsbnya. Contoh: CREATE DATABASE dan CREATE TABLE.
    • DML merupakan bagian untuk memanipulasi basis data seperti: pengaksesan data, penghapusan, penambahan dan pengubahan data. DML juga dapat digunakan untuk melakukan komputasi data. Contoh: INSERT, DELETE, dan UPDATE.

    Bentuk Umum
    1. SELECT [ALL / DISTINCT] expr1 [AS col1], expr2 [AS col2] ;
    2. FROM tablename
    3. WHERE condition
    Tipe Data dalam SQL
    • Numeric
    • Character-string
    • Bit-string(image)
    • Date
    • Time
    Tipe data numeric :
    1. Bilangan - bilangan integer : INTEGER (INT), SMALLINT
    2. Bilangan - bilangan real : FLOAT, REAL DOUBLE PRECISION
    Tipe data character-string :
    1. Fixed Length : CHAR(n) atau CHARACTER(n)
    2. Varying Length : VARCHAR(n) atau CHAR VARYING(n) atau CHARACTER VARYING(n) n = jumlah maksimum dari CHARACTER (default n=1)
    Tipe data bit-string :
    1. Fixed Length : BIT(n), n = jumlah bit
    2. Varying Length : BIT VARYING(n), n = jumlah bit maksimum (default n=1)
    Tipe data Date & Time :
    1. Date mempunyai 10 posisi dengan format untuk komponen YEAR-MONT-DAY :YYYY-MM-DD
    2. Time paling sedikit mempunyai 8 kondisi untuk komponen HOUR-MINUTE-SECOND dengan format : HH-MM-SS
    SQL hanya mempunyai satu statement untuk melakukan 'infrmation retrival' dari suatu basis data, yaitu : SELECT statement.
    Dalam SQL, satu table bukan merupakan set dari tuple; dimana dalam SQL suatu table diperbolehkan mempunyai dua atau lebih tuple yang sama. jadi, jika diinginkan suatu hasil table yang berupa set, maka harus digunakan suatu option yang memungkinkan untuk ini(yaitu DISTINCT Option).


    contoh :
    Table Supplier
    Table Parts

    SELECT CITY FROM PARTS

    SELECT DISTINCT CITY FORM PARTS

    WHERE
    • Klausa WHERE digunakan untuk menentuka predikat atau kriteria yang harus di penuhi suatu relasi sebagai hasil query.
    • Klausa ini bersifat opsional, yaitu dapat menggunakan klausa WHERE atau tidak.
    • Jika tidak menggunakan klausa WHERE, maka query dilakukan untuk semua tuples pada tabel yang disebutkan pada klausa FROM.


    SELECT *
    FROM SUPPLIER
    WHERE STATUS = 20

    SELECT *
    FROM SUPPLIER
    WHERE CITY = ‘Semarang’


    Predikat pada klausa WHERE dapat dikombinasikan dengan operator relasi lainnya, seperti <, <=, >, >=, <>, dan operator logika, seperti AND, OR, NOT


    SELECT *
    FROM SUPPLIER
    WHERE STATUS = 30 AND CITY = ‘Yogyakarta’


    Klausa WHERE dapat digunakan untuk melakukan query dengan predikat yang berbentuk suatu range nilai tertentu, yaitu dengan menambahkan klausa BETWEEN


    SELECT *
    FROM SUPPLIER
    WHERE STATUS BETWEEN 20 AND 30



    • Untuk atribut yang bertipe string dapat dilakukan suatu pencarian dengan pola tertentu, yaitu dengan memanfaatkan karakter ‘%’ atau ‘_’ (underscore) dan menambahkan klausa LIKE pada klausa WHERE :
    • ‘%’ untuk semua substring
    • ‘_’ untuk semua karakter pada posisi yang sesuai
    SELECT *
    FROM SUPPLIER
    WHERE STATUS LIKE ‘S%’



    SELECT *
    FROM SUPPLIER
    WHERE STATUS LIKE ‘_o%’

    FORM

    • Klausa FROM digunakan untuk menentukan tabel yang akan dijadikan sebagai sumber untuk pencarian data
    • Dalam melakukan query tidak hanya terbatas pada satu tabel, tetapi sering kali dibutuhkan untuk merelasikan beberapa tabel sekaligus.
    • Menampilkan semua SUPPLIER yang melakukan SHIPMENT dengan jumlah kuantitasnya > 300
    SELECT *
    FROM SUPPLIER, SHIPMENT
    WHERE SUPPLIER.SCODE=SHIPMENT.SCODE
          AND SHIPMENT.QTY > 300

    SELECT SU.SNAME
    FROM SUPPLIER SU, SHIPMENT SH
    WHERE SU.SCODE=SH.SCODE AND SH.QTY > 300




    SELECT SU.SNAME AS NAMA_SUPPLIER
    FROM SUPPLIER SU, SHIPMENT SH
    WHERE SU.SCODE=SH.SCODE AND SH.QTY > 300




     Pengurutan Hasil Query

    • Untuk menampilkan hasil query berdasarkan urutan atribut tertentu, maka dapat dilakukan dengan menambahkan klausa ORDER BY.
    • Default yang diberikan klausa ORDER BY adalah urutan secara menial (ASC), tetapi untuk merubah menjadi urutan secara menurun, dapat dilakukan dengan menambahkan klausa DESC setelah nama atribut.
    SELECT *
    FROM SUPPLIER
    ORDER BY STATUS DESC




    SELECT SNAME
    FROM SUPPLIER
    WHERE STATUS = 30
    ORDER BY SNAME DESC