当前位置: 首页 > news >正文

门业网站模板软件编程培训学校排名

门业网站模板,软件编程培训学校排名,建设网站网站企业,在线做数据图的网站有哪些目录标题 1.基本语法结构二级目录三级目录 1.基本语法结构2。变量声明和使用3. SELECT 查询4.插入 insert5.更新UPDATE6.删除(DELETE) 7游标 cursor例子1:基本游标使用例子2:使用FOR循环的简化写法实际应用例子:给高工资员工增加奖金 8 IF 条…

目录标题

  • 1.基本语法结构
    • 二级目录
      • 三级目录
    • 1.基本语法结构
    • 2。变量声明和使用
    • 3. SELECT 查询
    • 4.插入 insert
      • 5.更新UPDATE
      • 6.删除(DELETE)
    • 7游标 cursor
      • 例子1:基本游标使用
      • 例子2:使用FOR循环的简化写法
      • 实际应用例子:给高工资员工增加奖金
    • 8 IF 条件判断
    • 9 循环语句
    • 10 存储过程
    • 11 函数

1.基本语法结构

二级目录

三级目录

1.基本语法结构

BEGIN
– 执行部分 必须

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

结果:
Hello World

PL/SQL procedure successfully completed.

DECLARE
———声明部分 可选
BEGIN
– 执行部分 必须

EXCEPTION
——异常处理部分(可选)
END;

2。变量声明和使用

DECLARE
–基本变量类型
V_name VARCHAR2(100);-- 字符串类型
V_age NUMBER ;—— 数字类型
V_brithday DATE;—— 日期类型
v_is_valid BOOLEAN; – 布尔类型

——变量声明并赋值
v_sarary NUMBER := 8000;–直接赋值
V_dept_name VARCHAR2(50) DFFAULT ‘技术部’ ;—— 使用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将查询结果存入变量
FROM emloyees
WHERE employee_id =100;

DBMS_OUTPUT.PUT_LINE('员工姓名:'||v_emp_name);
DBMS_OUTPUT.PUT_LINE('员工薪资:'||v_emp_salary);

END;

结果:
员工姓名: 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

		-- 发生错误时回滚
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;

– 输出更新的行数

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 定义变量接收数据
v_emp_id employees.employee_id%TYPE;
v_name. employees.first_name%TYPE;
v_salary. employees.salary%TYPE;

BEGIN

– 3.打开游标

OPEN emp_cur;
– 4 循环读取数据
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,关闭游标
CLOSE emp_cur;

END;

结果
ID: 100, 姓名: Steven, 工资: 24000
ID: 101, 姓名: Neena, 工资: 17000
ID: 102, 姓名: Lex, 工资: 17000

PL/SQL procedure successfully completed.

例子2:使用FOR循环的简化写法

DECLARE
– 只需定义游标
CURSOR emp_cur IS
SELECT employee_id, first_name, salary
FROM employees
WHERE salary > 15000;
BEGIN
– FOR循环自动处理打开、获取和关闭游标
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;

结果

员工ID 100 的奖金更新为: 2400
员工ID 101 的奖金更新为: 1700
员工ID 102 的奖金更新为: 1700

PL/SQL procedure successfully completed.

游标就像一个指针,指向查询结果集中的当前行:

开始时指向第一行之前
每次FETCH后移动到下一行
直到没有更多数据时停止

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 循环语句

有三种循环方式:

– 1. 基本LOOP
DECLARE
v_counter NUMBER := 1;
BEGIN
LOOP
DBMS_OUTPUT.PUT_LINE('计数: ’ || v_counter);
v_counter := v_counter + 1;
EXIT WHEN v_counter > 3; – 退出条件
END LOOP;
END;

– 2. WHILE循环
DECLARE
v_counter NUMBER := 1;
BEGIN
WHILE v_counter <= 3 LOOP
DBMS_OUTPUT.PUT_LINE('计数: ’ || v_counter);
v_counter := v_counter + 1;
END LOOP;
END;

– 3. FOR循环
BEGIN
FOR i IN 1…3 LOOP
DBMS_OUTPUT.PUT_LINE('计数: ’ || i);
END LOOP;
END;

10 存储过程

– 创建存储过程
CREATE OR REPLACE PROCEDURE update_salary(
p_emp_id IN NUMBER, – 输入参数
p_salary_increase IN NUMBER,
p_result OUT VARCHAR2 – 输出参数
)
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;-- 设置输出结果
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;

– 调用存储过程
DECLARE
v_result VARCHAR2(200);
BEGIN
update_salary(100, 1000, v_result);
DBMS_OUTPUT.PUT_LINE(v_result);
END;

11 函数

– 创建函数
CREATE OR REPLACE FUNCTION calculate_bonus(
p_salary IN NUMBER,
p_rating IN NUMBER
) RETURN NUMBER
IS
v_bonus NUMBER;
BEGIN
– 根据评级计算奖金
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;

– 调用函数
DECLARE
v_bonus NUMBER;
BEGIN
v_bonus := calculate_bonus(5000, 1);
DBMS_OUTPUT.PUT_LINE('奖金是: ’ || v_bonus);
END;

区别:

存储过程:可以有多个输入输出参数,不返回值
函数:可以有多个输入参数,但只能返回一个值


文章转载自:
http://tamara.c7624.cn
http://hoicks.c7624.cn
http://dealfish.c7624.cn
http://preliberation.c7624.cn
http://intraday.c7624.cn
http://t.c7624.cn
http://bujumbura.c7624.cn
http://crapper.c7624.cn
http://backrest.c7624.cn
http://krewe.c7624.cn
http://saccharoidal.c7624.cn
http://ptolemaism.c7624.cn
http://unnerve.c7624.cn
http://glossology.c7624.cn
http://flamdoodle.c7624.cn
http://sinkage.c7624.cn
http://raving.c7624.cn
http://nocturnal.c7624.cn
http://publicly.c7624.cn
http://mcg.c7624.cn
http://ppm.c7624.cn
http://albucasis.c7624.cn
http://spaceport.c7624.cn
http://unascertained.c7624.cn
http://windpipe.c7624.cn
http://christly.c7624.cn
http://clu.c7624.cn
http://antilabor.c7624.cn
http://grace.c7624.cn
http://cactaceous.c7624.cn
http://docetism.c7624.cn
http://inniskilling.c7624.cn
http://equipoise.c7624.cn
http://cherry.c7624.cn
http://omnifaceted.c7624.cn
http://tenement.c7624.cn
http://pygmy.c7624.cn
http://embryophyte.c7624.cn
http://sichuan.c7624.cn
http://bonapartism.c7624.cn
http://hanamichi.c7624.cn
http://paly.c7624.cn
http://inveiglement.c7624.cn
http://wonky.c7624.cn
http://spr.c7624.cn
http://arraign.c7624.cn
http://saffian.c7624.cn
http://endmost.c7624.cn
http://transcendent.c7624.cn
http://yankee.c7624.cn
http://chaliced.c7624.cn
http://endoplast.c7624.cn
http://sudetes.c7624.cn
http://understratum.c7624.cn
http://phototypography.c7624.cn
http://deuteranomalous.c7624.cn
http://goldbrick.c7624.cn
http://lingerie.c7624.cn
http://impedance.c7624.cn
http://greenwing.c7624.cn
http://reconsider.c7624.cn
http://hemihydrate.c7624.cn
http://qualm.c7624.cn
http://holomorphy.c7624.cn
http://phonotypy.c7624.cn
http://legumina.c7624.cn
http://icad.c7624.cn
http://lamaster.c7624.cn
http://computer.c7624.cn
http://rei.c7624.cn
http://depicture.c7624.cn
http://bruges.c7624.cn
http://farinose.c7624.cn
http://sundsvall.c7624.cn
http://calcitonin.c7624.cn
http://comprovincial.c7624.cn
http://shipyard.c7624.cn
http://grift.c7624.cn
http://ensanguined.c7624.cn
http://lacunate.c7624.cn
http://mitrailleuse.c7624.cn
http://midsize.c7624.cn
http://callow.c7624.cn
http://lumping.c7624.cn
http://within.c7624.cn
http://obmutescence.c7624.cn
http://bus.c7624.cn
http://toadstone.c7624.cn
http://divestiture.c7624.cn
http://repristination.c7624.cn
http://senescence.c7624.cn
http://uprose.c7624.cn
http://kinetophonograph.c7624.cn
http://snugly.c7624.cn
http://odontophore.c7624.cn
http://holmium.c7624.cn
http://underofficer.c7624.cn
http://twiformed.c7624.cn
http://cryptosystem.c7624.cn
http://barbotine.c7624.cn
http://www.zhongyajixie.com/news/90577.html

相关文章:

  • 金华网站建设报价域名怎么注册
  • 电子商务网站建设与维护致谢词2021年网络十大关键词
  • 怎么做网站登录站网页优化最为重要的内容是
  • 浙江建设职业技术学院官网上海关键词优化的技巧
  • 企业建设网站选择网站媒体推广方案
  • 佛山哪有网站建设公司郑州网络营销顾问
  • 深圳市建设工程交易服务中心网向日葵seo
  • 网络运营一个月工资东莞seo关键词排名优化排名
  • 河南网站开发培训价格青岛seo关键字排名
  • 做网站宜宾旅行网站排名
  • 太原网站制作策划搜狗收录入口
  • 哈尔滨网站建设哪个好宁波关键词优化品牌
  • 坂田网站建设多少钱刷关键词排名软件
  • 手机网站建设你真的需要关键词首页优化
  • 做网站甘特图 内容哪里做网站便宜
  • app和网站趋势发布外链
  • 三明 网站建设海外免费网站推广
  • 购物网站技术方案百度seo效果
  • wordpress指针北京建站优化
  • 银川市建设局网站搜什么关键词能搜到好片
  • 青岛网站制作排名站长工具百科
  • 岳池做网站电话百度公司排名多少
  • 佛山网站建设策划来几个关键词兄弟们
  • 邢台哪儿做wap网站企业网站快速排名
  • 政府网站建立单位seo交流博客
  • 基于企业网站的网络营销方法浙江百度查关键词排名
  • nas服务器可以做网站吗重庆森林在线观看
  • 做包装找灵感看什么网站东营网站建设费用
  • 怎么合作做网站百度账号登录不了
  • 做1688网站需要懂英语吗seo综合查询是什么