Orcle基本语句(六)
-- Created on 2017/1/5 by ADMINISTRATOR
DECLARE
-- Local variables here
i INTEGER := 12;
v_name VARCHAR(15) := '张晓风';
v_age NUMBER(3) := 28;
v_sex VARCHAR(4) := '男';
v_height NUMBER(3) := 150;
v_age1 NUMBER(3); BEGIN
v_age1 := 3;
-- Test statements here
dbms_output.put_line('我叫' || v_name || ', ');
dbms_output.put_line('今年' || v_age || ', ');
dbms_output.put_line('性别' || v_sex || ', ');
dbms_output.put_line('身高' || v_height || ', ');
END; --给100号员工的工资加1
DECLARE
v_sal1 number;
v_sal2 number:=1;
BEGIN
SELECT salary INTO v_sal1 FROM employees WHERE employee_id = 100;
UPDATE employees SET salary = (v_sal1 + v_sal2) WHERE employee_id =100;
COMMIT;
END; SELECT ename, sal INTO v_ename, v_sal FROM emp WHERE empno = 7369;
--查询员工编号为7369号的员工信息,列包括:姓名,薪资
DECLARE
v_empid NUMBER(5) := 7369;
v_name emp.ename%TYPE;
v_sal emp.sal%TYPE;
BEGIN
SELECT ename, sal INTO v_name, v_sal FROM emp WHERE empno = v_empid;
dbms_output.put_line('名字:' || v_name || ',薪资:' || v_sal);
END;
--向表new_dept插入数据,部门编号为50,部门名称chinasofti,地址:zz
CREATE TABLE new_dept AS SELECT * FROM dept;
DECLARE
v_deptno new_dept.deptno%TYPE := 50;
v_dname new_dept.dname%TYPE := 'chinasofti';
v_loc new_dept.loc%TYPE := 'zz';
BEGIN
INSERT INTO new_dept VALUES(v_deptno, v_dname, v_loc);
COMMIT;
END;
/*录入一个数字,
如果大于0小于100输出大于0小于100,
如果大于0大于100输出大于0大于100
如果小于0输出 小于0
*/
DECLARE
v_test number(6):=&input;
BEGIN
IF v_test >=0 AND v_test <=100 THEN
dbms_output.put_line('输入的值在0和100之间');
ELSIF v_test > 100 THEN
dbms_output.put_line('输入的值大于100');
ELSE
dbms_output.put_line('输入的值小于0');
END IF;
END;
-- --输入一个员工编号,判断员工工资等级(输出员工编号,姓名,工资,工资等级)
--如果员工不存在,那么提示"输入的员工不存在"
/*
>=15000 A
>=10000 B
>=5000 C
<5000 D
*/
DECLARE
e employees%ROWTYPE; --表对象
v_level CHAR(1); --工资级别
v_count BINARY_INTEGER; --存放员工是否存在0不存在1存在
BEGIN
e.employee_id := &input;
SELECT COUNT(e.employee_id)
INTO v_count
FROM employees
WHERE employee_id = e.employee_id;
IF (v_count <= 0) THEN
dbms_output.put_line('员工不存在');
ELSE
SELECT *
INTO e
FROM employees
WHERE employee_id = e.employee_id;
IF e.salary >= 15000 THEN
v_level := 'A';
ELSIF e.salary >= 10000 THEN
v_level := 'B';
ELSIF e.salary >= 5000 THEN
v_level := 'c';
ELSE
v_level := 'D';
END IF;
dbms_output.put_line('员工编号:' || e.employee_id || ',姓名:' || e.last_name || ',工资:' || e.salary ||',工资等级:' || v_level);
END IF;
END; --********************-- declare
e employees%rowtype;--表对象
v_level char(1);--工资级别
v_count binary_integer;--存放员工是否存在0不存在1存在 begin
e.employee_id:=&input;
select count(employee_id) into v_count from employees where employee_id= e.employee_id;
if(v_count<=0)
then
dbms_output.put_line('员工不存在');
return;--退出
end if;
--接下来plsql块
select * into e from employees where employee_id= e.employee_id;-->select employee_id,first_name...,deparment_id into v_employee_id,v_first_name...,v_deparment_id frp from employees where employee_id= v_employee_id;
dbms_output.put_line('----:' || e.salary);
if(e.salary>=15000) then
v_level:='A';
elsif(e.salary>=10000) then
v_level:='B';
elsif(e.salary>=5000) then
v_level:='C';
else
v_level:='D';
end if;
--输出员工编号,姓名,工资,工资等级
dbms_output.put_line('员工编号:' || e.employee_id || ',姓名:' || e.last_name || ',工资:' || e.salary ||',工资等级:' || v_level);
end;
--case语句
case 表达式值
when 值1 THEN
语句块1;
when 值2 THEN
语句块2;
end case; --输入ABCD,输入 A优秀 B良好 C一般 D差劲
DECLARE
v_char VARCHAR2(1) := '&input';
BEGIN
CASE v_char
WHEN 'A' THEN
dbms_output.put_line('优秀');
WHEN 'B' THEN
dbms_output.put_line('良好');
WHEN 'C' THEN
dbms_output.put_line('一般');
WHEN 'D' THEN
dbms_output.put_line('差劲');
END CASE;
END;
--loop循环使用
DECLARE
v_i BINARY_INTEGER := 0;
BEGIN
LOOP
IF v_i > 10 THEN
EXIT;
END IF;
v_i := v_i + 1;
dbms_output.put_line('第' || v_i || '次循环');
END LOOP;
dbms_output.put_line('循环结束');
END; --while循环使用
DECLARE
v_i BINARY_INTEGER := 0;
BEGIN
WHILE v_i < 10 LOOP
dbms_output.put_line('hello' || v_i);
v_i := v_i + 1;
END LOOP;
dbms_output.put_line('over');
END; --for循环正序
DECLARE
BEGIN
FOR v_i IN 0 .. 10 LOOP
dbms_output.put_line('hello' || v_i);
END LOOP;
dbms_output.put_line('over');
END;
--for循环倒序
DECLARE
BEGIN
FOR v_i IN REVERSE 0 .. 10 LOOP
dbms_output.put_line('hello' || v_i);
END LOOP;
dbms_output.put_line('over');
END;
--循环插入10行数据
CREATE TABLE books(
author varchar2(20),
book number(4)
);
--FOR循环
DECLARE
v_name VARCHAR2(12) := 'Jhon';
BEGIN
FOR v_i IN 1 .. 10 LOOP
INSERT INTO books VALUES (v_name || v_i, v_i);
COMMIT;
END LOOP;
END;
--WHILE循环
DECLARE
v_name VARCHAR2(12) := 'Jhon';
v_i BINARY_INTEGER := 1;
BEGIN
WHILE v_i <= 10 LOOP
INSERT INTO books VALUES (v_name || v_i, v_i);
COMMIT;
v_i := v_i + 1;
END LOOP;
END;
--loop循环
DECLARE
v_name VARCHAR2(12) := 'Jhon';
v_i BINARY_INTEGER := 1;
BEGIN
LOOP
IF v_i > 10 THEN
EXIT;
END IF;
INSERT INTO books VALUES (v_name || v_i, v_i);
COMMIT;
v_i := v_i + 1;
END LOOP;
END;
Orcle基本语句(六)的更多相关文章
- Orcle 查询语句
首先,以超级管理员的身份登录oracle sqlplus sys/bjsxt as sysdba --然后,解除对scott用户的锁 alter user scott ac ...
- ORCLE基本语句(二)
select语句的基本语法: [ORDER BY < COLUMN1, COLUMN2, COLUMN3...> [ASC 或 DESC]]
- Orcle基本语句(五)
--分页查询---begin --sqlserver top --mysql limit --oracle rownum(伪列),oracle中伪列(rownum,rowid) --查询工资为前五的信 ...
- Orcle基本语句(三)
COMMIT; --查询表内所有内容 SELECT * FROM stu_info; --查询部分列,并赋予别名 SELECT stu_id 学生标号,stu_name 学生姓名 FROM stu_i ...
- Orcle常用语句
在SQLPlus界面的操作语句: 查看\设置每行内显示的字符数:show\set linesize [linesize] 查看\设置一次显示的行数:show\set pagesize [pagesiz ...
- Orcle基本语句(一)
--创建学生信息表,约束放在所有列定义之后 CREATE TABLE stu_info( stu_id INTEGER, stu_name NVARCHAR2() NOT NULL, stu_sex ...
- IBatis.net动态SQL语句(六)
在学习动态SQL语句之前,首先必须对条件查询有一定了解,先来学习如何向IBatis.Net的映射文件里传入参数. 一.条件查询 1.传递单个参数 如根据Id查询: <select id=&quo ...
- Orcle基本语句(四)
--显示员工的编号,姓名,工资,工资级别,所在部门的名称;(使用emp表) SELECT * FROM emp; SELECT * FROM salgrade; SELECT * FROM dept; ...
- Mysql 语句执行顺序
1.这样一个问题,作为一个开发人员需要掌握数据库的哪些东西? 在开发中涉及到数据库,基本上只用到了sql语句,如何写sql以及对其进行优化就比较重要,那些mysql的厚本书籍针对的是DBA,我们只需 ...
随机推荐
- php7 编译安装 apache
http://blog.csdn.net/21aspnet/article/details/47708763 根据此教程的步骤但是碰到了若干问题 1. 执行./configure的时候报错 大部分可 ...
- C# 创建开机启动核心代码
#region 访问 AppSettings private void SaveAppSetting(string key, string value) { var config = Configur ...
- [转]PHP如何关闭notice级别的错误提示
1.在php.ini文件中改动error_reporting改为: error_reporting=E_ALL & ~E_NOTICE 2.如果你不能操作php.ini文件,你可以使用如下方法 ...
- Linux常用的安全工具 转自https://yq.aliyun.com/articles/52540?spm=5176.100239.blogcont24250.8.CfBYE9
摘要: 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://chenguang.blog.51cto.com/350944/85790 ...
- sql server中批量插入与更新两种解决方案分享
若只是需要大批量插入数据使用bcp是最好的,若同时需要插入.删除.更新建议使用SqlDataAdapter我测试过有很高的效率,一般情况下这两种就满足需求了 bcp方式 复制代码 代码如下: /// ...
- 将页面打印成excel
在servlet中调用 try { File fileWrite = new File("D:/Write.xls"); fileWrite.createNewFile(); Ou ...
- [ZZ] Equal Error Rate (EER)
这篇博客很全面 http://www.cnblogs.com/cdeng/p/3471527.html ROC曲线 1.混淆矩阵(confusion matrix) 针对预测值和真实值之间的关系,我们 ...
- ubuntu 常见问题
1.problem 1 用apt-get安装时,提示:E could not get lock /vaa/lib/dpkg/lock -open等 reasons :可能是由于上次使用apt-get ...
- OAF_开发系列03_实现OAF如何在保存前判断数据是否存在变更(案例)
2014-06-26 Created By BaoXinjian
- sql事务的调用
一.数据库的SQL USE [Text]GO/****** Object: StoredProcedure [dbo].[mon] Script Date: 2017-01-03 15:59:28 * ...