Minggu, 20 Oktober 2013

SQL 1 part 1-7

Mata kuliah : Structure Query Language I
Dosen : Titik Lusiani, M.Kom, OCA

Part 1
Memahami SQL dasar-dasar Database
SQL adalah Bahasa yang digunakan untuk berinteraksi dengan database.
Database adalah kumpulan data yang disimpan dengan beberapa cara pengorganisasian.
Adapun istilah database kontainer (biasanya sebuah file atau sekumpulan file) untuk menyimpan data yang telah diatur.
Penertian lain dari database adalah kontainer yang dibuat dan dimanipulasi melalui DBMS (software database/sistem manajemen database).


            Tabel adalah file terstruktur yang dapat menyimpan data dengan tipe khusus, dalam tabel juga terdapat kolom dan tipe data. Tabel tersusun dari beberapa kolom, kolom berisi bagian informasi dalam tabel setiap kolom dalam database mempunyai tipe data terkait, data dalam tabel juga berisi record/baris.
            Dalam tabel juga terdapat costraint atau aturan dalam kolom yang harus ada isinya contoh : primary key, Not null (tidak boleh kosong), check (pengecekan suatu kolom), unique, foreign key.
primary key : memiliki nilai unik dalam setiap kolom harus memiliki primary key agar proses perubahan data lebih mudah.
Berikut ketentuan dalam pembuatan primary key :
-          Dua baris tidak dapat memiliki nilai primary key yang sama.
-          Setiap baris harus memiliki nilai primary key kolom tidak boleh kosong.
-          Kolom yang berisikan nilai primary key tidak pernah dapat dimodifikasi dan diperbarui.
Foreign key : merupakan kunci penghubung dari satu kolom ke kolom lain hubungan antar tabel.


1.      Perintah Projection
Projection : Perintah SELECT bisa digunakan untuk memilih kolom apa saja dari tabel yang akan ditampilkan.
Contoh :         
Menampilkan nim dan alamat dari mahasiswa
Select nim,alamat
From mhs;

2.      Perintah Selection dan Joining
Selection: Perintah SELECT bisa digunakan untuk memilih baris data mana saja yang akan ditampilkan.
Joining: Perintah SELECT bisa digunakan untuk menampilkan data atau informasi dari 2 atau lebih tabel yang terhubung.
Contoh :
Menampilkan nama lengkap mahasiswa dan nim dari seluruh mahasiswa
SELECT MAHASISWA.NAMA_DEPAN ||' '|| MAHASISWA.NAMA_BELAKANG "NAMA LENGKAP", KRS.NIM
FROM MAHASISWA, KRS
WHERE MAHASISWA.NIM = KRS.NIM;

3.      Tipe-tipe Constraint yang ada didalam dalam tabel tersebut adalah
·         NOT NULL : Menentukan sebuah kolom tidak boleh diisi nilai NULL
·         UNIQUE : Menentukan 1 (satu) atau banyak kolom tidak boleh bernilai kembar antara 1 (baris) dengan yang lain
·         PRIMARY KEY : Menentukan agar sebuah kolom menjadi dasar identifikasi yang tidak kembar dari setiap baris dari tabel (NOT NULL + UNIQUE)
·         FOREIGN KEY : Menghubungkan sebuah kolom dengan kolom dari tabel lain yang direferensi
·         CHECK : Menentukan kondisi yang harus dipenuhi
4.      Entity Relationship Diagram adalah Diagram yang menghubungkan hubungan/relasi antar tabel
Perbedaan CDM dengan PDM
·         CDM (Analysis)
Mempelajari kebutuhan user / business, mendapatkanbusiness rule, digambarkan dengan  CONCEPTUAL DATA MODEL (CDM).
CDM merupakan gambaran secara keseluruhan struktur sistem informasi. Dengan CDM kita bisa membangun design awal sistem informasi dan kita tidak perlu khawatir dengan detail implementasinya secara fisik.
·         PDM (Design)
Implementasi dan design sistem, digambarkan dengan PHYSICAL DATA MODEL (PDM).
PDM menggambarkan struktur fisik data sebagaimana akan diimplementasikan oleh Database Management Systems (DBMS). Dalam PDM, kita bisa mengoptimalkan database dengan memodifikasi tabel, kolom, index, referential integrity, view, physical storage, trigger, dan stored procedure.



