Tujuan

SQL Plus, adalah antarmuka SQL untuk RDBMS Oracle. Pada akhir 20 hari, Anda akan memahami unsur-unsur berikut dari SQL Plus:

  • Cara menggunakan buffer SQL Plus
  • Bagaimana format laporan menarik
  • Bagaimana memanipulasi tanggal
  • Bagaimana membuat query interaktif
  • Bagaimana membangun laporan lanjutan
  • Cara menggunakan fungsi deCODE kuat

Pengenalan

SQL Plus dominasi Oracle di pasar database relasional dan karena kekuatan dan fleksibilitas SQL Plus menawarkan kepada pengguna database. SQL Plus menyerupai Transact-SQL  “-Transact SQL: Sebuah Pengantar” dalam banyak hal. Kedua implementasi memenuhi standar ANSI SQL pada umumnya, yang masih kerangka pelaksanaan apapun.

Perintah SQL Plus dapat meningkatkan sesi SQL dan meningkatkan format query dari database. SQL * Plus juga dapat laporan format, seperti seorang penulis laporan khusus. SQL * Plus suplemen baik SQL standar dan PL / SQL dan programmer database relasional membantu mengumpulkan data yang berada dalam format yang diinginkan.

SQL Plus Buffer

SQL Plus adalah penyangga daerah yang menyimpan perintah yang secara khusus digunakan untuk sesi tertentu SQL Anda. Perintah-perintah ini termasuk pernyataan SQL dijalankan baru-baru ini yang paling dan perintah yang telah digunakan untuk menyesuaikan sesi SQL Anda, seperti format perintah dan tugas variabel. buffer ini seperti memori jangka pendek. Berikut adalah beberapa perintah SQL buffer umum paling:

  • line_number DAFTAR – Daftar garis dari pernyataan dalam buffer dan menunjuk sebagai baris.
  • Ganti / old_value / new_value – Perubahan old_value untuk new_value pada baris saat ini dalam buffer.
  • APPEND teks – menambahkan teks ke baris saat ini dalam buffer.
  • DEL – Menghapus baris saat ini dalam buffer.
  • SAVE newfil e – Menyimpan pernyataan SQL dalam buffer ke sebuah file.
  • GET nama file – Gets file SQL dan tempat ke dalam buffer.
  • / – Melaksanakan perintah SQL dalam buffer.

Kita mulai dengan pernyataan SQL sederhana:

INPUT:
SQL> pilih * 
    2 dari produk 
    3 mana> unit_cost 25;
OUTPUT:
  PRO PRODUCT_NAME UNIT_COST 
  --- ------------------------------ --------- 
  P01 MICKEY MOUSE LAMP 29,95 
  P06 REFERENSI SQL COMMAND 29,99 
  P07 tas KULIT HITAM 99,99 

DAFTAR Perintah SQL dieksekusi daftar laporan baru-baru ini yang paling dalam buffer. Output hanya akan ditampilkan laporan.

  SQL> Daftar 
    1 pilih * 
    2 dari produk 
    3 * mana unit_cost> 25 
ANALISIS:

Perhatikan bahwa setiap garis bernomor. nomor Line adalah penting dalam buffer, mereka bertindak sebagai pointer yang memungkinkan Anda untuk mengubah baris tertentu dari laporan Anda menggunakan SQL PLUS buffer. Buffer SQL * Plus adalah tidak editor layar penuh; setelah Anda tekan Enter, Anda tidak dapat menggunakan kursor ke baris bergerak ke atas, seperti ditunjukkan dalam contoh berikut.

INPUT:
  SQL> pilih * 
    2 dari produk 
    3 di mana 25> unit_cost 
    4 / 

CATATAN: Seperti dengan perintah SQL, Anda dapat mengeluarkan perintah SQL * Plus baik huruf atau huruf kecil.



TIP: Anda dapat menyingkat SQL * paling Plus perintah, misalnya, DAFTAR bisa disingkat l.


Anda dapat pindah ke baris tertentu dari buffer dengan menempatkan nomor baris setelah l:

INPUT:
  SQL> l3 

    3 * mana unit_cost> 25 
ANALISIS:

Perhatikan bintang setelah jumlah baris 3. asterisk ini menunjukkan nomor baris. dekat Perhatikan penempatan asterisk di itu contoh hari ini. Setiap kali garis ditandai dengan bintang, Anda dapat membuat perubahan pada garis itu.

Karena Anda tahu bahwa Anda adalah baris 3, Anda bebas untuk membuat perubahan. Sintaks untuk perintah Ganti adalah sebagai berikut:

Sintaks:
  Ganti / old_value / new_value

atau

  C / old_value / new_value
INPUT:
 SQL> c /> / <
OUTPUT:
  3 * mana unit_cost <25
INPUT:
  SQL> l
OUTPUT:
  1 pilih * 
    2 dari produk 
    3 * mana unit_cost <25 
ANALISIS:

Tanda dari yang lebih besar (>) telah diubah menjadi kurang dari (<) pada baris 3. Perhatikan setelah perubahan dibuat bahwa itu diubah garis baru ditampilkan. Jika Anda perintah DAFTAR ataul, Anda dapat melihat laporan lengkap. Sekarang jalankan perintah berikut:

INPUT:
  SQL> /
OUTPUT:
  PRO UNIT_COST PRODUCT_NAME 
  --- ------------------------------ --------- 
  P02 NO 2 PENSIL - 20 PACK 1,99 
  P03 KOPI MUG 6,95 
  P04 FAR SIDE KALENDER 10,5 
  P05 ALAM KALENDER 12,99 
ANALISIS:

Garis miring pada> SQL prompt menjalankan pernyataan yang ada di dalam buffer.

INPUT:
  SQL> l
OUTPUT:
  1 memilih * 
    Dari produk 2 
    3 * mana unit_cost <25 

Sekarang, Anda dapat menambahkan baris ke pernyataan Anda dengan mengetikkan nomor baris baru di SQL> prompt dan memasukkan teks. Setelah Anda membuat penambahan, mendapatkan daftar pernyataan penuh. Berikut ini contohnya:

INPUT:
  SQL> 4 order by unit_cost 
  SQL> 1
OUTPUT:
  1 pilih * 
    2 dari produk 
    3 di mana 25 <unit_cost 
    4 * pesanan oleh unit_cost 
ANALISIS:

Menghapus baris lebih mudah daripada menambahkan baris. Cukup ketik DEL 4 pada> SQL prompt untuk menghapus garis 4. Sekarang daftar laporan lain untuk memverifikasi bahwa garis itu hilang.

INPUT:
  SQL> DEL4 
  SQL> l
OUTPUT:
  1 pilih * 
    2 dari produk 
    3 * mana unit_cost <25 

Cara lain untuk menambahkan satu atau lebih baris pernyataan Anda adalah dengan menggunakan perintah INPUT. Seperti yang dapat Anda lihat pada daftar sebelumnya, nomor baris saat ini adalah 3. Pada jenis input prompt dan kemudian tekan Enter. Sekarang Anda dapat mulai mengetik teks. Setiap kali Anda menekan Enter, baris lain akan dibuat. Jika Anda tekan Enter dua kali, Anda akan mendapatkan lagi> SQL prompt. Sekarang jika Anda menampilkan daftar pernyataan, seperti pada contoh berikut, Anda dapat melihat bahwa garis 4 telah ditambahkan.

INPUT:
 > 4i input SQL dan product_id = 'P01' 5i SQL> l
OUTPUT:
  1 pilih * 
    2 dari produk 
    3 di mana 25 <unit_cost 
    4 dan product_id = 'P01' 
    5 * pesanan oleh unit_cost 

Untuk menambahkan teks ke baris saat ini, perintah APPEND diikuti oleh teks. Bandingkan output dalam contoh sebelumnya – nomor baris saat ini adalah 5 – dengan contoh berikut.

INPUT:
  SQL> desc append
OUTPUT:
  5 * pesanan oleh unit_cost desc 

Sekarang mendapatkan daftar lengkap dari pernyataan Anda:

INPUT:
  SQL> l
OUTPUT:
  1 pilih * 
    2 dari produk 
    3 di mana 25 <unit_cost 
    4 dan product_id = 'P01' 
    5 * pesanan oleh unit_cost desc 

