Praktek Database Management(SQL)

  Database Management Using SQL

A. Rancangan Database

   Database Name : JAYANUSA Tabel :Tabel Barang Kode_barang char(6) Nama_barang varchar2(25) Satuan_barang varchar2(20) Stok_barang number(4)

  • Primary key (PK) adalah field kode_barang

   Tabel Suplier Kode_suplier char(5) Nama_suplier varchar2(30) Alamat_suplier varchar2(30) Kota_suplier varchar2(15) Telepon_suplier varchar2(15)

  • Primary key (PK) adalah field kode_suplier

   Tabel Customer Kode_customer char(6) Nama_customer varchar2(30) Alamat_customer varchar2(30) Kota_customer varchar2(15) Telepon_customer varchar2(15)

  • Primary key (PK) adalah field kode_customer

  Tabel Pemasok  Kode_pasok char(10) Kode_barang char(6) Kode_suplier char(6) Tanggal_pasok date Jumlah_pasok number(4)

   Tabel Pembelian Kode_pembelian char(10) Kode_barang char(6) Kode_customer char(6) Tanggal_pembelian date Jumlah_pembelian number(4)

  • Primary key (PK) adalah field kode_pembelian, kode_barang dan kode_customerr Foreign Key (FK) adalah field kode_barang dan kode_customer

B. Entity Relationship Diagram (ERD) PEMASOK

  KODE_PASOK KODE_BARANG

  BARANG SUPLIER

  KODE_SUPLIER TANGGAL_PASOK

  KODE_BARANG KODE_SUPLIER

  JUMLAH_PASOK NAMA_BARANG

  NAMA_SUPLIER SATUAN_BARANG

  ALAMAT_SUPLIER STOK_BARANG

  KOTA_SUPLIER TELEPON_SUPLIER

  PEMBELIAN CUSTOMER

  KODE_PEMBELIAN KODE_CUSTOMER

  KODE_BARANG NAMA_CUSTOMER

  KODE_CUSTOMER ALAMAT_SUPLIER

  TANGGAL_PEMBELIAN KOTA_CUTOMER

  JUMLAH_PEMBELIAN TELEPON_CUSTOMER

  Keterangan : Tabel barang dengan tabel suplier berelasi melalui tabel pasok.

   Relasi tabel barang dengan tabel pasok adalah 1 ke banyak (1 kode barang bisa terdiri atas  beberapa kode suplier) Rrelasi tabel suplier dengan tabel pasok addalah 1 ke banyak ( 1 kode suplier bisa terdiri atas

   beberapa kode_barang) 

  

:: SQL *Plus ::

Memulai SQL *Plus

   Aktifkan Oracle. Anda bisa mengguankan Aracle DBA, Oracle Developer atau Personal Oracle.  Aktifkan SQL *Plus  Login dengan Nama User Anda masing-masing  Tampilan jendela Oracle SQL *Plus.

  Pada kasus ini Penulis mengguankan Oracle 9i:

  Mengaktifkan SQL *Plus:

  Start > Program > Oracle–OraHome90 > Application Development > SQL Plus

  Catatan : Tipe data di dalam Oracle

  CHAR(n)

  1. Membuat Tabel (Create Table)

  Mendefinisikan string sepanjang n karakter. Bila n tidak

  Bentuk umum: disertakan, panjang karakter adalah 1.

  VARCHAR(n) CERATE TABLE nama_tabel (

  Mendefinisikan string yang panjangnya bisa berubah-

  nama field ke-1 tipe data (lebar_field),

  ubah sesuai dengan kebutuhan, namun string tersebut . . . dibatasi sebanyak n karakter. Oracle merekomendasikan

  VARCHAR2 . . .

  VARCHAR2(n)

  nama field ke-n tipe data (lebar_field),

  Mendefinisikan string yang panjangnya bisa berubah-

  );

  ubah sesuai dengan kebutuhan, namun string tersebut dibatasi sebanyak n karakter. Mksimal karakter pada variabel adalah 2000 karakter

  LONG Mendefinisikan tipe data binary, maksimum 2 Gigabyte, disimpan dalam foramt internal Oracle

  LONG RAW Sama dengan Long yaitu medefinisikan tipe data binary, maksimum 2 Gigabyte, tidak dikonversi oleh Oracle (data mentah apa adanya)

  DATE Mendefinisikan tanggal, menyimpan tahun, bulan, hari, jam, menit, dan detik.

  NUMBER(n) Mendefinisikan angka pecahan, fixed decimal atau floating point. Nilai n adalah jumlah bytes total dan p adalah presisi angka di belakang koma.

  Keterangan:

Untuk membuat table acuan (reference) sebelum tanda ‘)’ tambahkan sintak:

  

Constraint nama_constrains primary Key (nama)field_primarykey) not nul);

Untuk membuat tabel yang mengacu pada tabel lain (tabel relasi) sebelum tanda ‘)’  tambahkan sintak: Constraints nama_constraint primary key ( nama_filed_prmarykey-1, . . , nama_field_primarykey-n), Constaints nama_constraints foreign key( nama_field_foreignkey-1) references nama_tabel_acuan-1(nama_filed_primarykey-1), . . Constaints nama_constraints foreign key( nama_field_foreignkey-n) references nama_tabel_acuan-n((ama_filed_primarykey-n) );

  Praktek :Buatlah tabel Barang dengan stuktur sebagai berikut:

  Kode_barang char(6) Kode_suplier char(5) Nama_suplier varchar2(30) Alamat_suplier varchar2(30) Kota_suplier varchar2(15) Telepon_suplier varchar2(15)

  Telepon_customer varchar2(15)

  • Primary key (PK) adalah field kode_customer Kode_pasok char(10) Kode_barang char(6) Kode_suplier char(6) Tanggal_pasok date
    • Primary key (PK) adalah field kode_suplier Kode_customer char(6) Nama_customer varchar2(30) Alamat_customer varchar2(30) Kota_customer varchar2(15)

  Jumlah_pasok number(4)

   Caranya: Tugas : Berdasarkan contoh diatas buatlah tabel berikut: Tabel Sublier : Tabel Customer : Praktek :

   Buatlah tabel Pasok dengan struktur sebagai berikut  Perhatikan Caranya:

  • Primary key (PK) adalah field kode_pasok, kode_barang dan kode_suplier. Foreign Key (FK) adalah field kode_barang dan kode_suplier
Kode_pembelian char(10) Kode_barang char(6) Kode_customer char(6) Tanggal_pembelian date Jumlah_pembelian number(4)

  Praktek : Perintah untuk menampilkan daftar tabel: Select * from tab :

  Tugas : Berdasarkan contoh diatas buatlah tabel Pembelian dengan stuktur sebagai berikut: Tabel Pembelian Keterangan: Catatan: Untuk menampilkan struktur tabel gunakan perintah : describe/desc nama_tabel.

  • Primary key (PK) adalah field kode_pembelian, kode_barang dan kode_customer Foreign Key (FK) adalah field kode_barang dan kode_customer
    • fk_pasok_barang: foreign key tabel pasok yang mengacu pada tabel barang.
    • fk_pasok_suplier: foreign key tabel pasok yang mengacu pada tabel suplier
    • fk_pembelian_barang: foreign key tabel pembelian yang mengacu pada tabel barang.
    • fk_pembelian_customer: foregin key tabel pembelian yang mengacu pada tabel customer.

  Stuktur tabel Pasok dan tabel Pembelian Catatan:

  2. Mengubah Tabel (Alter Table)

  Pada pengubahan stuktur tabel ini ada

  Bentuk Umum: bebrapa kemungkinan, diantaranya

  mengubah dalam arti menghapus salah satu ALTER TABLE nama_tabel atau beberapa field apda tabel tersebut atau

  ADD|MODIFY nama field tipe_data(lebar_field);

  dalam arti menambah satu atau beberapa field pada tabel tersebut.

  Praktek : a. Ubahlah tipe data dari field satuan_barang dari varchar2(20) menjadi char(5).

  Perhatikan Caranya:

b. Tambahkan satu field pada tabel barang dengan ketentuan:

  • nama field : keterangan
  • tipe data : varchar2
  • lebar data : 15

  Perhatikan Caranya: Tugas :

   Ubahlah tipe data untuk field stok_barang dari number(4) menjadi number(2)  Tambahkan satu field pada tabel barang dengan ketentuan:

  • nama field : stok_minimum
  • tipe data : number(4)

  Catatan:

  2. Menghapus Tabel (Drop Table)

  Perintah DROP ini akan berhasil jika tabel

  Bentuk Umum:

  yang dihapus adalah tabel yang tidak ada relasinya (tabel yang berdiri sendiri). Juga DROP TABLE nama_tabel akan berhasil jika yang dihapus adalah tabel relasi (tabel yang mengacu pada tabel yang lain). Dalam kasus ini tabel, relasi adalah tabel pasok dan tabel reference, maka perintah DROP table ini tidak akan berhasil.

  Praktek : Lihat Contoh dibawah ini:

  Hapuslah tabel barang (tabel barang disini adalah tabel reference/acuan). Perhatikan pesan yang muncul: Perhatikan Caranya: Hapuslah tabel pasok dan tabel pembelian (tabel yang mengacu pada tabel barang).

  Tabel pasok dan tabel Pembelian ini berjenis tabel relasi.

  Perhatikan caranya :

  Tugas:  Buat kembali :

  Daftar tabel setelah penghapusan: Sekarang coba hapus tabel barang, tabel customer dan tabel supplier

  Yaaaa… begitulah kalau Anda ingin cepat pandai.

  • Tabel Barang - Tabel Suplier - Tabel Customer - Tabel Pasok - Tabel Pembelian Dengan stuktur tabel sama dengan sebelumnya.

  Catatan:

3. Memasukkan Data (Insert)

  Pada prinsipnya INSERT bertujuan

  Bentuk Umum:

  mengisikan data/record ke dalam suatu tabel. Pengisian data ini bisa satu record

  INSERT INTO nama_tabel (nama field ke-1, . . ., nama field ke-n penuh atau hanya sebagian saja.

  VALUES (nilai_field ke-1,. . ., nilai_field ke-n);

  Keterangan: (nama field ke-1, . .,nama field ke-n) adalah nama field yang ada pada tabel dan sifatnya opsional.

  (nama field ke-1,. . ,nilai_field ke-n) adalah isi dari field pada tabel dan harus diisi.

  Praktek :  Isikanlah sebuah record kedalam tabel barang seperti tabel berikut:

KODE_BARANG NAMA_BARANG SATUAN_BARANG STOK_BARANG

  ELK-01 RICE COOKER BUAH

  20

   Perhatikan caranya: Select * from barang; Untuk melihat semua data pada tabel barang

  Tugas :  Tambahkan record kedalam tabel Barang seperti tabel berikut:

KODE_BARANG NAMA_BARANG SATUAN_BARANG STOK_BARANG

  ELK-02 LEMARI ES UNIT

  8 ELK-03 TELEVISI UNIT

  30 ELK-04 RADIO/TAPE BUAH

  35

   Masukkan record kedalam tabel Suplier seperti tampilan berikut:

KODE_SUPLI NAMA_SUPLIER ALAMAT_SUPLIER KOTA_SUPLIER TELEPON_SUP

  EB-02 PT.SUPERTRON JL.INDUSTRI 37 BANDUNG 022-660-4091

KOTA_CUSTOMER TELEPON_CUS TOMER

  2 BEL-E009 ELK-02 B-002 25-JUN-02

  4 BEL-E003 ELK-01 J-002 20-MAY-02

  2 BEL-E004 ELK-01 B-001 20-MAY-02

  2 BEL-E005 ELK-01 B-002 22-MAY-02

  3 BEL-E006 ELK-02 J-001 24-MAY-02

  1 BEL-E007 ELK-02 J-002 24-JUN-02

  1 BEL-E008 ELK-02 B-001 25-JUN-02

  2 BEL-E010 ELK-02 J-001 20-JUM-02

  BEL-E001 ELK-01 J-001 20-MAY-02

  5 BEL-E011 ELK-03 J-002 02-JUL-02

  4 BEL-E012 ELK-03 B-001 04-JUL-02

  6 BEL-E013 ELK-03 B-002 10-JUL-02

  5 BEL-E014 ELK-03 J-001 15-JUL-02

  12 BEL-E015 ELK-03 B-002 17-JUL-02

  15

  3 BEL-E002 ELK-01 J-001 21-MAY-02

   Masukkan record kedalam tabel Pembelian seperti tabel berikut: KODE_PEMB ELIAN KODE_BARAN G KODE_CUSTOMER TANGGAL_PEMBEL

   Masukkan record kedalam tabel Customer seperti tabel berikut: KODE_CUST OMER NAMA_CUSTOME R

  2 PAS-E004 ELK-02 EJ-02 02-FEB-02

  

ALAMAT_CUSTOME

R

  J-0001 TOKO KARISMA JL.CIMANGGIS 34 JAKARTA 021-856-4209 J-0002 TOKO AYU JL.DIMANGGIS 12 JAKARTA 021-856-1321 B-0001 TOKO SURYA JL.ABC 234 BANDUNG 022-432-6635 B-0002 TOKO WARNA JL.ABC 309 BANDUNG 022-432-6024

   Masukkan record kedalam tabel Pasok seperti tabel berikut: KODE_PASO K KODE_BARAN G KODE_SUPLIER TANGGAL_PASOK JUMLAH_PASO K

  PAS-E001 ELK-01 EJ-01 01-JAN-02

  8 PAS-E002 ELK-01 EJ-02 01-JAN-02

  5 PAS-E003 ELK-02 EJ-01 01-FEB-02

  3 PAS-E005 ELK-02 EB-02 01-JAN-02

  9

  2 PAS-E006 ELK-03 EJ-01 03-MAR-02

  5 PAS-E007 ELK-03 EJ-01 04-MAR-02

  2 PAS-E008 ELK-03 EJ-02 03-MAR-02

  3 PAS-E009 ELK-03 EB-01 13-MAR-02

  4 PAS-E010 ELK-03 EB-02 13-MAR-02

  3 PAS-E011 ELK-04 EB-01 22-APR-02

  12 PAS-E012 ELK-04 EB-02 30-APR-02

IAN JUMLAH_PEMB ELIAN

  Catatan:

4. Memperbaiki Data (Update)

  Bentuk Umum:

  Pada prinsipnya UPDATE adAlah UPDATE nama_tabel memperbaharui data lama dengan data

  SET nama_field = data_baru WHERE nama_field = data_lama

  Praktek : Perhatikan data tabel barang berikut ini: Perbaikilah data pada : Kode_barang ELK-01 pada field STOK_BARANG menjadi 18 Perhatikan caranya:

  • Tabel Suplier: Kode_Suplier EJ-01 pada field NAMA_SUPLIER menjadi JAYANUSA , field

  ALAMAT_SUPLIER menjadi Jl.DAMAR 69, field KOTA_SUPLIER menjadi PADANG dan TELEPON_SUPLIER menjadi 0751-28984.

  • Tabel Customer: Kode_Customer J-0002 pada field NAMA_CUSTOMER menjadi TOKO

  AWAK , field ALAMAT_CUSTOMER menjadi Jl.KITO 21, field KOTA_CUSTOMER menjadi PADANG dan TELEPON_SCUSTOMER menjadi 0751-33057.

  Catatan:

5. Menghapus Data (Delete)

  Bentuk Umum: Praktek :

  Hapuslah semua recortd yang ada pada tabel barang : Perhatikan tampilan berikut:

Kita tidak bisa menghapus isi tabel references (tabel abrang, tabel suplier dan tabel

customer) tanpa lebih dahulu menghapus isi tabel yang mengacu pada taber tersebut.

  

Apabila kita ingin menghapus tabel barang, tabel suplier dan tabel customer, tanpa

menghapus terlebih dahulu isi tabel pasok dan tabel pembelian, tambahkan sintak on

delete cascade pada tabel pasok dan tabel pembelian pada saat pembuatan tabel..

  DELETE FROM nama_tabel [ WHERE kondisi ]

  Pada Prinsipnya DELETE adalah untuk menghapus data atau record. Penghapusan record ini bisa dilakukan secara keseluruhan. Artinya, seluruh record dalam tabel tersebut akan dihapus. Penghapusan data atu deletion juga bisa untuk sebagian saja. Pada penghapusan data tipe ini digunakan kondisi where sebagai suatu kondisi untuk memilih record mana yang akan di hapus. saya sarankan anda untuk membuat sebuah tabel lagi dan isi beberapa data, setelah itu lakukan penghapusan terhadap isi dari tebel tersebut. Contoh: buatlah sebuah tabel yang bermana mhs seperti berikut: di beberapa data, tampilkan dan lakukan penghapusan. Lihat contoh tampilan berikut:

  Catatan:

6. Memilih Data/Seleksi Data (Select)

  Bentuk Umum:

  DELETE nama_field Pada Prinsipnya SELECT bertujuan untuk

  FROM nama_tabel menampilkan/menyeleksi data, yang diinginkan dari sekumpulan [ WHERE kondisi ] data yang ada. Select sering disebut dengan istilah query.

  Praktek :  Buatlah perintah untuk menampilkan semua data pada tebel Barang Perhatikan tampilan berikut:

 Buatlah perintah untuk menampilkan nama_barang dan stok_barang pada tebel

Barang. Perhatikan tampilan berikut:

  Tugas :  Buatlah perintah untuk menampilkan nama_customer dan alamat_customer pada tebel customer.

   Buatlah perintah untuk menampilkan kode_suplier dan nama_suplier pada tebel suplier.

  Membuat View (Create View) Buatlah view dengan nama v_customer yang menampilkan isi tabel customer: Perhatikan tampilan berikut: Buatlah view dengan nama v_barang untuk menampilkan nama_barang dan stok_barang ari tabel barang. Perhatikan tampilan berikut:

  Tugas:

 Buatlah view dengan nama v_suplier untuk manampilkan kode_suplier,

nama_suplier pada tabel suplier.

 Buatlah view dengan nama v_pasok untuk menampilkamn kode_pasok,

tanggal_pasok pada tabel pasok.

  Catatan:

6. Pengelompokan Data (Group By) dan Aggregate Function

  Bentuk Umum: Praktek :

   Tampilkan minimum pemasok per kode barang Perhatikan tampilan berikut:  Tampilkan jumlah minimum pemasokan dari seluruh pemasokan yang ada.

  Perhatikan tampilan berikut:

  SELECT nama_field-1, . . , nama_field-n, MIN(nama_field) FROM nama_tabel GROUP BY nama_field-1, . . , nama_field-n

  Fungsi ini digunakan untuk mencari harga minimum dari sekumpulan data yang ada. Pada kasus seleksi data seringkali diminta untuk menampilkan atau memilih sekumpulan data berdasarkan kelompok data tertentu. Untuk menyelesaikan permasalahan tersebut, SQL menyediakan perintah atau sintak

  group by. Pada pengelompokan data biasanya disertakan bnersama Aggregate Function. Dalam

  implementasinya, Aggregate Function harus diikuti group by bila terdapat field lain yang dijadikan sebagai kriteria pengelompokan. Aggregate function yang dimaksud adalah fungsi matematik yaitu: min(), max(),

  avg(), sum(), dan count().

A. Min( )

  Jika ingin menampilkan funsi aggregate(min, max, avg, count) berdasarkan kelompok data tertentu, yang harus dilakukan adalah membuat group by berdasarkan kelompok data tersebut.

  Jika menentukan aggregate function tanpa melibatkan field yang lain (tidak ada field lain selain field eggregate function), maka tidak perlu menambahkan group by karena data yang ditampilkan tidak dikelompokkan berdasarkan field tertentu, jadi tidak perlu digroupkan/tidak perlu

  Tugas :  Cari minimum pembelian per customer.

  

 Tampilkan jumlah minimum pembelian dari seluruh transaksi pembelian yang

ada.

B. Max( )

  Bentuk Umum:

  SELECT nama_field-1, . . , nama_field-n, MAX(nama_field) Fungsi ini digunakan untuk mencari harga FROM nama_tabel maksimum dari sekumpulan data yang ada. . GROUP BY nama_field-1, . . , nama_field-n

  Praktek :  Tampilkan maksimum pemasokan per koe barang.

  Perhatikan tampilan berikut:  Tampilkan maksimum pemasokan dari semua pemasokan yang ada.

  Perhatikan tampilan berikut:

  C. Avg( ) Bentuk Umum:

  Praktek :  Tampilkan data-rata pemasokan (rata-rata jumlah pasok) Perhatikan tampilan berikut:  Tampilkan rata-rata pemasokan (rata-rata jumlah pasok) untuk semua kode_barang dan suplier. Perhatikan tampilan berikut:

  D. Sum( ) Bentuk Umum:

  SELECT nama_field-1, . . , nama_field-n, AVG(nama_field) FROM nama_tabel GROUP BY nama_field-1, . . , nama_field-n

  Fungsi ini digunakan untuk mencari harga rata-rata dari semuplulan data yang ada.

  SELECT nama_field-1, . . , nama_field-n, SUM(nama_field) FROM nama_tabel

  Fungsi ini digunakan untuk mencari jumlah data.

  Praktek :  Tampilkan total jumlah pembelian per kode barang.

  Perhatikan tampilan berikut:  Tampilkan total jumlah pembelian per-kode barang Perhatikan tampilan berikut:

 Tampilkan total jumlah pembelian per kode barang per kode customer.

E. Count( )

  Bentuk Umum:

  SELECT nama_field-1, . . , nama_field-n, COUNT(nama_field) Fungsi ini digunakan untuk mencari cacah FROM nama_tabel atau banyaknya data GROUP BY nama_field-1, . . , nama_field-n

  Praktek :  Tampilkan berapa kali pemasokan (cacah pasok) tiap kode_bnarang, atau berdasarkan kode barang, ada berapa kali pemasokan. Perhatikan tampilan berikut:

 Tampilkan berapa kali pemasokan (cacah pasok) tiap kode barang dan kode

suplier. Atau dengan kata lainm, berdasarkan kode barang dan kode suplier, ada berapa kali. Perhatikan tampilan berikut:

  

 Tampilkan berapa kali terjadi pemasokan berdasarkan kode barang dan tanggal

tertentu. Perhatikan tampilan berikut

 Tampilkan minimum,maksimum,rata-rata dan jumlah barang serta berapa kali

terjadi pemasokan untuk setiap kode barang. Perhatikan tampilan berikut:

  Catatan:

7. Pengurutan Data (Order By)

  Bentuk Umum: Praktek :  Tampilkan semua data barang berdasarkan urutan nama barang.

  Perhatikan tampilan berikut:  Tampilkan semua data barang berdasarkan urutan yang terbalik dari nama Barang. Perhatikan tampilan berikut:

  SELECT nama_field-1, . . , nama_field-n FROM nama_tabel ORDER BY nama_field

  Catatan:

8. Kriteria Data

  Kriteria data adalah data yang akan ditampilan, yaitu data memenuhi kriteria yang ditentukan (kriteria yang ada). Diabagi dalam dua kategori, kriteria dengan having dan kriteria where.

A. Kriteria dengan Having

  Kriteria dengan having adalah kriteria pemilihan atau seleksi data dengan menggunakan kata having. Kata having ini bisa berupa having count(nama_filed) having sum(nama_field), atau having dengan diikuti fungsi aggregate yang lain. Namun pada intinya adalah ingin menyeleksi data berdasarkan kriteria tertentu, dimana kriteria ini biasanya berupa fungsi aggregate (min, max, avg, sum dan count).

  Bentuk Umum:

  SELECT nama_field-1, . . , nama_field-n, aggregate_function FROM nama_tabel ORDER BY

  Praktek :  Tampilkan supplier yang memasok barang sebanyak 2 kali.

  Perhatikan tampilan berikut:  Tampilkan kode customer yang total jumlah pembeliannya lebih besar dari 15.

  Perhatikan tampilan berikut

B. Kriteria dengan Where

  (a). Comparison (=, <>, <, >, <= atau >=) Bentuk Umum: Praktek :

 Tampilkan kode barang dan kode suplier yang mempunyai jumlah pasok 2.

  Perhatikan tampilan berikut:  Tampilkan barang yang memiliki jumlah atau stok abrang lebih besar atau sama dengan 20. Perhatikan tampilan berikut:

  SELECT nama_field-1, . . , nama_field-n FROM nama_tabel

  Pada kriteria dengan where pemilihan atau seleksi data dilakukan setelah kata where. Setelah kata where bisa diikuti oleh comparison (=, <>, <, >, >= atau <=), between, in, like/not like atau is null/is not null.

  Comparison berfungsi untuk membandingkan dua nilai. Tipe data yang harus dibandingkan harus sesuai. Hasil yang diperolah dari operasi perbandingan atau comparison ini adlah berupa nilai logik.

  (b). Between Bentuk Umum: Praktek :  Tampilkan kode barang dan kode suplier yang jumlah pasoknya antara 5 dan 12.

  (5 dan 12 termasuk dalam kategori) Perhatikan tampilan berikut: (c). In Bentuk Umum:

  Praktek :

 Tampilkan kode barang dan kode suplier yang jumlah pasoknya 2,8, atau 12.

  Perhatikan tampilan berikut:

  SELECT nama_field-1, . . , between FROM nama_tabel

  Pada prinsipnya between digunakan untuk membandingkan atau untuk mengecek apakah suatu nilai berada dalam range atau selang nilai tertentu.

  SELECT nama_field-1, . . , between FROM nama_tabel WHERE nama_field IN(. . ., . . ., . .

  In digunakan untuk melakukan pengecekan apakah suatu nilai terdapat pada suatu himpunan tertentu

   Tampilkan customer yang mempunyau ‘J-0001’ atau ‘B-0002’ Perhatikan tampilan berikut: (c). Like/Not Like Bentuk Umum:

  SELECT nama_field-1, . . , between Like atau Not Like digunakan untuk membandingkan data

  FROM nama_tabel dengan pola tertentu. Untuk membandingkan satu karakter digunakan karakter underscore (_), sedangkan untuk

  WHERE nama_field LIKE ‘. . ‘ membandingkan string digunakan karakter porsen (%).

  Praktek :  Tampilkan customer yang mempunyai kata ‘JAK’ pada kotanya.

  Perhatikan tampilan berikut:

 Tampilkan data abrang yang memiliki nama abrang diawali dengan huruf R.

  Perhatikan tampilan berikut:

  Catatan:

8. Query dan View

  Query adalah sebutan atau nama lain dari seleksi yang merupakan bagian danri DML (Data Manipulation Language)

  A. Seleksi Satu Tabel Sleksi ini hanya berkisar pada field yang ada pada satu tabel.

  Bentuk Umum:

  SELECT nama_field-1, . . , nama_field-n, aggregate_function FROM nama_tabel WHERE kriteria GROUP BY nama_field-1, . . , nama_field-n HAVING kriteria_aggregate_function ORDER BY nama_field

  Praktek :  Tampilkan berapa kali pembelian (cacah pembelian) dan jumlah pembelian per kode abrang per kode customer. Tampilkan diurutkan berdasarkan jumlah pembelian Perhatikan tampilan berikut:

   Tampilkan berapa kali pembelian (Cacah pembelian) dan jumlah pembelian per kode barang per kode customer. Cacah pembelian yang ditampilkan adalah yang lebih besar dati 1. Tampilan diurutakan berdasarkan jumlah pembelian. Perhatikan tampilan berikut:  Tampilkan berapa kali pembelian (cacah pembelian) dan jumlah pembelian per kode barang per kode customer. Kode customer yang ditampilkan adlaah J-001

dan B-0001, tampilan diurutakn dari yang terbesar ke yang terkecil, urutan

berdasarkan jumlah pembelian. Perhatikan tampilan berikut:

  B. Seleksi Lebih dari Satu Tabel

  Sleksi ini memungkinkan untuk memilih field mana saja yang ingin ditampilkan, asalkan antara field yang Bentuk Umum:

  SELECT nama_field-1, . . , nama_field-n, aggregate_function FROM nama_tabel-1,. . .,nama_tabel-n WHERE kriteria GROUP BY nama_field-1, . . , nama_field-n HAVING kriteria_aggregate_function ORDER BY nama_field

  Praktek :

 Tampilkan nama supplier, tanggal pasokan dan berapa jumlah pasokannya.

  Perhatikan tampilan berikut:

 Tampilkan nama barang, nama suplier tanggal pasokan dan jumlah pasokan

barang tersebut. Barang yang ditampilkan adalah televisi, radio/tape, lemari es.

  

 Tampilkan nama barang, nama suplier, tanggal p[asokan dan jumlah Pasokan

barang. Barang yang ditampilkan adalah televisi, radio/tape, lemari as. Suplier yang ditampilkan adalah yang memiliki nama berakhiran tron. Jumlah pasokan yang ditampilkan dalam selang 3 sampai 9. Perhatikan tampilan berikut:  Hitunglah, maksimum, dan rata-rata pemasokan per nama suplier.

  Perhatikan tampilan berikut:

B. Seleksi dengan Subquery Subquery adalah query di dalam query,. Artinya, seleksi data berdasarkan hasil seleksi data yang telah ada.

  Bentuk Umum:

  SELECT nama_field-1, . . , nama_field-n, aggregate_function FROM nama_tabel-1 WHERE kriteria ( SELECT nama_fioeld-1,. . .nama_field-n

  FROM nama_tabel WHERE kriteria )

9. Trigger

  Trigger adalah suatu objek dalam database yang digunakan untuk membuat suatu keperluan manipulasi data secara otomatis, dimana suatu query akan dilakukan secara otomatis saat suatu query dieksekusi

  Bentuk Umum:

  CREATE OR REPLACE TRIGGER namatrigger AFTER/BEFORE INSERT/UPDATE/DELETE ON namatable FOR EACH ROW BEGIN Perintah/query yang dikerjakan; END;

  Praktek :  Buatlah tabel HisBarang dengan stuktur sebagai berikut:

  HKode_barang char(6) HNama_barang varchar2(25) HSatuan_barang varchar2(20) HStok_barang number(4) Htanggal_hapus Datetime

  • Primary key (PK) adalah field kode_barang

   Buatlah trigger thapusbarang yang berfungsi untuk memasukkan data secara otomatis kedalam table hisbarang ketika ada query delete pada table barang

  CREATE OR REPLACE TRIGGER thapusbarang AFTER DELETE ON barang FOR EACH ROW BEGIN

  INSERT INTO HisBarang Values (:Old.Kode_barang,:Old.Nama_barang,:Old.Satuan_barang,:old.stok_barang,date()); END;

   Hapus salah satu data pada table barang  Lihat data pada table HisBarang