BAB I
PENDAHULUAN
1.1 Latar
Belakang
Pada dasarnya database adalah merupakan suatu
kebutuhan yang penting dalam kehidupan baik di lingkungan pendidikan, di bidang
bisnis, ataupun di dalam pemerintahan, maka dari situlah kita mengambil
pembahasan tentang database dengan
spesifikasi pembahasan mengenai oracle
dalam praktikum mata kuliah ” Basisdata Lanjut”
selama 8 pertemuan tersebut.
Dari praktikum ini dijelaskan tentang
spesifikasi oracle beserta dengan
bagian dan fungsi-fungsinya. Oleh karena itulah, kita menyusun ”Laporan Resmi”
sebagai bahan untuk memperoleh sumber yang lebih banyak lagi guna memberikan
sedikit tambahan informasi mengenai oracle.
1.2 Tujuan Praktikum
Tujuan dari praktikum mata kuliah "Basisdata Lanjut"
dengan spesifikasi pembahasan pada oracle ini adalah sebagai berikut :
1. Memahami pengertian, kegunaan dari oracle.
2. Memberikan Penjabaran tentang oracle.
3. Memahami tentang kegunaan oracle.
4. Memahami Penjabaran tentang fungsi-fungsi oracle.
5. Memberikan Penjabaran tentang bagian-bagian oracle.
1.3 Manfaat Praktikum
Manfaat yang dapat diperoleh dari
praktikum tersebut adalah dapat bertambahnya pengetahuan tentang oracle, serta dapat memberikan wawasan
yang lebih luas dari praktikum tersebut.
BAB II
TINJAUAN
PUSTAKA
2. 1 SQL
(Structured Query Language)
Structure Query Language (SQL) merupakan komponen bahasa
relational database system. SQL merupakan bahasa baku (ANSI/SQL), non
procedural, dan berorientasi himpunan (set-oriented language). SQL dapat
digunakan baik secara interaktif atau ditempelkan (embedded) pada sebuah
program aplikasi.
1. Komponen-Komponen SQL
a. Data Definition Language (DDL) :
Digunakan untuk mendefinisikan data dengan menggunakan perintah :
create, drop, alter.
Berikut contoh penulisan query yang berhubungan dengan perintah di
atas :
1.
Membuat
Tabel ( create )
Sintaks : CREATE TABLE tbname
(col 1 data type data spec,
col 2 data type data spec,
.
.
PRIMARY KEY (col1,……))
Contoh : CREATE TABLE PERSONEL
(REGNO CHAR(10) NOT NULL,
NAME CHAR(45) NOT NULL,
ADDRESS CHAR(45),
BIRTH DATE NOT NULL WITH DEFAULT,
PRIMARY KEY (REGNO))
NULL
Spesifikasi NULL, NOT NULL, NOT NULL WITH DEFAULT
NULL :
Dapat diinterpretasikan sebagai nilai
yang tidak diketahui atau tidak tersedianya suatu nilai. Null bukan berarti
kosong (blank) atau 0 (Nol) NOT NULL :
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.
Menghapus
Tabel ( drop )
Sintaks : DROP TABLE tbname
Contoh
: DROP TABLE PERSONEL
3.
Modifikasi
Tabel ( alter )
Fungsi
: 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)
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.
1. Menambahkan baris ( Insert )
Sintaks
: INSERT
INTO tbname (col1, ...) VALUES (value1, ...)
2. Merubah baris ( Update )
Sintaks : UPDATE tbname SET field = ekspresi WHERE kondisi
3. Menghapus baris (delete)
Sintaks : DELETE FROM tbname
WHERE kondisi
4. Menampilkan baris (select )
Sintaks : SELECT [DISTINCT]
colname FROM tbname [WHERE kondisi] [GROUP BY kondisi] [HAVING kondisi] [ORDER
BY kondisi]
c. Data Control Language
(DCL) :
Digunakan untuk mengontrol hak para pemakai data dengan perintah :
grant, revoke.
1. GRANT
Fungsi : digunakan untuk memberikan izin akses kepada user
Sintaks : GRANT privileges ON tbname TO user
Contoh : GRANT SELECT ON CLUB TO PUBLIC
GRANT SELECT, INSERT,
UPDATE, DELETE ON CLUB TO USER 1
2. REVOKE
Fungsi : digunakan untuk
mencabut izin akses kepada user
Sintaks : REVOKE privileges ON tbname FROM user
Contoh : REVOKE
INSERT, UPDATE, DELETE ON CLUB FRO USER01 REVOKE ALL ON CLUB FROM PUBLIC
2. 2 Oracle
Oracle pertama
kali dibuat sekitar tahun 1984, sejak saat itu program tersebut terus menerus
mengalami penyempurnaan dan peningkatan, sampai saat ini sudah mencapai pada 10.0
Oracle memang tersedia dalam
berbagai versi, namun dalam pembuatan tugas akhir yang penulis buat dengan
menggunakan Oracle 9.0 pada jaringan Windows.
Program Oracle 9.0 ini
digunakan sebagai Data Base Management System
(DBMS ) karena memiliki
kemamampuan diantaranya yaitu :
v Memiliki kemampuan untuk menyimpan data secara baik, dan
ditunjang dengan sistem backup yang baik.
v Program ini juga menyediakan fasilitas yang mengatur
kepentingan pemakainya / user yaitu, hak akses ( privelege ) yang dikelompokkan
menjadi 2 (Dua) kategori yaitu :
·
Hak Previlege System / hak untuk melakukan tindakan pada
obyek tertentu.
·
Hak Previlege Object / hak untuk melakukan tindakan pada
object skema tertentu
v Kemampuan untuk melakukan pemulihan DataBase dari
kerusakan atau keliruan yang dilakukan oleh user dengan pembuatan Full Back Up
Database.
Data yang dibuat dengan
menggunakan program oracle, dapat diakses dengan berbagai macam software lain
dan mempunyai perintah – perintah yang lengkap. Data dapat dibuat dengan banyak
kolom / sesuai yang dibutuhkan dan dapat diproses dengan banyak perintah.
Data Oracle juga dapat dibuat
tabel view atau tabel turunannya dan dari Tabel view tersebut dapat dibuat
program ( report ).
Berikut ini perintah – perintah
SQL yang digunakan dalam program oracle serta fungsinya yaitu :
¨
SELECT
: Digunakan untuk mengambil data yang diproses.
¨
UPDATE
: Digunkan untuk mengubah isi file.
¨
DELETE
: Digunakan untuk menghapus garis / isi tabel.
¨
CREATE VIEW :
Digunakan untuk membuat tabel view.
¨
DROP
: Digunakan untuk menghapus tabel.
¨
ALTER
: Digunakan untuk mengubah struktur tabel.
¨
TRUNCATE :
Digunakan untuk menghapus semua baris pada tabel
Untuk memahami struktur tabel didalam
database, maka kita harus mengetahui, bagaimana cara membuat tabel dan tipe
data yang ada di dalam Oracle.
a.
Membuat Tabel
Tabel adalah sekumpulan data yang
mempunyai kolom dan baris. Perintah yang digunakan untuk membuat tabel adalah
CREATE TABLE.
Beberapa
hal yang perlu diketahui tentang aturan di dalam struktur tabel yaitu:
Primary Key :
Membuat kunci utama yang nilainya
bersifat
eksklusif.
Foreign
Key : Menghubungkan
antara tabel dengan ketentuan
tabel
tersebut harus memiliki Primary Key.
Unique : Digunakan
untuk membatasi kolom yang sifatnya unik.
Check : Digunakan
untuk membatasi nilai kolom
Not Null : Kolom
tidak bisa menerima nilai null.
b.
Type Data Oracle
Tipe data adalah sejenis istilah yang
terdapat pada suatu data yang terdapat didalam tabel, diantaranya :
Number : Tipe data yang berisi
angka nol (0), negative, positif,
bilangan bulat dan bilangan
pecahan.
Varchar : Tipe data yang
didefinisikan untuk karakter dengan
panjang
berubah-ubah dengan panjang maksimum 4000 karakter.
Char : Tipe data yang
didefinisikan untuk karakter dengan
Panjang maksimum 2000 karakter.
Many : Tipe data yang
didefinisikan untuk nilai nominal uang.
Date : Tipe data tanggal
meliputi tanggal, bulan, dan tahun.
BAB
III
PEMBUATAN
TABEL, PENDEFINISIAN CONSTRAINT,
EXPORT DAN IMPORT
Pada bab ini kami mencoba untuk membuat sebuah
tabel, pendefinisian constraint, export dan import. Dimana tabel adalah sekumpulan
data yang telah dibuat dengan sedemikian mungkin dan digunakan pada sebuah data
base dalam pembuatan sebuah program apilkasi.
3.1 Pembuatan Tabel
3.1.1
langkah-langkah menjalankan sqlplus
1. Klik tombol start
|
||||||
2. Ketik Run à tulis cmd à OK
|
|||||
3. Akan muncul program command prompt
Tulis sqlplus terus di enter
|
4. Tulis Username dan password yang sudah ditentukan
|
3.1.2 Menampilkan tabel yang dimiliki oleh user
SQL : SELECT
* FROM user_tables;
Penjabaran : Ambil Semua Data dari Tabel User_Tables
Hasil Percobaan :
|
3.1.3 Menampilkan tipe object secara distinct yang dimiliki oleh user scott
SQL : SELECT DISTINCT object_type From user_objects;
Penjabaran : Ambil Struktur Type Objek Dari User_Object
Hasil Percobaan
:
|
3.1.4 Menampilkan
table, view, synonyms dan sequence yang
dimiliki oleh user scott
SQL : Select
* From user_catalog;
Penjabaran : Ambil Semua Data dari user catalog
Hasil Percobaan :
|
3.1.5 Membuat tabel dept30 pada user scott
SQL : Create
table dept30(deptno NUMBER(2),dname VARCHAR2(14), loc VARCHAR2(13));
Penjabaran : Buat Tabel
dept30 yang Berisi Kolom, deptno
NUMBER(2), dname VARCHAR2(14), dan loc
VARCHAR2 (13).
Hasil Percobaan :
|
3.1.6 Menambahkan kolom
SQL : ALTER
TABLE dept30 ADD ( job VARCHAR2 )9));
Penjabaran : Ubah Tabel dept30 dengan Menambahkan Kolom
Job VARCHAR 2(9).
Hasil
Percobaan :
|
3.1.7 Memodifikasi
tipe data kolom
SQL : ALTER
TABEL detp30 MODIFY (dname VARCHAR2(16));
Penjabaran : Ubah Tabel dept30
dengan Merubah Jumlah Karakter pada Kolom Job VARCHAR 2(16).
Hasil Percobaan :
|
3.1.9 Menghapus tabel
SQL : DROP
TABLE dept30;
Penjabaran : Hapus TABEL dept30
Hasil Percobaaan :
|
3.1.10 Merubah nama tabel
SQL : RENAME
dept TO departement;
Penjabaran : Ubah Nama Tabel DEPT Menjadi DEPARTEMENT
Hasil Percoban:
|
3.1.11 Menambahkan sebuah
komentar pada sebuah tabel
SQL : COMMENT ON TABLE EMP IS 'Informasi Pegawai';
Penjabaran : Tambahkan komentar pada Table EMP
IS adalah ‘Informasi
Pegawai’
Hasil Percobaan :
|
3.2 Pendefinisian
Constraint
3.2.1
Not null constraint
SQL : CREATE TABLE employee (empno
NUMBER(4), ename VARCHAR2(10) NOT NULL, job
VARCHAR2(9), deptno NUMBER(7,2) NOT NULL);
Penjabaran : Buat Tabel Employee yang Berisi Kolom empno
NUMBER(4), ename VARCHAR2(10), job VARCHAR2(9) dan deptno NUMBER(7,2) NOT NULL.
Hasil
Percoban :
|
3.2.2 Unique
constraint
SQL : CREATE
TABLE department(deptno NUMBER(2), dname VARCHAR2(14),loc VARCHAR2(13), Constraint dept_name_uk
UNIQUE(dname));
Penjabaran : Buat
Tabel department yang Berisi Dari Kolom
deptno NUMBER(2), dname VARCHAR2(14), loc VARCHAR2(13), dengan Constraint
UNIQUE
Hasil Percobaan :
|
3.2.3 Primary
key constraint
SQL : CREATE
TABLE department(deptno NUMBER(2),dname VARCHAR2(14),loc VARCHAR2(13),Constraint dept_name_uk UNIQUE(dname),Constraint
dept_deptno_pk PRIMARY KEY(deptno));
Penjabaran : Buat Tabel department Yang
Terdiri Dari Kolom deptno, dname dan job dengan Kolom deptno Yang Menjadi
PRIMERY KEY.
Hasil Percobaan :
|
3.2.4 Foreign
key constraint
SQL : CREATE
TABLE employee (empno NUMBER(4),ename
VARCHAR2(10) NOT NULL, job VARCHAR2(9),deptno
NUMBER(7,2) NOT NULL,CONSTRAINT emp_deptno_fk FOREIGN KEY(deptno) REFERENCES
department(deptno));
Penjabaran : Buat table employee Yang
Terdiri Dari Kolom empno, ename, job dan deptno
dengan constraint FOREIGN KEY
Hasil Percoban :
|
3.2.5 Check
constraint
SQL : ALTER
TABLE employee ADD CONSTRAINT emp_deptno_ck CHECK (deptno BETWEEN 10 AND 99)
Penjabaran : Tambahkan Constraint
CHECK pada table employee dengan Kondisi
pada kolom deptno
yang nilainya antara 10 dan 99.
Hasil Percobaan :
|
3.2.6 Menambahkan suatu constraint
3.2.6.1 Menambahkan kolom baru
SQL : ALTER TABLE employee ADD ( mgr NUMBER(2));
Penjabaran : Tambahkan Kolom mgr Yang Type
Datanya NUMBER (2) pada tabel employee
Hasil Percobaan :
|
3.2.6.2 Menambahkan constraint pk
SQL : ALTER TABLE employee ADD
CONSTRAINT empno_pk PRIMERY KEY(empno);
Penjabaran : Tambahkan Constraint PK
pada Kolom empno Yang Berada di Tabel employee
Hasil Penjabaran :
|
3.2.6.3
Menambahkan constraint fk
SQL : ALTER TABLE employee ADD
CONSTRAINT emp_mgr_fk FOREIGN KEY (mgr) REFERENCES employee(empno);
Penjabaran
: Tambahkan
constraint FK pada kolom mgr
Hasil
Percobaan :
|
3.2.7 Menghapus
constraint
SQL : ALTER TABLE employee DROP CONSTRAINT emp_mgr_fk;
Penjabaran : Hapus Constraint
manager dari Table employee
Hasil Percobaan :
|
3.2.8 Menghapus
primary key
SQL : ALTER TABLE dept DROP PRIMERY KEY CASCADE;
Penjabaran : Hapus
PRIMARY KEY pada kolom deptno yang ada pada table dept.
Hasil Percobaan :
|
3.2.9 Menonaktifkan
constraint
SQL : ALTER TABLE employee DISABLE CONSTRAINT empno_pk CASCADE;
Penjabaran : Nonaktifkan constraint
empno_pk yang
telah dibuat padaTabel employee
Hasil Percobaan :
|
3.2.10 Mengaktifkan
constraint
SQL : ALTER TABLE employee ENABLE CONSTRAINT empno_pk;
Penjabaran : Aktifkan
constraint empno_pk yang
telah dinonaktifkan pada percobaan sebelumnya
Hasil Percobaan :
|
3.2.11 Menonaktifkan (disabling)
constraint
SQL : ALTER TABLE employee disable constraint empno_pk CASCADE
Penjabaran : Tampilkan
nama constraint, tipe constraint dan kondisi pencarian pada constraint.
Hasil Percoban
:
|
3.2.12
Menampilkan constraint
SQL : COLUMN
SEARCH_CONDITION FORMAT A20
SQL : SELECT
constraint_name, constraint_type, search_condition FROM user_constraints Where
tabel_name=’EMPLOYEE’;
Penjalasan : Kolom pencarian kondisi dengan ukuran
A20. Ambil dataconstraint_name,constraint_type,search_condition dari tabel
user_constraint dimana nama tabel=employee.
Hasil percobaan
:
Gambar 3.42. Menampilkan constraint pada tabel employee
|
3.3 Export dan Import
3.3.1
Export
Berikut
langkah-langkah mengeksport :
1.
Seperti percobaan-percobaan sebelumnya, yaitu membuka START-RUN-CMD
2.
Ketikkan Perintah “Exp username/password@tnsname(nama koneksi yang
menghubungkan Client dengan server).
3.
Muncul perintah “Enter array fetch buffer size”,maka ketikkan “4096”
kemudian enter.
4.
Kemudian isikan nama file penampung data hasil export. Contoh :
c:\1412070104.dmp kemudian tekan enter.
5.
Lalu muncul pertanyaan,”2.U<sers>or 3.T<tables>”, yang
artinya apakah kita ingin mengeksport data user ataukah tabel,ketikkan T,kemudian
tekan enter.
6.
Kemudian muncul pertanyaan “Export Table Data?”, yang berarti sekaligus
mengeksport data dari tabel yang dipilih,ketikkan Y,kemudian enter.
7.
Lalu muncul pertanyaan “Compress Extents?”, Maka ketikkan Y dan tekan
enter.
8.
Selanjutnya kita harus mengetikkan satu persatu tabel yang akan kita
export.
9.
Untuk mengakhiri proses export,kita tidak perlu mengetikkan apapun. Hanya
tekan ENTER saja.
10.
Bila proses export tidak ada pesan error,maka proses export telah sukses
dilaksanakan. Periksa apakah di computer kita sudah terdapat file hasil export
tadi.
|
Tampilan pada toolbar :
Gambar 3.44. Melihat file hasil export
|
3.3.2 Import
Langkah-langkah
mengimport :
1.
Seperti percobaan-percobaan sebelumnya, yaitu membuka START-RUN-CMD
2.
Ketikkan Perintah “Imp username/password@tnsname(nama koneksi yang
menghubungkan Client dengan server).
3.
Muncul pertanyaan lokasi file import “Import file?” maka ketikkan lokasi
file dmp, missal : c:\1412070104.dmp.
4.
Muncul “Enter insert buffer size *minimum is 8192)?” kita boleh mengisikan buffer minimum, namun
alangkah baiknya kita mengisikan angka default yang dianjurkan yaitu “30720”,
kemudian tekan emter.
5.
Muncul “List contents of import file only?” maka ketikka “t” kemudian
enter.
6.
Muncul “Ignore create error due to object existence?”, ketikkan “t”
kemudian enter.
7.
Muncul “Import Grants?”, ketikkan “Y” lalu enter.
8.
Muncul “Import table data?”, maka ketikkan “Y” lalu enter.
9.
Lalu muncul “Import entire export file?” maka ketikkan “Y” lalu enter.
10.
Proses import data telah selesai, apabila tidak ada pesan error maka
proses import data dari file dmp ke database oracle telah berhasil dilakukan.
Hasil percobaan :
|
BAB IV
SEQUENCE, INDEX DAN
SYNONYM
Sequence
merupakan objek database yang digunakan untuk membuat dan
meng-increment-kan sebuah counter agar dapat dimanfaatkan untuk
primary key dalam sebuah tabel.
Index
adalah objek database yang mempercepat pemanggilan sebuah data. Synonym dibuat dengan tujuan menyederhanakan akses ke object,
dengan cara merujuk ke table yang dimiliki oleh user lain dan memperpendek nama object yang panjang.
4.1 Sequence
4.1.1 Membuat sequence dept30_deptno
SQL : CREATE SEQUENCE dept30_deptno
INCREMENT BY 1 START WITH 91 MAXVALUE 100 NOCACHE NOCYCLE;
Peenjabaran : Membuat
sequence dep30t_deptno yang akan digunakan sebagai
Hasil Percobaan :
|
4.1.2
Memeriksa
keberadaan sequence
SQL : Select Sequence_name, min_value,
increment_by, last_number From user_sequences;
Penjabaran : Menampilkan
informasi tentang keberadaan Sequence
Hasil Percobaan
:
|
||||
4.1.3
Nextval,
currval dan penggunaan sequence
4.1.3.1 Menambahkan
baris pada sequence dep30_deptno
SQL : INSERT INTO dept30(deptno, dname,
loc) VALUES (dept30_deptno, NEXTVAL,’MARKETING’,’SAN DIEGO’);
Penjabaran : Menggunakan
sequence dept30_deptno untuk mengisi baris baru untuk departement ‘Marketing’
yang berlaku di ‘SAN DIEGO’
Hasil
Percobaan :
|
4.1.3.2 Melihat nilai dari sequence dept_deptno
SQL : SELECT dept_deptno.CURVAL FROM
DUAL;
Penjabaran :
Hasil
Percobaan :
|
4.1.4. Modifikasi dan Pengahapusan sequence dept_deptno
4.1.4.1
Modifikasi sequence dept_deptno
SQL : ALTER SEQUENCE dept30_deptno
INCREMENT BY 1 MAXVALUE 999999 NOCHACE NOCYCLE;
Penjabaran : Memodifikasi
sequence dept30_deptno
Hasil Percobaan
:
|
4.1.4.2
Menghapus
sequence dept_deptno
SQL : DROP SEQUENCE dept30_deptno
Penjabaran
: Menghapus
Sequence dept30_deptno
Hasil
Percoban :
|
4.2
Index
4.2.1
Membuat index pada kolom ename yang ada pada table EMP.
SQL : Create INDEX emp_ename_idx ON emp(ename);
Penjabaran
: Membuat index pada kolom ename pada tabel EMP
Hasil
Percoban :
|
4.2.2
Memeriksaan
keberadaan Index
SQL : column column_name format a15
SQL : SELECT
ic.index_name.ic.column_name, ic.column_position col_pos, ix.uniqueness from
user_indexs ix, user_ind_columns ic WHERE ic.indexes
Penjabaran : Memeriksa
keberadaan index dari data dictonary
Hasil Percobaan
:
|
4.2.3
Menghapus index emp_ename_idx
SQL : DROP INDEX emp_ename_idx;
Penjabaran : Menghapus
index emp_ename_idx pada tabel EMP
Hasil Percobaan
:
|
4.3
Synonim
4.3.1 Membuat synonim
SQL : CREATE SYNONIM d_sum FOR dept30_sum_vu;
Penjabaran : Membuat
synonym harus menggunakan user scott AS SYSDBA, karena hanya user tersebut yang
bisa membuat dan menghapus synonym.
Hasil
Percobaan :
|
4.3.2.
Menghapus synonim
SQL : DROP SYNONYM d_sum
Penjabaran : Menghapus
synonym d_sum
Hasil
Percobaan :
BAB V
VIEW
View adalah bentuk
alternatif penyajian data dari satu atau lebih tabel. View dapat berisi semua
atau sebagian kolom yang terdapat pada tabel dimana kolom tersebut
didefinisikan. Selain itu View juga sebuah tabel
virtual yang secara aktual tidak ada
dalam basis data, tetapi dihasilkan bersarkan permintaan user sesuai
dengan kebutuhannya.
5.1 Membuat VIEW
5.1.1 membuat view empvu10
SQL : CREATE VIEW EMPVU10 AS SELECT
empno, ename, job FROM scott.emp WHERE deptno=10;
Penjabaran : Buat View EMPVU10 sebagai nama lain pada kolom
empno, ename, dan job dari tabel emp yang dimana no departmentnya adalah 10
Hasil Percobaan
:
|
5.1.2 menampilkan
struktur view
SQL : Describe EMPVU10;
Penjabaran : Tampil struktur VIEW EMPVU10
Hasil Percobaan :
|
||||
5.2 Membuat
View SALVU30
SQL : CREATE VIEW SALVU30 AS SELECT empno
EMPLOYEE_NUMBER, ename NAME, Sal SALARY, From scott.emp where deptno=30;
Penjabaran : Buat
VIEW SALVU30 untuk mangganti pada kolom empno (EMPLOYEE_NUMBER), ename (NAME),
dan sal (SALARY) dari tabel emp yang dimana no departmentnya adalah 30
Hasil Percobaan :
|
5.3 Menampilkan seluruh data SALVU30
SQL : SELECT * FROM SALVU30;
Penjabaran
: Ambil seluruh data pada SALVU30
Hasil
Percobaan :
|
5.4
Memodifikasi View
5.4.1
memodifikasi judul kolom empvu10
SQL : CREATE OR REPLACE VIEW empvu10 (employee_number,
employee_name, job_title) AS SELECT empno, ename, job From scott.EMP Where
deptno=10;
Penjabaran : Buat atau Ulang VIEW10 pada kolom,
employee_number (empno), employee_name (ename), job_title( job) dari tabel emp
yang no departemennya adalah 10.
Hasil
Percobaan :
|
5.4.2
Menampilkan seluruh data EMPV10
SQL : Select * from
EMPV10;
Penjabaran : Ambil
semua data dari EMPV10
Hasil Percobaan :
|
5.5 Membuat Complex View
5.5.1 Membuat complex view dept_sum_vu
SQL : CREATE VIEW dept_sum_vu (name, minsal, maxsal,
avgsal) AS SELECT d.name, min (e.sal), max(e.sal), avg(sal) From scott.emp e,
scott.DEPT d WHERE e. deptno=d.deptno Group BY d.dname;
Penjabaran : Buat View DEPT_SUM_VU yang terdiri dari
kolom NAME, MINSAL, MAXSAL, dan AVGSAL sebagai data yang diambil dari tabel emp
dan dept yang dimulai dari kolom dname.
Hasil
Percobaan :
|
5.5.2 Menampilkan seluruh data view dept_sum_vu
SQL : select * from view dept_sum_vu
Penjabaran :
Hasil Percobaan :
|
5.6 Menggunakan Klausa With Check
Option
5.6.1 Membuat VIEW EMP VU20
SQL : CREATE OR REPLACE VIEW empvu20 AS Select * From
scott.EMP WHERE deptno=20 WITH CHECK OPTION CONSTRAINT empvu20 _ok;
Penjabaran : Buat
atau Ulang VIEW EMP VU20 yang berisi
semua data dari tabel EMP yang dimana
bekerja di departement20, yang ditentukan dengan CHECK OPTION.
Hasil
Percobaan :
|
5.7 Mengabaikan (tidak memperbolehkan) dilakukan Operasi
DML
5.7.1 membuat view empvu10 dengan
klausa dml
SQL : CREATE OR REPLACE VIEW empvu10 AS SELECT empno,
ename, job From EMP Where deptno=10 WITH READ ONLY;
Penjabaran : Buat atau Mengulang VIEW EMPVU10 yang
terdiri dari kolom nopegawai, namapegawai, dan pekerjaan pegawai dari tabel emp
yang dimana nodepartemennya (10), dan hanya dibaca saja.
Hasil
Percobaan :
|
5.7.2 mengahapus view empv10
SQL : DROP VIEW EMPVU10;
Penjabaran : Hapus
VIEW empvu10 dari user scott
Hasil Percobaan :
|
BAB VI
QUSERY
SELECT DAN
DML (INSERT, UPDATE, DELETE)
Qusery SELECT merupakan perintah dasar
untuk menjalankan sebuah perintah dalam sebuah database, misal pada database
oracle sqlplus. Sedangkan DML ( Data Manipulation Language ) adalah
salah satu komponen bahasa basis data yang berfungsi sebagai berikut :
1.
Menyisipkan data baru
ke dalam basis data
2.
Memodifikasi data dalam
basis data
3.
Menemukan kembali data
dalam basis data
4.
Menghapus data dari
basis data
Jenis-jenis
DML
1.
DML Prosedural :
è Bahasa
yang memungkinkan pengguna user memerintahkan sistem secara cepat bagaimana
memanipulasi data.
2.
DML Non-Prosedural :
è Bahasa
yang memungkinkan pengguna user menyatakan data apa yang dibutuhkan dan bukan
bagaimana data diperoleh. Contoh : SQL, QBE
Perintah
Query Pada DML
INSERT
Digunakan
untuk mengisi suatu baris pada suatu tabel yang terdiri dari beberapa kolom
yang ada, misal untuk mengisi satu persatu baris pada tabel Mahasiswa.
INSERT
INTO MHS1 (NPM,NAMA_MHS,ALAMAT,TGL_LAHIR,AGAMA,KELAMIN,WALI)
VALUES
('141204000','DHANI AKHMAD','BLORA','1977-09 16','ISLAM','P','002')
DELETE
Digunakan hanya
untuk menghapus pada record saja, bukan pada data kolom tertentu. Sintaks
delete secara umum berbentuk sebagai berikut.
Delete
form <tabel>
Where
<kondisi>
Ex.
Delete from pelanggan
Where status = ”keluar”
UPDATE
Update merupakan perintah untuk mengubah
data yang sudah ada di dalam tabel. Perintah update memiliki sintaks secara
umum sebagai berikut
Update <tabel>
Set <nama kolom> =
<value>
Where <kondisi>
Ex.
Update harga SET Biaya= 19000 WHERE ID_kota='BDG' AND
Kode_jenis=2 AND Berat_awal=2 AND
Berat_akhir=3 AND Biaya=17000
6.1 Query Select
6.1.1
Langkah-langkah untuk login ke isqlplus
1.
Buka file C:\oracle\product\10.2.0\db_1\install\readme.txt
“.
Setelah
menjalankan langkah-langkah di atas maka akan muncul file txt seperti di bawah
ini.
|
2. Lalu
copykan http://localhost : 5560/isqlplus
yang diberi tanda panag merah ke Mozilla agar bisa browser ke ISQLPLUS untuk
login,
|
3. Isi Form login
yang sudah di tetapkan
|
4. Setelah login
dengan benar maka akan muncul gambar Workspace
|
6.1.2 Menampilkan struktur tabel
SQL : Desc emp;
Penjabaran : Tampilkan struktur
tabel emp
Hasil Percobaan :
|
6.1.3 Menyimpan script
Save
Scirpt à Dekstop à
Beri Nama NPM à Save
Penjabaran : Menyimpan
file NPM pada dekstop
Hasil Percobaan :
|
|||||
|
6.1.4 Menampilkan seluruh
data
SQL : Select * from emp;
Penjabaran : Ambil
seluruh data dari tabel emp
Hasil Percobaan
:
|
6.1.5 Menampilkan data
kolom tertentu
SQL : Select ENAME, HIREDATE FROM EMP;
Penjabaran : Ambil Data Kolom ename, hiredate dari
Tabel EMP
Hasil Percobaan
:
|
4.1.6 Ekspresi aritmatik
SQL : Select ENAME, HIREDATE, SAL+250
FROM EMP
Penjabaran : Ambil Data Kolom ENAME, HIREDATE, SAL yang
ditambah 250 dari tabel EMP
Hasil
Percobaan :
|
6.1.7
Operator presedence
SQL : SELECT ename, Hiredate, Sal, 50*sal+250 From
emp;
Penjabaran : Ambil Data Kolom ename, hiredate, sal, pada Kolom sal dikalikan 50 dan ditambahkan 250 dari tabel emp;
Hasil
Percobaan :
6.1.8 Penggunaan tanda kurung
SQL : Select ename, hiredate,
sal, 50*(sal+250) From emp:
Penjabaran
: Ambil
Data Kolom ename, hiredate, Gaji yang
ditambahkan 250 terlebih dahulu baru
dikalikan 50 dari tabel emp.
Hasil Percobaan:
6.1.9 Menggunakan kolom alias
SQL : Select ename "Nama Pegawai",
HIREDATE "Tanggal Diterima" from emp;
Penjabaran : Ambil
Data Kolom
ename dirubah “Nama Pegawai” dan hiredate dirubah “Tanggal Diterima” dari
tabel emp.
Hasil Percobaan :
6.1.10. Operator penyambungan
SQL : Select
ename || job AS “Nama Samaran” from emp;
Penjabaran : Ambil
Data
Kolom ename yang digabung dengan Kolom
job Sebagai Kolom “Nama Samaran” dari Tabel emp.
Hasil Percobaan :
6.1.11 Literal character strings
SQL : Select ename || ‘Bekerja Sebagai’ || job AS “Nama dan Posisi”
From emp;
Penjabaran : Ambil
Data Kolom
ename yang Diberi Kalimat Pemyambung “Bekerja Sebagai” dengan Kolom job Sebagai Kolom alias “Nama dan Posisi” dari Tabel emp.
Hasil Percobaan :
|
6.1.12 Menghindari munculnya baris duplikat
SQL : Select
distinct job from emp;
Penjabaran : Ambil Data Kolom job dari Tabel “emp”;
Hasil Percobaan :
|
6.2
DML (INSERT, UPDATE, DELETE)
6.2.1
Menambahkan baris baru ke dalam tabel (insert)
SQL : Insert
into dept(deptno, dname, loc ) values ('50','DEVELOPMENT','DETROIT');
Penjabaran : Tambah Baris pada Tabel DEPT (deptno,
dname, loc) yang mempunyai niai ( ‘50’,’DEVELOPMENT’,’DETROIT’)
Hasil Percobaan :
|
6.2.2 Insert dengan nilai null
6.2.2.1 Menambah baris pada tabel
tertentu
SQL : Insert
into dept(deptno, dname) Values (60,’MIS’);
Penjabaran : Tambah Baris pada Tabel dept (pada Kolom
deptno, dname) yang mempunyai nilai (60,’MIS’).
Hasil Percobaan :
|
6.2.2.2
Menambah baris pada tabel hanya diisi
nilainya
SQL : Insert
into dept Values (70,’FINANCE’, NULL )
Penjabaran : Tambah Baris pada Tabel dept, yang
Hanya Diisi Nilainya Saja (70,’FINANCE’, NULL)
Hasil
Percobaan :
|
6.2.3
Insert menggunakan fungsi dan nilai terformat
6.2.3.1 Melakukan proses
insert yang menyertakan fungsi sysdate ke dalam table emp
SQL : INSERT
INTO emp(empno, ename, job, mgr, hiredate, sal, comm, deptno) VALUES (
7196,’GREEN’,’SALESMAN’,7782, SYSDATE,2000, NULL, 10);
Penjabaran : Tambahkan data Baru pada Tabel Pegawai yang
mempunya nilai (7196,’GREEN’,’SALESMAN’,7782, SYSDATE,2000, NULL, 10)
Hasil
Percobaan :
6.2.3.2 Melakukan proses insert dengan menggunakan nilai data tanggal yang diformat.
SQL : INSERT
INTO emp VALUES (2296,’AROMANO’,’SALESMAN,7782, TO_DATE(‘FEB 3 97’,’MON DD
YY’),1300,NULL,10);
Penjabaran
: Tambahkan Data Baru pada Tabel Pegawai yang mempunya nilai (2296,’AROMANO’,’SALESMAN,7782,
TO_DATE(‘FEB 3 97’,’MON DD YY’),1300,NULL,10))
Hasil
Percobaan :
|
6.2.4 INSERT dengan variable substitusi
SQL : INSERT
INTO DEPT(deptno, dname, loc) VALUES ( &department_id,
‘&department_name’,’&location’); Enter value for department_id : 80 Enter
value for department_name ; EDUCATION Enter value for location : ATLANTA
Penjabaran
:
Hasil
Percobaan :
|
6.2.5 Pembuatan script dengan kustomisasi
prompt
SQL : ACCEPT
department_id PROMPT 'Silahkan masukkan nomer department : 'ACCEPT
department_name PROMPT 'Silahkan masukkan nama department : 'ACCEPT location
PROMPT 'Silahkan masukkan lokasi department : '
Penjabaran : Simpan
scrip diatas di drive C dan diberi nama nomor_npm.sql. Kemudian dijalankan pada
SQL> @c:\nomor_npm.sql
Hasil
Percobaan :
6.2.6
Mengkopi baris dari tabel lain
SQL : INSERT INTO managers(id,name,salary,hiredate) SELECT
empno,ename,sal,hiredate FROM emp WHERE job=’MANAGER’;
Penjabaran : Tambah
Baris Pada Tabel Managers yang datanya Mengambil dari Tabel Pegawai yang
Pekerjaannya adalah MANAGER
Hasil
Percobaan :
6.2.7
Perubahan data dalam tabel (update)
SQL : UPDATE
emp SET deptno=20 WHERE empno=7782;
Penjabaran : Rubah Tabel Pegawai pada Kolom deptno (20),
yang mempunyai nopegawai 7782
Hasil
Percobaan :
6.2.8 Update dengan
multiple column subquery
SQL : UPDATE
EMP SET (job,deptno)=(SELECT job,deptno FROM EMP WHERE empno=7499)WHERE
empno=7698;
Penjabaran : Rubah Tabel Pegawai pada Kolom job dan
nodept yang diambil dari nopegawainya 7499 menjadi 7698.
Hasil
Percobaan :
|
6.2.9
Update berdasarkan table yang lain
SQL : UPDATE
EMP SET deptno =(SELECT job,deptno FROM EMP WHERE empno=7788) WHERE job = (
SELECT job FROM emp WHERE empno=7788);
Penjabaran
:
Hasil
Percobaan :
6.2.10 Kesalahan pada update
SQL : Update
emp Set deptno=55 Where deptno=10;
Penjabaran : Ubah Data Pegawai yang mempunyai
nodepartemen 10, dan diganti dengan nodept 55
Hasil
Percobaan :
|
SQL : Update
emp Set deptno=20 Where deptno=10;
Penjabaran : Ubah Data Pegawai yang
mempunyai nodepartemen 10, dan diganti dengan nodept 20
Hasil
Percobaan :
|
6.2.11
Menghapus baris dari table (delete)
6.2.11.1 Menghapus data pegawai yang mempunyai nama department =
‘development’
SQL : DELETE FROM dept WHERE
dname=’DEVELOPMENT’;
Penjabaran : Hapus
data dari dept yang Dimana Nama Departementnya DEVELOPMENT
Hasil Percobaan :
6.2.11.2 Hapus data pegawai yang tanggal mulai
bekerjanya setelah tanggal 1 januari
1997
SQL : DELETE FROM
EMP WHERE hiredate > TO_DATE(’01-01-97’,’DD-MM YY’);
Penjabaran : Hapus
Data Pegawai yang Dimana Tanggal Masuk Kerjanya Mulai Tanggal 1 Jan 97
Hasil Percobaan :
6.2.11.3 Menghapus Semua Baris Yang Ada pada Table Pegawai.
SQL : DELETE FROM emp;
Penjabaran : Hapus Data pada Tabel
EMP
Hasil
Percobaan :
|
6.2.12 DELETE Berdasarkan Table yang Lain
SQL : DELETE
FROM EMP WHERE deptno = (SELECT deptno FROM dept WHERE dname=’SALES’;
Penjabaran : Hapus dari Tabel EMP pada Kolom deptno yang
Mengambil dari Tabel EMP yang dname adalah SALES
Hasil
Percobaan :
6.2.13
Kesalahan pada DELETE
SQL : DELETE
FROM dept WHERE deptno=10;
Penjabaran : Hapus data Departemen
yang Nodeptnya 10
Hasil
Percobaan :
BAB VII
ADVANCED QUERY : PEMILIHAN DAN PENGURUTAN DATA
Pemilihan dan Pengurutan Data adalah
salah satu perintah yang ada pada sqlplus dan biasanya hanya menampilkan salah
satu data tertentu saja. Berikut penulisan Syntaxnya :
SELECT
[ DISTINCT ] { * / column [alias], … }
FROM
table
[
WHERE condition(s) ]
WHERE adalah batasan baris
yang memenuhi kondisi
condition adalah susunan nama -
nama kolom, ekspresi, konstanta dan operator perbandingan
7.1 String Karakter dan Tipe Data Tanggal (DATE)
SQL : SELECT * FROM EMP WHERE hiredate='02-APR-81';
Penjabaran
: Ambil seluruh data EMP yang tanggal masuknya adalah 02 April 1981
Hasil
Percobaan :
|
7.2
Penggunaan Operator Pembandingan
SQL : SELECT ename,
sal, comm FROM EMP WHERE comm>sal;
Penjabaran : Ambil Data Kolom Nama, Gaji, Comm yang di mana Comisinya lebih
besar dari Gaji
Hasil Percobaan :
|
7.3 Penggunaan Operator BETWEEN
SQL : SELECT ename, sal, FROM EMP WHERE sal BETWEEN 1000 AND 1500;
Penjabaran : Ambil Data Kolom Nama, Gaji, dari Tabel emp yang di mana gajinya antara 1000 sampai
1500
Hasil
Percobaan :
|
7.4 Penggunaan Operator IN
SQL : SELECT empno, ename, sal, mgr FROM EMP WHERE mgr IN (7902, 7566,
7788);
Penjabaran : Ambil Data Kolom empno,
ename, sal, mgr dari Tabel EMP yang di mana managernya mempunyai no (7902,
7566, 7788 );
Hasil
Percobaan :
|
7.5
Penggunaan Operator LIKE
7.5.1
Menampilkan banyak karakter pada kolom
SQL : SELECT ename, hiredate FROM EMP WHERE hiredate LIKE ‘%81’;
Penjabaran : Ambil Data Kolom ename,
hiredate dari Tabel emp yang di mana
Tanggal Masuk mulai Tahun 81
Hasil
Percobaan :
|
7.5.2 Menampilkan Satu Karakter pada Kolom
SQL : SELECT ename
FROM EMP WHERE ename LIKE ‘_A%’;
Penjabaran : Ambil Data Kolom Nama, yang
di mana Nama Pegawainya terdapat huruf A pada huruf ke2.
Hasil Percobaan :
7.6
Penggunaan Operator
Logika (AND, OR, NOT)
7.6.1 Penggunaan operator and
SQL : SELECT empno, ename, job, sal FROM EMP WHERE sal>1000 AND
JOB=’CLERK’;
Penjabaran : Ambil Data Kolom empno,
ename, job, sal dari Tabel EMP yang
dimana gajinya lebih dari 1000 dan Pekerjaannya CLERK.
Hasil Percobaan :
7.6.2 Penggunaan operator or
SQL : SELECT empno, ename, job, sal FROM EMP WHERE sal>1000 OR JOB=’CELRK’;
Penjabaran : Ambil Data Kolom empno, ename, job, sal dari Tabel EMP yang dimana gajinya lebih dari 1000 atau
Pekerjaannya CLERK.
Hasil
Percobaan :
7.6.3 Penggunaan Operator NOT
SQL : SELECT ename, job FROM EMP WHERE job NOT IN
(‘CLERK’,’MANAGER’,’ANALYST’);
Penjabaran : Ambil Data Kolom ename, job dari Tabel EMP yang dimana
Pekerjaannya tidak termasuk (‘CLERK’,’MANAGER’,’ANALYST’)
Hasil Percobaan :
7.7
Penggunaan Klausa ORDER BY untuk Pengurutan
SQL : SELECT ename, job, deptno, hiredate FROM EMP
ORDER BY hiredate BY hiredate Desc;
Penjabaran : Ambil data EMP pada Kolom
Napeg, Pekerjaan, Nodept, Tanggal Masuk Kerja yang diurutkan sesuai tanggal masuk kerja secara menurun
Hasil
Percobaan :
BAB VIII
ADVANCED QUERY : FUNGSI BARIS TUNGGAL DAN FUNGSI MULTI BARIS
Fungsi baris tunggal atau single row functions
adalah fungsi yang dapat kita gunakan untuk setiap baris data yang beroperasi pada baris
tunggal dan mengembalikan satu nilai per baris. Ada beberapa tipe dari fungsi baris tunggal, yaitu :
karakter bilangan, tanggal, konversi.dan fungsi yang umum seperti NVL dan DECODE.
1.
Fungsi Karakter
Fungsi karakter menerima
karakter sebagai input
dan dapat mengembalikan nilai karakter atau bilangan. Fungsi karakter terbagi menjadi 2 :
a.
Fungsi Konversi : LOWER, UPPER, INITCAP
Ø LOWER
Digunakan
untuk mengubah nilai karakter huruf menjadi huruf kecil.
Ex.
SELECT
LOWER(’INDRA ARMANSYAH’) “Lowercase”
FROM dual;
FROM dual;
Lowercase
indra armansyah
indra armansyah
Ø UPPER
Digunakan
untuk mengubah nilai karakter huruf menjadi huruf besar.
Ex
SELECT UPPER(’indra armansyah’)
“Uppercase”
FROM dual;
FROM dual;
Uppercase
INDRA ARMANSYAH
INDRA ARMANSYAH
Ø INITCAP
Digunakan untuk merubah huruf pertama
dari setiap kata menjadi huruf besar dan sisanya huruf kecil.
Ex.
SELECT INITCAP(’indra armansyah’)
“Initcap” FROM dual;
Initcap
Indra Armansyah
Indra Armansyah
b.
Fungsi Manipulasi : CONCAT, SUBSTR, LENGTH, INSTR, LPAD
Ø CONCAT
Digunakan
untuk menggabungkan column atau expression. Fungsi ini sama dengan operator
penggabungan (||).
Ex.
SELECT CONCAT(’Indra’, ‘
Armansyah’) “Name”
FROM dual;
FROM dual;
Ø SUBSTR
Digunakan
untuk mengambil n karakter dari column|expression dimulai dari
karakter ke-m. Perhatikan contoh berikut ini:
SELECT SUBSTR(’Indra
Armansyah’,1,5) “Substr”
FROM dual;
FROM dual;
Substr
Indra
Indra
Ø LENGTH
Digunakan
untuk menghitung panjang dari column atau expression. Perhatikan contoh berikut
ini:
SELECT LENGTH(’Indra Armansyah’) “Length”
FROM dual;
FROM dual;
Length
15
15
Ø INSTR
Ø LPAD
- Fungsi Bilangan
Tabel 8.1 Fungsi Bilangan
Fungsi
|
Hasil
|
ROUND(45.926)
|
45.93
|
TRUNC(45.926)
|
45.92
|
MOD(1600,300)
|
100
|
- Fungsi Tanggal
Tabel 8.2 Fungsi untuk tanggal :
Fungsi
|
Hasil
|
MONTHS_BETWEEN(’01-SEP-95’,’11-JAN-94’)
|
19.6774194
|
ADD_MONTHS(’11-JAN-94’,6)
|
11-JUL-94
|
NEXT_DAY(’01-SEP-95’,’FRIDAY’)
|
08-SEP-95
|
LAST_DAY(’01-SEP-95’)
|
30-SEP-95
|
- Fungsi Konversi
Fungsi ini dibagi menjadi 2:
a.
Fungsi Konversi secara Implisit
Fungsi konversi secara implicit adalah fungsi
yang
secara
otomatis melakukan konversi tipe data. Seperti Contoh di bawah ini :
•
Dari VARCHAR2 atau CHAR Ke NUMBER
•
Dari VARCHAR2 atau CHAR Ke DATE
•
Dari NUMBER Ke VARCHAR2
•
Dari DATE Ke VARCHAR2
b. Fungsi Konversi secara Eksplisit
Pada fungsi ini SQL menyediakan
3 (tiga) fungsi untuk mengkonversi suatu nilai dari satu tipe data ke tipe data
yang lain. Perhatikan di bawah ini :
Tabel 8.3 Fungsi Konveesi Secara Ekplisit :
Fungsi
|
Tujuan
|
TO_CHAR(numer|date[,’fmt’])
|
Mengkonversi bilangan
atau tanggal ke VARCHAR2 dengan format fmt.
|
TO_NUMBER(char[,’fmt’])
|
Mengkonversi karakater yang berisi digit ke bilangan dengan format fmt.
|
TO_DATE(char[,’fmt’])
|
Mengkonversi
karakter yang merepresentasikan tanggal
ke tanggal dengan
format
fmt,
nilai default jika tidak diformat adalah DD-MON-YY.
|
- Fungsi NVL
Fungsi
NVL() digunakan untuk mengkonversi nilai null baik dari suatu column maupun
expression menjadi sebuah nilai baru yang kita inginkan.
Antara tipe data yang dikonversi dan tipe data hasil harus sesuai, misal :
•
NVL(comm., 0)
•
NVL(hiredate, ’01-JAN-97’)
•
NVL(job,’No Job Yet’)
- Fungsi DECODE
Fungsi DECODE menyediakan fasilitas pencocokan seperti yang dikerjakan oleh CASE atau IF-THEN-ELSE.
Fungsi
Grup (group functions) beroperasi pada
kumpulan baris-baris data (rows) untuk menghasilkan satu hasil per kelompok.
Kelompok-kelompok ini bisa merupakan seluruh isi table atau table yang dibagi
menjadi beberapa kelompok. Fungsi grup tampil pada klausa SELECT dan HAVING.
Beberapa fungsi yang berhubungan dengan fungsi group atau
fungsi multibaris :
·
AVG :
Rata - Rata Nilai Dalam Kolom
·
COUNT :
Jumlah Baris Dan Kolom
·
MAX : Nilai Terbesar Dalam Kolom
·
MIN :
Nilai Terkecil Dalam Kolom
·
STDDEV :
Untuk mencari standard deviation dari sekumpulan
·
SUM :
Jumlah Nilai Dam Kolom
·
VARIANCE :
Untuk mencari standard deviation dari sekumpulan data
8.1 Fungsi Bilangan
SQL : SELECT ename, sal, comm, NVL(comm,0),
MOD(sal, NVL(comm,0) FROM EMP;
Penjabaran : Ambil Data pada
Kolom ename, sal, comm, NVL dari comm, 0, dan MOD
dari sal, NVL,(comm,0) dari tabel EMP.
Hasil
Percobaan :
|
8.2 Fungsi Manipulasi Karakter
SQL : SELECT concat(ename,job), LENGTH(ename),
INSTR(ename,’A’) FROM EMP;
Penjabaran : Ambil data yang digabung padan kolom
ename dan job, panjang dari ename, posisi huruf 'A' pada ename dari tabel EMP.
Hasil
Percobaan :
|
8.3 Fungsi Tanggal
8.3.1
SQL : SELECT empno, hiredate,
MONTHS_BETWEEN(SYSDATE,hiredate) TENURE, ADD_MONTHS(hiredate,6)
REVIEW, NEXT_DAY(hiredate,‘FRIDAY’), LAST_DAY(hiredate)FROM EMP WHERE MONTHS_BETWEEN(SYSDATE,
hiredate)<200;
Penjabaran : Ambil data dari kolom empno,
hiredate, tanggal mulai kerja dan sysdate, hiredate pada nama kolom TENURE,
ditambahkan bulan bekrja sudah 6 bulan pada nama kolom REVIEW, hari berikutnya
hiredate hari jum'at, hari terakhir kerja diambil dari kolom hiredate dari
tabel EMP dimana bulan antara sysdate, hiredate adalah lebih kecil dari 200.
Hasil Percobaan :
8.3.2 Penggunaan Aritmatikan pada Fungsi Tanggal
SQL : SELECT ename,(sysdate-hiredate)/7 weeks from emp;
Penjabaran
: Ambil data Pegawai pada Kolom Napeg yang masa
kerjanya dihitung sesuai / Minggu
Hasil
Percobaan :
|
8.4
Fungsi Konversi secara Eksplisit
SQL : SELECT ename, TO_CHAR(hiredate,’fmDdspth
“of” Month YYYY fmHH:MI:SS AM’)FROM EMP;
Penjabaran
: Ambil
data dari kolom ename, kolom To_Char dari hiredate yang diformat ‘fmDD Month
YYYY’ dari tabel EMP
Hasil Percobaan :
|
8.5 Fungsi NVL
SQL : SELECT ename, sal, comm, (sal*12)+NVL(comm,0)
from emp;
Penjabaran : Ambil Data Kolom ename, sal, comm yang Gajinya Dikalikan 12
dan Ditambah Dengan Komisi dari Tabel emp
Hasil Percobaan :
8.6 Fungsi DECODE
SQL : SELECT job, sal, DECODE(job,
‘ANALYST’,sal*1.1, ‘CLERK’,sal*1.15,‘MANAGER’,sal*1.2,SAL) REVISI_GAJI
FROM EMP;
Penjabaran : Ambil Data Kolom Pekerjaan
dan Gaji, yang dicocokan dengan
pekerjaan dan gajinya, kalau “ANALYST”
gajinya * 1.1 %, “CLERK” gajinya * 1.5%, “MANAGER” gajinya * 1,2%
Hasil Percobaan :
8.7 Fungsi Bersarang (Nested)
SQL : SELECT ename, NVL(TO_CHAR(mgr), ‘Tidak punya manager’) from emp
where mgr 15 NULL;
Penjabaran : Ambil Data Kolom ename, NVL
(To_Char dari kolom mgr yang Tidak Punya Manager dari tabel EMP dimana mgr adalah
bernilai NULL
Hasil
Percobaan :
|
BAB IX
ADVANCED QUERY : MENAMPILKAN DATA DARI BANYAK TABEL
Pada
bab ini kami akan menjelaskan tentang query yang fungsinya menampilkan data
dari banyak tabel yaitu dengan perintah Join.
Join
adalah perintah query yang untuk mendapatkan data dari dua atau lebih
table. Berikut penulisan syntaxnya.
SELECT
table1.column, table2.column
FROM
tabel1, tabel2
WHERE
tabel1.column=table2.column;
Tipe
Join di bagi menjadi 4 :
1. Equi-join
Suatu
tabel yang berelasi one to many dengan tabel lain, sehingga kolom yang menjadi
PK akan menjadi FK pada tabel tersebut.
Ex.
Pada tabel DEPT dan EMP
2. Non-equijoin
Relasi
antara dua table yang di mana kolom pada table pertama berkorespondensi
langsung dengan kolom pada table kedua. Misal table EMP terdiri dari kolom
empno, ename, sal. Dan table SALGRADE terdiri dari kolom grade, losal, hisal. Maka
kolom sal pada table EMP berkorespondensi langsung dengan losal dan hisal pada
table SALGRADE yang nantinya akan memberikan suatu nilai grade yang
bersesuaian.
3.
Outer Join
Apabila terdapat baris yang tidak memenuhi
kondisi join, dan akan ditampilkan pada hasil query, maka digunakan outer join. Misal pada hasil query berikut, department
‘OPERATIONS’ tidak ditampilkan karena
tidak memenuhi kondisi join yang disebutkan :
SQL
: SELECT
e.ename, e.deptno, d.name FROM EMP e, DEPT d Where e.deptno=d.deptno:
Hasilnya
ENAME DEPTNO DNAME
SMITH 20 RESEARCH
4. Self
Join
Apabila kita ingin mencari manager dari
seorang pegawai maka table pegawai di-joinkan dengan table pegawai untuk
mendapatkan nomer pegawai manager dan namanya.
SQL : SELECT
e.ename PEGAWAI, m.ename MANAGER FROM EMP e, EMP m WHERE e.mgr=m.empno AND
e.ename=’BLAKE’;
Hasilnya
PEGAWAI MANAGER
BLAKE KING
9.1
Cartesian Product
SQL
: SELECT ename, dname FROM EMP, DEPT;
Penjabaran : Ambil Data Kolom ename,
dname dari Tabel EMP dan DEPT
Hasil
Percobaan :
|
9.2 Equijoin
SQL
: SELECT
emp.empno, emp.ename, emp.deptno, dept.loc FROM emp, dept WHERE
emp.deptno=dept.deptno
Penjabaran : Ambil
Data Kolom empno, ename, deptno, loc dari Tabel emp, dept yang di mana Kolom deptno berada pada Tabel
emp dan Tabel dept.
Hasil
Percobaan :
|
9.3 Menambahkan Kondisi Pencarian dengan Operator AND
SQL : SELECT emp.empno, emp.ename,
emp.deptno, dept.loc FROM
EMP, DEPT WHERE EMP.deptno=dept.deptno AND
INITCAP(ename)=’KING’;
Penjabaran
: Ambil
Data Kolom empno, ename, deptno, loc. yang di mana
Kolom deptno Berada pada Tabel emp dan Tabel
dept dan INITCAP pada Kolom ename yang Mempunyai Nama KING.
Hasil
Percobaan :
|
9.4
Non-equijoin
SQL : SELECT e.ename, e.sal, s.grade
FROM EMP e, SALGRADE s Where e.sal BETWEEN s.losal AND s.hisal
Penjabaran : Ambil
data Kolom ename, sal, grade dari Tabel emp dan Tabel
Salgrade yang di mana pada Kolom sal
berada diantara Kolom
losal dan hisal
Hasil
Percobaan :
|
9.5
Self Join
SQL : SELECT e.ename PEGAWAI, m.ename
MANAGER FROM EMP e, EMP m Where e.mgr=m.empno AND e.ename=’BLAKE’;
Penjabaran : Ambil Data Kolom ename PEGAWAI, ename
MANAGER dari Tabel emp yang di mana e adalah Kolom mgr, m Kolom empno dan Kolom
ename yang Bernama BLAKE.
Hasil Percobaan :
|
BAB X
SUB
QUERY PADA BARIS DAN KOLOM
Subquery adalah, suatu perintah
yang digunakan untuk menampilkan lebih dari satu baris atau kolom baik dalam
satu tabel maupun lebih. Misal kita ingin membuat suatu query untuk mencari gaji pegawai yang lebih besar dari gaji yang dimiliki oleh pegawai bernama ‘JONES’. Untuk memecahkan persoalan ini, kita membutuhkan
dua query, satu query
untuk mencari gaji yang dimiliki oleh JONES dan query lain untuk mencari pegawai yang memiliki gaji lebih besar daripada gaji JONES. Inner
query
atau
subquery akan menghasilkan
suatu
nilai yang nantinya dipakai oleh outer query atau main query.
Sintak (cara penulisan)
sub query :
Subquery dapat ditempatkan dalam klausa SQL berikut :
1.
WHERE
2.
HAVING
3.
FROM
10.1
Sub Query pada Baris
10.1.1
Sub query
SQL : SELECT ename FROM EMP WHERE sal
> (SELECT sal FROM EMP WHERE empno=7566);
Penjabaran : Ambi data Kolom ename dari Tabel EMP yang di
mana pada Kolom sal lebih besar yang diambilkan dari Tabel EMP yang di manaempno = 7566
Hasil
Percobaan :
|
10.1.2 Single row subquery
SQL : SELECT ename, job FROM EMP WHERE job = (SELECT job FROM EMP
where empno=7369);
Penjabaran : Ambil Data Kolom ename, job yang di mana Kolom
job diambilkan dari Data Pegawai pada
Kolom empno = 7369
Hasil Percobaan :
10.1.3 Single row subquery
dengan operator pembanding ( =, > )
SQL : SELECT
ename, job FROM EMP WHERE job = (select job from emp where empno=7369) AND sal
> (select sal from emp where empno=7876);
Penjabaran : Ambil data dari kolom
ename, job dari table EMP dimana job sama dengan dan diambil job dari table EMP
dimana empno=7369 dan sal lebih besar dan diambil sal dari table EMP dimana
empno=7876).
Hasil Percobaan :
10.1.4 Penggunaan fungsi group dalam subquery
SQL : SELECT
ename, job, sal FROM EMP WHERE sal = (SELECT MIN(sal)FROM EMP);
Penjabaran : Ambil Data Kolom ename, job, sal yang di mana Kolom sal yang
Mempunyai Gaji Minimum dari Data Pegawai
Hasil Percobaan :
|
10.1.5 Penggunaan klausa having dalam subquery
SQL : SELECT
deptno,MIN(sal)FROM EMP GROUP BY deptno HAVING MIN(sal) > (SELECT
MIN(sal)FROM EMP WHERE deptno=20);
Penjabaran : Ambil data dari kolom deptno, sal terendah dari tabel EMP dikelompokkan
berdasar deptno yang memiliki sal lebih besar daripada dan diambil sal terendah
dari tabel EMP dimana deptno=20.
Hasil Percobaan :
|
10.1.6 Penggunaan klausa having dalam subquery
SQL : SELECT job, AVG(sal) FROM
EMP GROUP BY job HAVING AVG(sal) = (SELECT MIN(sal) FROM EMP GROUP BY job);
Penjabaran : Ambil Data Kolom job, yang rata-rata gajinya dikelompokkan
pada Baris tertentu yang diambil gaji minimumnya pada Kolom Job
Hasil
Percobaan :
10.1.7 Penggunaan operator
in dalam multiple row subquery
SQL : SELECT ename, sal, deptno FROM EMP WHERE sal IN
(SELECT MIN(sal) FROM EMP GROUP BY deptno);
Penjabaran : Ambil Data Kolom ename, sal, deptno yang di mana Kolom
Gaji diambil dari Data Pegawai yang dikelompokkan pada Kolom deptno
Hasil Percobaan :
|
10.1.8 Penggunaan Operator
ANY dalam Multiple Row Subquery
SQL : SELECT empno, ename, job FROM EMP WHERE sal
< ANY (SELECT sal FROM EMP WHERE job=’CLERK’) AND job <> ‘CLERK’;
Penjabaran : Ambil data dari kolom empno, ename, job dari
EMP dimana sal lebih kecil dari banyak
diambil kolom sal dari tabel EMP dimana kolom job='CLERK' dan job <> 'CLERK'
Hasil Percobaan :
|
10.1.9 Penggunaan operator
all dalam multiple row subquery
SQL : SELECT empno, ename, job FROM EMP WHERE sal
> ALL (SELECT AVG(sal) FROM EMP GROUP BY deptno);
Penjabaran : Ambil data dari kolom empno, ename, job dari tabel EMP dimana sal lebih besar dari semua dan diambil rata-rata
dari kolom sal dari tabel EMP dikelompokkan berdasarkan deptno.
Hasil
Percobaan :
10.2 Sub Query Pada Kolom
10.2.1 Subquery dengan Banyak Kolom
SQL : SELECT ordid, prodid, qty FROM item WHERE
(prodid, qty)IN (SELECT prodid, qty FROM item WHERE ordid=605) AND ordid
<>605;
Penjabaran :
Hasil
Percobaan :
|
10.2.2
SQL : SELECT ordid, prodid, qty FROM item WHERE
prodid IN (SELECT prodid FROM item WHERE ordid=605) AND qty IN (SELECT qty FROM
item WHERE ordid=605) AND ordid<>605;
Penjabaran :
Hasil Percobaan :
|
10.2.3 Penggunaan subquery dalam klausa from
SQL : SELECT
a.ename, a.sal, a.deptno. b.salavg FROM EMP a, (SELECT deptno, AVG(sal)salavg
FROM EMP GROUP BY deptno)b WHERE a.deptno=b.deptno AND a.sal>b.salavg;
Penjabaran :
Hasil Percobaan :
|
BAB XI
PENUTUP
A. Kesimpulan
Setelah
saya melaksanakan praktikum Basis Data Lanjut yang telah dimulai pada tanggal 13
November 2009 sampai 24 Desember 2009, saya yakin kalau hasil praktikum ini
cukup puas karena dengan adanya praktikum ini saya sedikit mengatahui apa yang
dimaksud data base, SQL dan Oracle, selain itu saya bisa menjalankan beberapa
perintah query baik pada Isqlplus lewat cmd / Oracle Isqlplus Oracle yang sudah
diterangkan pada modul praktikum yang sudah ada. Oleh karena itu dengan adanya
praktikum ini sangatlah penting bagi Mahasiswa, sebab Mahasiswa bisa mengetahui
sampai sejauh mana memahami materi yang sudah diajarkan sebelumnya.
B. Saran-saran
Setelah
menjalankan praktikum ini saya menyarankan dalam pembuatan Laporan Resmi
Praktikum yang akan datang, saya
berharap kepada teman-teman TPL Angkatan 2007 Khususnya untuk kelas 2007 A
lebih semangat lagi agar hasilnya bisa lebih baik dari Laporan Resmi Praktikum
yang sekarang ini, sebab dalam Laporan Resmi ini pembuatannya dihadapkan pada keterbatasan
waktu yang ada dan mungkin dalam susunannya juga ada yang kurang baik sehingga Laporan
Resmi ini bisa dikatakan kurang lengkap, maka dari itu waktu yang cukup banyak
sangat mendukung hasil dari Laporan Resmi itu sendiri dan yang terpenting “
Janganlah sekali-kali menyepelekan waktu
yang seharusnya kita gunakan untuk mengerjakan Laporan ini, kita gunakan
mengerjakan sesuatu yang tidak ada gunanya”.
DAFTAR PUSTAKA
Nugroho
Adityo. 2009. Modul Praktikum Basis Data Lanjut. Tuban : Laboratorium
Teknik Perangkat Lunak Unirow Tuban
0 komentar:
Posting Komentar