Misalkan Anda ingin menghapus bersih. Anda dapat menghapus isi dari buffer SQL * Plus dengan mengeluarkan perintah CLEAR BUFFER. Seperti yang akan Anda lihat nanti, Anda juga dapat menggunakan perintah CLEAR untuk menghapus pengaturan spesifik dari buffer, yaitu kolom informasi format dan menghitung pada laporan.

INPUT:
  SQL> buffer jelas
OUTPUT:
  buffer dibersihkan
INPUT:
  SQL> Aku
OUTPUT:
  Tidak ada baris dalam buffer SQL. 
ANALISIS:

Jelas, Anda tidak akan dapat mengambil apa pun dari buffer kosong. Anda tidak menguasai, tapi Anda harus dapat melakukan manuver dengan mudah dengan memanipulasi perintah Anda dalam buffer.

Para DESCRIBE Command

Perintah DESCRIBE berguna memungkinkan Anda untuk melihat struktur tabel dengan cepat tanpa harus membuat permintaan terhadap data kamus.

Sintaks:
  DESC [Ribe] table_name 

Lihatlah dua tabel yang akan Anda gunakan sepanjang hari.

INPUT:
  SQL> menggambarkan perintah
OUTPUT:
  Nama Null?  Jenis 
   ------------------------------- -------- ---- 
   ORDER_NUM TIDAK NULL NUMBER (2) 
   PELANGGAN NOT NULL VARCHAR2 (30) 
   PRODUCT_ID NOT NULL CHAR (3) 
   PRODUCT_QTY TIDAK NULL NUMBER (5) 
   DELIVERY_DATE DATE 

Pernyataan berikut menggunakan singkatan bukan DESCRIBE DESC:

INPUT:
  SQL> desc produk
OUTPUT:
  Nama Null?  Jenis 
   ------------------------------- -------- ---- 
   PRODUCT_ID NOT NULL VARCHAR2 (3) 
   PRODUCT_NAME NOT NULL VARCHAR2 (30) 
   UNIT_COST TIDAK NULL NUMBER (8,2) 
ANALISIS:

DESC menampilkan setiap nama kolom, yang kolom harus berisi data (NULLNULL TIDAK), dan jenis data untuk setiap kolom. Jika Anda menulis banyak permintaan, Anda akan menemukan bahwa beberapa hari berlalu tanpa menggunakan perintah ini. Selama waktu yang lama, perintah ini dapat menghemat waktu berjam-jam pemrograman. Tanpa DESCRIBE Anda harus mencari dokumentasi proyek atau bahkan manual database yang berisi daftar data tabel kamus untuk mendapatkan informasi ini.

Perintah SHOW

Menampilkan perintah SHOW's saat ini pengaturan sesi, dari format perintah untuk siapa Anda SEMUA. SHOW menampilkan semua pengaturan. Diskusi ini mencakup beberapa pengaturan yang paling umum.

INPUT:
  SQL> tampilkan semua
OUTPUT:
  appinfo ON dan set ke "SQL * Plus" 
  arraysize 15 
  autocommit OFF 
  autoprint OFF 
  autotrace OFF 
  blockterminator "."  (Hex 2e) 
  btitle OFF dan beberapa karakter 1 dari SELECT pernyataan berikutnya 
  closecursor OFF 
  colsep "" 
  cmdsep OFF 
  kompatibilitas versi asli 
  penggabungan strings "."  (Hex 2e) 
  copycommit 0 
  copytypecheck ON 
  crt "" 
  define "&" (hex 26) 
  echo OFF 
  editfile "afiedt.buf" 
  tertanam OFF 
  melarikan diri OFF 
  ON umpan balik untuk 6 atau lebih baris 
  flagger OFF 
  ON siram 
  pos ON 
  headsep "|" (hex 7c) 
  linesize 100 
  lno 6 
  panjang 80 
  longchunksize 80 
  maxdata 60.000 
  newpage 1 
  null "" 
  numformat "" 
  numwidth 9 
  PageSize 24 
  jeda MATI 
  pno 1 
  recsep Wrap 
  recsepchar "" (hex 20) 
  rilis 703020200 
  repheader OFF dan adalah NULL 
  repfooter OFF dan adalah NULL 
  serveroutput OFF 
  showmode OFF 
  spul OFF 
  sqlcase CAMPURAN 
  sqlcode 1007 
  sqlcontinue ">" 
  sqlnumber ON 
  sqlprefix "#" (hex 23) 
  sqlprompt "SQL>" 
  sqlterminator ";" (hex 3b) 
  akhiran "SQL" 
  tab ON 
  termout ON 
  waktu OFF 
  waktu OFF 
  trimout ON 
  trimspool OFF 
  ttitle OFF dan beberapa karakter 1 dari SELECT pernyataan berikutnya 
  menggarisbawahi "-" (hex 2d) 
  pengguna adalah "Ryan" 
  memverifikasi ON 
  wrap: baris akan dibungkus 

Perintah SHOW menampilkan pengaturan tertentu dimasukkan oleh pengguna. Misalnya, Anda memiliki akses ke beberapa database user ID dan Anda ingin melihat bagaimana Anda logon. Anda dapat mengeluarkan perintah berikut:

INPUT:
  SQL> user,
OUTPUT:
  pengguna adalah "Ryan" 

Untuk melihat ukuran output baris saat ini, Anda akan ketik:

INPUT:
  SQL> show linesize
OUTPUT:
  linesize 100 

Perintah file

Berbagai perintah memungkinkan Anda untuk memanipulasi file di SQL * Plus. Perintah-perintah ini termasuk membuat file, mengedit file menggunakan layar editor penuh sebagai lawan menggunakan buffer SQL * Plus, dan mengarahkan output ke sebuah file. Anda juga perlu mengetahui cara untuk menjalankan file SQL setelah dibuat.

Para SAVE, GET, dan EDIT Perintah

Perintah SAVE menyimpan isi dari pernyataan SQL dalam buffer ke sebuah file yang namanya Anda tentukan. Sebagai contoh:

INPUT:
  SQL> pilih * 
    2 dari produk 
    3 di mana 25 <unit_cost 

  SQL> menyimpan query1.sql
OUTPUT:
  Dibuat file query1.sql 
ANALISIS:

Setelah file telah disimpan, Anda dapat menggunakan perintah GET ke daftar file. GET sangat mirip dengan perintah LIST. Hanya ingat bahwa GET berkaitan dengan laporan yang telah disimpan ke file, sedangkan transaksi DAFTAR dengan pernyataan yang disimpan dalam buffer.

INPUT:
  SQL> mendapatkan query1
OUTPUT:
  1 pilih * 
    2 dari produk 
    3 * mana unit_cost <25 

Anda dapat menggunakan perintah EDIT baik untuk membuat file baru atau untuk mengedit file yang ada. Ketika mengeluarkan perintah ini, Anda akan dibawa ke sebuah layar editor penuh, mungkin lebih dari Notepad di Windows. Anda akan menemukan bahwa biasanya lebih mudah untuk memodifikasi file dengan EDIT selain melalui buffer, terutama jika Anda sedang berurusan dengan pernyataan atau kompleks besar. Gambar 20,1 menunjukkan contoh dari perintah EDIT.

INPUT:
  SQL> edit query1.sql 

Gambar 20.1.
Mengedit file di SQL * Plus.

Memulai sebuah File

Sekarang Anda tahu cara membuat dan mengedit file SQL, perintah untuk menjalankannya sederhana. Hal ini dapat mengambil salah satu dari bentuk sebagai berikut:

Sintaks:
  MULAI Nama berkas 

atau

  STA nama file 

atau

  @ Nama file 

TIP: Perintah yang tidak sensitif huruf.


INPUT:
  SQL> mulai query1.sql
OUTPUT:
  PRO PRODUCT_NAME UNIT_COST 
  --- ------------------------------ --------- 
  P02 NO 2 PENSIL - 20 PACK 1,99 
  P03 KOPI MUG 6,95 
  P04 FAR SIDE KALENDER 10,5 
  P05 ALAM KALENDER 12,99 

CATATAN: Anda tidak perlu untuk menentukan ekstensi file Plus. Sql untuk memulai file dari SQL *. Database mengasumsikan bahwa file yang Anda telah melaksanakan ekstensi ini. Demikian pula, jika Anda membuat file dari> SQL prompt atau menggunakan SAVE, GET, atau EDIT, Anda tidak perlu menyertakan ekstensi jika. Sql.


