Photo

Photo
Me

Kamis, 06 Maret 2014

Pengelompokkan Statement SQL



Structure Query Language ( S Q L )


SQL dapat diterapkan pada beberapa software diantaranya adalah : Dbase IV, Informix, AS-400, Access .
Jenis SQL
1.                  Interactive  ;    langsung dapat dioperasikan.
2.                  Embedded ;    disisipkan ke dalam sebuah program ( Cobol, C, Fortran ).

Pengelompokan Statement SQL


1.                  Data Definition Language ( DDL )
Data Definition Language (DDL) adalah bahasa dalam DBMS yang digunakan untuk membuat atau mendefinisikan obyek-obyek di dalam database. Statement DDL adalah perintah-perintah yang digunakan untuk menjelaskan objek dari database. Dengan kata lain DDL digunakan untuk mendefinisikan kerangka database. Secara umum untuk membuat obyek table.
Syntaks dalam DDL:
1.      Create : Perintah yang digunakan untuk membuat objek database seperti Table, View, Index, Synonym, Sequence, Procedure, Trigger, Function, Package, dan User-Defined Data Types.
2.      Alter : Perintah yang digunakan untuk memodifikasi struktur dari objek-objek database.
3.      Drop : Perintah yang digunakan untuk menghapus objek database
4.      Truncate : Perintah yang digunakan untuk menghapus secara permanen baris (row) dari sebuah tabel atau dengan kata lain mengosongkan kembali tabel tanpa menghapus tabel itu sendiri.
5.      Rename : Perintah yang digunakan untuk mengganti nama sebuah objek database.
      




Kasus DDL

1.    Pembuatan Database

Sintaks        :           CREATE DATABASE nama_db ;
Contoh       :          
CREATE DATABASE latihan ;
(membuat database dengan nama latihan)

2.    Pembuatan Tabel
Sintaks        : CREATE TABLE nama_tabel
(nama_kolom1  type_kolom1, nama_kolom type_kolom2, …)

Contoh       :
Struktur database
MHS (NPM char(8),NAMA char(25),ALAMATchar(30))
MKUL (KDMK char(5),MTKUL char(25),SKS smallint)
NILAI (NPM char(8),KDMK char(5),MID smallint,FINAL smallint)

Membuat table
CREATE TABLE MHS(NPM char(8) notnull, NAMA char(25) notnull, ALAMAT char(30) notnull);
CREATE TABLE MKUL(KDMK char(5) notnull, MTKULIAH char(25) notnull, SKS smallint notnull);
CREATE TABLE NILAI(NPM char(8) notnull, KDMK char(5) notnull, MID smallint, FINAL smallint);


3.    Pembuatan Index
Sintaks        :           CREATE [UNIQUE] INDEX nama_index
ON nama_tabel (nama_kolom);
    Contoh: 
Buat index dengan nama MHSIN berdasarkan NPM  dari tabel MHS !
    CREATE UNIQUE INDEX MHSIN ON MHS(NPM);

Hasil : MHSIN

NPM
NAMA
ALAMAT
10296126
Astuti
Jakarta
10296832
Nurhayati
Jakarta
21196353
Quraish
Bogor
31296500
Budi
Depok
41296525
Prananingrum
Bogor
50096487
Pipit
Bekasi

CREATE INDEX NILAIIN ON NILAI(KDMK);

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 MHS;

CREATE VIEW NILVIEW(NPM, KDMK,   MID) AS SELECT NPM, KDMK, MID FROM NILAI;

5.    Menghapus Database / Tabel / Index / View
Sintaks        :           DROP DATABASE nama_db
                                DROP TABLE nama_tabel
                                DROP INDEX  nama_index
                                                DROP VIEW  nama_view
Contoh       :
menghapus tabel MHS :
DROP TABLE MHS;
6.    Merubah Struktur Tabel
Sintaks        :           ALTER TABLE nama_tabel
ADD (nama_kolom   type_kolom
[BEFORE nama_kolom])
MODIFY (nama_kolom   type_kolom)
DROP (nama_kolom   type_kolom);
Contoh       :
Tambahkan kolom JKEL pada tabel MHS

ALTER TABLE MHS ADD(JKEL char(1));

Hasil : MHS

