-- 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基本语句(六)的更多相关文章

  1. Orcle 查询语句

    首先,以超级管理员的身份登录oracle       sqlplus sys/bjsxt as sysdba   --然后,解除对scott用户的锁       alter user scott ac ...

  2. ORCLE基本语句(二)

    select语句的基本语法: [ORDER BY < COLUMN1, COLUMN2, COLUMN3...> [ASC 或 DESC]]

  3. Orcle基本语句(五)

    --分页查询---begin --sqlserver top --mysql limit --oracle rownum(伪列),oracle中伪列(rownum,rowid) --查询工资为前五的信 ...

  4. Orcle基本语句(三)

    COMMIT; --查询表内所有内容 SELECT * FROM stu_info; --查询部分列,并赋予别名 SELECT stu_id 学生标号,stu_name 学生姓名 FROM stu_i ...

  5. Orcle常用语句

    在SQLPlus界面的操作语句: 查看\设置每行内显示的字符数:show\set linesize [linesize] 查看\设置一次显示的行数:show\set pagesize [pagesiz ...

  6. Orcle基本语句(一)

    --创建学生信息表,约束放在所有列定义之后 CREATE TABLE stu_info( stu_id INTEGER, stu_name NVARCHAR2() NOT NULL, stu_sex ...

  7. IBatis.net动态SQL语句(六)

    在学习动态SQL语句之前,首先必须对条件查询有一定了解,先来学习如何向IBatis.Net的映射文件里传入参数. 一.条件查询 1.传递单个参数 如根据Id查询: <select id=&quo ...

  8. Orcle基本语句(四)

    --显示员工的编号,姓名,工资,工资级别,所在部门的名称;(使用emp表) SELECT * FROM emp; SELECT * FROM salgrade; SELECT * FROM dept; ...

  9. Mysql 语句执行顺序

    1.这样一个问题,作为一个开发人员需要掌握数据库的哪些东西?  在开发中涉及到数据库,基本上只用到了sql语句,如何写sql以及对其进行优化就比较重要,那些mysql的厚本书籍针对的是DBA,我们只需 ...

随机推荐

  1. Apache虚拟机建立本地域名

    Apache虚拟机建立本地域名 1.首先打开conf文件夹下http.conf文件,查找vhost,如下操作 2.删除#(取消注释,启用虚拟机功能),根据红框内路径找到httpd-vhosts.con ...

  2. Qt中数据模块学习

    QtSql模块 驱动类型和数据库:不同的数据库用不同的驱动连接(接口不同) QDB2->DB2 QOCI->orcle QODBC->SQLServer等 QSqlDataBase类 ...

  3. 记一次ifconfig命令

    由于Windows 10的强制更新,原来的Virtual box Host-Only驱动莫名奇妙的不见了,于是上网找各种解决方案: 1.重新生成虚拟网卡适配器:执行 VBoxManage.exe ho ...

  4. vnc--centos 7 安装和配置

    安装步骤: 1.首先试试服务器装了 VNC 没 rpm -q tigervnc tigervnc-server 没安装的话会直接出现package tigervnc is not installedp ...

  5. iOS NSTimer使用详解 开启、关闭、移除

    定时器定时器详解ios定时器关闭定时器NSTimer 一,要使用一个定时器首先要定义一个定时器: @property (strong, nonatomic) NSTimer *myTimer;//定时 ...

  6. An invalid character [32] was present in the Cookie value

    系统安装Tomcat版本为:tomcat8,登录时报错"An invalid character [32] was present in the Cookie value" 处理方 ...

  7. D3树状图异步按需加载数据

    D3.js这个绘图工具,功能强大不必多说,完全一个Data Driven Document的绘图工具,用户可以按照自己的数据以及希望实现的图形,随心所欲的绘图. 图形绘制,D3默认采用的是异步加载,但 ...

  8. Stream 和 byte[] 之间的转换

    Stream 和 byte[] 之间的转换 一. 二进制转换成图片 ? 1 2 3 4 5 MemoryStream ms = new MemoryStream(bytes); ms.Position ...

  9. undefined reference to `_init'问题解决

    今天利用CDT 的eclipse调试程序,遇到下面的问题: d:/plugin/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi ...

  10. Cannot get a connection, pool exhausted解决办法

    http://blog.163.com/it_message/blog/static/8892051200908102032653/ 连接池(Tomcat+oracle),运行一段时间后就会出现 Ca ...