INPUT:
  SQL> @ query1
OUTPUT:
 PRO PRODUCT_NAME UNIT_COST --- ------------------------------ --------- P02 NO 2 PENSIL - 20 PACK 1,99 6,95 MUG KOPI P03 P04 FAR SIDE KALENDER 10,5 P05 KALENDER SIFAT 12,99
INPUT:
  SQL> jalankan query1
OUTPUT:
  1 pilih * 
    2 dari produk 
    3 * mana unit_cost <25 

  PRO PRODUCT_NAME UNIT_COST 
  --- ------------------------------ --------- 
  P02 NO 2 PENSIL - 20 PACK 1,99 
  P03 KOPI MUG 6,95 
  P04 FAR SIDE KALENDER 10,5 
  P05 ALAM KALENDER 12,99 

Perhatikan bahwa ketika Anda menggunakan RUN untuk mengeksekusi query, pernyataan tersebut menggema, atau ditampilkan pada layar.

Permintaan spooling Output

Melihat hasil kueri Anda di layar sangat mudah, tetapi bagaimana jika Anda ingin menyimpan hasil untuk referensi di kemudian hari atau Anda ingin mencetak file? Perintah spool memungkinkan Anda untuk mengirim output ke file yang ditentukan. Jika file tersebut tidak ada, maka akan dibuat. Jika file ada, maka akan ditimpa, seperti yang ditunjukkan pada Gambar 20,2.

INPUT:
  SQL> spool prod.lst 
  SQL> pilih * 
    2 dari produk;
OUTPUT:
  PRO PRODUCT_NAME UNIT_COST 
  --- ------------------------------ --------- 
  P01 MICKEY MOUSE LAMP 29,95 
  P02 NO 2 PENSIL - 20 PACK 1,99 
  P03 KOPI MUG 6,95 
  P04 FAR SIDE KALENDER 10,5 
  P05 ALAM KALENDER 12,99 
  P06 REFERENSI SQL COMMAND 29,99 
  P07 tas KULIT HITAM 99,99 

  7 baris yang dipilih.
INPUT:
  SQL> spool off 
  SQL> edit prod.lst 
ANALISIS:

Output pada Gambar 20,2 adalah SQL * Plus file. Anda harus menggunakan perintah MATI spool untuk menghentikan spooling ke sebuah file. Ketika Anda keluar dari SQL * Plus, spool MATIotomatis. Tapi jika Anda tidak keluar dan Anda terus bekerja di SQL * Plus, segala sesuatu yang Anda lakukan akan spooled ke file Anda sampai Anda mengeluarkan perintah spool OFF.

Gambar 20,2.
Spooling output Anda ke sebuah file.

SET Perintah

SET perintah dalam perubahan Oracle SQL * Plus pengaturan sesi. Dengan menggunakan perintah ini, Anda dapat menyesuaikan lingkungan kerja SQL dan aktifkan opsi untuk membuat hasil output Anda lebih rapi. Anda dapat mengendalikan banyak dari perintah SET dengan memutar pilihan atau menonaktifkan.

Untuk melihat bagaimana SET perintah bekerja, melakukan pilih sederhana:

INPUT:
  SQL> pilih * 
    2 dari produk;
OUTPUT:
  PRO PRODUCT_NAME UNIT_COST 
  --- ------------------------------ --------- 
  P01 MICKEY MOUSE LAMP 29,95 
  P02 NO 2 PENCILS - 20 PACK 1,99 
  P03 KOPI MUG 6,95 
  P04 FAR SIDE 10,5 KALENDER 
  P05 ALAM KALENDER 12,99 
  P06 REFERENSI SQL COMMAND 29,99 
  P07 tas KULIT HITAM 99,99 

  7 baris yang dipilih. 
ANALISIS:

Baris terakhir output

  7 baris yang dipilih. 

disebut umpan balik, yang merupakan pengaturan SQL yang dapat dimodifikasi. Pengaturan ini default, dan dalam hal ini default untuk KOMENTAR aktif. Jika Anda ingin, Anda bisa mengetik

  KOMENTAR SET ON 

sebelum mengeluarkan pernyataan Anda pilih. Sekarang anggaplah bahwa Anda tidak ingin melihat umpan balik, seperti yang terjadi untuk kasus dengan beberapa laporan, terutama laporan diringkas dengan perhitungan.

INPUT:
  SQL> set feedback off 
  SQL> pilih * 
    2 dari produk;
OUTPUT:
  PRO PRODUCT_NAME UNIT_COST 
  --- ------------------------------ --------- 
  P01 MICKEY MOUSE LAMP 29,95 
  P02 NO 2 PENSIL - 20 PACK 1,99 
  P03 KOPI MUG 6,95 
  P04 FAR SIDE KALENDER 10,5 
  P05 ALAM KALENDER 12,99 
  P06 REFERENSI SQL COMMAND 29,99 
  P07 tas KULIT HITAM 99,99 
ANALISIS:

KOMENTAR SET OFF mematikan umpan balik layar.

Dalam beberapa kasus, Anda mungkin ingin menekan judul kolom dari yang ditampilkan di laporan. Pengaturan ini disebut pos, yang juga dapat diatur ON atau OFF.

INPUT:
  SQL> set berangkat 
  SQL> /
OUTPUT:
  P01 MICKEY MOUSE LAMP 29,95 
  P02 NO 2 PENSIL - 20 PACK 1,99 
  P03 KOPI MUG 6,95 
  P04 FAR SIDE KALENDER 10,5 
  P05 ALAM KALENDER 12,99 
  P06 REFERENSI SQL COMMAND 29,99 
  P07 tas KULIT HITAM 99,99 
ANALISIS:

Judul kolom telah dieliminasi dari output. Hanya data yang sebenarnya akan ditampilkan.

Anda dapat mengubah beragam pengaturan untuk memanipulasi bagaimana output ditampilkan. Salah satu pilihan, LINESIZE, memungkinkan Anda untuk menentukan panjang setiap baris output Anda. Sebuah ukuran yang kecil akan lebih besar kemungkinan menyebabkan output Anda untuk membungkus; meningkatkan ukuran garis mungkin diperlukan untuk menekan pembungkus dari garis yang melebihi 80 karakter default. Kecuali Anda menggunakan komputer kertas lebar (11 x 14), Anda mungkin ingin mencetak lansekap laporan Anda jika Anda menggunakan ukuran garis lebih besar dari 80. Contoh berikut menunjukkan penggunaan LINESIZE.

INPUT:
  SQL> set linesize 40 
  SQL> /
OUTPUT:
  P01 MICKEY MOUSE LAMP 
      29,95 

  P02 NO 2 PENSIL - 20 PACK 
       1,99 

  P03 KOPI MUG 
       6,95 

  P04 FAR SIDE KALENDER 
       10,5 

  P05 ALAM KALENDER 
      12,99 

  P06 Perintah SQL REFERENSI 
      29,99 

  P07 KULIT koper hitam 

  99,99 

Anda juga dapat menyesuaikan ukuran setiap halaman output Anda dengan menggunakan PageSize pengaturan. Jika Anda hanya melihat output di layar, pengaturan yang terbaik untuk PageSizeadalah 23, yang menghilangkan istirahat beberapa halaman per layar. Dalam contoh berikut PageSize disetel ke nomor rendah untuk menunjukkan apa yang akan terjadi pada setiap merusak halaman.

INPUT:
  SQL> set linesize 80 
  SQL> set pos pada 
  SQL> set PageSize 7 
  SQL> /
OUTPUT:
  PRO PRODUCT_NAME UNIT_COST 
  - ------------------------------ -------- 
  P01 MICKEY MOUSE LAMP 29,95 
  P02 NO 2 PENSIL - 20 PACK 1,99 
  P03 KOPI MUG 6,95 
  P04 FAR SIDE KALENDER 10,5 

  PRO PRODUCT_NAME UNIT_COST 
  - ------------------------------ -------- 
  P05 ALAM KALENDER 12,99 
  P06 REFERENSI SQL COMMAND 29,99 
  P07 tas KULIT HITAM 99,99 
ANALISIS:

Menggunakan pengaturan PageSize 7, jumlah baris maksimum yang mungkin muncul pada satu halaman tujuh. judul kolom baru akan mencetak otomatis pada awal masing-masing halaman baru.

