![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Oracle
玉爷~
技术学的好,讨饭讨到老。
展开
-
windows xp虚拟机上安装oracle数据库
一、准备虚拟机1、在虚拟机上装windows xp2、右击创建共享文件夹3、在虚拟机找到工具选择映射网络驱动,找到共享文件夹4、在windows xp上装一个解压程序5、复制oracle安装包到共享文件夹下,然后复制到windows xp的c盘上,解压,安装二、安装oracle1、oracle安装提示界面使用java swing写的2、oracle只有一个o...原创 2019-05-25 21:48:26 · 1666 阅读 · 0 评论 -
oracle数据处理
1、地址符&几乎可以使用在任何sql语句中insert into emp10(empno,ename,sal,deptno) values(&empno,&ename,&sal,&deptno);2、增删查改中使用子查询例子:update中使用子查询update emp10 set sal=(select sal ...原创 2019-06-07 20:52:35 · 323 阅读 · 0 评论 -
oracle事务
1、自动开启事务(1)起始标志:事务中的第一条DML语句(2)结束标志:提交:显示 commit;隐式:正常退出、DDL、DCL回滚:显示 rollback;隐式:非正常退出 掉电、宕机2、保存点定义保存点:savepoint a;回滚到保存点:rollback to savepoint a;3、事务隔离级别SQL99有4中隔离级别,mysql都支持ora...原创 2019-06-07 20:53:39 · 2687 阅读 · 0 评论 -
DDL语句管理表
1、表空间表空间由数据文件构成创建表空间:create tablespace tableNamedatafile ‘c\name.dbf’size 100mnext 10m创建表的时候如果没有指定表空间,普通用户默认为USERS01.DBF这个表空间也可以创建用户的时候指定默认表空间2、复制表create table emp10 as selec...原创 2019-06-07 20:55:40 · 121 阅读 · 0 评论 -
oracle约束
oracle中约束只有表级和列级约束:联合主键约束是表级约束1、约束类型主键约束(primary key)非空约束(not null)唯一约束(unique)外键约束(foreign key)检查性约束(check)check约束使用:create table test3(tid number,tname varchar2(20),gender varcha...原创 2019-06-07 20:57:17 · 109 阅读 · 0 评论 -
oracle视图view
视图就是封装了一条复杂查询的语句视图是一个虚表视图最大的优点就是简化复杂的查询1、创建语法创建视图:create or replace view empinfoviewasselect e.empno,e.eanme,e.sal,e.sal*12 annsal,d.dnamefrom emp e,dept dwhere e.deptno=d.deptno;2、...原创 2019-06-07 20:58:56 · 209 阅读 · 0 评论 -
oracle序列sequence
mysql中使用auto_increment,oracle中使用序列完成该功能序列就是一个数组,序列是装到内存中的,可用时提高访问效率数组默认长度20:[1,2,3,4.....20][21,22,23....40]1、序列语法2、取用序列的值是通过指针取的,指针开始并不是指向第一个值的位置,而是第一个位置之前的位置,取序列值的两个参数:nextvalcurrval...原创 2019-06-07 21:00:07 · 186 阅读 · 0 评论 -
oracle索引index
创建索引:create index myindexon emp(deptno [,第二列,第三列.....]);执行这句后,oracle会自动创建一个index表,表中放的是rowid索引表oracle自己会维护oracle中索引类型B树(默认) 位图适合建立索引的情况:列中数据值分布范围广 列经常在我where字句或连接条件中出现 表经常被访问而且...原创 2019-06-07 21:01:05 · 103 阅读 · 0 评论 -
oracle同义词synonym
同义词就是别名1、使用例子说明:scott访问hr下的employees表:(1)创建synonym(给hr.employees一个别名):create [public] synonym hremp for hr.employees;没加public是私有同义词,只能自己用,加了就是共有同义词,任何用户都可以用访问(2)访问同义词synonym:select * fro...原创 2019-06-07 21:05:28 · 184 阅读 · 0 评论 -
PLSQL语法和变量
PL/SQL(Procedure Language/SQL),通过写程序的方式操作数据库优点:PLSQL效率比通过程序语言(java、C++)操控数据库效率高。springMVC+存储过程(PLSQL)1、语法declare 说明部分(变量说明,光标声明,例外说明)begin 语句序列(DML语句)exception 例外处理语句end;(1)常...原创 2019-06-07 23:34:10 · 462 阅读 · 0 评论 -
PLSQL条件控制
1、if语句(1)if 条件 then 语句1; 语句2; end if;(2)if 条件 then 语句序列1; else 语句序列2; end if;(3)if 条件 then 语句; elsif 语句 then 语句; else 语句; ...原创 2019-06-07 23:38:49 · 949 阅读 · 0 评论 -
PLSQL之光标
相当于java中的ResultSet1、使用例如:cursor c1 is select ename from emp;打开光标:open c1;取一行游标的值:fetch c1 into pjob;(pjob必须和emp表中的job列类型一致)关闭游标:close c1;游标的结束方式:exit when c1%notfound(根据游标的属性结束循环)例子:打印所有...原创 2019-06-08 00:13:50 · 744 阅读 · 0 评论 -
PLSQL之例外(异常)
和java异常一样,处理机制为向上处理机制语法和java差不多,只是没有finally1、例外分类(1)系统定义异常(2)自定义例外2、常见系统定义异常not data_found(没有找到数据)too_many_rows(select...into语句匹配多个行)zero_divide(被零除)value_error(算术或转换错误)timeout_on_...原创 2019-06-08 00:13:37 · 849 阅读 · 0 评论 -
oracle存储过程
1、语法create [or replace] procedure 过程名(参数列表)as[as也可以写做is][变量申明] PLSQL子程序;2、不带参的存储过程过程名大小写不敏感例子:输出hello worldcreate or replace procedure hello isbegin dbms_output.put_line('hello worl...原创 2019-06-08 00:51:47 · 86 阅读 · 0 评论 -
oracle存储函数
相比于存储过程,必须要有返回值语法:create or replace function 函数名(参数列表)return 函数值类型as(或is)[定义变量] PLSQL子程序体;例子:查询摸个员工的年收入create or replace function queryIncome(eno in number) return numberis psal e...原创 2019-06-08 00:52:44 · 392 阅读 · 0 评论 -
oracle触发器
1、触发器类型1)语句级触发器在指定的操作语句操作之前或之后执行一次,不管这条语句影响了多少行记录。2)行级触发器影响几行记录执行几次,可以使用:old和:new伪记录变量。2、语法create [or replace] trigger 触发器名{before|after}{delete|insert|update[of 列名]}on 表名[for each ro...原创 2019-06-08 15:18:30 · 788 阅读 · 0 评论 -
java调用函数和过程
1、导入jar包jar包在oracle安装目目录中有2、JDBCUtils工具类package utils;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql....原创 2019-06-08 17:58:30 · 1203 阅读 · 0 评论 -
集合运算
1、集合运算符:union/union allintersectminus例子:查询10和20号部门的员工select * from emp where deptno=10 or deptno=20 select * from emp where deptno in(10,20); 集合运算:select * from emp where deptno=10un...原创 2019-06-06 23:56:09 · 879 阅读 · 0 评论 -
oracle分页查询、rownum 、临时表
1、伪列:rownum(1)rownum永远按照默认的顺序生成(2)rownum只能使用<、<=;不能使用>、>=(因为oracle是行式数据库,)例子:查询工资排前三的员工信息select rownum,empno,ename,salfrom(select *from emporder by sal desc)where rownum &l...原创 2019-06-06 23:53:58 · 367 阅读 · 0 评论 -
oracle服务器及体系结构
一、概念实例:orcl目录下的文件,加载到内存中的镜像就是实例 oracle集群(RAC:real application cluster): 集群优点: (1)Load Balance负载均衡 (2)Fail Over 失败迁移二、体系结构1、oracle由一个数据库和多个实例组成oracle只有一个数据库orcl,orcl...原创 2019-05-25 21:57:09 · 554 阅读 · 0 评论 -
oracle的listener服务(OracleOraDblOg_home1TNSListener)无法开启问题
一、问题描述通过SQL*Plus命令行工具远程连接oracle时,发现没有开oracle的listener服务,然后当我去开启服务的时候,发现开不了服务。二、问题原因造成这个的原因是应为oracle配置文件中的ip和电脑显示使用的ip不一样。配置文件为以下两个文件:listener.ora:rnsnames.ora:三、问题解决将电脑ip改为文件中的...原创 2019-05-27 20:54:00 · 1666 阅读 · 0 评论 -
OracleDBConsoleorcl服务无法启动
一、问题描述OracleDBConsoleorcl服务无法启动,不能访问oracle自带的网页版图形化工具。二、原因又是ip地址的问题,当初安装的时候没有联通网络,装好后可以访问和使用,但是关机后,第二天开机打开就开不了OracleDBConsoleorcl服务了。三、解决方法(我的oracle是放在VMware虚拟机上的,使用的是静态ip)修改系统的host文件,在最后行添加...原创 2019-05-28 13:23:41 · 936 阅读 · 0 评论 -
oracle命令行修改错误sql语句
错误语句:select * form emp;如下:修改错误语句的两种方法:1、c命令(change)(1)输入2然后回车,表示跳到第二行,(2)然后使用c命令:c /form/from 回车,(3)然后输入/,回车,就执行修改后的语句2、ed命令(edit)输入ed,回车,oracle就把上一条sql语句放到操作系统的默...原创 2019-05-29 15:49:41 · 1794 阅读 · 0 评论 -
SQL优化原则
1、查询使用列名比*好,oracle会把*先转换为当前表的所有列名,使用*就让计算机多执行一步2、where解析顺序:右——>左使用and可以把更有可能是false的放在右边oracle会把sql解析成sql执行计划,不是直接执行的SQL语句,就像java不是直接执行的java文件,而是先编译成class文件3、当既可以使用where和having的时候,尽量使用where...原创 2019-06-05 15:12:30 · 543 阅读 · 1 评论 -
过滤
1、比较运算符 操作符 含义 = 等于 > 大于 >= 大于、等于 < 小于 <= 小于、等于 <>...原创 2019-06-05 15:33:26 · 128 阅读 · 0 评论 -
排序order by
1、默认升序asc2、order by 后面可以 + 列、表达式、别名、序号别名:select empno,ename,sal,sal*12 年薪 from emp order by 年薪 desc;序号:select empno,ename,sal,sal*12 from emp order by 4 desc;3、多个列排序:select * from emp ord...原创 2019-06-05 15:40:22 · 337 阅读 · 0 评论 -
oracle函数
1、单行函数函数分类六种:字符、数值、日期、转换、通用、条件表达式(1)字符函数:1)大小写:A、lower转小写B、upper转大写C、initcap单词首字符大写2)字符控制函数:A、concat:字符连接B、substr(a,b):从a中,第b为开始取C、substr(a,b,c):从a中,第b为开始取c位D、length(s):字符数/len...原创 2019-06-05 23:11:34 · 145 阅读 · 0 评论 -
oracle分组group by
1、语法在select列表中所有未包含在组函数中的列都应该包含在group by字句中包含在group by字句中的列不必包含在select列表中正确:select deptno avy(sal) from emp group by deptno;(每个部门的平均工资)错误:select deptno,count(ename) from emp;2、多个列分组sel...原创 2019-06-05 23:13:38 · 24453 阅读 · 0 评论 -
oracle多表查询
多表查询基本就是对笛卡尔积做筛选类型:等值连接(easy)不等值连接(easy)外连接自连接1、等值连接select e.empno,e.ename,e.sal,d.dnamefrom emp e, dept dwhere e.deptno = d.deptno2、不等值连接select e.empno,e.ename,e.sal,s.gradefro...原创 2019-06-05 23:51:48 · 87 阅读 · 0 评论 -
oracle基本命令
1、命令行登录:sqlplus scott/tiger sqlplus scott/tiger@192.168.146.128:1521/orcl2、开始录屏spool d:\基本查询.txt (执行该语句后oracle会在d盘创建一个“基本查询.txt”文件) 结束关闭录屏spool off(如果不执行这句,基本查询....原创 2019-05-29 15:04:31 · 7728 阅读 · 0 评论 -
oracle中null值问题以及滤空函数(nvl)
1、select语句中的null问题:(1)包含null的表示式都为null(2)null永远不等于null(3)如果集合中含有null,不能使用not in,但可以使用innot in相当于<>all举例解释:a not in(3,4,null)相当于a!=3 and a!=4 and a!=null,a!=null永远为false(4)null值在order...原创 2019-05-29 15:56:26 · 3121 阅读 · 0 评论 -
别名和distinct关键字
1、别名给select语句列加别名,三种方式:select empno as "员工号",ename "姓名", sal 月薪,sal*12,comm,sal*12+nvl(comm,0) from emp;(1)其中第一和第二种没有区别(2)第三中不可以使用特殊字符(空格),不能使用纯数字,如果需要则加双引号2、distinct关键字distinct:过滤重复的值d...原创 2019-05-29 16:04:55 · 1413 阅读 · 0 评论 -
oracle中字符串连接符||
1、oracle和mysql都遵循sql99标准(ANSI制定的,在1999年)oracle中 select 后面必须要有from关键字在mysql中select concat('hello',' world');正确,但是在oracle中错误hadoop中hive(蜂巢)数据库支持sql92标准2、dual:伪表select concat('hello',' world') ...原创 2019-05-29 16:10:52 · 13224 阅读 · 0 评论 -
oracle服务和SQL*Plus
1、oracle服务OracleServiceORCL:oracle最核心,最重要的服务OracleOraDblOg_home1TNSListener:我们可以通过1521端口登录oracle就是因为该服务启动OracleOraDb10g_homeLiSQL*Plus:相当于Tomcat,可以解析http请求。监听了端口5560OracleJobSchedulerORCL(关闭的)...原创 2019-05-29 16:21:09 · 390 阅读 · 0 评论 -
oracle子查询
1、子查询分类单行子查询:子查询返回一条记录 多行子查询:子查询返回多行记录子查询例子:查询工资比SCOTT高的员工信息select * from empwhere sal>(select salfrom empwhere ename=’SCOTT’);2、子查询注意的问题括号 合理的书写风格 可以在主查询的where select having from ...原创 2019-06-06 23:51:46 · 187 阅读 · 0 评论 -
oracle注意点
1、字符串大小写敏感,日期格式敏感mysql不区分字符串大小写,oracle区分默认日期格式:DD-MON-RR修改日期格式:select * from v$nls_parameters(数据字典表);alter session|system set NLS_DATE_FORMAT='yyyy-mm-dd';2、oracle自动开启事务3、mysql中有date、datet...原创 2019-06-08 18:03:17 · 126 阅读 · 0 评论