Rabu, 10 Oktober 2012

Pengenalan SQL

4. PENGENALAN SQL

4.1 Pengenalan SQL
SQL (Structured Query Language), merupakan script yang digunakan untuk melakukan komunikasi dengan Database. SQL juga merupakan bahasa standar yang digunakan untuk RDBMS (Relational DataBase Management Systems). SQL sendiri juga bisa digunakan untuk melakukan proses insert, update atau delete ke dalam suatu database. Sintaks-sintaks ini yang disebut dengan Data Manipulation Language (DML) yang merupakan bagian dari SQL. Berikut ini adalah penjelasan singkat dari sintaks-sintaks tersebut.
- SELECT, bertugas untuk mengakses data dari suatu tabel dalam database
- UPDATE, bertugas untuk mengupdate (merubah) data dalam suatu tabel pada database.
- DELETE, bertugas untuk menghapus data dari suatu tabel dalam database
- INSERT, bertugas untuk menambahkan data ke dalam suatu tabel dalam database.
Suatu database berisi dari satu atau lebih tabel. Setiap tabel diberi nama tertentu yang berhubungan dengan isinya, contohnya tabel yang isinya mengenai data pelanggan diberi nama tabel Customers. Tabel itu sendiri berisi dari satu atau sekumpulan record. Record adalah satu baris data yang dibentuk oleh satu atau beberapa field. Nah, field-field inilah yang berisi data. Berikut ini adalah contoh dari suatu tabel yang berisi data. Berikut ini adalah contoh dari tabel yang bernama 'Karyawan'.
Tabel di atas terdiri dari tiga buah record. Masing-masing record terdiri dari empat buah field (LastName, FirstName, Address, City).

4.2 Pengelompokan Perintah
  1. DDL ( Data Definition Language )
DDL merupakan kelompok perintah yang berfungsi untuk mendefinisikan atribut-atribut database, table, atribut (kolom), batasan-batasan terhadap suatu atribut serta hubungan antar table. Yang termasuk kelompok DDL ini adalah :
CREATE untuk menciptakan table ataupun indeks
ALTER untuk mengubah struktur table
DROP untuk menghapus table ataupun indeks
  1. DML ( Data Manipulation Language )
Adalah kelompok perintah yang berfungsi untuk memanipulasi data, misalnya untuk pengambilan, penyisipan pengubahan dan penghapusan data. Yang termasuk DML :adalah
SELECT memilih data
INSERT menambah data
DELETE menghapus data
UPDATE mengubah data
  1. DCL ( Data Control Language )
Berisi perintah-perintah untuk mngendalikan pengaksesan data. Yang termasuk DCL adalah :
GRANT memberikan kendali pada pengaksesan data.
REVOKE mencabut kemampuan pengaksesan data
LOCK TABLE mengunci table

4.3 Contoh Kasus 
1. DDL : create, drop, alter
- Membuat Tabel (CREATE TABLE)
1. CREATE TABLE S (Sn Char(5) NOT NULL,
Sname Char(20) NOT NULL,
Status Smallint NOT NULL,
City Char(15) NOT NULL);
2. CREATE TABLE P
(Pn Char(6) NOT NULL,
Pname Char(20) NOT NULL,
Color Char(6) NOT NULL,
Weight Smallint NOT NULL);
3. CREATE TABLE SP
(Sn Char(5) NOT NULL,
Pn Char(6) NOT NULL,
QTY INTEGER NOT NULL);
4. CREATE UNIQUE INDEX Sidx ON S(Sn);
CREATE UNIQUE INDEX Pidx ON P(Pn);
CREATE INDEX Sdx ON SP(Sn);
CREATE INDEX Pdx ON SP(Pn);
- Modifikasi Table P dengan perintah :
RENAME COLUMN P.COLOR TO WARNA
ALTER TABLE P ADD (City CHAR(15) NOT NULL)
- Membuat View (CREATE VIEW)
 1. Membuat view untuk suplier yang statusnya lebih besar dari 15
