Monday, January 3, 2011

Structure Query Language

I. Data Defenition Language ( DDL ) / Pembentukan database

Membuat tabel (Creating tables)
Syntax
CREATE TABLE (
()
[UNIQUE] [NOT NUL] [PRIMARY KEY] [DEFAULT]
[referential_constraint_defenition>] [CHECK],
()
[UNIQUE] [NOT NULL] [PRIMARY KEY] [DEFAULT]
[referential_constraint_defenition>] [CHECK],
. . .
);

Keterangan:
Unique; Pada kolom tersebut tidak boleh ada data yang sama.
Not Null; tidak boleh data pada kolom tersebut bernilai null
Unique dan Not Null; kolom tersebut dapat dijadikan primary key.
Default; nilai default yang secara otomatis akan mengisi kolom dengan data default tersebut
setiap operasi insert dilakukan.
Referential_Constraint_Definition; Bila kolom tersebut merupakan foreign key terhadap tabel
lain. Dengan syntax
FOREIGN KEY REFERENCES

Contoh :
CREATE TABLE Pelajar (
No_Induk CHAR(8),
Nama CHAR(20),
Tgl_Lahir DATE,
Kelas CHAR(2)
);
CREATE TABLE Mata_Pelajaran(
Kode CHAR(4),
Nama CHAR(20),
Kelas CHAR(2)
);
CREATE TABLE Nilai(
No_Induk CHAR(8),
Kode CHAR(4),
Nl_Angka Number
);


Membuat index (Creating indices)
Syntax
. . .
[ () REFERENCES (), . . . ]
CREATE INDEX ON ();
Contoh :
DROP TABLE Pelajar;
CREATE TABLE Pelajar (
No_Induk CHAR(8) PRIMARY KEY,
Nama CHAR(20),
Tgl_Lahir DATE,
Kelas CHAR(2)
);

CREATE INDEX nm ON Pelajar(Nama);
DROP TABLE Mata_Pelajaran;
CREATE TABLE Mata_Pelajaran(
Kode CHAR(4) PRIMARY KEY,
Nama CHAR(20),
Kelas CHAR(2)
);

CREATE TABLE Nilai(
No_Induk CHAR(8) REFERENCES Pelajar(No_Induk),
Kode CHAR(4) REFERENCES Mata_Pelajaran(Kode),
Nilai Number
);

Mengubah tabel (Altering tables)
Syntax
ALTER TABLE
[ ADD ( (), . . . ); ]
[ MODIFY ((), . . .); ]
Keterangan
Add; Penambahan kolom baru.
Modify; Mengubah kolom yang sudah ada sebelumnya.
Contoh :
ALTER TABLE Pelajar
ADD (Jenis_Kelamin CHAR(10));

Menghapus tabel (Dropping tables)
Syntax
DROP TABLE
DROP INDEX
Contoh :
DROP TABLE Pelajar;
DROP INDEX nm;

II. Data Manipulation Language ( DML ) / Manipulasi Data

Penyisipan data (Inserting)
Syntax
INSERT INTO [()]
VALUES
(,, . . . );

Contoh :
DROP TABLE Pelajar CASCADE CONSTRAINTS;
CREATE TABLE Pelajar (
No_Induk CHAR(8) PRIMARY KEY,
Nama CHAR(20),
Tgl_Lahir DATE,
Kelas CHAR(2)
);
INSERT INTO Pelajar
VALUES (‘00311217’,’Wempi Satria’,’02-JAN-1982’,’1’,’Laki-laki’);
INSERT INTO Pelajar
VALUES (‘00311211’,’Wempi,’03-MAR -1982’,’1’,’Laki-laki’);
INSERT INTO Pelajar
VALUES (‘00311210’,’Satria’,’12-DEC -1982’,’1’,’Perempuan’);

Mengubah data (Updating)
Syntax
UPDATE
SET ,
,
. . . ,
[WHERE ];

Contoh :
UPDATE Pelajar
SET No_Induk = ‘00311216’ ,Nama = ‘Wati’
WHERE No_Induk =’00311210’ and Nama = ‘Satria’;

Menghapus data (Deletion)
Syntax
DELETE FROM
WHERE ;
Contoh :
DELETE FROM Pelajar
WHERE No_Induk = ‘00311211’;

