Embed
Email

SQL

Document Sample

Shared by: Kerala g
Categories
Tags
Stats
views:
1
posted:
1/10/2012
language:
pages:
16
STRUCTURE QUERY LANGUAGE





Structured Query Language (SQL) merupakan komponen bahasa relational

database system. SQL merupakan bahasa baku (ANSI/SQL), non procedural, dan

berorientasi pada himpunan. SQL dapat digunakan baik secara interaktif atau

ditempelkan pada sebuah program aplikasi.





1. Komponen-Komponen SQL

Komponen-komponen pada SQL dapat dilihat pada gambar 1.









Gambar 1. Bagan Komponen-komponen SQL









a. Data Definition Language (DDL) :







1

Digunakan untuk mendefinisikan data dengan menggunakan perintah :

create, drop, alter.



b. Data Manipulation Language (DML) :

Digunakan untuk memanipulasi data dengan menggunakan perintah :

select, insert, update, delete.

Data Manipulation Language merupakan bagian terpadu bahasa SQL.

Perintah-perintahnya dapat dibuat secara interaktif atau ditempelkan

pada sebuah program aplikasi. Pemakai hanya perlu menentukan 'APA'

yang ia inginkan, DBMS menentukan 'BAGAIMANA' cara

mendapatkannya.



c. Data Control Language (DCL) :

Digunakan untuk mengontrol hak para pemakai data dengan perintah :

grant, revoke



1.1. DDL

Perintah-perintah pada DDL dapat dijabarkan sebagai berikut:



1. CREATE TABLE



Perintah CREATE TABLE berfungsi untuk membuat tabel.



Sintaks : CREATE TABLE tbname

(col 1 data type data spec,

col 2 data type data spec,

.

.

PRIMARY KEY (col1,……))



Contoh :



CREATE TABLE MAHASISWA

(NPM CHAR(8) NOT NULL,

NAMA CHAR(45) NOT NULL,

ALAMAT CHAR(45),

TGL-LAHIR DATE NOT NULL WITH DEFAULT,

PRIMARY KEY (NPM))









Pernyataan NULL yang digunakan dapat dispesifikasikan sebagai berikut :





2

 NULL

NULL dapat diinterpretasikan sebagai nilai yang tidak diketahui atau tidak

tersedianya suatu nilai. NULL bukan berarti kosong (blank) atau 0 (Nol).



 NOT NULL

NOT NULL dimana pemakai atau program harus memberikan nilai-nilai pada

saat memasukkan record



 NOT NULL WITH DEFAULT

Nilai default disimpan pada saat record dimasukkan tanpa nilai yang ditentukan

untuk kolom ini



Nilai default-nya :

 Nol, untuk tipe field NUMERIC

 Blank, untuk tipe field CHARACTER CURRENT

 DATE, untuk tipe field DATE CURRENT

 TIME, untuk tipe field TIME



Pada saat membuat tabel, salah satu atribut tersebut di atas

dispesifikasikan pada sebuah kolom.



2. CREATE VIEW



Perintah CREATE VIEW berfungsi untuk membuat tabel view. View

merupakan bentuk alternatif penyajian data dari satu atau lebih tabel.

View dapat berisi semua atau sebagian kolom yang terdapat pada tabel

dimana kolom tersebut didefinisikan.



Tujuan membuat view :

 Meningkatkan keamanan data

 Meningkatkan kemandirian data

 Penyederhanaan bagi end user (data yang sedikit, nama-nama

kolom yang baru dan dapat dibaca dengan lebih baik)









3

Properti :

 Tidak terdapatnya data tambahan

 View mencakup subset kolom dan / atau baris

 View dapat berisikan data dari beberapa tabel dan / atau tabel-tabel

view lainnya

 View dapat berisikan perolehan data, misal : nilai rata-rata

 Manipulasi data melalui view terbatas





Sintaks : CREATE VIEW viewname (column1, column2, ……..)

AS SELECT statement FROM tbname

[WITH CHECK OPTION]



Keterangan :

- View-name : nama view yang akan dibuat.

- Column : nama atribut untuk view

- Statement : atribut yang dipilih dari tabel basis data.

- Tbname : nama tabel basis data.



Contoh :



CREATE VIEW VMHS (NPM, NAMA)

AS SELECT NPM, NAMA FROM MAHASISWA



3. CREATE INDEX



Perintah CREATE INDEX berfungsi untuk membuat tabel index.



Sintaks : CREATE [UNIQUE] INDEX indexname

ON nama_table (nama_kolom)



Contoh :



CREATE UNIQUE INDEX MHSIDX ON MAHASISWA(NPM)



Dengan indeks memungkinkan suatu tabel diakses dengan urutan tertentu

tanpa harus merubah urutan fisik dari datanya dan dapat pula diakses secara

