?? script_64_沒使用shangpin表.txt
字號:
--在以后的練習中,我們經常要用到以下兩個表,所以先講解一下這兩個表的結構及含意
名稱 產品庫存表 :plsql101_product用于存放產品信息
---------------------------------------------------------------
PRODUCT_NAME 產品名稱
PRODUCT_PRICE 產品單價
QUANTITY_ON_HAND 庫存數
LAST_STOCK_DATE 最后進貨日期
CREATE TABLE plsql101_product (
product_name VARCHAR2(25),
product_price NUMBER(4,2),
quantity_on_hand NUMBER(5,0),
last_stock_date DATE
)
;
---------------------------------------------------------------
名稱 采購信息表plsql101_purchase
--------------------------------------------------
PRODUCT_NAME 商品名稱
SALESPERSON 經手人(編號)
PURCHASE_DATE 采購日期
QUANTITY 采購數量
CREATE TABLE plsql101_purchase (
product_name VARCHAR2(25),
salesperson VARCHAR2(3),
purchase_date DATE,
quantity NUMBER(4,2)
)
;
--------------------------------------------------
---------- data_insert.txt ----------
/*
* 范例名稱:為以后測試INSERT DATA
* 文件名稱:data_insert.txt
*/
DROP TABLE plsql101_product;
CREATE TABLE plsql101_product (
product_name VARCHAR2(25),
product_price NUMBER(4,2),
quantity_on_hand NUMBER(5,0),
last_stock_date DATE
)
;
INSERT INTO plsql101_product VALUES
('Small Widget', 99, 1, '15-1月-03');
INSERT INTO plsql101_product VALUES
('Medium Wodget', 75, 1000, '15-1月-02');
INSERT INTO plsql101_product VALUES
('Chrome Phoobar', 50, 100, '15-1月-03');
INSERT INTO plsql101_product VALUES
('Round Chrome Snaphoo', 25, 10000, null);
INSERT INTO plsql101_product VALUES
('Extra Huge Mega Phoobar +',9.95,1234,'15-1月-04');
DROP TABLE plsql101_purchase;
CREATE TABLE plsql101_purchase (
product_name VARCHAR2(25),
salesperson VARCHAR2(3),
purchase_date DATE,
quantity NUMBER(4,2)
)
;
INSERT INTO plsql101_purchase VALUES
('Small Widget', 'CA', '14-7月-03', 1);
INSERT INTO plsql101_purchase VALUES
('Medium Wodget', 'BB', '14-7月-03', 75);
INSERT INTO plsql101_purchase VALUES
('Chrome Phoobar', 'GA', '14-7月-03', 2);
INSERT INTO plsql101_purchase VALUES
('Small Widget', 'GA', '15-7月-03', 8);
INSERT INTO plsql101_purchase VALUES
('Medium Wodget', 'LB', '15-7月-03', 20);
INSERT INTO plsql101_purchase VALUES
('Round Snaphoo', 'CA', '16-7月-03', 5);
----------------------------------------------------------
---------- sm_sqlplus_edit.txt ----------
/*
* 范例名稱:使用文本編輯器
* 文件名稱:sm_sqlplus_edit.txt
*/
select * from su_emp
--ERROR 位于第 1 行:
--ORA-00942: 表或視圖不存在
edit
--在窗口中更改語句,之后存盤,退出,在sqlplus中用 / 強制執行編輯過的語句。
/
--在SQL*PLUS中設定文本編輯器中用于編輯sql文
--以scott/tiger登錄
connect
scott/tiger
--設定sqlplus的edit(ed)編輯器
define _editor=edit
--換為dos edit,測試
define _editor=notepad
--輸入select語句
select sysdate from dual;
ed
--可以在編輯器中編輯剛輸入的sql語句,保存,退出。
--save as可以在編輯器中將sql文保存到其他目錄
/
--執行編輯器中編輯的select語句。
---------- sqlplus_edit.txt ----------
/*
* 范例名稱:edit,語句使用文本編輯器
* 文件名稱:sqlplus_edit.txt
*/
-- Note: 必須在datainsert.txt中的sql執行之后
SELECT product_nmae
FROM plsql101_produtc
WHERE quantity_on_hand >= 100
AND
last_stock_date IS NOT NULL
ORDER BY product_name;
--ERROR 位于第 2 行:
--ORA-00942: 表或視圖不存在
edit
--修改,保存,退出。在sqlplus中
/
--執行
---------- sm_script.txt -------------------------------------
/*
* 范例名稱:SQL腳本文件
* 文件名稱:sm_script.txt
*/
EDIT d:\sm_emp.sql
-- 以下sql文加入sm_emp.sql
select * from sm_emp;
--
--執行腳本
@d:\sm_emp.sql
--將文件data_insert.txt中的sql語句建立一個腳本datainsert.sql
--并執行。
---------- plsql101_script.txt ----------
/*
* 范例名稱:SQL腳本文件
* 文件名稱:plsql101_script.txt
*/
EDIT d:\plsql101_test.sql
-- Insert the following commands into the script file
CREATE TABLE temp (
first_name VARCHAR2(15),
last_name VARCHAR2(25)
)
;
INSERT INTO temp VALUES ('劉', '備');
INSERT INTO temp VALUES ('關', '羽');
SELECT * FROM temp;
DROP TABLE temp;
--
@d:\plsql101_test
---------- sm_script_var1.txt ----------
/*
* 范例名稱:SQL腳本文件--使用變量
* 文件名稱:sm_script_var1.txt
*/
EDIT d:\sm_emp_var1.sql
-- 以下sql文加入sm_emp_var1.sql
select * from sm_emp
where salary = &salary;
--
--執行腳本
@d:\sm_emp_var1.sql
---------- sm_script_var1_verify.txt ----------
/*
* 范例名稱:SQL腳本文件:SET VERIFY OFF使sqlplus不再顯示舊值是什么,新值是什么
* 文件名稱:sm_script_var1_verify.txt
*/
EDIT d:\sm_emp_var1.sql
-- 以下sql文加入sm_emp_var1.sql
SET VERIFY OFF
select * from sm_emp
where salary = &salary;
SET VERIFY ON
--
--執行腳本
@d:\sm_emp_var1.sql
---------- plsql101_script_var1.txt ----------
/*
* 范例名稱:SQL腳本文件
* 文件名稱:plsql101_script_var1.txt
*/
edit d:\plsql101_test2.sql
/* Insert the following commands into the script file
SET VERIFY OFF
SELECT product_name, quantity, purchase_date
FROM plsql101_purchase
WHERE quantity >= &min_quantity_sold
;
SET VERIFY ON
*/
@d:\plsql101_test2
---------- plsql101_script_varDate.txt ----------
/*
* 范例名稱:SQL腳本文件
* 文件名稱:plsql101_script_varDate.txt
*/
edit d:\plsql101_test3.sql
/* Insert the following commands into the script file
SET VERIFY OFF
SELECT product_name, quantity, purchase_date
FROM plsql101_purchase
WHERE purchase_date = '&date_you_want_to_select'
;
SET VERIFY ON
*/
@d:\plsql101_test3
---------- plsql101_script_accept.txt ----------
/*
* 范例名稱:SQL腳本文件
* 文件名稱:plsql101_script_accept.txt
*/
edit d:\plsql101_test4.sql
/* Insert the following commands into the script file
SET VERIFY OFF
SET ECHO OFF
ACCEPT v_earliest_date PROMPT '最早日期? (dd-mm月-yy): '
ACCEPT v_latest_date PROMPT '最晚日期? (dd-mm月-yy): '
SELECT product_name, quantity, purchase_date
FROM plsql101_purchase
WHERE purchase_date BETWEEN '&v_earliest_date' AND '&v_latest_date'
ORDER BY product_name, quantity
;
SET VERIFY ON
SET ECHO ON
*/
@d:\plsql101_test4
---------- sm_script_2.txt ----------
/*
* 范例名稱:SQL腳本文件
* 文件名稱:sm_script_2.txt
*/
edit d:\plsql101_test5.sql
/* Insert the following commands into the script file
SET ECHO OFF
SET VERIFY OFF
@d:\sm_emp_var1
@d:\plsql101_test3
@d:\plsql101_test4
*/
@d:\plsql101_test5
---------- sysdate.txt ----------
/*
* 范例名稱:系統變量函數
* 文件名稱:sysdate.txt
*/
select sysdate from dual;
--change server time
select sysdate from dual;
--change client time
select sysdate from dual;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -