中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

網(wǎng)站模板織夢免費西安百度推廣優(yōu)化公司

網(wǎng)站模板織夢免費,西安百度推廣優(yōu)化公司,網(wǎng)站開發(fā)全流程,怎么查網(wǎng)站服務器目錄標題 1.基本語法結(jié)構(gòu)二級目錄三級目錄 1.基本語法結(jié)構(gòu)2。變量聲明和使用3. SELECT 查詢4.插入 insert5.更新UPDATE6.刪除(DELETE) 7游標 cursor例子1:基本游標使用例子2:使用FOR循環(huán)的簡化寫法實際應用例子:給高工資員工增加獎金 8 IF 條…

目錄標題

  • 1.基本語法結(jié)構(gòu)
    • 二級目錄
      • 三級目錄
    • 1.基本語法結(jié)構(gòu)
    • 2。變量聲明和使用
    • 3. SELECT 查詢
    • 4.插入 insert
      • 5.更新UPDATE
      • 6.刪除(DELETE)
    • 7游標 cursor
      • 例子1:基本游標使用
      • 例子2:使用FOR循環(huán)的簡化寫法
      • 實際應用例子:給高工資員工增加獎金
    • 8 IF 條件判斷
    • 9 循環(huán)語句
    • 10 存儲過程
    • 11 函數(shù)

1.基本語法結(jié)構(gòu)

二級目錄

三級目錄

1.基本語法結(jié)構(gòu)

BEGIN
– 執(zhí)行部分 必須

END;
例:
CopyBEGIN
DBMS_OUTPUT.PUT_LINE(‘Hello World’);
END;

結(jié)果:
Hello World

PL/SQL procedure successfully completed.

DECLARE
———聲明部分 可選
BEGIN
– 執(zhí)行部分 必須

EXCEPTION
——異常處理部分(可選)
END;

2。變量聲明和使用

DECLARE
–基本變量類型
V_name VARCHAR2(100);-- 字符串類型
V_age NUMBER ;—— 數(shù)字類型
V_brithday DATE;—— 日期類型
v_is_valid BOOLEAN; – 布爾類型

——變量聲明并賦值
v_sarary NUMBER := 8000;–直接賦值
V_dept_name VARCHAR2(50) DFFAULT ‘技術(shù)部’ ;—— 使用DEFAULT賦默認值
BEGIN
—— 變量賦值
V_name : = ‘張三’;
V_age := 25;
V_brithday := TO_DATE(‘1998-01-01’, ‘YYYY-MM-DD’);
v_is_valid := TRUE;

——打印變量
DBMS_OUTPUT.PUT_LINE(‘姓名:’ || v_name);
DBMS_OUTPUT.PUT_LINE(‘ 年齡:’ || V_age);
DBMS_OUTPUT.PUT_LINE(‘ 生日:’|| TO_CHAR(v_birthday,‘YYYY-MM-DD’));

END;

3. SELECT 查詢

DECLARE
v_emp_name VERCHAR2(100);
V_emp_salary NUMNER;

BEGIN

– 單個值查詢

SELECT first_name,salary
INTO v_emp_name,V_emp_salary – 使用INTO將查詢結(jié)果存入變量
FROM emloyees
WHERE employee_id =100;

DBMS_OUTPUT.PUT_LINE('員工姓名:'||v_emp_name);
DBMS_OUTPUT.PUT_LINE('員工薪資:'||v_emp_salary);

END;

結(jié)果:
員工姓名: Steven
工資: 24000

PL/SQL procedure successfully completed.

4.插入 insert

DECLARE
V_emp_id NUMBER :=301;
BEGIN
– 插入一條新記錄
INSERT INTO employees
( employee_id,first_name,last_name,email,hire_date,job_id)
VALUES
(v_emp_id,‘小明’,‘王’,‘xiaoming’,SYSDATE,‘IT_PROG’);

– 提交事物
COMMIT;

DBMS_OUTPUT.PUT_LINE(‘插入成功’);
EXCEPTION
WHEN OTHERS THEN

		-- 發(fā)生錯誤時回滾
ROLLBACK;
DBMS_OUTPUT.PUT_LINE(‘插入失敗:’||SQLERRM);

END;

5.更新UPDATE

DECLARE
v_salary_increase。NUMber :=1000;

BEGIN

– 更新滿足提哦啊賤的記錄
UPDATE employees
SET salary=salary + V_salary_increase
WHERE department_id = 90;

– 輸出更新的行數(shù)