cepat melalui indeks yang dibuat berdasar nilai field tertentu. Spesifikasi

UNIQUE akan menolak key yang sama dalam file.









DROP TABLE



Perintah DROP TABLE berfungsi untuk menghapus tabel.





4

Sintaks : DROP TABLE tbname



Contoh : DROP TABLE MAHASISWA



Dengan perintah itu obyek lain yang berhubungan dengan tabel tersebut

otomatis akan dihapus atau tidak akan berfungsi seperti :



- semua record dalam tabel akan terhapus

- index dan view pada tabel akan hilang

- deskripsi tabel akan hilang



5. DROP VIEW



Perintah DROP VIEW berfungsi untuk menghapus view.



Sintaks : DROP VIEW viewname



Contoh :



DROP VIEW VMHS



6. DROP INDEX



Perintah DROP INDEX berfungsi untuk menghapus index.



Sintaks : DROP INDEX indexname



Contoh :



DROP INDEX MHSIDX









5

7. ALTER



Perintah ALTER berfungsi untuk merubah atribut pada suatu tabel.



Sintaks : ALTER TABLE tbname

MODIFY (nama_kolom tipe_kolom)

ADD (nama_kolom tipe_kolom [[before, nama_kolom]])

DROP (nama_kolom tipe_kolom)



Contoh : merubah Tabel TABX dengan menambah Field D.



ALTER TABLE TABX ADD D CHAR(3)





1.2. DML

Perintah-perintah pada DML dapat dijabarkan sebagai berikut:



1. INSERT



Perintah INSERT berfungsi untuk menambah baris (record) baru.



Sintaks : INSERT INTO tbname

(col1, ...) VALUES (value1, ...)



Catatan :

Sintaks tersebut dapat digunakan jika jumlah kolom = jumlah nilai, tetapi jika

dalam tabel semua kolom akan diisi dapat digunakan sintaks berikut ini :



Sintaks : INSERT INTO tbname

VALUES (value1, value2, ...)



Nilai-nilai diisikan sebanyak kolom yang terdapat di tabel tersebut.





Contoh : pada tabel MAHASISWA akan ditambahkan record mahasiswa

baru.



INSERT INTO MAHASISWA

VALUES (‘00105543’,’MUHAMMAD ADI’,JL. MERUYA NO.100,

JAKARTA’,02-02-1990)



2. UPDATE



Perintah UPDATE berfungsi untuk merubah record.





6

Sintaks : UPDATE tbname

SET field = ekspresi

WHERE kondisi



Contoh :akan diubah nama mahasiswa dari MUHAMMAD ADI dengan

NPM 00105432 menjadi MUHAMMAD ALI



UPDATE MAHASISWA

SET nama =’MUHAMMAD ALI’

WHERE NPM=’00105432’



3. DELETE



Perintah DELETE berfungsi untuk menghapus record.

Sintaks : DELETE FROM tbname

WHERE kondisi



Contoh : akan dihapus data mahasiswa dengan NPM 0010500



DELETE FROM MAHASISWA

WHERE NPM=’00105004





4. SELECT



Perintah SELECT berfungsi untuk menampilkan record.



Sintaks : SELECT [DISTINCT] colname FROM tbname

[WHERE kondisi]

[GROUP BY kondisi]

[HAVING kondisi]

[ORDER BY kondisi]









7

1.3. Contoh Kasus DDL



Contoh kasus DDL antara lain :



1. Membuat Tabel



a. CREATE TABLE PEMASOK

(Kd-P Char(5) NOT NULL,

Nama-P Char(20) NOT NULL,

Status Smallint NOT NULL,

Kota Char(15) NOT NULL);



b. CREATE TABLE BARANG

(Kd-B Char(6) NOT NULL,

Nama-B Char(20) NOT NULL,

Warna Char(6) NOT NULL,

Berat Smallint NOT NULL);



c. CREATE TABLE PB

(Kd-P Char(5) NOT NULL,

Kd-B Char(6) NOT NULL,

Jumlah INTEGER NOT NULL);



d. CREATE UNIQUE INDEX Sidx ON PEMASOK(Kd-P);

CREATE UNIQUE INDEX Pidx ON BARANG(Kd-B);

CREATE INDEX Sdx ON PB(Kd-P);

CREATE INDEX Pdx ON PB(Kd-B);



2. Modifikasi Table BARANG dengan perintah :



RENAME COLUMN PEMASOK.Warna TO Warna-B

ALTER TABLE BARANG ADD (Kota CHAR(15) NOT NULL)



3. Membuat View



a. Membuat view untuk pemasok yang statusnya lebih besar dari 15



CREATE VIEW PEMASOK-YG-BAGUS

AS SELECT Kd-P, Status, Kota FROM PEMASOK