NPM
NAMA
ALAMAT
JKEL
10296832

Nurhayati

Jakarta

 

10296126

Astuti

Jakarta

31296500

Budi

Depok

41296525

Prananingrum

Bogor

50096487

Pipit

Bekasi

21196353

Quraish

Bogor


Ubah panjang kolom MTKULIAH yang ada pada tabel MKUL !

ALTER TABLE MKUL
MODIFY(MTKULIAH char(30));
Hapus kolom JKEL dari tabel MHS !       
ALTER TABLE MHS DROP(JKEL char(1));

Contoh Data : MHS
NPM
NAMA
ALAMAT
10296832

Nurhayati

Jakarta

10296126

Astuti

Jakarta
31296500

Budi

Depok
41296525

Prananingrum

Bogor
50096487

Pipit

Bekasi
21196353

Quraish

Bogor

 MKUL       

KDMK
MTKULIAH
SKS
KK021
P. Basis Data
2
KD132
SIM
3
KU122
Pancasila
2

NILAI
NPM
KDMK
MID
FINAL
10296832
KK021
60
75
10296126
KD132
70
90
31296500
KK021
55
40
41296525
KU122
90
80
21196353
KU122
75
75
50095487
KD132
80
0
10296832
KD132
40
30

2.                 Data Manipulation Language ( DML )
Data Manipulation Languange (DML) merupakan kelompok perintah yang berfungsi untuk memanipulasi data dalam basis data, misalnya untuk pengambilan, penyisipan, pengubahan, dan penghapusan data.Perintah yang termasuk dalam kelompok DML adalah SELECT, INSERT, DELETE, dan UPDATE.
1.      Insert : Perintah yang digunakan untuk memasukkan data ke table.
2.      Update : Perintah yang digunakan untuk memodifikasi data pada tabel.
3.      Delete : Perintah yang digunakan untuk menghapus data pada table.
4.      Select : Perintah yang digunakan untuk menampilkan isi tabels.
5.      Commit : Perintah yang digunakan untuk menyimpan perubahan pada workspace yang sedang dioperasikan, karena pada awalnya perubahan masih tersimpan pada workspace temporary.
6.      Rollback : Perintah yang digunakan untuk membatalkan perubahan yang dilakukan setelah perintah COMMIT terakhir

Kasus DML
1.    Insert
Sintaks        :           INSERT INTO
                                nama_tabel [(nama_kolom1, …)]   
                                VALUES (data1, …);
    
Contoh       :          
Masukkan data pada tabel MKUL !

INSERT INTO MKUL VALUES  (“KK222”,”Berkas Akses”, 2);        
Hasil :MKUL
KDMK
MTKULIAH
SKS
KK021
P. Basis Data
2
KD132
SIM
3
KU122
Pancasila
2
KK222
Berkas Akses
2








Masukan data pada tabel Nilai
   
INSERT INTO NILAI(NPM,KDMK,MID) VALUES (“32296222”,”KK222”,30);

2.    Update
Sintaks        :           UPDATE nama_tabel
                                SET nama_kolom = ekspresi
                                WHERE kondisi;
Contoh       :          
Ubah alamat mahasiswa yg memiliki NPM = “50096487” !

UPDATE MHS SET  ALAMAT=”Depok”
WHERE NPM=”50096487”;
         
Hasil :MHS
NPM
NAMA
ALAMAT
50096487

Pipit

Depok

UPDATE NILAI SET MID=MID+10
WHERE KDMK=”KK021”;

3.    Delete
Sintaks        : DELETE FROM nama_tabel
                                      WHERE kondisi

Contoh       :          
Hapus nilai mahasiswa yang mempunyai NPM=”10296832” dan KDMK=”KK021” !

DELETE FROM NILAI WHERE  NPM=”10296832” AND KDMK=”KK021”;

Hasil :NILAI
NPM
KDMK
MID
FINAL
10296126
KD132
70
90
31296500
KK021
55
40
41296525
KU122
90
80
21196353
KU122
75
75
50095487
KD132
80
0
10296832
KD132
40
30

Select
Sintaks        :           SELECT [DISTINCT] nama_kolom
FROM nama_tabel
             [ WHERE kondisi ]