CREATE VIEW GOOD_SUPPLIERS AS SELECT Sn, Status, City FROM S WHERE Status > 15;
2. Membuat view yang berisi supplier yang tinggal di Paris
CREATE VIEW Paris_Suppliers AS SELECT * FROM Supliers WHERE City = ' Paris '
3. Membuat view dengan mengganti nama_atributnya
CREATE VIEW Parts (PNum, Part_Name, WT) AS SELECT P#, Pname, Weight FROM Part WHERE COLOR = 'Red'
 
2. Contoh kasus DML
1. Menambah record (INSERT)
INSERT INTO S VALUES ('S1','Smith',20,'London'); INSERT INTO S VALUES ('S2','Jones,10,'Paris'); INSERT INTO S VALUES ('S3','Blake',30,'Paris')
2. Merubah record (UPDATE)
1. Merubah data (record) pada tabel P yang mempunyai nomor part P2, warnanya dirubah menjadi Kuning dan beratnya ditambah 5
UPDATE P SET Warna = 'Yellow', Weight = Weight + 5 WHERE Pn = 'P2'
2. Merubah record pada tabel S, statusnya menjadi dua kali status awal untuk supplier yang bertempat tinggal di kota London
UPDATE S SET Status = 2 * Status WHERE City = 'London'
3. Menghapus record (DELETE)
Menghapus record pada tabel S yang nomor supplier-nya S5
DELETE FROM S WHERE Sn ='S5'
4. Menampilkan record (SELECT 1 tabel)
1. Menampilkan semua data supplier
SELECT * FROM S
atau
SELECT Sn, Sname, Status, City FROM S
2. Menampilkan semua nilai Pn pada tabel SP
SELECT Pn FROM SP
3. Menampilkan nomor supplier dan status untuk supplier yang tinggal di Paris
SELECT Sn, Status FROM S WHERE City ='Paris'
4. Menampilkan no.supplier yang tinggal di Paris dengan status > 20
SELECT Sn FROM S WHERE City ='Paris" AND Status > 20
5. Menampilkan jumlah pengiriman P1
SELECT COUNT(*) FROM SP WHERE Pn = 'P1'
6. Perintah untuk menghindari hasil data yang sama terulang kembali (distinct)
SELECT DISTINCT Pn FROM SP
7. Menampilkan no.supplier dan status bagi supplier yang tinggal di Paris dalam urutan status menurun
SELECT Sn,Status FROM S WHERE City = 'Paris' ORDER BY Status desc
8. Menampilkan no.Part dari semua part yang dipasok oleh lebih dari seorang supplier
 SELECT Pn FROM SP GROUP BY Pn HAVING COUNT(*) > 1
5. Menampilkan record (SELECT lebih dari satu tabel / JOIN)
1. Menampilkan semua supplier dan part yang keduanya bertempat tinggal pada kota yang sama
SELECT Sn, Sname,S tatus, S.City , Pn, Pname, Warna, Weight FROM S,P WHERE S.City = P.City
2. Menampilkan nama supplier yang memasok barang dengan nomor part P2
SELECT Sname FROM S, SP WHERE S.Sn = SP.Sn AND SP.Pn = 'P2'
3. Menampilkan nama supplier yang memasok part berwarna merah
SELECT Sname FROM S, SP, P WHERE S.Sn = SP.Sn AND SP.Pn = P.Pn AND P.COLOR = 'RED'
6. Menampilkan record (SELECT lebih dari satu tabel / SELECT Bertingkat)
1. Menampilkan nama supplier yang memasok barang dengan nomor part P2
SELECT Sname FROM S WHERE Sn IN (SELECT Sn FROM SP WHERE Pn = 'P2')
atau
SELECT Sname FROM S WHERE Sn = ANY (SELECT Sn FROM SP WHERE Pn = 'P2')
2. Menampilkan nama supplier yang memasok part berwarna merah
SELECT Sname FROM S WHERE Sn IN (SELECT Sn FROM SP WHERE Pn IN (SELECT Pn FROM P WHERE Warna = 'Red'))
3. Menampilkan no.supplier dengan nilai status lebih kecil daripada nilai maksimum status yang ada pada tabel S
SELECT Sn FROM S WHERE Status < (SELECT MAX(Status) FROM S)
4. Menampilkan nama supplier yang tidak memasok barang dengan nomor part P2 SELECT Sname FROM S WHERE Sn NOT IN
(SELECT Sn FROM SP WHERE Pn = 'P2')
5. Menampilkan semua nomor supplier yang sama lokasinya dengan S1
SELECT Sn FROM S WHERE CITY = (SELECT CITY FROM S WHERE Sn = 'S1')
7. Fungsi Perhitungan
COUNT : jumlah baris dan kolom
SUM : jumlah nilai dam kolom
AVG : rata - rata nilai dalam kolom
MAX : nilai terbesar dalam kolom
MIN : nilai terkecil dalam kolom
Untuk SUM dan AVG nilainya harus numerik (INT, SMALLINT, FLOAT). Fungsi-fungsi tsb jika dikenakan pada nilai yang NULL maka nilainya akan diabaikan kecuali untuk COUNT(*)
1.) Menghitung jumlah supplier
SELECT COUNT(*) FROM S
atau
SELECT COUNT (Sn) FROM S
2.) Menampilkan nomor part dan total kuantitas pengiriman dari setiap part
SELECT Pn, SUM(QTY) FROM SP GROUP BY Pn
3.) Menghitung jumlah kuantitas dari P2 yang telah disupply
SELECT SUM (QTY) FROM SP WHERE Pn = 'P2'
4.) Menampilkan jumlah pengiriman barang dengan nomor P4 dan dipasok oleh nomor suppplier S1
SELECT COUNT(*) FROM SP  WHERE Pn = 'P4' AND Sn = 'S1'
5.) Menampilkan nomor part dan total kuantitas dari masing-masing part
SELECT Pn, SUM(QTY) FROM SP GROUP BY P3
 
  3. Contoh Kasus DCL (Data Control Language) : Grant dan Revoke