Part 2
Menyortir Data
Sortir data dilakukan untuk pengindeksan data/saat data terlalu banyak,apabila data tidak disortir maka data yang akan ditampilkan akan sesuai dengan apa yang ada dalam tabel utama, contoh : select nama_produk from produk order by nama_produk; perintah tersebut akan menyortir data dengan kolom nama_produk.
Adapun beberapa tipe penyortiran sebagai berikut :
1.      Berdasarkan banyak kolom
contoh : select id_produk, harga_produk, nama_produk from produk order by harga_produk, nama_produk;
2.      Berdasarkan letak kolom
contoh : select id_produk, harga_produk, nama_produk from produk order by 2,3;
3.      Menentukan urutan penyortiran
Terdapat 2 jenis yaitu ascending (A-Z), descending (Z-A)
Contoh : select id_produk, harga_produk, nama_produk from produk order by harga_produk desc, nama_produk;



Part 3
Penyaringan data
1.      Menggunakan operator AND
Untuk menyaring lebih dari satu kolom maka digunakan operator and.
Contoh : select nama_produk, harga_produk from produk where id_pemilik = ‘DL001’ and harga_produk <=4;
2.      Menggunakan operator OR (antara 2 kondisi)
Contoh : select nama_produk, harga_produk from produk where id_pemilik = ‘DL001’ or id_pemilik = ‘BRS01’;
3.      Menggunakan operator IN
Digunakan untuk menentukan range kondisi yang dapat disesuaikan.
Contoh : select nama_produk, harga_produk from produk where id_pemilik in (‘DL001’,‘BRS01’) order by nama_produk;
4.      Menggunakan operator NOT
Operator not dari klausa where mempunyai satu fungsi – not yang meniadakan apapun kondisi yang datang berikutnya, karena operator not tidak pernah digunakan sendirian(selalu digunakan bersama dengan operator lain).
Contoh : select nama_produk from produk where not id)pemilik = ‘DLL01’ order by nama_produk;
5.      Menggunakan tanda wildcard % (like)
Memiliki arti melakukan pencarian dan mencocokkan semua jumlah karakter yang ada.
Contoh : select id_produk, nama_produk from produk where nama_produk like ‘ikan%’;
6.      Menggunakan wildcard underscore (_)
Tanda garis bawah digunakan sama dengan %, tetapi untuk mencocokkan satu karakter tunggal bukan untuk banyak karakter.
Contoh : select id_produk, nama_produk from produk where nama_produk like ‘_inch teddy bear’;
7.      Menggunakan tanda kurung besar ( [ ] )
Digunakan untuk menentukan serangkaian karakter, satu diantaranya harus cocok dengan satu karakter dalam posisi yang ditentukan.
Contoh : select no_pelanggan from pelanggan where no_pelanggan like ‘[JM]%’ order by no_pelanggan;
Part 4
Fungsi Manipulasi Data
Berikut beberapa fungsi dalam SQL :
-          Substr (mengekstrak bagian dari string)
-          To_char, to_number (merubah tipe data)
-          Ceil (mengembalikan batas nomor)
-          Sysdate (mendapatkan tanggal yang berlaku/hari ini)
-          Next_day (mengambil tanggal yang lewat/maju satu hari)
Fungsi untuk memanipulasi teks :
-          Left (mengembalikan karakter dari bagian kiri string)
-          Length (mengembalikan panjang string)
-          Lower (mengubah string ke huruf kecil)
-          Ltrim (memotong spasi kosong dari bagian kiri string)
-          Right (mengembalikan karakter dari bagian kanan string)
-          Rtrim (memotong spasi kosong dari bagian kanan string)
-          Upper (mengubah string ke huruf besar)
Fungsi agregat :
-          Avg (menghasilkan nilai rata-rata dari sebuah kolom)
-          Count (manghasilkan nomor baris pada sebuah kolom)
-          Max (menghasilkan nilai tertinggi dari kolom)
-          Min (menghasilkan nilai terendah dari kolom)
-          Sum (menghasilkan jumlah nilai sebuah kolom)