The TIME pengaturan menampilkan waktu saat ini sebagai bagian dari Anda SQL> prompt.

INPUT:
  SQL> set waktu
OUTPUT:
  08:52:02 SQL> 

Ini hanya beberapa pilihan SET, tetapi mereka semua pada dasarnya dimanipulasi dengan cara yang sama. Seperti yang Anda lihat dari daftar perintah SET luas dalam output sebelumnya dari laporan SEMUA SHOW, Anda memiliki banyak pilihan ketika Anda menyesuaikan sesi SQL * Plus. Percobaan dengan opsi masing-masing dan melihat apa yang paling Anda sukai. Anda mungkin akan menjaga default untuk banyak pilihan, tetapi Anda mungkin menemukan diri Anda sering mengubah pilihan lainnya berdasarkan skenario yang berbeda.

LOGIN.SQL File

Bila Anda log out dari SQL Plus, semua pengaturan sesi Anda akan dihapus. Ketika Anda masuk kembali, pengaturan Anda harus reinitialized jika mereka tidak default kecuali Anda menggunakan file login.sql. File ini secara otomatis dijalankan ketika Anda mendaftar ke SQL Plus. Inisialisasi file ini mirip dengan file autoexec.bat pada PC Anda atau Anda. Profil di lingkungan Korn Shell UNIX.

Dalam pribadi Oracle7 Anda dapat menggunakan perintah EDIT untuk membuat file Login.sql, seperti yang ditunjukkan pada Gambar 20,3.

Gambar 20,3.
Anda Login.sql file.

Ketika Anda logon ke SQL * Plus, di sini adalah apa yang Anda akan melihat:

  SQL * Plus: Release 3.3.2.0.2 - Produksi pada Minggu 11 Mei 20:37:58 1997 

  Copyright (c) 1979 Oracle Corporation, 1994.  All rights reserved. 

  Masukkan password: **** 

  Hubungkan ke: 
  Pribadi Oracle7 Release 7.3.2.2.0 - Release Produksi 
  Dengan didistribusikan dan pilihan replikasi 
  PL SQL Release / 2.3.2.0.0 - Produksi 

  'HELLO! 
  ------- 
  HELLO! 

  20:38:02 SQL> 

CLEAR Command

Di SQL * Plus, pengaturan dihapus oleh log off, atau keluar dari SQL * Plus. Beberapa pengaturan Anda juga dapat dibersihkan dengan menggunakan perintah CLEAR, seperti ditunjukkan pada contoh berikut.

INPUT:
  SQL> col jelas
OUTPUT:
 kolom dibersihkan
INPUT:
  SQL> menyingsing
OUTPUT:
  istirahat dibersihkan
INPUT:
  SQL> jelas menghitung
OUTPUT:
  menghitung dibersihkan 

Memformat Output Anda

SQL Plus juga memiliki perintah yang memungkinkan Anda untuk mengatur output di hampir format apapun. Bagian ini mencakup perintah format dasar untuk judul laporan, judul kolom dan format, dan memberikan kolom nilai baru “.”

TTITLE dan BTITLE

TTITLE dan BTITLE memungkinkan Anda untuk membuat judul pada laporan output. Sebelumnya hari meliputi permintaan dan, tapi dengan SQL * Plus Anda dapat mengkonversi output sederhana menjadi laporan rapi. Perintah TTITLE tempat judul di bagian atas setiap halaman output atau laporan. BTITLE tempat judul di bagian bawah setiap halaman laporan Anda. Banyak pilihan yang tersedia dengan masing-masing perintah, tetapi itu presentasi hari ini mencakup esensi. Berikut adalah sintaks dasar TTITLE dan BTITLE:

Sintaks:
  TTITLE [| kiri tengah |] kanan 'teks' [&] variabel [skip] n 
  BTITLE [| kiri tengah |] kanan 'teks' [&] variabel [skip] n
INPUT:
  ttitle 'A DAFTAR SQL> PRODUK' 
  SQL btitle> 'YANG SEMUA' 
  SQL> set PageSize 15 
  SQL> /
OUTPUT:
  Wed 7 Mei 
  halaman 1 
                                 Sebuah DAFTAR PRODUK 

  PRO PRODUCT_NAME UNIT_COST 
  - ------------------------------ --------- 
  P01 MICKEY MOUSE LAMP 29,95 
  P02 NO 2 PENSIL - 20 PACK 1,99 
  P03 KOPI MUG 6,95 
  P04 FAR SIDE KALENDER 10,5 
  P05 ALAM KALENDER 12,99 
  P06 REFERENSI SQL COMMAND 29,99 
  P07 tas KULIT HITAM 99,99 

                                    YANG SEMUA 

  7 baris yang dipilih. 
ANALISIS:

Judul muncul di bagian atas halaman dan di bagian bawah. Banyak orang menggunakan judul bawah untuk blok tanda tangan untuk memverifikasi atau membuat perubahan terhadap data pada laporan tersebut,. Juga di judul atas tanggal dan nomor halaman adalah bagian dari judul.

Memformat Kolom (KOLOM, pos, FORMAT)

Memformat kolom mengacu pada kolom yang akan ditampilkan atau kolom yang terdaftar setelah SELECT dalam pernyataan SQL. The KOLOM, menuju, dan perintah FORMAT judul kolom mengubah nama dan mengontrol cara data muncul dalam laporan.

The COL [UMN] perintah biasanya digunakan dengan baik perintah pos atau perintah FORMAT. KOLOM mendefinisikan kolom yang ingin Anda format. Kolom yang Anda mendefinisikan harus muncul persis seperti yang diketik dalam pernyataan SELECT. Anda dapat menggunakan kolom alias bukan nama kolom penuh untuk mengidentifikasi kolom dengan perintah ini.

Bila menggunakan perintah pos, Anda harus menggunakan perintah KOLOM untuk mengidentifikasi kolom yang menempatkan pos.

Bila menggunakan perintah FORMAT, Anda harus menggunakan perintah KOLOM untuk mengidentifikasi kolom yang ingin Anda format.

Sintaks dasar untuk menggunakan ketiga perintah berikut. Perhatikan bahwa judul dan perintah FORMAT adalah opsional. Dalam sintaks FORMAT, Anda harus menggunakan jika data memiliki format karakter atau menggunakan 0 s dan 9 s untuk menentukan data jenis nomor. Desimal juga dapat digunakan dengan nilai numerik. Nomor di sebelah kanan adalah lebar total yang Anda ingin membolehkan untuk kolom tertentu.

Sintaks:
  COL [UMN] column_name HEA [Ding] "new_heading" UNTUK [MAT] [a1 | 99,99] 

Pernyataan SELECT sederhana yang berikut menunjukkan format kolom. Kolom ditetapkan adalah tipe data NUMBER, dan kami ingin menampilkan jumlah dalam format desimal dengan tanda dolar.

INPUT:
  SQL> unit_cost kolom judul "HARGA" Format $ 99,99 
  SQL> PRODUCT_NAME pilih, unit_cost 
    2 dari produk;
OUTPUT:
  HARGA PRODUCT_NAME 
  ------------------------------ ------- 
  MICKEY MOUSE LAMP $ 29,95 
  NO 2 PENSIL - 20 PACK 1,99 $ 
  KOPI MUG $ 6,95 
  FAR SIDE KALENDER $ 10,50 
  ALAM KALENDER $ 12,99 
  Perintah SQL REFERENSI $ 29,99 
  KULIT HITAM tas $ 99,99 

  7 baris yang dipilih. 
ANALISIS:

Karena kita menggunakan format 99,99, jumlah maksimal yang akan ditampilkan adalah 99,99.

Sekarang coba menyingkat perintah. Berikut perintah sesuatu yang rapi dapat Anda lakukan dengan memimpin:

INPUT:
  SQL> HEA unit_cost pelana "UNIT | BIAYA" untuk $ 09,99 
  SQL> PRODUCT_NAME pilih, unit_cost 
    2 dari produk;
OUTPUT:
  PRODUCT_NAME UNIT BIAYA 
  ---------------------------- --------- 
  MICKEY MOUSE LAMP $ 29,95 
  NO 2 PENSIL - 20 PACK $ 01,99 
  KOPI MUG $ 06,95 
  FAR SIDE KALENDER $ 10,50 
  ALAM KALENDER $ 12,99 
  Perintah SQL REFERENSI $ 29,99 
  Briefcase KULIT HITAM $ 99,99 

  7 baris yang dipilih. 
