Saturday, January 3, 2015

Data Control Language (DCL)



 Data Control Language (DCL)
Ú 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;


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



Kasus Data Integrity

Kasus Statement Auxiliary

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

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

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

DATA MANIPULATION LANGUAGE (DML)



DATA MANIPULATION LANGUAGE (DML)
= INSERT
Sintaks :       INSERT INTO
  nama_tabel [(nama_kolom1, …)]
                                  VALUES (data1, …);
    Contoh :      
1). 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

2).     INSERT INTO NILAI(NPM,KDMK,MID) VALUES
  (“32296222”,”KK222”,30);


= UPDATE
Sintaks :       UPDATE nama_tabel
                                                   SET nama_kolom = ekspresi
                          WHERE kondisi;
    Contoh :      

    1).Ubah alamat mahasiswa yang memiliki NPM =
 “50096487” !
UPDATE MHS SET  ALAMAT=”Depok”
WHERE NPM=”50096487”;
      Hasil :

    MHS
NPM
NAMA
ALAMAT
50096487

Pipit

Depok

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

= 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 ) :       

1). Menampilkan data.
[ Tampilkan semua data mahasiswa !

SELECT * FROM MHS;

    Hasil :

 MHS
NPM
NAMA
ALAMAT
10296832

Nurhayati

Jakarta

10296126

Astuti

Jakarta
31296500

Budi

Depok
41296525

Prananingrum

Bogor
50096487

Pipit

Bekasi
21196353

Quraish

Bogor


[ SELECT NPM,NAMA,ALAMAT FROM  MHS;
2). 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;

3). 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”;

4). 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;


5). 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
    masiswa yang bertempat tinggal di alamat
    tersebut !

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

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






6). 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 :
NILAI
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 : 40    120
NILAI
KDMK
FINAL
KD132
90
KD132
0
KD132
30



Contoh lebih dari satu tabel (Sub Query dan Join ) :

1). Tampilkan nama mahasiswa yang mempunyai nilai
 midtest lebih kecil dari 60 !
a.  Sub Query
[ SELECT NAMA FROM MHS WHERE NPM IN
( SELECT NPM FROM NILAI WHERE MID <= 60 );
b.  JOIN :
[ SELECT NAMA FROM MHS, NILAI WHERE MHS.NPM = NILAI.NPM AND NILAI.MID <= 60;

Hasil :
    MHS
NAMA

Nurhayati

Budi

Quraish


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

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




3). 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



4). 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;