[ GROUP BY nama_kolom ]
[ HAVING kondisi ]
[ ORDER BY nama_kolom [ASD/DESC]]

Contoh satu tabel ( Simple Query ) :      
Menampilkan data.
Tampilkan semua data mahasiswa !

SELECT * FROM MHS;

SELECT NPM,NAMA,ALAMAT FROM  MHS;

4.    Mengambil data dari suatu tabel dengan  satu/banyak kondisi :        
Tampilkan mata kuliah yang memiliki SKS = 2 !

SELECT MTKULIAH FROM MKUL WHERE  SKS = 2;



Hasil :MKUL        
MTKULIAH
P. Basis Data
Pancasila

SELECT * FROM NILAI WHERE   MID >=60 OR FINAL > 75;

SELECT NPM, KDMK, MID FROM NILAI  WHERE MID BETWEEN 70 AND 100;

5.      Mengambil data dari suatu tabel dengan menggunakan perintah LIKE:
Tampilkan nama mahasiswa yang diawali dengan huruf “P” !

SELECT NAMA FROM MHS WHERE NAMA LIKE “P%”;

Hasil : MHS
NAMA

Prananingrum

Pipit


SELECT NAMA FROM MHS WHERE NAMA NOT LIKE “%a%”;

SELECT NAMA FROM MHS WHERE NAMA LIKE “_u”;

6.    Mengambil data pada suatu tabel dengan hanya menampilkan satu kali saja data yang sama :
Tampilkan alamat mahasiswa, dimana alamat yang sama hanya ditampilkan satu kali saja !

SELECT DISTINCT ALAMAT FROM MHS;

7.    Memilih beberapa / semua data dari suatu tabel untuk diurutkan / dikelompokkan :
Tampilkan semua data dari tabel MHS, dengan nama terurut dari “Z” ke “A” !

SELECT * FROM MHS ORDER BY NAMA DESC;

Hasil :MHS
NPM
NAMA
ALAMAT
21196353

Quraish

Bogor
41296525

Prananingrum

Bogor
50096487

Pipit

Bekasi
10296832

Nurhayati

Jakarta

31296500

Budi

Depok
10296126

Astuti

Jakarta

Tampilkan alamat mahasiswa dan jumlah mahasiswa yang bertempat tinggal di alamat tersebut !

SELECT ALAMAT, COUNT(*) FROM MHS GROUP BY ALAMAT;

Hasil :
ALAMAT
COUNT(*)
Jakarta
2
Depok
1
Bogor
2
Bekasi
1

Tampilkan alamat dan jumlah masiswa yang bertempat tinggal pada alamat yang jumlahnya lebih dari satu !

SELECT ALAMAT, COUNT(*) FROM MHS GROUP BY ALAMAT HAVING COUNT(*) > 1;

Hasil :
ALAMAT
COUNT(*)
Jakarta
2
Bogor
2

8.    Penggunaan Agreegate Function.
Tampilkan data tertinggi dan terendah dari nilai Midtest pada KDMK = “KD132” !

SELECT MAX(MID), MIN(MID) FROM NILAI WHERE KDMK=”KD132”;

Hasil :
MAX(MID)
MIN(MID)
80
40

Tampilkan rata-rata nilai final test dan jumlah nilai final test dengan KDMK = “KD132” !

SELECT AVG(FINAL), SUM(FINAL) FROM NILAI        WHERE KDMK=”KD132”;

Hasil :
AVG(FINAL)
SUM(FINAL)
40
120


NILAI
KDMK
FINAL
KD132
90
KD132
0
KD132
30

9.    Contoh lebih dari satu tabel (Sub Query dan Join ) :
Tampilkan nama mahasiswa yang mempunyai nilai
midtest lebih kecil dari 60 !

Sub Query
SELECT NAMA FROM MHS WHERE NPM IN ( SELECT NPM FROM NILAI WHERE MID <= 60 );

JOIN :
SELECT NAMA FROM MHS, NILAI WHERE MHS.NPM = NILAI.NPM AND NILAI.MID <= 60;

Hasil : MHS
NAMA

Nurhayati

Budi

Quraish