ANALISIS:

Tanda pipa (|) di pos komando pasukan teks berikut dari kolom pos yang akan dicetak pada baris berikutnya. Anda dapat menggunakan tanda-tanda beberapa pipa. Teknik ini berguna bila lebar laporan Anda mulai untuk menekan batas dari garis ukuran maksimum yang tersedia. Format kolom biaya unit sekarang 09,99. Jumlah maksimum yang ditampilkan masih 99,99, tapi sekarang seorang 0 akan mendahului semua bilangan kurang dari 10. Anda dapat memilih format ini karena membuat jumlah dolar tampak seragam.

Laporan dan Ringkasan Grup

Apa yang akan melaporkan tanpa ringkasan dan perhitungan? Katakan saja bahwa Anda akan memiliki satu programmer frustrasi. perintah tertentu dalam SQL * Plus memungkinkan Anda untuk membagi laporan Anda ke dalam satu atau lebih jenis kelompok dan melakukan ringkasan atau perhitungan pada setiap kelompok. BREAK adalah sedikit berbeda dari standar kelompok fungsi SQL, seperti COUNT () dan SUM (). Fungsi ini digunakan dengan laporan dan ringkasan kelompok untuk menyediakan laporan yang lebih lengkap.

BREAK ON

The BREAK ON istirahat kembali perintah baris data dari pernyataan SQL ke dalam satu atau lebih kelompok. Jika Anda istirahat pada nama pelanggan, maka secara default nama pelanggan akan dicetak hanya pertama kalinya ia kembali dan dibiarkan kosong dengan masing-masing baris data dengan nama yang sesuai. Berikut adalah sintaks dasar sangat dari BREAK ON perintah:

Sintaks:
  Bre [AK] [ON ON column1 column2 ...][ n SKIP | PAGE] [GKG | NODUP] 

Anda juga bisa pecah pada LAPORAN dan ROW. Breaking di LAPORAN melakukan perhitungan pada laporan secara keseluruhan, sedangkan melanggar ROW melakukan perhitungan pada setiap kelompok baris.

Opsi SKIP memungkinkan Anda untuk melewatkan beberapa baris atau halaman pada setiap kelompok atau. GKG NODUP menunjukkan apakah Anda ingin duplikat yang akan dicetak dalam setiap kelompok. Default-nya adalah NODUP.

Ini adalah suatu contoh:

INPUT:
  SQL> col unit_cost kepala 'UNIT | BIAYA' untuk $ 09,99 
  SQL> break pada pelanggan 
  SQL> o.customer pilih, p.product_name, p.unit_cost 
    2 dari perintah o, 
    3 produk p 
    4 mana o.product_id = p.product_id 
    5 pesanan oleh pelanggan;
OUTPUT:
 PRODUCT_NAME PELANGGAN UNIT BIAYA ------------------------------ ---------------- ------------ --------- JONES dan SONS LAMP MICKEY MOUSE $ 29,95 NO 2 PENSIL - 20 PACK $ 01,99 CONSULTING GROUP KOPI MUG $ 06,95 Parkit LAMP MICKEY MOUSE $ 29,95 NO 2 PENSIL - 20 PACK $ 01,99 SQL COMMAND REFERENSI $ 29,99 HITAM KULIT Briefcase $ 99,99 FAR SIDE KALENDER $ 10,50 PLEWSKY MOBILE pencucian MICKEY MOUSE LAMP $ 29,95 HITAM KULIT Briefcase $ 99,99 HITAM KULIT Briefcase $ 99,99 NO 2 PENSIL - 20 PACK $ 01,99 NO 2 PENSIL - 20 PACK $ 01,99 13 baris yang dipilih.

Setiap pelanggan unik adalah dicetak hanya sekali. Laporan ini lebih mudah untuk membaca dari satu di mana duplikat nama pelanggan dicetak. Anda harus memesan hasil Anda dalam urutan yang sama seperti kolom (s) yang Anda melanggar untuk perintah BREAK untuk bekerja.

Menghitung

Perintah menghitung digunakan dengan BREAK ON perintah. Hitunglah memungkinkan Anda untuk melakukan berbagai perhitungan pada setiap kelompok data dan / atau laporan keseluruhan.

Sintaks:
  COMP [UTE] fungsi OF column_or_alias ON column_or_row_or_report 

Beberapa fungsi yang lebih populer adalah

  • AVG – Menghitung nilai rata-rata pada setiap kelompok.
  • COUNT – Menghitung hitungan nilai pada masing-masing kelompok.
  • SUM – Menghitung jumlah nilai pada masing-masing kelompok.

Misalkan Anda ingin membuat laporan yang berisi daftar informasi dari tabel PRODUK dan menghitung biaya produk rata-rata pada laporan tersebut.

INPUT:
  SQL> break pada laporan 
  SQL> menghitung rata-rata dari unit_cost dalam laporan 
  SQL> pilih * 
    2 dari produk;
OUTPUT:
  PRO PRODUCT_NAME UNIT_COST 
  --- ------------------------------ --------- 
  P01 MICKEY MOUSE LAMP 29,95 
  P02 NO 2 PENSIL - 20 PACK 1,99 
  P03 KOPI MUG 6,95 
  P04 FAR SIDE KALENDER 10,50 
  P05 ALAM KALENDER 12,99 
  P06 REFERENSI SQL COMMAND 29,99 
  P07 tas KULIT HITAM 99,99 
                                     --------- 
  avg 27,48 
ANALISIS:

Anda dapat memperoleh informasi yang Anda inginkan dengan memecah di REPORT dan kemudian menghitung rata-rata dari unit_cost di REPORT.

Ingat perintah CLEAR? Sekarang menghapus menghitung terakhir dari buffer dan mulai lagi – tapi kali ini Anda ingin menghitung jumlah uang yang dikeluarkan oleh pelanggan masing-masing. Karena Anda tidak ingin melihat rata-rata lagi, Anda juga harus membersihkan menghitung.

INPUT:
 SQL> clear compute
OUTPUT:
 computes cleared

Sekarang menghapus BREAK terakhir. (Anda tidak benar-benar harus jelas BREAK dalam kasus ini karena Anda masih berniat untuk istirahat pada laporan.)

INPUT:
 SQL> clear break
OUTPUT:
 breaks cleared

Langkah selanjutnya adalah memasuki kembali istirahat dan menghitung cara Anda ingin mereka sekarang. Anda juga harus memformat ulang unit_cost kolom untuk mengakomodasi jumlah yang lebih besar karena Anda komputasi suatu jumlah unit_cost pada laporan tersebut.Anda perlu mengizinkan ruang untuk jumlah besar yang menggunakan format yang sama seperti kolom pada yang sedang berpikir. Jadi, Anda perlu menambahkan tempat lain di sebelah kiri desimal.

INPUT:
 SQL> col unit_cost hea 'UNIT|COST' for $099.99
SQL> break on report on customer skip 1
SQL>  compute sum of unit_cost on customer
SQL> compute sum of unit_cost on report

Now list the last SQL statement from the buffer.

INPUT:
 SQL> l
OUTPUT:
   1  select o.customer, p.product_name, p.unit_cost
  2  from orders o,
  3       products p
  4  where o.product_id = p.product_id
  5* order by customer
ANALISIS:

Now that you have verified that this statement is the one you want, you can execute it:

INPUT:
 SQL>  /
OUTPUT:
                                                                   UNIT
CUSTOMER                       PRODUCT_NAME                       COST
------------------------------ ------------------------------ --------
JONES and SONS                 MICKEY MOUSE LAMP               $029.95
                               NO 2 PENCILS - 20 PACK          $001.99
                               COFFEE MUG                      $006.95
******************************                                --------
sum                                                            $038.89

PARAKEET CONSULTING GROUP      MICKEY MOUSE LAMP               $029.95
                               NO 2 PENCILS - 20 PACK          $001.99
                               SQL COMMAND REFERENCE           $029.99
                               BLACK LEATHER BRIEFCASE         $099.99
                               FAR SIDE CALENDAR               $010.50
******************************                                --------
sum                                                            $172.42