DBMS_OUTPUT.PUT_LINE('更新了’||SQL%ROWCOUNT||‘條記錄’);

COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLB ACK:
DBMS_OUTPUT.PUT_LINE('更新失敗’||SQLERRM);

END;

6.刪除(DELETE)

DECLARE
V_dept_id NUMBER:=10;
BEGIN
– 刪除指定部門的員工
DELETE FROM employees
WHERE department_id = v_dept_id;
DBMS_OUTPUT.PUT_LINE('刪除了’||SQL%ROWCOUNT||‘條記錄’);

	COMMIT;

EXCEPTION

WHEN OTHERS THEN
ROLLBACK;

DBMS_OUTPUT.PUT_LINE(’刪除失敗:‘||SQLERROM);

END;

7游標 cursor

例如TBL
EMPLOYEE_ID FIRST_NAME SALARY
100 Steven 24000
101 Neena 17000
102 Lex 17000

例子1:基本游標使用

DECLARE
– 1 定義游標

CURSOR emp_cur IS

SELECT employee_id,first_name,salary
FROM employees
WHERE salary > 15000;

– 2 定義變量接收數(shù)據(jù)
v_emp_id employees.employee_id%TYPE;
v_name. employees.first_name%TYPE;
v_salary. employees.salary%TYPE;

BEGIN

– 3.打開游標

OPEN emp_cur;
– 4 循環(huán)讀取數(shù)據(jù)
LOOP
FETCH emp_cur INTO v_emp_id, v_name, v_salary;
EXIT WHEN emp_cur%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('ID: ’ || v_emp_id ||
', 姓名: ’ || v_name ||
', 工資: ’ || v_salary);

END LOOP;

– 5,關(guān)閉游標
CLOSE emp_cur;

END;

結(jié)果
ID: 100, 姓名: Steven, 工資: 24000
ID: 101, 姓名: Neena, 工資: 17000
ID: 102, 姓名: Lex, 工資: 17000

PL/SQL procedure successfully completed.

例子2:使用FOR循環(huán)的簡化寫法

DECLARE
– 只需定義游標
CURSOR emp_cur IS
SELECT employee_id, first_name, salary
FROM employees
WHERE salary > 15000;
BEGIN
– FOR循環(huán)自動處理打開、獲取和關(guān)閉游標
FOR emp_rec IN emp_cur LOOP
DBMS_OUTPUT.PUT_LINE('ID: ’ || emp_rec.employee_id ||
', 姓名: ’ || emp_rec.first_name ||
', 工資: ’ || emp_rec.salary);
END LOOP;
END;

實際應用例子:給高工資員工增加獎金

DECLARE
CURSOR emp_cur IS
SELECT employee_id, salary
FROM employees
WHERE salary > 15000;

v_bonus NUMBER;

BEGIN
FOR emp_rec IN emp_cur LOOP
– 計算獎金:工資的10%
v_bonus := emp_rec.salary * 0.1;

    -- 更新員工獎金UPDATE employees SET bonus = v_bonusWHERE employee_id = emp_rec.employee_id;DBMS_OUTPUT.PUT_LINE('員工ID ' || emp_rec.employee_id || ' 的獎金更新為: ' || v_bonus);
END LOOP;-- 提交事務
COMMIT;

END;

結(jié)果

員工ID 100 的獎金更新為: 2400
員工ID 101 的獎金更新為: 1700
員工ID 102 的獎金更新為: 1700

PL/SQL procedure successfully completed.

游標就像一個指針,指向查詢結(jié)果集中的當前行:

開始時指向第一行之前
每次FETCH后移動到下一行
直到?jīng)]有更多數(shù)據(jù)時停止

8 IF 條件判斷

DECLARE
v_salary NUMBER := 5000;
BEGIN
– 基本IF語句
IF v_salary > 3000 THEN
DBMS_OUTPUT.PUT_LINE(‘工資高于3000’);
ELSIF v_salary > 2000 THEN
DBMS_OUTPUT.PUT_LINE(‘工資在2000-3000之間’);
ELSE
DBMS_OUTPUT.PUT_LINE(‘工資低于2000’);
END IF;
END;

9 循環(huán)語句

有三種循環(huán)方式:

– 1. 基本LOOP
DECLARE
v_counter NUMBER := 1;
BEGIN
LOOP
DBMS_OUTPUT.PUT_LINE('計數(shù): ’ || v_counter);
v_counter := v_counter + 1;
EXIT WHEN v_counter > 3; – 退出條件
END LOOP;
END;

– 2. WHILE循環(huán)
DECLARE
v_counter NUMBER := 1;
BEGIN
WHILE v_counter <= 3 LOOP
DBMS_OUTPUT.PUT_LINE('計數(shù): ’ || v_counter);
v_counter := v_counter + 1;
END LOOP;
END;

– 3. FOR循環(huán)
BEGIN
FOR i IN 1…3 LOOP
DBMS_OUTPUT.PUT_LINE('計數(shù): ’ || i);
END LOOP;
END;

10 存儲過程

– 創(chuàng)建存儲過程
CREATE OR REPLACE PROCEDURE update_salary(
p_emp_id IN NUMBER, – 輸入?yún)?shù)
p_salary_increase IN NUMBER,
p_result OUT VARCHAR2 – 輸出參數(shù)
)
IS
v_old_salary NUMBER;
BEGIN
– 獲取原工資
SELECT salary INTO v_old_salary
FROM employees
WHERE employee_id = p_emp_id;

-- 更新工資
UPDATE employees
SET salary = salary + p_salary_increase
WHERE employee_id = p_emp_id;-- 設(shè)置輸出結(jié)果
p_result := '更新成功!原工資:'||v_old_salary||',新工資:'||(v_old_salary + p_salary_increase);COMMIT;

EXCEPTION
WHEN NO_DATA_FOUND THEN
p_result := ‘未找到員工’;
WHEN OTHERS THEN
p_result := ‘更新失敗:’||SQLERRM;
ROLLBACK;
END;

– 調(diào)用存儲過程
DECLARE
v_result VARCHAR2(200);
BEGIN
update_salary(100, 1000, v_result);
DBMS_OUTPUT.PUT_LINE(v_result);
END;

11 函數(shù)

– 創(chuàng)建函數(shù)
CREATE OR REPLACE FUNCTION calculate_bonus(
p_salary IN NUMBER,
p_rating IN NUMBER
) RETURN NUMBER
IS
v_bonus NUMBER;
BEGIN
– 根據(jù)評級計算獎金
CASE p_rating
WHEN 1 THEN v_bonus := p_salary * 0.2;
WHEN 2 THEN v_bonus := p_salary * 0.15;
WHEN 3 THEN v_bonus := p_salary * 0.1;
ELSE v_bonus := 0;
END CASE;

RETURN v_bonus;

END;

– 調(diào)用函數(shù)
DECLARE
v_bonus NUMBER;
BEGIN
v_bonus := calculate_bonus(5000, 1);
DBMS_OUTPUT.PUT_LINE('獎金是: ’ || v_bonus);
END;

區(qū)別:

存儲過程:可以有多個輸入輸出參數(shù),不返回值
函數(shù):可以有多個輸入?yún)?shù),但只能返回一個值

http://www.risenshineclean.com/news/21521.html

相關(guān)文章:

  • 公司網(wǎng)站建設(shè)需求書網(wǎng)站設(shè)計公司哪家專業(yè)
  • 網(wǎng)站欄目劃分怎么做制作網(wǎng)頁的流程
  • 用php和mysql做網(wǎng)站網(wǎng)絡推廣常見的方法
  • 做網(wǎng)站的技術(shù)支持網(wǎng)絡營銷招聘崗位有哪些
  • 手機免費建設(shè)網(wǎng)站制作推廣普通話宣傳海報
  • 電商網(wǎng)站如何提高轉(zhuǎn)化率企業(yè)品牌推廣營銷方案
  • 合肥網(wǎng)站建設(shè)信息搜索引擎廣告投放
  • 員工做違法網(wǎng)站百度數(shù)據(jù)
  • 什么是b2c網(wǎng)站營銷存在的問題及改進
  • 哈爾濱網(wǎng)站建設(shè)價格網(wǎng)站制作流程和方法
  • wordpress 愛范兒主題seo自學網(wǎng)app
  • 網(wǎng)站建設(shè)策劃基本流程圖yahoo搜索
  • 哪個建立網(wǎng)站好小程序開發(fā)
  • 復旦學霸張立勇做的有關(guān)寺廟網(wǎng)站外貿(mào)網(wǎng)站平臺
  • 專業(yè)做數(shù)據(jù)的網(wǎng)站網(wǎng)站服務器查詢
  • 在國外服務器上做網(wǎng)站項目如何賺錢企業(yè)營銷策略分析論文
  • 搭建網(wǎng)站的必須條件推廣運營公司哪家好
  • excel做網(wǎng)頁放進網(wǎng)站線上招生引流推廣方法
  • 松江做公司網(wǎng)站營銷案例100例簡短
  • pc端網(wǎng)站營銷百度手機怎么刷排名多少錢
  • 中燃oa企業(yè)門戶專業(yè)網(wǎng)站優(yōu)化推廣
  • 臺州網(wǎng)站搜索優(yōu)化谷歌搜索引擎免費入口 臺灣
  • 臺州品牌網(wǎng)站建設(shè)seo關(guān)鍵詞優(yōu)化推廣價格
  • 教做網(wǎng)站的學校河南網(wǎng)站建設(shè)
  • 工信部網(wǎng)站用戶名專業(yè)的seo外包公司
  • 臺州seo網(wǎng)站推廣費用建立營銷型網(wǎng)站
  • 寧波本地網(wǎng)站排行網(wǎng)絡推廣引流方式
  • 太原做app網(wǎng)站建設(shè)國外網(wǎng)站排名前十
  • 不用dw怎么做網(wǎng)站西安網(wǎng)站維護
  • 網(wǎng)頁設(shè)計與制作教程江西高校出版社優(yōu)化設(shè)計答案六年級上冊語文