WHERE Status > 15





b. Membuat view yang berisi pemasok yang tinggal di Paris



CREATE VIEW PEMASOK-PARIS





8

AS SELECT * FROM PEMASOK

WHERE Kota = ' Paris '



c. Membuat view dengan mengganti nama_atributnya



CREATE VIEW BARANG (Kd-Brg, Nm-Brg, Brt)

AS SELECT Kd-B, Nama-B, Berat FROM BARANG

WHERE Warna = 'Red'



1. 4 Contoh Kasus DML



Contoh kasus DML antara lain :



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')



Tabel S, P dan SP berisikan dengan data-data seperti terlihat pada tabel 1, 2.

dan 3.

Tabel 1. TABEL PEMASOK



Kd-P Nama-P Status Kota

P1 Smith 20 London

P2 Jones 10 Paris

P3 Blake 30 Paris

P4 Clark 20 London

P5 Adams 30 Athens



Tabel 2. Tabel BARANG



Kd-B Nama-B Warna Berat Kota

B1 Nut Red 12 London

B2 Bolt Green 17 Paris

B3 Screw Bleu 17 Rome

B4 Screw Red 14 London

B5 Cam Blue 12 Paris

B6 Cog Red 19 London









Tabel 3. Tabel PEMASOK-BRG



Kd-P Kd-B Jumlah

P1 B1 300

P1 B2 200







9

P1 B3 400

P1 B4 200

P1 B5 100

P1 B6 100

P2 B1 300

P2 B2 400

P3 B2 200

P4 B2 200

P4 B4 300

P4 B5 400





2. Merubah record (UPDATE)



a. Merubah data (record) pada tabel BARANG yang mempunyai

nomor barang B2, warnanya dirubah menjadi Kuning dan

beratnya ditambah 5



UPDATE BARANG

SET Warna = 'Yellow', Berat = Berat + 5

WHERE Kd-B = 'B2'



b. Merubah record pada tabel PEMASOK, statusnya menjadi dua kali

status awal untuk pemasok yang bertempat tinggal di kota London



UPDATE PEMASOK

SET Status = 2 * Status

WHERE Kota = 'London'



3. Menghapus record (DELETE)



Menghapus record pada tabel PEMASOK yang nomor pemasoknya P5



DELETE FROM PEMASOK

WHERE Kd-P ='P5'









10

4. Menampilkan record (SELECT 1 tabel)



a. Menampilkan semua data pemasok



SELECT * FROM PEMASOK



atau



SELECT Kd-P, Nama-P, Status, Kota FROM PEMASOK



b.. Menampilkan semua nilai kode barang pada tabel PEMASOK-BRG



SELECT Kd-B FROM PEMASOK-BRG



c. Menampilkan kode pemasok dan status untuk pemasok yang

tinggal di Paris



SELECT Kd-P, Status FROM PEMASOK WHERE Kota ='Paris'



d. Menampilkan kode pemasok yang tinggal di Paris dengan status >

20



SELECT Kd-P FROM PEMASOK

WHERE Kota ='Paris” AND Status > 20



e. Menampilkan jumlah pengiriman B1



SELECT COUNT(*) FROM PEMASOK-BRG

WHERE Kd-B = 'B1'



f. Perintah untuk menghindari hasil data yang sama terulang kembali

(distinct)



SELECT DISTINCT Kd-B FROM PEMASOK-BRG



g. Menampilkan kode pemasok dan status bagi pemasok yang tinggal

di Paris dalam urutan status menurun



SELECT Kd-P,Status FROM PEMASOK

WHERE Kota = 'Paris'

ORDER BY Status desc



h. Menampilkan kode barang dari semua barang yang dipasok oleh

lebih dari seorang pemasok









11

SELECT Kd-B FROM PEMASOK-BRG

GROUP BY Kd-B

HAVING COUNT(*) > 1



i. Menampilkan semua barang yang namanya dimulai dengan huruf

C



SELECT * FROM BARANG

WHERE Nama-B LIKE 'C%'



5. Menampilkan record (SELECT lebih dari satu tabel / JOIN)



a. Menampilkan semua pemasok dan barang yang keduanya

bertempat tinggal pada kota yang sama



SELECT Kd-P, Nama-P,Status, PEMASOK.Kota , Kd-B, Nama-B,

Warna, Berat FROM PEMASOK, BARANG

WHERE PEMASOK.Kota = BARANG.Kota



b. Menampilkan nama pemasok yang memasok barang dengan nomor

barang B2



SELECT Nama-P FROM PEMASOK, PEMASOK-BRG

WHERE PEMASOK.Kd-P = PEMASOK-BRG.Kd-P

AND PEMASOK-BRG.Kd-B = 'B2'



c. Menampilkan nama pemasok yang memasok barang berwarna merah