PLEWSKY MOBILE CARWASH         MICKEY MOUSE LAMP               $029.95
                               BLACK LEATHER BRIEFCASE         $099.99
                               BLACK LEATHER BRIEFCASE         $099.99
                               NO 2 PENCILS - 20 PACK          $001.99
                               NO 2 PENCILS - 20 PACK          $001.99
******************************                                --------

                                                                    UNIT 
CUSTOMER                       PRODUCT_NAME                       COST
-----------------------------  ------------------------------ --------
sum                                                            $233.91
                                                                -------- 
sum                                                            $445.22

13 rows selected.
ANALISIS:

Contoh ini dihitung jumlah total yang dibelanjakan setiap pelanggan dan juga menghitung jumlah besar untuk semua pelanggan. Dengan sekarang Anda harus memahami dasar-dasar format kolom pengelo

Using Variables in SQL Plus

Tanpa benar-benar mendapatkan ke bahasa prosedural, Anda masih dapat mendefinisikan variabel dalam pernyataan SQL Anda. Anda dapat menggunakan opsi khusus di SQL * Plus (tercakup dalam bagian ini) untuk menerima masukan dari pengguna untuk melewati parameter ke dalam program SQL Anda.

Substitusi Variabel (&)

Ampersand (&) adalah karakter yang membutuhkan nilai untuk suatu variabel dalam suatu skrip SQL. Jika variabel tidak didefinisikan sebelumnya, pengguna akan diminta untuk memasukkan nilai.

INPUT:
  SQL> pilih * 
    2 dari & Tbl 
    3 / 

  Masukkan nilai untuk Tbl: produk 

  Pengguna memasukkan nilai "produk."
OUTPUT:
  tua 2: dari & Tbl 
  baru 2: dari produk 

  PRO PRODUCT_NAME UNIT_COST 
  --- ------------------------------ --------- 
  P01 MICKEY MOUSE LAMP 29,95 
  P02 NO 2 PENSIL - 20 PACK 1,99 
  P03 KOPI MUG 6,95 
  P04 FAR SIDE KALENDER 10,5 
  P05 ALAM KALENDER 12,99 
  P06 REFERENSI SQL COMMAND 29,99 
  P07 tas KULIT HITAM 99,99 

  7 baris yang dipilih. 
ANALISIS:

Nilai Produk ini diganti di tempat & Tbl dalam query interaktif “.”

DEFINE

Anda dapat menggunakan DEFINE untuk menempatkan nilai ke variabel dalam sebuah file skrip SQL. Jika anda mendefinisikan variabel Anda dalam script, pengguna tidak diminta untuk memasukkan nilai variabel saat runtime, karena mereka adalah jika Anda menggunakan &. Isu contoh berikut pernyataan SELECT yang sama seperti contoh sebelumnya, tetapi kali ini nilai Tbldidefinisikan dalam script.

INPUT:
  SQL> define Tbl produk = 
  SQL> pilih * 
    2 dari &TBL;
OUTPUT:
  tua 2: dari & Tbl 
  baru 2: dari produk 

  PRO PRODUCT_NAME UNIT_COST 
  --- ------------------------------ --------- 
  P01 MICKEY MOUSE LAMP 29,95 
  P02 NO 2 PENSIL - 20 PACK 1,99 
  P03 KOPI MUG 6,95 
  P04 FAR SIDE KALENDER 10,5 
  P05 ALAM KALENDER 12,99 
  P06 REFERENSI SQL COMMAND 29,99 
  P07 tas KULIT HITAM 99,99 

  7 baris yang dipilih. 
ANALISIS:

Kedua permintaan mencapai hasil yang sama. Bagian selanjutnya menjelaskan cara lain untuk meminta pengguna untuk parameter script.

MENERIMA

MENERIMA memungkinkan pengguna untuk memasukkan nilai untuk mengisi variabel pada script runtime. MENERIMA melakukan hal yang sama dengan & tanpa DEFINE tetapi sedikit lebih terkontrol. MENERIMA juga memungkinkan Anda untuk menerbitkan user-friendly prompt.

Contoh berikutnya mulai dengan mengosongkan buffer tersebut:

INPUT:
  SQL> buffer jelas
OUTPUT:
  buffer dibersihkan 

Kemudian menggunakan perintah INPUT untuk memasukkan pernyataan SQL baru ke dalam buffer. Jika Anda mulai mengetik laporan Anda tanpa mengeluarkan perintah INPUT pertama, Anda akan diminta untuk memasukkan nilai untuk newtitle pertama. Atau, Anda bisa pergi langsung ke sebuah file baru dan menulis pernyataan Anda.

INPUT:
  SQL> input 
    1 menerima newtitle prompt 'Masukkan Judul untuk Laporan:' 
    2 pusat newtitle ttitle 
    3 pilih * 
    4 dari produk 
    5 
  SQL> menyimpan prod
OUTPUT:
  File "prod.sql" sudah ada. 
  Gunakan nama lain atau "REPLACE nama file SAVE". 
ANALISIS:

Whoops … prod.sql file yang sudah ada. Mari kita katakan bahwa Anda membutuhkan prod.sql lama dan tidak peduli dengan menimpa itu. Anda harus menggunakan mengganti opsi untuk menyimpan pernyataan dalam buffer untuk prod.sql. Perhatikan penggunaan PROMPT dalam laporan sebelumnya. PROMPT menampilkan teks ke layar yang memberitahu pengguna persis apa yang harus masuk.

INPUT:
  SQL> save prod menggantikan
OUTPUT:
  Menulis file prod 

Sekarang Anda dapat menggunakan perintah START untuk mengeksekusi file.

INPUT:
  SQL mulai> prod 

  Masukkan Judul untuk Laporan: A DAFTAR PRODUK
OUTPUT:
  Sebuah DAFTAR PRODUK 

  PRO PRODUCT_NAME UNIT_COST 
  --- ------------------------------ --------- 
  P01 MICKEY MOUSE LAMP 29,95 
  P02 NO 2 PENSIL - 20 PACK 1,99 
  P03 KOPI MUG 6,95 
  P04 FAR SIDE 10,5 KALENDER 
  P05 ALAM KALENDER 12,99 
  P06 REFERENSI SQL COMMAND 29,99 
  P07 tas KULIT HITAM 99,99 

  7 baris yang dipilih. 
ANALISIS:

Teks yang Anda masukkan saat ini menjadi judul laporan.

Contoh berikut ini menunjukkan bagaimana Anda dapat menggunakan substitusi variabel mana saja dalam sebuah pernyataan:

INPUT:
SQL> input 1 accept prod_id prompt 'Enter PRODUCT ID to Search for: ' 2 select * 3 from products 4 where product_id = '&prod_id' 5 SQL> save prod1
OUTPUT:
 Created file prod1
INPUT:
 SQL> start prod1

Enter PRODUCT ID to Search for: P01
OUTPUT:
 old   3: where product_id = '&prod_id'
new   3: where product_id = 'P01'

                     A LIST OF PRODUCTS

PRO PRODUCT_NAME                   UNIT_COST
--- ------------------------------ ---------
P01 MICKEY MOUSE LAMP                  29.95
ANALISIS:

Anda dapat menggunakan variabel untuk memenuhi kebutuhan banyak – misalnya, untuk nama file ke mana akan spool output Anda atau menentukan sebuah ekspresi pada klausa ORDER BY. Salah satu cara untuk menggunakan substitusi variabel adalah memasukkan laporan tanggal pada klausa WHERE untuk transaksional laporan jaminan kualitas. Jika pertanyaan Anda dirancang untuk mengambil informasi pada satu individu tertentu pada suatu waktu, Anda mungkin ingin menambahkan variabel substitusi untuk dibandingkan dengan SSN kolom tabel.

NEW_VALUE

The NEW_VALUE command passes the value of a selected column into an undefined variable of your choice. The syntax is as follows:

Sintaks:
 COL[UMN] column_name NEW_VALUE new_name

Kamu menyebut nilai-nilai variabel dengan menggunakan & karakter, misalnya:

 &new_name

KOLOM perintah harus digunakan dengan NEW_VALUE. Perhatikan bagaimana & dan perintah KOLOM digunakan bersama di file SQL berikutnya * Plus. GET perintah mendapatkan file.

INPUT:
 SQL> get prod1
