SQL Plus
SQL Plus
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.
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.
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> SQLprompt 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>
SQLprompt. 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.
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 (NULL / NULL 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.
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. GETsangat 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
Mengedit file di SQL * Plus.
Sintaks:
MULAI Nama berkas
atau
@ Nama file
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
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
Perhatikan bahwa ketika Anda menggunakan RUN untuk mengeksekusi query, pernyataan tersebut menggema,
atau ditampilkan pada layar.
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
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.
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
ANALISIS:
Baris terakhir output
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
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
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. Profildi lingkungan Korn Shell UNIX.
Dalam pribadi Oracle7 Anda dapat menggunakan perintah EDIT untuk membuat file Login.sql, seperti
yang ditunjukkan pada Gambar 20,3.
SQL * Plus: Release 3.3.2.0.2 - Produksi pada Minggu 11 Mei 20:37:58 1997
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
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
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.
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
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
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.
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
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
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
INPUT:
SQL> pilih *
2 dari & Tbl
3 /
OUTPUT:
tua 2: dari & Tbl
baru 2: dari produk
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
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 INPUTpertama, 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
OUTPUT:
Sebuah DAFTAR PRODUK
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
OUTPUT:
old 3: where product_id = '&prod_id'
new 3: where product_id = 'P01'
A LIST OF PRODUCTS
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.
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;
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.
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.
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:
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 named report1.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 /