Wednesday, October 10, 2012

BAB IV

STRUCTURE QUERY LANGUAGE
4.1 Pengenalan SQL
SQL (structur query language) : SQL adalah sarana Anda untuk mengakses database
Perintah2 SQL:
-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
4.2 Pengelompokan perintah SQL dan contoh kasus.
DDL - Data Definition Language
merupakan kumpulan perintah SQL yang digunakan untuk membuat, mengubah dan menghapus struktur dan definisi metadata dari objek-objek database.
DML - Data Manipulation Language
merupakan kumpulan perintah SQL yang digunakan untuk proses pengolahan isi data di dalam table seperti memasukkan, merubah dan menghapus isi data - dan tidak terkait dengan perubahan struktur dan definisi tipe data dari objek database.
DCL - Data Control Language
merupakan sebuah metode query untuk memberikan otorisasi hak mengakses database,  mengalokasikan space, pendefinisian space, dan penggunaan database. DCL antara lain:

DDL
I.   DATA DEFINITION LANGUAGE
A.  PERINTAH CREATE
Digunakan untuk mendefinisikan satu relasi baru yang berisikan :
-          Nama Relasi
-          Nama atribut-atributnya disertai dengan tipe-tipe datanya dan domain constrain / value
-          Key, entity integrity dan referential integrity constraint

Syntax Umum :
CREATE TABLE <Table Name>
( <Column name> <Column Type> [ <attribute constraint>]
  {,<Column name> <Column Type> [<Attribute constraint>]}
  [ < Table Constraint> {, <Table Constraint>}]
);
Dari Syntax diatas ada definisi yang optional :
-          < Attribute Constraint> : Not null yang dapat diikuti dengan Default value dari attribute
-          <Table Constraint> : Untuk menspesifikan Primary Key dan Key Constraint dan Foreign Key (Referential Integerity Constraint)

Contoh
CREATE TABLE EMPLOYEE
            Fname                                   VarChar(9)                Not null,
            Minit                           Char,
            Lname                                    VarChar(15)              Not null,
            SSN                            Char(9)                      Not null,
            BDate                         Date,
            Address                     VarChar(30)
            Sex                             Char,
            Salary                         Decimal(10,2)
            SuperSSN                 Char(9),
            DNo                            Int                                Not null Default 1,
Constraint EmpPK
Primary Key (SSN),
Constraint EmpSuperFK
Foreign Key (SuperSSN) References Employee (SSN)
            On Delete set null
            On Update Cascade,
Constraint EmpDeptFK
Foreign Key (DNo) References Department (Dnumber)
            On Delete Set Default
            On Update Cascade

B.  PERINTAH DROP SCHEMA DAN DROP TABLE

Digunakan untuk menghapus schema atau sejumlah table dari basis data, keduanya boleh diikuti dengan option : Cascade atau Restrict

Syntax :
DROP SCHEMA <Schema name>
DROP TABLE <Table name>

Contoh :
DROP SCHEMA Company Cascade
Ket :  Menghapus schema basis data company dan semua tabel, domain dan elemen-elemen lain didalamnya,
Option Restrict digunakan apabila diinginkan untuk menghapus jika dan hanya jika schema tidak mempunyai elemen didalamnya

DROP TABLE Dependent Cascade

C.  PERINTAH ALTER

Digunakan untuk mengganti atau merubah definisi dari base table yang telah dibuat
Tindakan atau action yang diakibatkan oleh perintah ini dapat meliputi :
-          Adding atau dropping suatu kolom atau attribute
-          Mengganti definisi suatu attribute
-          Adding atau dropping table constraint

Contoh :
ALTER Table Company.Employee DROP Address Cascade;
Menghapus satu kolom dari suatu table, harus diikuti oleh salah satu pilihan : Cascade atau Restrict.
Dengan Cascade, maka semua constraint dan views yang mengacu pada kolom akan dihapus secara otomatis dari schema
Jika Restrict dipilih, maka perinta akan sukses bilamana tidak ada constraint atau view yang mengacu pada kolom yang akan dihapus.

ALTER Table Company.Department Alter MgrSSN
                        DROP Default;
ALTER Table Company.Department ALTER MgrSSN
                        Set Default “333445555”;
Merubah definisi satu kolom dengan cara menghapus default Clause yang ada, atau mengganti nilai dari default clause

ALTER Table Company.Employee
                        DROP Constraint EmpSuperFK Cascade;
Mengganti constraint yang telah didefinisikan dalam suatu table dengan menambah (adding) atau menghapus (dropping) constraint.
Untuk tindakan dropping suatu constraint, maka constraint tersebut harus diberi nama pada saat didefinisikan. Contoh constraint Foreign Key “EmpSuperFK” dalam table Employee.
Constraint dapat didefinisikan kembali dengan menambahkan (adding) satu constraint baru kedalam relasi
Dapat digunakan untuk menyingkat penulisan qualifier suatu attribute dalam kasus untuk menghindari ambiquity,contoh berikut merupakan penulisan yang lain untuk query yang sama dengan Q2A