OUTPUT:
 line 5 truncated.
  1  ttitle left 'Report for Product:   &prod_title' skip 2
  2  col product_name new_value prod_title
  3  select product_name, unit_cost
  4  from products
  5* where product_name = 'COFFEE MUG'
INPUT:
 SQL> @prod1
OUTPUT:
 Report for Product:   COFFEE MUG

PRODUCT_NAME                    UNIT_COST
------------------------------ ----------
COFFEE MUG                           6.95
ANALISIS:

Nilai untuk kolom PRODUCT_NAME disahkan ke prod_title variabel dengan cara new_value.Nilai dari variabel prod_title kemudian disebut dalam TTITLE tersebut.

Tabel DUAL

Tabel DUAL adalah dummy tabel yang ada dalam setiap database Oracle. Tabel ini terdiri dari satu kolom dummy yang hanya disebut baris data adalah nilai X. Tabel DUAL tersedia bagi semua pengguna database dan dapat digunakan untuk tujuan umum, seperti aritmatika bermasalah (di tempat yang dapat berfungsi sebagai kalkulator) atau memanipulasi format SYSDATE.

INPUT:
 SQL>  desc dual;
OUTPUT:
  Name                            Null?  Jenis 
 ------------------------------- -------- ----
 DUMMY                                    VARCHAR2(1)
INPUT:
 SQL> select *
    2 dari dual;
OUTPUT:
  D 
  - 
X

Take a look at a couple of examples using the DUAL table:

INPUT:
 SQL> select sysdate
    2 dari dual;
OUTPUT:
 SYSDATE
  -------- 
08-MAY-97
INPUT:
SQL> select 2 * 2 2 from dual;
OUTPUT:
       2*2
   -------- 
          4 

Cukup sederhana. Pernyataan pertama yang dipilih SYSDATE dari meja DUAL dan mendapatkan tanggal hari ini.Contoh kedua menunjukkan cara untuk melipatgandakan dalam tabel DUAL. Jawaban kami untuk 2 * 2 adalah 4.

Fungsi deCODE

Fungsi deCODE adalah salah satu dari perintah yang paling kuat di SQL * Plus – dan mungkin yang paling kuat. Standar bahasa SQL tidak memiliki fungsi prosedural yang terkandung dalam bahasa seperti COBOL dan C.

Sintaks:
 DECODE(column1, value1, output1, value2, output2, output3)

Contoh sintaks melakukan fungsi deCODE pada column1. Jika column1 memiliki nilai nilai1, kemudian menampilkan output1 bukan nilai sekarang kolom itu. Jika column1 memiliki nilai nilai2, kemudian menampilkan output2 bukan nilai sekarang kolom itu. Jika column1 memiliki nilai apapun selain value1 atau value2, kemudian menampilkan output3 bukan nilai sekarang kolom itu.

Bagaimana tentang beberapa contoh? Pertama, melakukan pilih sederhana pada tabel baru:…

INPUT:
 SQL> select * from states;
OUTPUT:
  ST 
  - 
  DI 
  FL 
  KY 
  IL 
  OH 
  CA 
NY

7 rows selected.

Now use the DECODE command:

INPUT:
 SQL> select decode(state,'IN','INDIANA','OTHER') state
  2 from states;
OUTPUT:
 STATE
  ------ 
INDIANA
  LAIN 
  LAIN 
  LAIN 
  LAIN 
  LAIN 
  LAIN 

7 rows selected.
ANALISIS:

Only one row met the condition where the value of state was IN , so only that one row was displayed as INDIANA . The other states took the default and therefore were displayed as OTHER .

The next example provides output strings for each value in the table. Just in case your table has states that are not in your DECODE list, you should still enter a default value of 'OTHER' .

INPUT:
SQL> select decode(state,'IN','INDIANA', 2 'FL','FLORIDA', 3 'KY','KENTUCKY', 4 'IL','ILLINOIS', 5 'OH','OHIO', 6 'CA','CALIFORNIA', 7 'NY','NEW YORK','OTHER') 8 from states;
OUTPUT:
 DECODE(STATE)
  ---------- 
INDIANA
FLORIDA
  Kentucky 
ILLINOIS
OHIO
CALIFORNIA
  NEW YORK 

7 rows selected.

Itu terlalu mudah. Contoh berikut memperkenalkan meja MEMBAYAR. Tabel ini menunjukkan lebih dari kekuatan yang terdapat dalam deCODE.

INPUT:
 SQL> col hour_rate hea "HOURLY|RATE" for 99.00
SQL> col date_last_raise hea "LAST|RAISE"
SQL> select name, hour_rate, date_last_raise
  2  from pay;
OUTPUT:
                      HOURLY LAST
NAME                   RATE RAISE
-------------------- ------ --------
JOHN                  12.60 01-JAN-96
JEFF                   8.50 17-MAR-97
RON                    9.35 01-OCT-96
RYAN                   7.00 15-MAY-96
BRYAN                 11.00 01-JUN-96
MARY                  17.50 01-JAN-96
ELAINE                14.20 01-FEB-97

7 rows selected.

Apakah Anda siap? Sudah waktunya untuk memberikan setiap individu dalam tabel MEMBAYAR kenaikan gaji. Jika tahun lalu meningkatkan individu adalah 1996, menghitung kenaikan 10 persen. Jika tahun terakhir meningkatkan individu adalah 1997, menghitung kenaikan 20 persen. Selain itu, layar persen kenaikan untuk masing-masing individu dalam situasi baik.

INPUT:
 SQL> col new_pay hea 'NEW PAY' for 99.00
SQL> col hour_rate hea 'HOURLY|RATE' for 99.00
SQL> col date_last_raise hea 'LAST|RAISE'
SQL> select name, hour_rate, date_last_raise,
  2   decode(substr(date_last_raise,8,2),'96',hour_rate * 1.2,
  3  '97',hour_rate * 1.1) new_pay,
  4  decode(substr(date_last_raise,8,2),'96','20%',
  5  '97','10%',null) increase
  6 from pay;
OUTPUT:
                      HOURLY LAST
NAME                   RATE RAISE     NEW PAY INC
-------------------- ------ --------- ------- ---
JOHN                  12.60 01-JAN-96   15.12 20%
JEFF                   8.50 17-MAR-97    9.35 10%
RON                    9.35 01-OCT-96   11.22 20%
RYAN                   7.00 15-MAY-96    8.40 20%
BRYAN                 11.00 01-JUN-96   13.20 20%
MARY                  17.50 01-JAN-96   21.00 20%
ELAINE                14.20 01-FEB-97   15.62 10%

7 rows selected.
ANALISIS:

According to the output, everyone will be receiving a 20 percent pay increase except Jeff and Elaine, who have already received one raise this year.

DATE Conversions

Jika Anda ingin menambahkan sentuhan kelas dengan cara tanggal yang ditampilkan, maka Anda dapat menggunakan fungsi TO_CHAR untuk mengubah gambar tanggal “.” Contoh ini dimulai dengan mendapatkan tanggal hari ini:

INPUT:
 SQL> select sysdate
    2 dari dual;
OUTPUT:
 SYSDATE
  -------- 
08-MAY-97

Ketika mengubah tanggal untuk string karakter, Anda menggunakan fungsi TO_CHAR dengan sintaks berikut:

Sintaks:
 TO_CHAR(sysdate,'date picture')

Tanggal gambar adalah bagaimana Anda ingin tanggal untuk melihat. Beberapa bagian paling umum dari gambar tanggal adalah sebagai berikut: Bulan Bulan saat ini terbilang.

Sen The current month abbreviated.
Hari The current day of the week.
mm The number of the current month.
yy The last two numbers of the current year.
dd The current day of the month.
yyyy The current year.
ddd The current day of the year since January 1.
jj The current hour of the day.
mi The current minute of the hour.
ss The current seconds of the minute.
adalah Displays am or pm

Tanggal gambar juga mungkin berisi koma dan string literal string selama ini ditutupi oleh tanda kutip ganda “”.

INPUT:
 SQL> col today for a20
SQL>  select to_char(sysdate,'Mon dd, yyyy') today
    2 dari dual;
OUTPUT:
  HARI INI 
  -------------------- 
May 08, 1997
ANALISIS:

Perhatikan bagaimana kita menggunakan perintah KOLOM pada hari ini alias.

INPUT:
 SQL> col today hea 'TODAYs JULIAN DATE' for a20
