emp

Oracle基础 存储过程

為{幸葍}努か 提交于 2019-12-18 20:12:33
一、子程序   子程序是已命名的PL/SQL块,它们存储在数据库中,可以Wie它们指定参数,可以从任何数据库客户端和应用程序中调用它们。子程序包括存储过程和函数。   子程序包括:   1、声明部分:声明部分包括类型、游标、常量、变量、异常和嵌套子程序的声明。这些项都是局部的,在退出后就不复存在。   2、可执行部分:可执行部分包括赋值、控制执行过程以及操纵ORacle数据的语句。   3、异常处理部分:  异常处理部分包括异常处理程序,负责处理执行存储过程中出现的异常。   子程序的有点:   1、模块化:通过子程序,可以将程序分解为可管理的、明确的逻辑模块。   2、可重用性:子程序在创建并执行后,就可以再任意数目的应用程序中使用。   3、可维护性:子程序可以简化维护操作,因为如果一个子程序受到影响,则只需修改该子程序的定义。   4、安全性:用户可以设置权限,使得访问数据的唯一方式就是通过用户提供的存储过程和函数。不仅可以让数据更安全,而且可以保证它的正确性。 二、存储过程   存储过程是执行某些操作的子程序,是执行特定任务的模块。从根本上讲,存储过程就是明明的PLSQL块,它可以被赋予参数,存储在数据库中,然后由一个应用程序或其他PLSQL程序调用。    1、创建存储过程:   语法:   CREATE [OR REPLACE] PROCEDURE procedure

PL/SQL --> 存储过程

◇◆丶佛笑我妖孽 提交于 2019-12-18 01:15:37
--===================== -- PL/SQL --> 存储过程 --===================== 存储过程子程序的一种类型,能够完成一些任务,作为 schema 对象存储于数据库。是一个有名字的 PL / SQL 代码块,支持接收或不接受参数 ,同时也支持参数输出。一个存储过程通常包含定于部分,执行部分, Exception 部分,可以被其他子程序调用,也可以被重用。 一、过程定义 CREATE [ OR REPLACE ] PROCEDURE procedure_name [(argument_name [IN | OUT | IN OUT] argument_type ) ] AS | IS BEGIN procedure_body ; END [procedure_name] ; 存储过程中参数的类型 IN :表示是一个输入参数,可以指定缺省值。如省略参数类型,则缺省为 in 类型 OUT :表示是一个输出参数 IN OUT :既可以作为一个输入参数,也可以作为一个输出参数来输出结果 二、过程调用 EXECUTE | CALL procedure_name [(argument_list)] -- 例:定义一个过程,以 JOB 为参数,查询该 JOB 的最高工资、最低工资、平均工资。 CREATE OR REPLACE PROCEDURE

MySQL之多表查询3

有些话、适合烂在心里 提交于 2019-12-17 20:27:07
1.列出至少有四位员工的所有部门信息 1 . 查询每个部门的人数 select deptno , count ( * ) from emp group by deptno 2 . 至少有四位 select deptno , count ( * ) from emp group by deptno having count ( * ) > 4 3 . 部门信息 select d . * , dd . cou from dept d , ( select deptno , count ( * ) cou from emp group by deptno having count ( * ) > 4 ) dd where d . deptno = dd . deptno 2.列出薪金比“SMITH”多的员工信息 1 . 查询“SMITH”的薪金 select sal from emp where ename = 'smith' 2 . 查询比子查询结果工资高的雇员信息 select * from emp where sal > ( select sal from emp where ename = 'smith' ) 3.列出所有员工的姓名及其直接上级的姓名。没有领导的雇员也列出 select e . ename , m . ename from emp e left join emp

oracle cascade用法

天大地大妈咪最大 提交于 2019-12-17 17:50:16
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 级联删除,比如你删除某个表的时候后面加这个关键字,会在删除这个表的同时删除和该表有关系的 其他 对象 1.级联删除表中的信息,当表A中的字段引用了表B中的字段时,一旦删除B中该字段的信息,表A的信息也自动删除。(当父表的信息删除,子表的信息也自动删除) 例如下面这两个表中分别存的时员工的基本信息和公司的部门信息。我们为 create table dept (deptno number(10) not null, deptname varchar2(30) not null, constraint pk_dept primary key(deptno)); 和 create table emp ( empno number(10) not null, fname varchar2(20) , lname varchar2(20) , dept number(10) , constraint pk_emp primary key(empno)); 然后我们现在增加外键试一下on delete cascade alter table emp add constraint fk_emp_dept foreign key(dept) references dept(deptno) on delete cascade;