Sub Query :
SELECT NAMA FROM MHS WHERE NPM IN (SELECT NPM FROM NILAI WHERE KDMK IN (SELECT KDMK FROM MKUL WHERE MTKULIAH = “SIM”);

JOIN :
SELECT NAMA FROM MHS, NILAI, MKUL WHERE MKUL.MTKULIAH=”SIM” AND NILAI.KDMK = MKUL.KDMK AND MHS.NPM = NILAI.NPM;

10.     Penggunaan Exists / Not Exists
Tampilkan nama mahasiswa yang tidak mengambil KDMK = “KK021” !         
      
SELECT NAMA FROM MHS WHERE NOT EXISTS
(SELECT * FROM NILAI WHERE NILAI.NPM = MHS.NPM AND   KDMK = “KK021” );

Hasil : MHS
NAMA

Astuti

Prananingrum

Pipit

Quraish


11.     Penggunaan Union
Tampilkan NPM mahasiswa yang bernama Budi dan yang memiliki nilai final > 75 !    

SELECT NPM FROM MHS WHERE NAMA = “Budi” UNION
SELECT NPM FROM NILAI WHERE FINAL > 75;

3.                 Data Access
Yaitu perintah yang digunakan untuk mengontrol hak akses pada suatu database.
Perintah Data Control Language (DCL) :
·       GRANT
·       REVOKE
     Contoh penggunaan perintah DCL :
·       Memberikan hak akses UPDATE pada tabel MHS terhadap user INDRA
     GRANT UPDATE ON MHS TO INDRA;
·       Mencabut Hak Akses UPDATE pada tabel MHS dari user INDRA
     REVOKE UPDATE ON MHS FROM INDRA;

Kasus Data Access

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

                 - GRANT hak_akses ON nama_tabel
                   TO nama_pemakai
                   [WITH GRANT OPTION]
                   [AS GRANTOR]
         
Contoh    :          
Berikan hak akses kepada Avi untuk menampilkan nilai final test !

GRANT SELECT(FINAL)  ON NILAI TO AVI;

2.         Revoke
Sintaks     :- REVOKE hak_akses ON nama_db
                                FROM nama_pemakai;

                             - REVOKE hak_akses ON nama_tabel
                               FROM nama_pemakai;     

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

REVOKE SELECT(FINAL) ON NILAI FROM AVI;
                            
4.                 Data Integrity
Yaitu perintah yang digunakan untuk mengembalikan data sebelum terjadi kerusakan.
Perintah Recover Tabel
·       RECOVER TABLE
     Contoh penggunaan perintah recover table
·       Kembalikan keadaan data mahasiswa seperti pada saat sebelum terjadi kerusakan
     RECOVER TABLE MHS;

5.                 Auxiliary
Perintah yang digunakan untuk mengubah data maupun kolom pada tabel.
Perintah Auxiliary :
·       UNLOAD
·       LOAD
·       RENAME
     Contoh penggunaan Perintah Auxiliary :
·       Ubah semua data mahasiswa ke bentuk ASCII dan disimpak ke file text di directory /home/indra/
     UNLOAD TO "home/indra" DELIMITER "|" SELECT * FROM MHS;
·       Merubah file text ke tabel MHS_2 di directory home/indra;
     LOAD FROM "home/indra" DELIMITER "|" INSERT INTO MHS_2;
·       Merubah nama tabel MHS menjadi KELAS
     RENAME TABLE MHS TO KELAS;

Kasus Statement Auxiliary
1.  Unload
Sintaks        : UNLOAD TO “nama_path”
                    [DELIMITER “char_pemisah”]
                    SELECT statement;
Contoh       :          
Merubah semua data mahasiswa ke  bentuk ASCII dan disimpan ke file teks di directory /home/avi :

UNLOAD TO “/home/avi/teks”
DELIMITER “|” SELECT * FROM MHS;

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/avi :

LOAD FROM “/home/avi/teks”
DELIMITER “|” INSERT INTO MHS_2;


3.    Rename
Sintaks        : RENAME COLUMN nama_kolom_lama
              TO  Nama_kolom_baru;

Contoh        :          
Mengganti kolom ALAMAT yang ada pada tabel MHS menjadi KOTA :

RENAME COLUMN MHS.ALAMAT TO KOTA;       

1 komentar: