查询表的所有数据 函数调用

--查询表的所有数据

select * from wan;
--首先给表创建一个序列 每次增加1,从1开始
--给表新增一个列
alter table wan add(id number );
--创建序列
create sequence wan_id_se
start with 1
increment by 1
maxvalue 99999
nocache
nocycle;
--更新添加列的数据 让id每次增加1
update wan set id=wan_id_se.nextval ;

--过程控制语句
declare
a number :=1;
b wan.ename%type;
c number ;
begin
select count(*) into c from wan;
while a <=c
loop
select ename into b from wan where id=a;
dbms_output.put_line(‘姓名是‘||b);
a:=a+1;
end loop;
end;

--输入内容 &
declare
sall emp.sal%type:=&sal;
begin
if sall<1500 then
dbms_output.put_line(sall||‘df‘);
end if;
end;

declare
v_ename emp.ename%type :=‘&a‘;
v_sal emp.sal%type ;
begin
select sal into v_sal from emp where ename=v_ename;
if v_sal<1500 then
update emp set sal=sal+100 where ename=v_ename;
dbms_output.put_line(‘f ‘|| v_ename ||‘dfg‘);
else
dbms_output.put_line(‘f ‘|| v_ename ||‘++++++‘);
end if;
END;

--非预定义异常练习
declare
v_deptno dept.deptno%TYPE :=&deptno;
deptno_remaining EXCEPTION;
PRAGMA EXCEPTION_INIT(deptno_remaining, -2292);
/* -2292 是违反一致性约束的错误代码 */

begin
DELETE FROM dept WHERE deptno=v_deptno;
EXCEPTION
WHEN deptno_remaining THEN
DBMS_OUTPUT.PUT_LINE(‘违反数据完整性约束!‘);
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLCODE||‘---‘‘||SQLERRM);

end;
-- 用户定义异常 使用关键字 raise
DECLARE
v_empno emp.empno%TYPE :=&empno;
no_result EXCEPTION; --声明异常
BEGIN
UPDATE emp SET sal=sal+100 WHERE empno=v_empno;

IF SQL%NOTFOUND THEN
RAISE no_result; --跳转到异常部分
END IF;

EXCEPTION
WHEN no_result THEN
DBMS_OUTPUT.PUT_LINE(‘你的数据更新语句失败了!‘);
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLCODE||‘---‘||SQLERRM);
END;
--创建函数
create or replace function get_salary(
dept_no number, emp_count out number)
return number
is
v_sum number;
begin
select sum(sal),count(*) into v_sum,emp_count from emp where deptno=dept_no;
return v_sum;
exception
when no_data_found then
dbms_output.put_line(‘你需要的数据不存在!‘);
when others then
dbms_output.put_line(‘-----‘);
end get_salary;

--调用函数
--方法一
DECLARE
V_num NUMBER;
V_sum NUMBER;
BEGIN
V_sum :=get_salary(20, V_num); --输入参数
DBMS_OUTPUT.PUT_LINE(‘30号部门工资总和:‘||v_sum||‘,人数:‘||V_num);
END;
--方法二
DECLARE
V_num NUMBER;
V_sum NUMBER;
BEGIN
V_sum :=get_salary( dept_no => 30,emp_count => v_num);
DBMS_OUTPUT.PUT_LINE(‘30号部门工资总和:‘||v_sum||‘,人数:‘||v_num);
END;
--方法三
DECLARE
Var VARCHAR2(32);
BEGIN
Var := demo_fun(‘user1‘, 30, sex => ‘男‘);
DBMS_OUTPUT.PUT_LINE(var);
Var := demo_fun(‘user2‘, age => 40, sex => ‘男‘);
DBMS_OUTPUT.PUT_LINE(var);
Var := demo_fun(‘user3‘, sex => ‘女‘, age => 20);
DBMS_OUTPUT.PUT_LINE(var);
END;

select Mod(50,20) from dual
Select to_date(‘2015126‘,‘yyyyMMdd‘) from dual;
select to_char(sysdate,‘HH24:MI:SS ‘) from dual;