SELECT Nama-P FROM PEMASOK, PEMASOK-BRG, BARANG

WHERE PEMASOK.Kd-P = PEMASOK-BRG.Kd-P

AND PEMASOK-BRG.Kd-B = BARANG.Kd-B

AND BARANG.Warna = 'RED'









6. Menampilkan record (SELECT lebih dari satu tabel / SELECT Bertingkat)



Contoh queri :



a. Menampilkan nama pemasok yang memasok barang dengan kode

barang B2



SELECT Nama-P FROM PEMASOK

WHERE Kd-P IN





12

(SELECT Kd-P FROM PEMASOK-BRG

WHERE Kd-B = 'B2')

Atau



SELECT Nama-P FROM PEMASOK

WHERE Kd-P = ANY

(SELECT Kd-P FROM PEMASOK-BRG

WHERE Kd-B = 'B2')



b. Menampilkan nama pemasok yang memasok barang berwarna merah



SELECT Nama-P FROM PEMASOK

WHERE Kd-P IN

(SELECT Kd-P FROM PEMASOK-BRG

WHERE Kd-B IN

(SELECT Kd-B FROM BARANG

WHERE Warna = 'Red'))





c. Menampilkan kode pemasok dengan nilai status lebih kecil

daripada nilai maksimum status yang ada pada tabel PEMASOK



SELECT Kd-P FROM PEMASOK

WHERE Status <

(SELECT MAX(Status) FROM PEMASOK)









13

d. Menampilkan nama pemasok yang tidak memasok barang dengan

nomor barang B2



SELECT Nama-P FROM PEMASOK

WHERE Kd-P NOT IN

(SELECT Kd-P FROM PEMASOK-BRG

WHERE Kd-B = 'B2')



e. Menampilkan semua kode pemasok yang sama lokasinya dengan

pemasok P1





SELECT Kd-P FROM PEMASOK

WHERE Kota =

(SELECT Kota FROM PEMASOK

WHERE Kd-P = 'P1')





7. Fungsi Perhitungan



Fungsi-fungsi yang dapat digunakan antara lain:

 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 tersebut jika dikenakan pada nilai yang NULL maka nilainya

akan diabaikan kecuali untuk COUNT(*)



Berikut ini contoh queri yang menggunakan fungsi-fungsi perhitungan :



a. Menghitung jumlah pemasok



SELECT COUNT(*) FROM PEMASOK

atau

SELECT COUNT (Kd-P) FROM PEMASOK







b. Menampilkan kode barang dan total jumlah pengiriman dari setiap

barang



SELECT Kd-B, SUM(Jumlah) FROM PEMASOK-BRG





14

GROUP BY Kd-B

c. Menghitung jumlah kuantitas dari B2 yang telah dipasok



SELECT SUM (Jumlah) FROM PEMASOK-BRG

WHERE Kd-B = 'B2'



d. Menampilkan jumlah pengiriman barang dengan nomor B4 dan

dipasok oleh kode pemasok P1



SELECT COUNT(*) FROM PEMASOK-BRG

WHERE Kd-B = 'B4' AND Kd-P = 'P1'



e. Menampilkan kode barang dan total kuantitas dari masing-masing

barang



SELECT Kd-B, SUM(Jumlah) FROM PEMASOK-BRG

GROUP BY Kd-B



1.5. DCL

Berikut ini adalah perintah-perintah pada DCL :



1. GRANT



Perintah GRANT berfungsi untuk memberikan izin akses kepada pemakai.



Sintaks : GRANT privileges ON tbname TO user



Contoh :



GRANT SELECT ON CLUB TO PUBLIC

GRANT SELECT, INSERT, UPDATE, DELETE ON CLUB TO USER01









2. REVOKE



Perintah REVOKE berfungsi untuk mencabut izin akses kepada pemakai.



Sintaks : REVOKE privileges ON tbname FROM user



Contoh :







15

REVOKE INSERT, UPDATE, DELETE ON CLUB FROM USER01

REVOKE ALL ON CLUB FROM PUBLIC









16



Related docs
Other docs by Kerala g
union-budget-2012-13-highlights
Views: 103  |  Downloads: 0
notification M.Tech_05-03-09
Views: 60  |  Downloads: 0
India_Customs Regulation 1
Views: 57  |  Downloads: 0
CE Notification 39-2011-12.9.2011
Views: 55  |  Downloads: 0
STATISTICS
Views: 73  |  Downloads: 0
A Hero (R.K. Narayan)
Views: 92  |  Downloads: 6
RRBPatna-Info-HN
Views: 117  |  Downloads: 0
RRB-Notice-Para
Views: 114  |  Downloads: 0
By registering with docstoc.com you agree to our
privacy policy

You are almost ready to download!

You are almost ready to download!