Introduction to Oracle SQL

Slides:



Advertisements
Presentasi serupa
SQL.
Advertisements

Sejarah (1) • Tahun 1974, Dr. Chamberlin dari Saan Jose Laboratorium IBM mendefinisikan sebuah bahasa untuk mengakses database yang disebut dengan SEQUEL.
MATA KULIAH : “LOGIKA DAN ALGORITMA”
KUMPULAN PERINTAH SQL PENDY.
Introduction to Access 2003 SQL
SQL (Structured Query Language)
Pertemuan 2 : Dasar-dasar SQL SBD C – Senin, Frank & Rudy
PERINTAH SQL.
Dasar-dasar SQL soesanto.
DDL(DATA DEFINITION LANGUAGE) DML (DATA MANIPULATION LANGUAGE)
DDL & Aturan Referential
Oleh : Kholid Fathoni, S.Kom., M.T.
Manajemen Basis Data menggunakan SQL Server
Strctured Query Language
Basis Data Bab 3 Structured Query Language (SQL).
Internet Programming MySQL
Pemrogramn Berorientasi Obyek MySQL
Konsep Dasar User dan Schema Database
Microsoft SQL Server DDL dan DML dasar
Data Definition Language dan Data Manipulation Language
Antonius Wahyu Sudrajat, S. Kom., M.T.I. Perintah SQL: Data Definition.
P E R T E M U A N 12 SISTEM BASIS DATA.
BASIS DATA TERAPAN Pertemuan 2.
Data Types Data Definition Language Referential Constraint SQL Query
SQL-Aggregate dengan Fungsi GROUP, HAVING dan subQuery
BAHASA QUERY TERAPAN OLEH : HARSITI, ST.
Sistem Basis Data Pertemuan 11 Presented by :
STRUCTURED QUERY LANGUAGE (SQL)
SQL Pertemuan
Antonius Wahyu Sudrajat, S. Kom., M.T.I. Perintah SQL: Data Definition.
PENGANTAR TEKNOLOGI SIA 2
Pengenalan Database MySQL
SQL Basis Data.
Pengelolaan Database Kependudukan
Pertemuan ke-sekian Structure Query Language (SQL) Lanjut
Pertemuan after UTS Structure Query Language (SQL)
PEMASARAN BERBASIS WEB
SQL (Structured Query Language)
PENGANTAR SQL MI2143 – Dasar SQL Disusun oleh:
Structure Query Language (SQL)
SQL.
Bahasa query terpan.
Konsep Teknologi Informasi B
VII. DDL Di sajikan untuk Lingkungan TASS Dosen : Tora Fahrudin., M.T
SQL (Structure Query Language)
Manajemen Basis Data menggunakan SQL Server
Structured Query Language
Data Manipulation Languange (DML) Perintah INSERT dan DELETE
Konsep Teknologi Informasi B
PEMASARAN BERBASIS WEB
Stucture Query Language
Stucture Query Language
SQL OVERVIEW.
Structure Query Language
PENGANTAR STRUCTURED QUERY LANGUAGE (SQL)
Basis Data [TK1064] I. Pengenalan Basis Data
SQL (Structured Query Language) Oleh : Cosmas Haryawan.
Biodata…… Nama : Muhammad Yunus Alamat : Getap Asal : Sakra Lotim
Aplikasi Database Dosen : Sarwo, Skom,.Mkom Url :
KUMPULAN PERINTAH SQL.
Pengenalan mySQL database
Stucture Query Language
Basis Data Bab 3 Structured Query Language (SQL).
Stucture Query Language
Obyek-Obyek Primer Basis Data Administrasi Basis Data Ajenkris Y. Kungkung, S.Kom.
DATA MANIPULATION LANGUAGE
PENDAHULUAN MySQL Oleh: Rudianto.
BAHASA BASIS DATA Data Manipulation Languange
Pertemuan ke-14 Intro : Structure Query Language [SQL]
Pengantar Teknologi SIM 2 (pertemuan 7)
Transcript presentasi:

Introduction to Oracle SQL 2003 PENS

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), fungsi, obyek tertentu Dapat diberikan alias (nama lain) pada masing-masing list FROM menunjukkan nama Tabel yang akan ditampilkan Dapat berupa tabel tunggal, join, view, inline view

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

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]]; 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 - =, <>, >, <. <=, >= Range - IN(…), BETWEEN … AND …, LIKE Boolean - AND, OR, NOT NULL - IS NULL, IS NOT NULL

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’; Membaca pegawai yang memiliki gaji >= 2000 dollar dan bekerja pada departemen 20, 30 atau 40 SELECT * FROM emp WHERE sal>=2000 AND deptno IN(20,30,40); 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 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;

Fungsi Single-Row Input fungsi dari satu baris/record, dan menghasilkan satu per baris. Input banyak 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 fungsi dari banyak baris, menghasilkan satu atau banyak baris (Gouping, Fungsi Agregat)

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

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

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

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

Contoh Group Menghitung jumlah pegawai setiap departemen dan mengurutkan hasilnya berdasar nomor departemen SELECT deptno,count(empno) jumlah FROM emp GROUP BY deptno ORDER BY deptno; Menghitung total gaji pegawai dari departemen nomor 20, 30, atau 40, tetapi hanya menampilkan yang total setiap jurusannya lebih besar dari 5000 dollar SELECT deptno,sum(sal) FROM emp WHERE deptno IN(20,30,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, kecuali untuk melakukan analisa top-n Gunakan operator yang sesuai dengan hasil dari subquery. Single-row operator dengan single-row subquery, multiple-row operator dengan multiple-row subquery

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

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

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

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

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

Contoh Operasi DML Operasi DML INSERT into dept (deptno,dname,loc) values (1,’IT’,’SURABAYA’); UPDATE dept set loc=‘JAKARTA’ WHERE deptno=1; DELETE dept WHERE deptno=1;

Kontrol Transaksi Kontrol Transaksi Implisit Operasi Kontrol Transaksi COMMIT; ROLLBACK; 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

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

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

Konstrain NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY CHECK Suatu kolom harus memiliki nilai tertentu (tidak boleh kosong) UNIQUE Suatu kolom harus tidak boleh memiliki nilai yang sama (tetapi boleh null) …, kolom tipe NOT NULL UNIQUE, … …, CONSTRAINT nama_konstrain UNIQUE (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), ... FOREIGN KEY Menyatakan suatu kolom harus sesuai dengan kolom lain dari suatu tabel …, kolom tipe REFERENCES tabel(kolom), … …, CONSTRAINT nama_konstrain FOREIGN KEY(kolom) REFERENCES tabel(kolom), ... CHECK Melakukan pengujian pada suatu kolom ..., CONSTRAINT nama_konstrain CHECK kondisi, ...

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

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

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

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

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

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