时间: 2024-12-27 09:41:36

查询表的所有数据 函数调用的相关文章

Hive查询表,返回数据全是NULL

情况1: hive> create table users(id int, name string); hive> load data local inpath '/usr/local/users.txt' into table users; 其中"/usr/local/users.txt"的内容为下面所示,每一行的(id,name)之间使用一个空格分割. 1 lee2 jack3 rose4 marry5 tom hive> select * from users;

ORACLE查询表最近更改数据的方法

修改项目时,涉及到了Oracle中许多表的修改(包括:增加.删除字段,修改注释等).由于开始没有进行记录,造成在上测试机时,忘记了具体修改过哪些表了.后来在网上查找了一些资料,例如: 1.select uat.table_name from user_all_tables uat 该SQL可以获得所有用户表的名称2.select object_name, created,last_ddl_time from user_objects 该SQL可以获得所有用户对象(包括表)的创建和最后修改时间 综

sql查询表内重复数据

SELECT * FROM 表名 a WHERE (a.重复字段1,a.重复字段2,a.重复字段3) IN (SELECT 重复字段1,重复字段2,重复字段3 FROM 表名 GROUP BY 重复字段1,重复字段2,重复字段3 HAVING COUNT(*) > 1) 原文地址:https://www.cnblogs.com/yanchaohui/p/10846151.html

SQL SERVER 数据库中几百万数据查询优化

1.当需要查询表中所有数据时 比较以下三种查询语句: 假设数据表为BasicMsg20170401,共有17列,数据条数为两百八十四万 (1)SELECT * FROM  BasicMsg20170401 耗时44秒以上 (2)SELECT 列1,列2... FROM  BasicMsg20170401 耗时28~30秒上下 (3)SELECT 列1,列2... FROM  BasicMsg20170401 WITH  (index(SelAA_Index) ) 强制加入非聚集索引后,耗时23~

查询和删除表中重复数据sql语句

  1.查询表中重复数据.select * from peoplewhere peopleId in (select   peopleId   from   people   group   by   peopleId   having   count(peopleId) > 1)2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录delete from people where peopleId   in (select   peopleId

安卓飞机大战(七) 存储用户数据并实现增删改查

将用户的数据进行存储,利用SQLiteOpenHelper 1.建一个mysqlhelp类,扩展自SQLiteOpenHelper import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper

Hadoop集群(第10期副刊)_常用MySQL数据库命令

1.系统管理 1.1 连接MySQL 格式: mysql -h主机地址 -u用户名 -p用户密码 举例: 例1:连接到本机上的MySQL. 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令"mysql –u root –p",回车后提示你输密码,如果刚安装好MySQL,超级用户"root"是没有密码的,故直接回车即可进入到MySQL中了,MySQL的提示符是: mysql>. 例2:连接到远程主机上的MYSQL.假设远程主机的IP为:110.1

安卓数据存储(3):SQLite数据库存储

SQLite简介 Google为Andriod的较大的数据处理提供了SQLite,他在数据存储.管理.维护等各方面都相当出色,功能也非常的强大.SQLite具备下列特点: 1.轻量级:使用 SQLite 只需要带一个动态库,就可以享受它的全部功能,而且那个动态库的尺寸想当小. 2.独立性:SQLite 数据库的核心引擎不需要依赖第三方软件,也不需要所谓的“安装”. 3.隔离性:SQLite 数据库中所有的信息(比如表.视图.触发器等)都包含在一个文件夹内,方便管理和维护. 4.跨平台:SQLit

数据库处理表中重复数据方法

--查询表中重复数据 select * from 表名 t where t.id in ( SELECT id FROM 表名 GROUP BY id HAVING COUNT(主键编号)>1 ); --去除表中重复数据 delete from 表名 a where rowid not in ( select max(b.rowid) from 表名 b where a.主键编号 = b.主键编号 );数据库处理表中重复数据方法,布布扣,bubuko.com