Part 5
Mengelompokkan data
Pengelompokan data menggunakan klausa group by pada statement select.
contoh : select id_produk count (*) as nomor_produk from produk group by id_produk;
selain group by untuk menyaring data juga dapat menggunakan having yang mirip dengan where.
Contoh : select id_pelanggan, count (*) as pesanan from pesanan group by id_pelanggan having count (*) >=2;
Perbedaan order by dan group by :
-          Order by : menyortir output yang dihasilkan dan menampilkan semua kolom
-          Group by : mengelompokkan baris tetapi output mungkin tidak dalam urutan kelompok, hanya kolom yang dipilih atau yang dapat digunakan dan setiap kolom yang dipilih harus digunakan dan diharuskan jika menggunakan kolom/ ekspresi harus dengan kolom fungsi agregat.



Part 6
Subquery
Merupakan istilah dari pengertian select dalam select dan digunakan untuk mencari sesuatu yang belum diketahui kondisinya.
Contoh :
-          Select * from mhs where ipk > (select nim from mhs where nim = %3901%);
-          Select id_pelanggan form pesanan where no_pesanan in (select no_pesanan from pesanan where id_produk = ‘RGAN01’);
-          Select nama_pelanggan, no_pelanggan from pelanggan where id_pelanggan in (select no_pesanan from pesanan where id_produksi in(select no_pesanan from pesananitem where id_produksi = ‘RGA001’));
Query gabungan
-          Menggunakan union
Contoh : select no_pelanggan, email_pelanggan from pelanggan where alamat_pelanggan in (‘IL’,’IN’,’MI’) union select nama_pelanggan, email_pelanggan from pelanggan where nama_pelanggan = ‘Fun4All’;
-          Aturan Union : setiap query dalam union harus berisi kolom, ekspresi atau fungsi agregat yang sama, kolom dan agregat harus terjadi dalam urutan yang tepat sama dalam setiap statemen select dalam union, data tipe kolom harus kompatibel tidak perlu tipe yang tepat sama, tetapi harus merupakan tipe yang dapat diubah oleh dbms.



Part 7
Menggabungkan tabel (join)
Join digunakan untuk menghubungkan antar tabel.
Contoh : select vend_name, prod_name, prod_price
                      From vendors, products
                      Where vendors.vend_id = products.vend_id;
Tipe-tipe join :
-          Inner join : join berdasarkan pengujian persamaan antara dua tabel
Contoh : select vend_name, prod_name, prod_price
                                  From vendors inner join products
                                  on vendors.vend_id = products.vend_id;
-          Self join : join pada dirinya sendiri/join pada tabel yang sama
Contoh : select c1.cust_id, c1.cust_name, c1.cust_contact
                      From customers c1, customers c2
                      Where c1.cust_name= c2.cust_name
                      And c2.cust_contact = ‘jim’;
-          Natural join : join untuk memilih hanya satu kolom yang unik
Contoh : select c.*, o.order_num, o.order_date, ol.prod_id, ol.quantity, ol.item_price
                      From customers c, orders o, orderitems ol
                      Where c.cust_id= o.cust_id
                      And ol.order_num = o.order_num
And prod_id = ‘RGAN01’;
-          Outer join : join memasukkan baris-baris tabel yang tidak mempunyai baris berkaitan dalam tabel terkait
Contoh : select c.cust_id, o.order_num
                      From customers, orders

                      Where c.cust_id = o.cust_id;

Tidak ada komentar:

Posting Komentar