SQL> select to_char(sysdate,'ddd') today
    2 dari dual;
OUTPUT:
 TODAYs JULIAN DATE
  -------------------- 
  128 
ANALISIS:

Beberapa perusahaan memilih untuk mengungkapkan tanggal Julian dengan tahun sebelumnya dua digit hari tiga digit. Tanggal gambar Anda juga bisa terlihat seperti ini: ‘yyddd’.

Asumsikan bahwa Anda menulis sebuah skrip kecil dan disimpan sebagai hari. Contoh berikut mendapatkan file tersebut, melihat, dan menjalankan itu untuk mengambil berbagai potongan informasi tanggal dikonversi.INPUT:

 SQL> get day
OUTPUT:
 line 10 truncated.
  1  set echo on
  2  col day for a10
  3  col today for a25
  4  col year for a25
  5  col time for a15
  6  select to_char(sysdate,'Day') day,
  7         to_char(sysdate,'Mon dd, yyyy') today,
  8         to_char(sysdate,'Year') year,
  9         to_char(sysdate,'hh:mi:ss am') time
 10* from dual

Now you can run the script:

INPUT:
 SQL> @day
OUTPUT:
  SQL mengatur> echo pada 
SQL> col day for a10
SQL> col today for a25
SQL> col year for a25
SQL> col time for a15
SQL> select to_char(sysdate,'Day') day,
  2         to_char(sysdate,'Mon dd, yyyy') today,
  3         to_char(sysdate,'Year') year,
  4         to_char(sysdate,'hh:mi:ss am') time
  5  from dual;

DAY        TODAY                    YEAR                    TIME
---------- ------------------------ ----------------------- ------------
Thursday   May 08, 1997              Nineteen Ninety-Seven    04:10:43 pm
ANALISIS:

Beberapa perusahaan memilih untuk mengungkapkan tanggal Julian dengan tahun sebelumnya dua digit hari tiga digit. Tanggal gambar Anda juga bisa terlihat seperti ini: ‘yyddd’.

Asumsikan bahwa Anda menulis sebuah skrip kecil dan disimpan sebagai hari. Contoh berikut mendapatkan file tersebut, melihat, dan menjalankan itu untuk mengambil berbagai potongan informasi tanggal dikonversi.

Sintaks:
 TO_DATE(expression,'date_picture')

Try a couple of examples:

INPUT:
 SQL>  select to_date('19970501','yyyymmdd') "NEW DATE"
    2 dari dual;
OUTPUT:
 NEW DATE
  -------- 
01-MAY-97
INPUT:
 SQL> select to_date('05/01/97','mm"/"dd"/"yy') "NEW DATE"
    2 dari dual;
OUTPUT:
 NEW DATE
  -------- 
01-MAY-97
ANALISIS:

Notice the use of double quotation marks to represent a literal string.

Menjalankan Seri File SQL

File script SQL dapat mencakup apa pun yang Anda dapat mengetik ke dalam buffer SQL pada> SQL prompt, bahkan perintah yang menjalankan script SQL lain. Ya, Anda bisa mulai dari skrip SQL dalam script lain SQL. Gambar 20,4 menunjukkan file script yang telah dibuat menggunakan perintah EDIT. File ini berisi beberapa laporan SQL serta perintah untuk menjalankan script SQL lain.

INPUT:

 SQL> edit main.sql
OUTPUT:
 SQL> @main
ANALISIS:

Dengan memulai main.sql, Anda akan mengeksekusi setiap perintah SQL yang terdapat dalam script. Query1 melalui query5 juga akan dijalankan, agar, seperti yang ditunjukkan pada Gambar 20,4.

Running SQL scripts from within an SQL script.

Adding Comments to Your SQL Script

SQL*Plus gives you three ways to place comments in your file:

  • -- places a comment on one line at a time.
  • REMARK also places a comment on one line at a time.
  • /* */ places a comment(s) on one or more lines.

Study the following example:

INPUT:
 SQL>  input
  1  REMARK this is a comment
  2  -- this is a comment too
  3 REM
  4 -- SET COMMANDS
  5  set echo on
  6 set feedback on
  7 -- SQL STATEMENT
  8  select *
  9  from products
   10 
  SQL> 

To see how comments look in an SQL script file, type the following:

SQL> edit query10

Advanced Reports

Now let’s have some fun. By taking the concepts that you have learned today, as well as what you learned earlier, you can now create some fancy reports. Suppose that you have a script namedreport1.sql . Start it, sit back, and observe.

INPUT:
 SQL> @report1
OUTPUT:
  SQL mengatur> echo pada 
SQL> set pagesize 50
SQL> set feedback off
SQL> set newpage 0
SQL> col product_name hea 'PRODUCT|NAME' for a20 trunc
SQL> col unit_cost hea 'UNIT|COST' for $99.99
SQL> col product_qty hea 'QTY' for 999
SQL> col total for $99,999.99
SQL> spool report
SQL> compute sum of total on customer
SQL> compute sum of total on report
SQL> break on report on customer skip 1
SQL> select o.customer, p.product_name, p.unit_cost,
  2         o.product_qty, (p.unit_cost * o.product_qty) total
  3  from orders o,
  4       products p
  5  where o.product_id = p.product_id
  6  order by customer
  7  /

CUSTOMER                    PRODUCT               UNIT    QTY  TOTAL
                            NAME            COST
--------------------------- --------------------- ------ ----- ----------
JONES and SONS              MICKEY MOUSE LAMP     $29.95   50   $1,497.50
                            NO 2 PENCILS - 20 PA   $1.99   10      $19.90
                            COFFEE MUG             $6.95   10      $69.50
******************************                                 ----------
sum                                                             $1,586.90

PARAKEET CONSULTING GROUP   MICKEY MOUSE LAMP     $29.95    5     $149.75
                            NO 2 PENCILS - 20 PA   $1.99   15      $29.85
                            SQL COMMAND REFERENC  $29.99   10     $299.90
                            BLACK LEATHER BRIEFC  $99.99    1      $99.99
                            FAR SIDE CALENDAR     $10.50   22     $231.00
******************************                                 ----------
sum                                                               $810.49

PLEWSKY MOBILE CARWASH      MICKEY MOUSE LAMP     $29.95    1      $29.95
                            BLACK LEATHER BRIEFC  $99.99    5     $499.95
                            BLACK LEATHER BRIEFC  $99.99    1      $99.99
                            NO 2 PENCILS - 20 PA   $1.99   10      $19.90
                            NO 2 PENCILS - 20 PA   $1.99   10      $19.90
******************************                                 ----------
sum                                                               $669.69
                                                                ----------
sum                                                             $3,067.08
SQL> Input truncated to 9 characters
spool off
ANALISIS:

Beberapa hal terjadi dalam script ini. Jika Anda melihat pernyataan SQL yang sebenarnya, Anda dapat melihat bahwa itu adalah memilih data dari dua tabel dan melakukan fungsi aritmetika juga. Pernyataan itu menghubungkan dua tabel di klausa WHERE dan diperintahkan oleh nama pelanggan. Mereka adalah dasar-dasar. Di samping itu, perintah SQL * Plus format data cara kita ingin melihatnya. Perintah-perintah ini mematahkan laporan dalam kelompok, membuat perhitungan pada masing-masing kelompok dan membuat perhitungan pada laporan secara keseluruhan.

Ringkasan

Penjelaskan perpanjangan Oracle dengan bahasa standar SQL. Perintah-perintah ini hanya sebagian kecil dari apa yang tersedia bagi Anda di SQL Plus. Jika Anda menggunakan produk Oracle’s, periksa dokumentasi database, mengambil pengetahuan yang telah Anda pelajari di sini, dan mengeksplorasi kemungkinan yang tak terbatas yang berbohong sebelum Anda. Anda akan menemukan bahwa Anda dapat menyelesaikan hampir semua tugas pelaporan yang menggunakan SQL Plus dan bukan dengan beralih ke bahasa pemrograman prosedural. Bila Anda tidak menggunakan produk Oracle, menggunakan apa yang telah Anda pelajari hari ini untuk meningkatkan cara Anda mengambil data dalam pelaksanaan Anda.Kebanyakan implementasi utama memiliki ekstensi, atau perangkat tambahan, dengan bahasa standar yang diterima dari SQL.

Sumber ; http://www.webbasedprogramming.com