1. GRANT
syntax:
GRANT PRIVILEGES ON UNIVERSITAS GUNADARMA TO Masyarakat,Mahasiswa
Yang berarti pengguna masyarakat dan mahasiswa boleh untuk mengakses data mengenai universitas gunadarma
1) Syntax:
GRANT PRIVILEGES ON STUDENTSITE TO MAHASISWA GUNADARMA
Yang berarti pengguna Mahasiswa gunadarma boleh mengakses data dari studentsite.
2) GRANT INSERT, DELETE, UPDATE ON kuliah TO anto, John
Yang artinya yaitu Pengguna dengan login-name anto dan John memperoleh hak untuk melakukan operasi INSERT, DELETE, dan UPDATE pada file/tabel kuliah.
2 .REVOKE

bentuk umumnya sebagai berikut:
REVOKE akses-1 [, akses-2, ...] ON tabel FROM user-1 [, user-2, ...]
Contoh pemakaiannya adalah sebagai berikut ini:
1) REVOKE INSERT, DELETE ON kuliah FROM John
Perintah ini membatalkan hak dari John untuk melakukan INSERT dan DELETE pada file kuliah.
2) REVOKE DELETE,UPDATE ON kuliah FROM Andi
Perintah ini membatalkan hak dari andi untuk melakukan delete dan update pada file kuliah
3) REVOKE INSERT,UPDATE ON Materi Kuliah FROM Anton
Perintah ini membatalkan hak akses dari anton untuk melakukan insert dan update pada file materi kuliah.
 

1 komentar:

  1. Casino - DrmCD
    Get all 김천 출장샵 the information you 여수 출장마사지 need to start casino 원주 출장샵 gambling with the help of Dr. Dr. Dr. 동해 출장마사지 Las Vegas Casino. Visit our website and click on 서울특별 출장마사지 the link. Rating: 4.2 · ‎8 votes

    BalasHapus