P. 1
Kumpulan Perintah SQL

Kumpulan Perintah SQL

|Views: 137|Likes:
Dipublikasikan oleh dawang

More info:

Published by: dawang on Nov 04, 2010
Hak Cipta:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PPT, PDF, TXT or read online from Scribd
See more
See less

01/10/2013

pdf

text

original

KUMPULAN PERINTAH SQL

PENDY

Perjanjian
‡ ORACLE menganggap semua perintah adalah HURUF BESAR
± Semua sama : SELECT, select, Select ± Termasuk Nama Object : SISWA, siswa, Siswa dianggap sama ± kecuali
‡ LITERAL menggunakan tanda µ«¶, tergantung penulisan: µIni¶, µINI¶,¶ini¶ dianggap berbeda ‡ NAMA suatu pengenal menggunakan tanda ³«´ : ³SISWA´, ³Siswa´, ³siswa´ dianggap berbeda

Pendahuluan
‡ Perintah SQL:
± Data Retrieval. Digunakan untuk mengambil/membaca Object Database
‡ SELECT

± DDL (Data Definition Language). Digunakan untuk menyatakan suatu Object Database
‡ CREATE, ALTER, DROP, RENAME, TRUNCATE

± DML (Data Manipulation Language). Digunakan untuk pengubahan Object Database
‡ INSERT, UPDATE, DELETE, MERGE

± Transaction Control. Digunakan untuk mengendalikan Transaksi
‡ COMMIT, ROLLBACK, SAVEPOINT

± DCL (Data Control Language). Digunakan untuk mengendalikan Object Database
‡ GRANT, REVOKE

Penulisan SQL SELECT Dasar ‡ Pembagian/Kemampuan perintah SELECT ± Proyeksi : Memilih Kolom ± Seleksi : Memilih Baris ± Join : Penggabungan tabel ‡ Format : ± SELECT *|{[DISTINCT] kolom|ekspresi [alias].«} FROM tabel ‡ SELECT artinya memilih kolom mana yang akan ditampilkan (proyeksi) ± Dapat berupa list kolom. suatu persamaan (operasi aritmatika). inline view . join. fungsi. obyek tertentu ± Dapat diberikan alias (nama lain) pada masing-masing list ‡ FROM menunjukkan nama Tabel yang akan ditampilkan ± Dapat berupa tabel tunggal. view.

.sal gaji.deptno FROM emp.Contoh Perintah SQL ‡ Melihat seluruh tabel yang dimiliki oleh USER ± SELECT * FROM tab. ‡ Melihat seluruh isi suatu tabel ± SELECT * FROM emp.sal*(0. ‡ Melakukan penggabungan dengan suatu literal dan kolom ± SELECT µnama : ¶||ename FROM emp. ‡ Melihat hanya sebagian kolom dari suatu tabel ± SELECT ename. ‡ Melihat struktur suatu tabel ± DESC emp.10) bonus FROM emp. ‡ Melihat sekaligus melakukan operasi pada suatu kolom dan memberikan alias pada masing-masing kolom ± SELECT ename nama. ‡ Mengambil hanya nilai-nilai yang berbeda/membatasi hasil yang muncul (semua pegawai bekerja pada departemen apa saja) ± SELECT DISTINCT deptno FROM emp.

<>.IN(«). <=. LIKE Boolean .IS NULL. >= Range . OR. ‡ WHERE menyatakan batasan apa saja yang diberikan ‡ ORDER BY menyatakan hasil akan diurutkan menurut kolom mana (bisa lebih dari satu kolom) ± ASC (atau tidak disebutkan/default) menyatakan urutan naik ± DESC menyatakan urutan turun ‡ Kondisi : ± ± ± ± Perbandingan . BETWEEN « AND «. >. IS NOT NULL .=.Memilih/Membatasi dan Mengurutkan Data ‡ Memilih baris data mana saja yang akan ditampilkan (seleksi) ‡ Format : ± SELECT *|{[DISTINCT] kolom|ekspresi [alias].«} FROM table [WHERE kondisi] [ORDER BY kolom [ASC|DESC]]. NOT NULL .AND. <.