Seleksi data (Selection)
Syntax
SELECT [*] [, , . . ., ]
[, , . . . , ]
FROM
WHERE
[AND ]
[AND MONTH_BETWEEN ();
Contoh :
SELECT * FROM Pelajar;
SELECT a.No_Induk, a.Nama, b.Kode, b.Nama, c.Nl_Angka
FROM Pelajar a, Mata_Pelajaran b, Nilai c;
WHERE a.No_Induk=c.No_Induk and b.Kode=c.kode;

Membuat tabel maya (Creating views)
Syntax
CREATE VIEW
AS SELECT
FROM
WHERE ;

III. Data Control Language ( DCL ) / Kontrol Data

Konfirmasi menyimpan data di memory ke database (Commit)
Syntax
COMMIT [WORK];
Contoh :
INSERT INTO Pelajar
VALUES (‘00311210’,’Satria’,’15-DEC -1982’,’1’,’Perempuan’);
COMMIT;

Mengembalikan status transaksi sebelum penyimpanan (Rollback)
Syntax
ROLLBACK [WORK];

Pemberian hak dari satu user ke user lain (Grant)
Syntax
GRANT
ON TO
[WITH GRAN OPTION];

Penghapusan hak yang diberikan (Revoke)
Syntax
REVOKE
FROM ;

Spesifikasi akses
All Privileges; Semua hak diberikan.
Select; Untuk seleksi
Update; Untuk mengubah data
Insert; Untuk menyisipkan data
Delete; Untuk menghapus data

IV. EKSPRESI

FROM
Untuk mendefenisikan tabel yang menjadi sumber data dari suatu perintah seleksi
Contoh : SELECT * FROM Pelajar

WHERE
Untuk mendefenisikan kondisi pengambilan data dari suatu perintah seleksi
Contoh : SELECT * FROM Pelajar
WHERE No_Induk = ‘00311217’;

GROUP BY
Untuk Mengelompokkan data berdasarkan ekspresi group
Syntax : SELECT
FROM
WHERE
GROUP BY ;
Contoh : SELECT a.No_Induk, b.Nama, c.Nl_Angka
FROM Pelajar.a, Nilai b
WHERE a.No_Induk=c.No_Induk and b.kode=c.kode
GROUP BY a.No_Induk, b.Nama, c.Nl_Angka;

ORDER BY
Untuk mengurutkan data hasil seleksi
Syntax : SELECT
FROM
WHERE
ORDER BY [DESC];
Contoh : SELECT * FROM Pelajar
ORDER BY No_Induk;

HAVING
Untuk mendefenisikan batasan seleksi berdasarkan GROUP BY
Syntax : SELECT
FROM
WHERE
GROUP BY
HAVING ;
Contoh : SELECT a.No_Induk, b.Nama, c.Nl_Angka
FROM Pelajar.a, Nilai b
WHERE a.No_Induk=c.No_Induk and b.kode=c.kode
GROUP BY a.No_Induk, b.Nama, c.Nl_Angka
HAVING Nilai>80;

V. PREDIKAT

COMPARISON
Pembanding dua nilai dengan syarat type data yang dibandingkan harus sama
Sama dengan                                        =
Tidak sama dengan                               <>
Lebih kecil                                            <
Lebih besar                                          >
Lebih kecil dan sama dengan                 >=
Lebih besar dan sama dengan   <=

BETWEN
Pembanding untuk mengecek apakah suatu nilai berada dalam range tertentu atau tidak
Syntax : ... BETWEEN ... AND ...
... NOT BETWEEN ... AND ...
Contoh : Menampilkan data nilai pada range 80 dan 100
SELECT * FROM Nilai
WHERE Nl_Angka BETWEEN 80 AND 100;

IN
Untuk melakukan pengecekan apakah suatu nilai terdapat dalam suatu himpunan
Syntax : IN ( ... )
IN SELECT ...
Contoh : Select * FROM Pelajar a
WHERE a.No_Induk IN (SELECT b.No_Induk FROM Nilai b);

LIKE / NOT LIKE
Untuk membandingkan data dengan pola / struktur tertentu, untuk satu karakter dipakai ( _ )
dan string ( % )
Syntax : ... LIKE
... NOT LIKE
Contoh : SELECT * FROM Pelajar
WHERE Nama LIKE ‘We%’;

IS NULL / IS NOT NULL
Untuk membandingkan suatu nilai dengan NULL
Syntax : ... IS NULL
... IS NOT NULL
Contoh : SELECT * FROM Pelajar
WHERE Kelas IS NULL

EXIST
Untuk pengecekan apakah suatu query memiliki hasil atau tidak
Syntax : ... WHERE EXIST (SELECT ... )
Contoh : SELECT * FROM Pelajar a
WHERE EXIST (
SELECT b.No_Induk FROM Nilai b
WHERE a.No_Induk=b.No_Induk);

0 comments:

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites More