
oracle
张张打怪兽
要坚持学习呀
展开
-
oracle-过程函数-demo
和存储过程区别创建方式不一样需要返回值意义基本情况不需要用,因为存储过程可以定义out变量输出值,过程函数可以返回一个值就没啥意义类似js或者java…等的一个带返回值的方法CREATE OR REPLACEFUNCTION "helloworld2"(v_logo VARCHAR2) RETURN VARCHAR2isBEGIN -- routine body goes here, e.g. -- DBMS_OUTPUT.PUT_LINE('Navicat for Oracle原创 2020-11-26 17:50:14 · 185 阅读 · 0 评论 -
oracle-存储过程-游标
CREATE OR REPLACEprocedure "exception3" as--用户自定义异常e_too_high_sal exception; --声明自定义异常v_sal employees.salary%type;begin select salary into v_sal from employees where employee_id = 100; if v_sal > 10000 then raise e_too_high_sal; end if;原创 2020-11-26 17:46:20 · 251 阅读 · 0 评论 -
oracle-存储过程-异常处理
CREATE OR REPLACEPROCEDURE "exception1" ASv_salary EMPLOYEES.SALARY%type;BEGIN select SALARY into v_salary from EMPLOYEES WHERE EMPLOYEE_ID > 100; exception when too_many_rows then dbms_output.put_line('输出行数过多!!'); when others then dbms原创 2020-11-26 17:45:23 · 634 阅读 · 0 评论 -
oracle-存储过程-循环
CREATE OR REPLACEPROCEDURE "loop" AS/* 循环1-100 用三种方式*/v_i NUMBER := 1;v_j NUMBER := 1;BEGIN -- 方式1 loop dbms_output.put_line(v_i); v_i := v_i + 1; exit when v_i > 100; end loop; -- 方式2 while v_j <= 100 loop dbms_output.put_l原创 2020-11-26 17:44:37 · 3666 阅读 · 0 评论 -
oracle-存储过程-记录类型
CREATE OR REPLACEPROCEDURE "variable_record" AS-- 记录类型是把逻辑相关的数据作为一个单元存储起来,称作PL/SQL RECORD 的域(Field),其作用是存放互不相同但是逻辑相关的信息 --定义记录类型 这相当于一个类 里面有三个成员变量 type emp_record is record( v_sal EMPLOYEES.SALARY%type, --数据类型与员工表salary类型一致 v_email EMPLOYEES.EMA原创 2020-11-26 17:44:00 · 414 阅读 · 0 评论 -
oracle-存储过程-命名规则
CREATE OR REPLACEPROCEDURE "name_rules2" ( v_sal IN OUT EMPLOYEES.SALARY%type, --数据类型与员工表salary类型一致 v_email IN OUT EMPLOYEES.EMAIL%type, v_hire_date IN OUT DATE)AS/*命名规则: 程序变量 V_name 程序常量 C_Name 游标变量 Name_cursor原创 2020-11-26 17:43:06 · 1354 阅读 · 0 评论 -
oracle-存储过程-if_else
CREATE OR REPLACEPROCEDURE "if_else" AS -- 查询出 150号员工的工资,若其工资大于或等于10000则打印 'salary>=10000';-- 若在5000 到 10000之间,则打印'5000<=salary<10000';否则打印'salary<5000'/* -- 关于这个IN OUT || OUT || IN 这种东西 如果是java程序注入进来的值需要定义在create里面 -- 非java程序注入进来的值,之原创 2020-11-26 17:41:35 · 12616 阅读 · 0 评论 -
oracle-存储过程-helloworld
CREATE OR REPLACEPROCEDURE "helloworld" AS/* 1.使用plsql软件窗口 需先执行 set serveroutput on 2.存储过程定义 declare --声明的变量、类型、游标 begin --必须部分; --程序的执行部分(类似主线程java,main()方法) exception --针对bengin块中出现的异常,提供处理的机制 end; --必须部分; 结束语句 要带分号*/BEGIN --原创 2020-11-26 17:40:50 · 183 阅读 · 1 评论 -
oracle分页查询笔记
-- 分页查询--查询员工表当中 salary前10的员工信息 SELECT * FROM ( select rownum as rn ,LAST_NAME,SALARY FROM ( select LAST_NAME,SALARY from EMPLOYEES ORDER BY SALARY desc ) )WHERE rn <= 10 -- 查询员工表当中 .原创 2020-11-24 16:24:38 · 183 阅读 · 0 评论 -
ORACLE 序列,索引,同义词
-- 序列/** 序列:可供多个用户来产生唯一数值的数据库对象 1. 自动提供唯一的数值 2. 共享对象 3. 主要用于提供主键值 3. 将序列值装入内存中可以提高访问效率*/-- 创建序列create sequence empseqincrement by 10 --每次自增10start with 10 -- 从10开始增长maxvalue 100 -- 最大值cycle -- 需要循环nocache -- 不需要缓存登陆-- 查询序列 nextval下一个值 ,c原创 2020-08-26 17:34:13 · 152 阅读 · 0 评论 -
ORACLE 视图
-- 视图View -- 1. 父表的 View 展示父表一部分数据-- 2. 视图修改了 父表相应也修改(如果创建一个子表,子表和父表是没有任何关联的,所以想要相互之间有关系必须要用视图)-- 创建视图-- ORA-01031: insufficient privileges 没得权限 -- 我用的是navicate, 编辑连接使用system用户登录,点击顶部菜单用户->点击列表scott用户 -> 点击服务器权限->找到create view->打勾CREATE原创 2020-08-26 11:36:16 · 292 阅读 · 0 评论 -
oracle约束控制
/** 约束是 表级的强制规定 有以下五种约束: NOT NULL 不为空 UNIQUE 唯一 唯一和not null 不冲突 可以多个值为null 但是不能重复 PRIMARY KEY 主键 FOREIGN KEY 外键 CHECK 检查条件*//** 注意事项: 1.如果不指定约束名称 则默认按照SYS_Cn的格式指定约束名称 2.创建和修改约束: - 建表的同事 - 建表之后 3.可以在表级或列级定义约束 4.可以通过数据字典视图查看约束*/-- 创建列原创 2020-08-25 16:42:03 · 156 阅读 · 0 评论 -
oracle增删改及其事务控制
--删除之前创建乱七八糟的表DROP TABLE DEPT1;DROP TABLE DEPT2;DROP TABLE emp2;DROP TABLE emp5;DROP TABLE MYEMP;DROP TABLE MYEMP2;DROP TABLE MYEMP3;--新建立一个表,用于接下来操作CREATE TABLE emp1ASSELECT EMPLOYEE_ID,LAST_NAME,HIRE_DATE,SALARYFROM EMPLOYEES WHERE 1原创 2020-07-13 11:36:54 · 424 阅读 · 0 评论 -
oracle-ddl创建表和管理表
-- 常见的数据库对象/* 表 基本的数据存储集合,由行和列组成 视图 从表中抽出的逻辑上相关的数据集合 序列 提供有规律的数值 索引 提高查询的效率 同义词 给对象起别名*/-- 查询用户创建的表SELECT * FROM user_tables;-- 查询用户自己的数据库对象SELECT * FROM user_catalog;-- 查询用户自己定义的数据库对象SELECT DISTINCT object_type FROM user_object原创 2020-07-08 15:44:32 · 430 阅读 · 0 评论 -
oracle子查询(有难度)
oracle基础oracle单行函数oracle多表查询oracle分组函数-- 子查询-- 子查询 在主查询之前一次执行完成-- 子查询的结果被主查询使用-- 单行子查询 ,子查询返回一条结果 可以用比较运算符与子查询的结果进行比较-- 多行子查询 , 子查询返回多条结果 用 in / any/ all--谁的工资比Abel高-- 10条SELECT LAST_NAME,SALARYFROM EMPLOYEESWHERE SALARY > ( SELECT SALARY原创 2020-07-08 10:38:59 · 274 阅读 · 0 评论 -
oracle分组函数
oracle多表查询oracle单行函数oracle基础/* AVG(expr) 平均值 必须是number类型 COUNT(expr) 统计条数 可以是任意数据类型 MAX(expr) 最大值 可以是任意数据类型 MIN(expr) 最小值 可以是任意数据类型 SUM(expr) 求和 必须是number类型*/SELECT ROUND(AVG(SALARY), 2),MAX(SALA转载 2020-07-07 14:01:25 · 342 阅读 · 0 评论 -
oracle多表查询
oracle单行函数oracle基础---------------- 多表查询 ------------------- 笛卡尔积错误 (原因就是没有加条件)-- 查询员工表与部门表-- 2889条--会拿EMPLOYEES表(左表)中的每一条数据与DEPARTMENTS(右表)中的每一条数据匹配 即 107*27SELECT EMPLOYEES.EMPLOYEE_ID,EMPLOYEES.LAST_NAME,DEPARTMENTS.DEPARTMENT_ID,DEPARTMENTS.DEPA原创 2020-07-07 13:58:38 · 625 阅读 · 0 评论 -
oracle单行函数
--查询工资大于12000 员工的姓名和工资SELECT LAST_NAME as name,SALARY from EMPLOYEESwhere SALARY > 12000;--查询员工号为176的员工的姓名和部门号SELECT LAST_NAME , DEPARTMENT_IDFROM EMPLOYEESwhere EMPLOYEE_ID = 176--选择工资不在5000到12000的员工的姓名和工资SELECT LAST_NAME ,SALARY FROM EMP原创 2020-07-04 14:19:30 · 273 阅读 · 0 评论 -
oracle基础
表将以下存储为.sql文件在plsql中,window command执行下面文件@文件路径(路径不要有中文)del_data.sqlALTER TABLE departmentsDISABLE CONSTRAINT DEPT_MGR_FK;ALTER TABLE job_historyDISABLE CONSTRAINT JHIST_EMP_FK;DROP TRIGGER secure_employees;DROP TRIGGER update_job_history;D原创 2020-07-03 14:06:31 · 4541 阅读 · 0 评论