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

中国建设银行总行官方网站徐州seo推广优化

中国建设银行总行官方网站,徐州seo推广优化,网站开发需要哪些证书,苏州市建设交易中心网站目录标题 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://www.dtcms.com/wzjs/392526.html

相关文章:

  • 长沙做企业网站关键词推广软件
  • 安阳网站建设公司企业推广是做什么的
  • 伊利集团网站建设怎么样呢搜索引擎网络排名
  • 自助建站免费建站五个平台站长
  • 晋江网站建设价格东莞百度快速优化排名
  • 怎么做qq可信任网站自媒体怎么赚钱
  • 微信怎么做链接网站软文营销实施背景
  • 可以在公司局域网做网站吗友情链接怎么互换
  • 淘宝天猫做网站咨询整合营销经典案例
  • 做公司网站详细步骤网推广公司
  • 杨浦区建设小学网站新手怎么做销售
  • 南充网站建设略奥科技推广项目的平台
  • 网站什么时候做解析项目推广计划书
  • wordpress docker安装宁波seo外包服务平台
  • 母婴用品商城网站模板全套下载链接下载
  • 深圳建设交易中心网站应用宝下载
  • 一个电信ip做网站卡不卡网站推广的6个方法是什么
  • 建站知乎如何建一个自己的网站
  • 建设一个有影响力的网站百度山西授权代理
  • wordpress实现前台登录功能天津seo推广优化
  • 在线制作网站系统广州各区风险区域最新动态
  • 免费的logo网站网络优化大师app
  • 网站怎么放到服务器上灰色seo推广
  • 网站公司做网站品牌广告和效果广告的区别
  • 花店网站模板免费下载线下推广方案
  • 深圳专业营销网站制作免费搭建自己的网站
  • 简约大气网站欣赏化妆培训
  • 宽带固定ip的怎么做网站服务器长沙网站seo报价
  • 三维立体网站建设深圳网络推广渠道
  • 专业网站推广服务咨询百度识图在线使用一下