SELECT E.Fname, E.Name, E.Address
FROM  employee E, Department D
Where D.Name = ‘Research’ And
            D.Dnumber = E.Dnumber

II.  UPDATE STATEMENT


Digunakan untuk melakukan modifikasi database yang meliputi :
-          Insert
-          Delete                        (berlaku 1 tabel)
-          Update

DML

C.  SELECT


Bentuk dasar dari SELECT statement disebut dengan ‘SELECT FROM WHERE Blok’ yang mempunyai bentuk umum :
Contoh :
Retrieve birthdate dan address dari employee yang bernama ‘John B. Smith’
SELECT Bdate, Address
FROM Employee
WHERE Fname = ‘John’ And Minit = ‘B’ And LnAme = ‘Smith’

Retrieve name dan address dari semua employee yang bekerja pada departemen ‘Research’ :
SELECT Fname, Lname, Address
FROM Employee, Department
WHERE Dname = ‘Research’ and Dnumber = DNo

Untuk setiap project yang berlokasi di ‘Stafford’, dapatkan daftar nomor project, nomor department pengendalinya, dan nama, alamt serta tanggal lahir dari manajer department pengendali.
SELECT Pnumber, Dnum, Lname, Address, Bdate
FROM Project, Department, Employee
WHERE Dnum = Dnumber and MgrSSN = SSN and Plocation = ‘Stafford’

A.  INSERT COMMAND
Digunakan untuk menyisipkan/menambahkan satu (single) tuple kedalam suatu relasi
INSERT Into employee
Values (‘Richard’, ‘K’, ‘Marini’, ‘653298653’, ’30-dec-52’, ’98 oak forest, katy’, ‘M’, 37000, ‘987654321’, 4)

INSERT Into Employee (Fname, Lname, SSN)
Values           (‘Richard’, ‘Marini’, ‘653298653’)
VARIATION
Menyisipkan multiple tuples kedalam suatu relasi sehubungan dengan Creating Relation dan Loading relasi yang dibuat dengan hasil suatu query dari relasi yang telah ada.

CREATE Temporary table dengan heading berupa nama, jumlah employee, dan total salaries dari setiap department :
CREATE Table Depts-Info ( Dept-Name Varchar (15),
                                                No-Of-Emps Integer,
                                                Total-Sal Integer
                                              );

INSERT Into Depts-Info (Dept-name, No-Of-Emps, Total-Sal)
                        SELECT Dname, Count(*), Sum (Salary)
                        FROM  Department, employee
                        WHERE Dnumber = DNo
                        GROUP BY Dname;
Catatan : untuk variasi ini tabel sementara yang dihasilkan tidak berubah akibat adanya perubahan-perubahan pada tabel Department atau employee
C.  UPDATE COMMAND
Digunakan untuk memodifikasi nilai-nilai attribute dari satu atau lebih tuple yang dipilih

UPDATE Project
SET Plocation = ‘Bellaire’, Dnum = 5
WHERE  Pnumber = 10

UPDATE employee
SET Salary = Salary * 1.15
WHERE DNo In (   Select Dnumber
                                From Department
                                Where Dname = ‘Research’
                             )
Setiap perintah update secara eksplisit hanya boleh menspesifikasikan satu relasi saja

B.  DELETE COMMAND

Digunakan untuk menghapus sejumlah tuple dari suatu relasi.
Tergantung dari kondisi penghapusan yang dinyatakan dalam Where Clause, maka jumlah tuple yang dihapus akan bervariasi
Tanpa Where clause, berarti menghapus semua tuple yang ada dalam tabel.

DELETE From Employee
WHERE Lname = ‘Brown’

DELETE From Employee
WHERE SSN = ‘123456789’

DELETE From Employee
WHERE Dno In ( Select Dnumber
                             From Department
                             Where Dname = ‘Research’
                           )

DELETE From employee
DCL
GRANT : untuk mengijinkan user untuk mengakses database
REVOKE GRANT : untuk membatalkan hak akses user
B.  MENDEFINISIKAN QUERY DALAM SQL

Syntax Umum :
SELECT [Distinct] <Attribute List>
FROM ( <Table name>{ <alias>} | <joined table>)
              {, <table name> {<alias>} | <jpined table>)}
[ WHERE <condition>]
[ GROUP BY <grouping attribute>
                        [HAVING <group selection condition>]]
[ OREDER BY <column name> [<order>]
            {, <column name> [<order>] } ]
<attribute list> ::= (* | (<column name> | <function>
                                    (( [Distinct] <column name> | * )))
                                    {, <column name> | <function>
                                    (( [Distinct] <column name> | * ))  } ))
<grouping attribute> := <column name> { , <column name> }
<Order> := (ASC | Desc)

sumber:
www.stafsite.gunadarma.ac.id
materi sidang comprehensi Wisnu Ajie Supardi S.Kom

www.gunadarma.ac.id







No comments:

Post a Comment