‡ Membaca data pegawai yang memiliki huruf kedua dari nama adalah µD¶ dan bekerja pada departemen tertentu. dan urutkan berdasarkan nama dengan urutan menurun ± SELECT * FROM emp WHERE ename like µ_D%¶ AND deptno IS NOT NULL ORDER BY ename DESC.40). 30 atau 40 ± SELECT * FROM emp WHERE sal>=2000 AND deptno IN(20.Contoh Perintah SQL ‡ Membaca data semua pegawai yang bekerja pada departemen dengan nomor departemen 40 ± SELECT * FROM emp WHERE deptno=40. ‡ Membaca data lengkap pegawai dengan nama ADAMS ± SELECT * FROM emp WHERE ename=µADAMS¶. .30. ‡ Membaca data pegawai dari departemen 40 yang memiliki gaji dari 1000 sampai 2000 dollar ± SELECT * FROM emp WHERE sal BETWEEN 1000 AND 2000 AND deptno=40. ‡ Membaca pegawai yang memiliki gaji >= 2000 dollar dan bekerja pada departemen 20.

Input fungsi dari banyak baris. dan menghasilkan satu per baris. menghasilkan banyak baris yang sama ± ± ± ± ± ± Mengolah data items Dapat menerima argumen dan menghasilkan satu nilai Mengeluarkan nilai untuk setiap baris data Dapat mengubah tipe data Dapat dalam bentuk bersarang (nested) Dapat menerima argumen berupa data kolom atau suatu ekspresi ‡ Fungsi Multi-Row : Melakukan operasi pada sekelompok baris data untuk menghasilkan sebuah data. Input banyak baris.Fungsi Single-Row ‡ Input fungsi dari satu baris/record. Fungsi Agregat) . menghasilkan satu atau banyak baris (Gouping.

Contoh Fungsi ‡ Umum (nvl. ‡ Tanggal (sysdate.¶dd-mm-yyyy¶) FROM dual. mod) ± SELECT sal. add_months. ‡ Bilangan (round. decode) ± SELECT nvl(deptno. ‡ Konversi implisit. concat.round(sal/100) FROM emp. atau eksplisit (to_number. round.0) FROM emp. initcap. upper. trunc. . substr) ± SELECT lower(ename) FROM emp. nvl2. to_date.sysdate+1 besok FROM dual. trunc) ± SELECT sysdate. ‡ Karakter (lower. to_char) ± SELECT to_char(sysdate.

Menggabungkan Tabel (Join) ‡ Kegunaan : ± Digunakan untuk menampilkan dari banyak tabel ± Mengkombinasikan seluruh kemungkinan data antar banyak tabel ± Mendapatkan informasi yang tersimpan pada tabel lain (melakukan relasi antara satu tabel dengan tabel lainnya) ‡ Jenis Join ± ± ± ± Equijoin Nonequijoin outer join self join ‡ Mulai 9i. memiliki jenis join yang kompatibel dengan SQL¶99 .

‡ outer join.deptno=d.dept d WHERE e.deptno AND ename=µADAMS¶.deptno(+).ename=µADAMS¶.mgr=m.losal AND s. ‡ Equijoin.salgrade s WHERE e.dept. untuk mencari/membandingkan nilai antara ± SELECT * FROM emp e.hisal AND ename=µADAMS¶.dept d WHERE e.Contoh Join ‡ Kartesian. relasi dengan tabel yang kemungkinan nilai datanya tidak ada ± SELECT * FROM emp e. relasi dengan diri sendiri ± SELECT * FROM emp e. . ‡ self join.deptno=d. relasi antar tabel dengan nilai data yang sama tepat ± SELECT * FROM emp e.emp m WHERE e.empno AND e. untuk mendapatkan seluruh kombinasi data ± SELECT * FROM emp.sal BETWEEN s. ‡ Nonequijoin.

Menampilkan Data Menggunakan Fungsi Group ‡ Mengoperasikan sekelompok baris data menjadi bentuk group data ‡ Fungsi Group : AVG. MAX.] fungsi_group(kolom). « ‡ Format : ± SELECT [kolom. MIN. COUNT. . SUM.« FROM tabel [WHERE kondisi] [GROUP BY kolom] [HAVING kondisi_group] [ORDER BY kolom].

count(empno) jumlah FROM emp GROUP BY deptno ORDER BY deptno. 30. ‡ Menghitung total gaji pegawai dari departemen nomor 20.sum(sal) FROM emp WHERE deptno IN(20.30.Contoh Group ‡ Menghitung jumlah pegawai setiap departemen dan mengurutkan hasilnya berdasar nomor departemen ± SELECT deptno. tetapi hanya menampilkan yang total setiap jurusannya lebih besar dari 5000 dollar ± SELECT deptno. . atau 40.40) GROUP BY deptno having sum(sal)>5000 ORDER BY deptno.

Subquery ‡ Mencari sesuatu yang berasal dari hasil query lainnya ‡ Petunjuk ± Subquery diawali dengan kurung buka dan diakhiri dengan kurung tutup ± Subquery diletakkan pada sisi kanan dari suatu perbandingan ± Penggunaan order by dalam subquery tidak diperlukan. Singlerow operator dengan single-row subquery. multiple-row operator dengan multiple-row subquery . kecuali untuk melakukan analisa top-n ± Gunakan operator yang sesuai dengan hasil dari subquery.

‡ Hasil subquery boleh banyak baris. karena operator perbandingan digunakan pada subquery yang menghasilkan banyak baris ± SELECT * FROM emp WHERE sal=(SELECT sal FROM emp WHERE deptno=20). harus dicari dulu. menggunakan range ± SELECT * FROM emp WHERE sal in (SELECT sal FROM emp WHERE deptno=20) ‡ Salah. . berapa gaji Adam ? ± SELECT * FROM emp WHERE sal>(SELECT sal FROM emp WHERE ename=µADAMS¶). menggunakan perbandingan ± SELECT * FROM emp WHERE sal=(SELECT sal FROM emp WHERE ename=µADAMS¶). ‡ Hasil subquery harus satu baris.Contoh Subquery ‡ Siapa saja pegawai yang gajinya lebih besar dari gaji Adam ? Untuk itu.

Inline View ‡ Digunakan untuk mengantikan list Tabel menjadi perintah QUERY ‡ Untuk melakukan operasi yang tidak berasal dari tabel aslinya ‡ Menyederhanakan perintah yang rumit .

d. yang berasal dari suatu inline view ± SELECT * FROM (SELECT ename.depno FROM emp WHERE sal>1000) e.dname FROM (SELECT ename.deptno=d.Contoh Inline View ‡ Membaca data pegawai dengan nomor departemen>20.dname FROM dept WHERE deptno>20) d WHERE e.deptno FROM emp) WHERE depno>20 ‡ Melakukan operasi join hasi dari suatu inline view ± SELECT e.sal FROM emp WHERE delpno=20) SET sal=1000 WHERE sal=1100 .(SELECT deptno.*.deptno ‡ Melakukan manipulasi data pada suatu inline view ± UPDATE (SELECT ename.

Sedikit tentang SQL*Plus ‡ Subsitusi Variabel ± &variable. . untuk tiap kali run selalu memasukkan nilai ‡ SELECT * FROM emp WHERE sal>&gaji. untuk hanya sekali saja memasukkan nilai ‡ SELECT * FROM emp WHERE sal>&&gajih. ± Mendefinisikan nilai secara langsung ‡ define gajih=1500. ± &&variable.

Memanipulasi Data ‡ DML .Data Manipulation Language ± Menambah baris data baru ± Mengubah isi suatu baris data ± Menghapus suatu baris data ‡ Transaksi adalah kumpulan dari perintah DML yang membentuk suatu suatu kerja tertentu .

¶IT¶. ± DELETE dept WHERE deptno=1.dname.loc) values (1. .Contoh Operasi DML ‡ Operasi DML ± INSERT into dept (deptno. ± UPDATE dept set loc=µJAKARTA¶ WHERE deptno=1.¶SURABAYA¶).

± SAVE POINT ‡ Kontrol Transaksi Implisit ± Auto COMMIT ‡ Melakukan operasi DDL dan DCL ‡ Keluar dari aplikasi SQL*PLUS secara normal ± Auto ROLLBACK ‡ Keluar dari SQL*PLUS secara tidak normal ‡ Kegagalan System . ± ROLLBACK.Kontrol Transaksi ‡ Operasi Kontrol Transaksi ± COMMIT.

TRUNCATE TABLE . CONSTRAINT nama_konstrain konstrain).Membuat dan Mengatur Tabel ‡ CREATE CREATE TABLE nama ( kolom tipe konstrain. VARCHAR. kolom tipe konstrain. « ‡ Perintah Lainnya : ± ALTER TABLE. DROP TABLE. UNIQUE. DEFAULT. PRIMARY KEY. « ‡ konstrain : NOT NULL. CHAR. ‡ tipe : NUMBER. «. DATE.

Menambahkan Konstrain ‡ Kegunaan : ± ± ± ± ± ± ± ± ± Memberikan aturan pada tingkat table Membatasi Manipulasi tertentu pada Tabel Menjaga Integritas Data Menjaga Validitas Data NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY CHEK ‡ Jenis .

.. CONSTRAINT nama_konstrain UNIQUE (kolom).Konstrain ‡ ‡ NOT NULL ± Suatu kolom harus memiliki nilai tertentu (tidak boleh kosong) UNIQUE ± Suatu kolom harus tidak boleh memiliki nilai yang sama (tetapi boleh null) ± «. « ± «. CONSTRAINT nama_konstrain CHECK kondisi...... CONSTRAINT nama_konstrain FOREIGN KEY(kolom) REFERENCES tabel(kolom). « ± «.. ... . . kolom tipe NOT NULL UNIQUE. ‡ FOREIGN KEY ± Menyatakan suatu kolom harus sesuai dengan kolom lain dari suatu tabel ± «. . ... kolom tipe REFERENCES tabel(kolom). . ‡ CHECK ± Melakukan pengujian pada suatu kolom ± ... ‡ PRIMARY KEY ± ± ± ± Suatu kolom dinyatakan sebagai kunci utama dari suatu tabel Otomatis dianggap UNIQUE dan NOT NULL «.. kolom tipe NOT NULL PRIMARY KEY.. CONSTRAINT nama_konstrain PRYMARY KEY(kolom). .

nama varchar(50) not null ). dosen_wali varchar(15) references dosen(nip) ). CREATE INDEX nama_siswa ON siswa(nama).Contoh Membuat Tabel CREATE TABLE dosen( nip varchar(15) not null primary key. . CREATE TABLE siswa( nrp varchar(15) not null primary key. nama varchar(50) not null.

«)] AS subquery [WITH CHECK OPTION [CONSTRAINT konstrain]] [WITH READ ONLY [CONSTRAINT konstrain]].deptno.ename. view yang langsung dituliskan pada baris perintah SQL tanpa perlu membuat object view ± SELECT * FROM (SELECT empno. dept d WHERE e. .deptno=d. ‡ Inline VIEW.Membuat VIEW ‡ Kegunaan: ± Membatasi Akses Data ± Menyederhanakan query ± Menghasilkan bentuk lain dari data yang sama ‡ Format : ± CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW nama [(kolom_alias.deptno=d.dept d WHERE e.deptno. ‡ Contoh : ± CREATE OR replace view pegawai as SELECT * FROM emp e.depno.sal FROM emp) e.

‡ Synonym ± CREATE synonym nama for nama_object .Obyek Database Lainnya ‡ Table ‡ View ‡ Sequence ± CREATE sequence nomor. ± SELECT nomor.nextval FROM dual. ‡ Index ± CREATE index nama on tabel(kolom).

‡ GRANT connect TO dono. execute. « ‡ Contoh : GRANT CREATE table to dono.Mengatur Akses User ‡ Membuat User ± CREATE USER nama IDENTIFIED BY password. Mengatur Hak USER pada Object dari USER Lain ‡ alter. « ‡ Contoh : GRANT SELECT on emp to dono. ± Object Privileges. Mengatur Hak dari USER ‡ CREATE. ‡ Kumpulan Privileges dan Role disebut Role ± Contoh. ‡ Hak/Wewenang disebut Privileges ± System Privileges. SELECT. DROP. . delete. ‡ GRANT resource TO dono.

tidak semua (yang kembar dibuang) ‡ UNION ALL .semua .Menggunakan Operator SET UNION ‡ Digunakan untuk menggabungkan hasil dari lebih dari satu query ‡ Hasil dari setiap query harus memiliki kolom yang sama ‡ UNION .

30) order by deptno ± SELECT * FROM emp WHERE depno=20 union all SELECT * FROM emp WHERE deptno=30. Hasilnya sama dengan perintah : select * from emp where deptno in(20. .Contoh ‡ Menggabungkan semua hasil dari pegawai yang bekerja pada departemen 20 dan departemen 30.

You're Reading a Free Preview

Mengunduh
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->