oracle 触发器基本语法

荒凉一梦 提交于 2019-12-17 13:26:14
–触发器基本语法 –查看员工表的人数 create or replace trigger tri_in_emp before --after insert on emp declare v_count int; begin select count(*) into v_count from emp; dbms_output.put_line(‘员工人数为:’||v_count); end; insert into emp values(); select * from emp 来源: CSDN 作者: 發財123 链接: https://blog.csdn.net/weixin_44245525/article/details/103574354

Oracle 常用函数

谁说我不能喝 提交于 2019-12-17 12:40:20
1.Oracle 数据库中的to_date()函数的使用:   往emp表中插入一条记录: SQL> insert into emp values(1234,'LIZELU','BOSS',1234,'1980-12-06',10000.0,0,30); insert into emp values(1234,'LIZELU','BOSS',1234,'1980-12-06',10000.0,0,30) ORA-01861: 文字与格式字符串不匹配--日期格式不对 使用to_date()函数搞定:格式to_date('1965-02-05','yyyy-mm-dd'); 2.Oracle中的字符函数:   字符函数是Oracle中最常用的函数,   lower(char); 把字符串转换为小写格式;   upper(char);把字符串转换为大写格式;   length(char);返回字符串的长度;   substr(char,m,n);取字符串的字串;   replace(char,search_char,replace_str);   1.将所有员工的名字按小写的格式输出 select lower(emp.ename) from emp;   2.显示正好为5个字符的名字; select ename from emp where length(ename)=5;   3

牛客网数据库SQL实战(21-25)

喜欢而已 提交于 2019-12-17 11:45:07
21、查找所有员工自入职以来的薪水涨幅情况,给出员工编号emp_no以及其对应的薪水涨幅growth,并按照growth进行升序 CREATE TABLE `employees` ( `emp_no` int(11) NOT NULL, `birth_date` date NOT NULL, `first_name` varchar(14) NOT NULL, `last_name` varchar(16) NOT NULL, `gender` char(1) NOT NULL, `hire_date` date NOT NULL, PRIMARY KEY (`emp_no`)); CREATE TABLE `salaries` ( `emp_no` int(11) NOT NULL, `salary` int(11) NOT NULL, `from_date` date NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`from_date`)); select a.emp_no, (b.salary - c.salary) as growth from employees as a inner join salaries as b on a.emp_no = b.emp_no and b.to_date =

Oracle教程-查询(二)

元气小坏坏 提交于 2019-12-17 08:47:41
emp 雇员表 字段名称 数据类型 是否为空 备注 -------- ----------- -------- -------- EMPNO NUMBER(4) 员工编号 ENAME VARCHAR2(10) Y 员工名称 JOB VARCHAR2(9) Y 职位 MGR NUMBER(4) Y 上级的编号 HIREDATE DATE Y 入职日期 SAL NUMBER(7,2) Y 月工资 COMM NUMBER(7,2) Y 奖金 DEPTNO NUMBER(2) Y 所属部门 ------------------------------------------- job字段: clerk 普员工 salesman 销售 manager 经理 analyst 分析师 president 总裁 dept 部门表 字段名称 数据类型 是否为空 备注 -------- ----------- -------- -------- DEPTNO NUMBER(2) 部门编号 DNAME VARCHAR2(14) Y 部门名称 LOC VARCHAR2(13) Y 部门所在地点 ------------------------------------------- DNAME字段: accounting 财务部 research 研发部 operations 业务部 salgrade

day36-多表查询

女生的网名这么多〃 提交于 2019-12-17 03:01:12
#建表 create table department( id int, name varchar(20) ); create table employee( id int primary key auto_increment, name varchar(20), sex enum('male','female') not null default 'male', age int, dep_id int ); #插入数据 insert into department values (200,'技术'), (201,'人力资源'), (202,'销售'), (203,'运营'); insert into employee(name,sex,age,dep_id) values ('egon','male',18,200), ('alex','female',48,201), ('wupeiqi','male',38,201), ('yuanhao','female',28,202), ('liwenzhou','male',18,200), ('jingliyang','female',18,204) ; #查看表结构和数据 mysql> desc department; +-------+-------------+------+-----+---------+-------+ |