Oracle
oracle
Brrby
这个作者很懒,什么都没留下…
展开
-
Oracle 树操作、递归查询(select…start with…connect by…prior)
Oracle 树操作、递归查询准备测试表和测试数据create table tb_menu( id number(10) not null, --主键id title varchar2(50), --标题 parent number(10) --parent id);--父菜单insert into tb_menu(id, title, parent) values(1, '父菜单1',null);insert into tb_menu(id, title, parent) values(原创 2021-04-14 10:06:25 · 172 阅读 · 0 评论 -
oracle中的差集操作
oracle中的差集操作现在有两张表:两张表的外键是djxh,现在要排除dj_nsrxx表里的数据中有投资方的证件类型是102的(只要有一个投资方的证件类型是102就排除dj_nsrxx里所在的数据)select a.* from dj_nsrxx a,dj_tzfxx b where a.djxh=b.djxhminusselect a.* from dj_nsrxx a,dj_tzfxx b where a.djxh=b.djxh and b.tzfsfzjlx_dm='102'其原创 2021-04-02 16:36:10 · 2976 阅读 · 0 评论 -
oracle删除表重复数据
oracle删除表重复数据当表里的每条数据都有345678条一模一样的数据时,我们需要删除的话,就使用下面的语句来删除:delete from student where name in(select name from student group by name) and rowid not in (select min(rowid) from student group by name)再看表:...原创 2021-03-29 15:43:23 · 146 阅读 · 0 评论 -
oracle主键自增
oracle 触发器结合序列来实现主键自增空表建序列建触发器模拟插入操作看主键有没有自增空表现有student表如下:建序列建立一个从1开始每次增加1的序列:create sequence seq_stu_idstart with 1increment by 1建触发器建立一个触发器(触发条件如下):create or replace trigger tr_studentbefore insert on "STUDENT" for each row when (NEW.id原创 2021-03-25 14:43:59 · 235 阅读 · 0 评论 -
oracle中create table as和insert into select语句
SELECT INTO , INSERT INTO SELECT 和 CREATE TABLE AS SELECTINSERT INTO SELECTCreate table newTable as select * from复制表的数据,将A表的数据复制到B表中,常见的操作方式有三种:INSERT INTO SELECTCREATE TABLE AS SELECTINSERT INTO SELECT语句形式为:Insert into Table2(field1,field2,…) sele原创 2021-03-23 11:08:52 · 2992 阅读 · 0 评论 -
oracle 存储过程 wm_concat使用distinct报错
关于oracle写存储过程时使用行转列时去重的问题原表:现在要求以type为查询条件,一类type的查到一行里,其他字段数据重复的去重:SELECT wm_concat(ISBN) as ISBN,wm_concat(BOOKNAME) as BOOKNAME,type as type,wm_concat(distinct AUTHOR) as AUTHOR,wm_concat(distinct PUBLISH) as PUBLISH,wm_concat(distinct PUBLISHTIME原创 2021-03-22 17:43:25 · 2363 阅读 · 0 评论 -
oracle 定时任务
oracle 定时任务建立储存定时任务数据表写查询语句写存储过程创建定时任务job查看定时任务删除定时任务建立储存定时任务数据表比如现在我们有个books的表:现在写个简单的定时任务:每天凌晨1点运行一次,每次查books表里一楼的书本记录建立一个存储定时任务数据的表:create table DS_books( ISBN VARCHAR2(255) not null, BOOKNAME VARCHAR2(255) not null, TYPE原创 2021-03-19 17:58:01 · 642 阅读 · 0 评论 -
oracle插入数据时有特殊符号@&‘
oracle插入数据时有特殊符号@&'现在用户名插入一个有特殊符号的value如果SQL中有&,那么后面的字符串将被作为一个变量来处理,无法正常插入数据库。如果的确需要把&字符插入数据库,可以试试以下处理方法:INSERT INTO users VALUES(4,'R'||'&'||'B','123456');## 就是把 & 的部分替换成 '||'&'||'单个&的可以插入:然后就是value里有单引号的内容:INSE原创 2021-03-12 09:51:13 · 4059 阅读 · 0 评论 -
oracle里like多个关键字(regexp_like)
oracle里like多个关键字 [regexp_like]查询name多个关键字匹配的人: 汉、雷、范、奇、尚regexp_like(字段名,'值1|值2|值3|值4|值5……') //全模糊匹配regexp_like(字段名,'^(值1|值2|值3|值4|值5……)') //右模糊匹配regexp_like(字段名,'(值1|值2|值3|值4|值5……)$') //左模糊匹配...原创 2021-03-03 17:44:12 · 9296 阅读 · 3 评论 -
plsql
关于plsql1.创建用户在用sys用户登陆后.........方法一:找到users右键new设置用户名、密码、表空间之类的东西设置用户的权限:属性作用connect基本操作表的权限,比如增删改查、视图创建等resource创建一些函数,比如簇、索引,创建表、列等dba相当于管理员权限,拥有系统所有权限点击apply即可创建成功方法二:在sql window里执行两句sqlcreate user array identifie原创 2021-01-27 16:30:15 · 157 阅读 · 0 评论 -
图书查询系统
vue+springboot+axios+bootstrap+oracle图书查询系统图书查询系统springboot项目搭建好后:在pom.xml里添加ojdbc6<dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>11.2.0.3</version></dependency>原创 2021-02-18 18:08:11 · 286 阅读 · 0 评论 -
Oracle in 的个数超过1000
Oracle in 的个数超过1000Oracle中在一个查询语句里 in 的个数最多为1000个当我们in的个数有1000+时,可以考虑使用union all来查询把in的个数以一次999个来查询用union all来连接起来,然后就可以了select DJXH,NSRMC,nsrsbh,JK_BZ,ZT_DM from(select DJXH,NSRMC,nsrsbh,JK_BZ,ZT_DM from sxgl_fxts where jk_bz='Y' AND ZT_DM=83 and d原创 2021-01-29 18:07:10 · 1862 阅读 · 0 评论 -
oracle的查询连续半个月或者一周的数据
oracle的查询连续半个月或者一周的数据使用 between and 来查询,如下:看到当前日期是1-29再看下查询表的所有数据,可以看到21号到29号有一段连续的数据然后我们查询今天起倒推7天的数据(不包括今天)对于日期来说,between and 是开闭区间 .比如 between to_date(‘2021-1-22’,‘yyyy-mm-dd’) and to_date(‘2021-1-29’,‘yyyy-mm-dd’) 取到的值只是22日到28日的值,不包含29日这一天的数据,因原创 2021-01-29 17:51:52 · 3949 阅读 · 0 评论 -
oracle中 WITH AS 的子查询优化
oracle中 WITH AS 的子查询优化可以理解WITH TAB_A AS(结果集)为为结果集创建了一个临时表使用 WITH AS 时, 后面必须加上SELECT来立刻查询例如:##把上面两个查询结果当作两张临时表来使用查询WITH TAB_A AS(SELECT * FROM STUDENT WHERE ID<4),TAB_B AS(SELECT * FROM STUDENT WHERE ID>2 AND ID<6)SELECT A.* from TAB原创 2021-01-27 15:11:40 · 392 阅读 · 1 评论 -
关于oracle行转列函数
关于oracle行转列函数LISTAGG()XMLAGG()LISTAGG()例如:查出每个职位的所有人名单:但是如果遇到转为一行后的字段过于太长太长,会报错,如下:这样只有使用另一种方法查出来转为行的结果类型转为clobLISTAGG函数返回的是一个varchar2类型的数据,最大字节长度为4000XMLAGG函数返回的类型为CLOB,最大字节长度为32767XMLAGG()例如:查出每个职位的所有人名单:点开clob每个字段内容看看:...原创 2021-01-27 11:47:59 · 6276 阅读 · 0 评论 -
oracle中的并集操作
oracle中的并集操作UNIONUNION ALLoracle的并集操作:UNION和UNION ALLUNIONunion对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序UNION ALLunion all对两个结果集进行并集操作,包括重复行,不进行排序...原创 2021-01-27 11:59:42 · 1716 阅读 · 1 评论 -
oracle的存储过程和存储函数
存储过程存储过程实际上是封装在服务器上的一段PLSQL代码片段(已经编译好了的代码)。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。创建一个给某个员工加特定工钱的存储过程:-- empid是用户输入的指定的员工id-- insal是用户输入的指定的涨薪多少-- currentsal是员工涨薪钱的目前工资create or replace procedure cc1(empid in number,insal in number)is currentsal n原创 2020-07-10 23:12:57 · 219 阅读 · 0 评论 -
oracle基础
基本查询sqI简介结构化查询语言(Structured Query Language)简称SQL(发音:/'εs kju: 'εl/ “S-Q-L”),结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理原创 2020-07-08 16:34:17 · 252 阅读 · 0 评论 -
关于oracle的简单认识
插入insert插入数据时 字段名varchar类型的可以不用一定要写到规定的长度,但是var类型的必须只能写规定的长度比如varchar(20)插入内容时可以插入任意的长度,但是char(11)在插入内容时只能插入长度为11的字段dualdual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录.用来调用系统函数.1.select user from dual;查看当前用户 2.select sysdate from dual;获得原创 2020-05-12 16:09:52 · 130 阅读 · 0 评论 -
oracle集合运算
集合运算并集查询部门号为20或者工资大于3000的员工交集查询部门号为20并且工资大于3000的员工差集查询1981年入职的员工(不包括推销员、分析员、办事员)集合运算两边查询的字段数量、字段类型、顺序必须一致...原创 2020-07-08 17:32:41 · 266 阅读 · 0 评论 -
经典案例oracle和mysql分别比较
oracle和mysql对比(案例)oracle:# 建表CREATE TABLE match ( rq date DEFAULT NULL, sh varchar(255) DEFAULT NULL)# 插入数据INSERT INTO match VALUES (to_date('2005-05-09','yyyy-mm-dd'), '胜');INSERT INTO match VALUES (to_date('2005-05-09','yyyy-mm-dd')原创 2020-06-29 12:46:24 · 503 阅读 · 0 评论 -
使用DDL语句管理表
使用DDL语句管理表创建表空间表空间是oracle数据库的逻辑单元。一个表空间可以与多个数据文件(物理结构)关联,一个数据库下可以建立多个表空间,一个表空间可以建立多个用户、一个用户下可以建立多个表。create tablespace itcast datafile 'd:\itcast001.dbf' size 100m autoextend on next 10m用户1. 创建用户create user tom identified by 916437 default tab原创 2020-07-09 14:57:01 · 217 阅读 · 0 评论 -
使用DML语句处理数据
使用DML语句处理数据插入数据语法:INSERT INTO 表名 (列名1,列名2,·····) VALUES (值1,值2,·····)标准写法insert into people(pid,name,gender,birthday) values(1,‘小汉’,1,to_date(‘2020-7-9’,‘f原创 2020-07-09 15:45:57 · 170 阅读 · 0 评论 -
PLSQL语法(常量变量、if、循环)
PLSQL的语法常量、变量的定义说明变量(char、varchar2、date、number、boolean、long)引用变量name emp.name%type;引用型变量,即name的类型与emp表中的name列的类型一样在sql中使用into来赋值declare name emp.name%type;begin select t.name into name from emp t where t.id=1029; dbms_outp原创 2020-07-10 10:41:11 · 1029 阅读 · 0 评论 -
oracle中的序列
序列在很多数据库中都存在一个自动增长的列,mysql里是auto_increment,如果想要在oracle中完成自动增长的功能,只能依靠序列完成,并且oracle将序列值装入内存可以提高访问效率。序列创建完成之后,所有的自动增长应该由用户自己处理,序列中提供两种操作:nextval——取得序列的下一个内容currval——取得序列的当前内容范例:--- 创建sq1序列create sequence sq1;--- 建表create table stu( id num原创 2020-07-10 11:26:32 · 364 阅读 · 0 评论 -
oracle里的索引
索引索引是用于加速数据存取的数据对象,提高数据访问性能。单列索引单列索引是基于单个列所建立的索引。create index 索引名 on 表名(列名)复合索引复合索引是基于两个列或多个列的索引。在同一张表上可以有多个索引,但是要求列的组合必须不同。create index 索引名 on 表名(列名1,列名原创 2020-07-10 12:09:33 · 90 阅读 · 0 评论 -
oracle中的游标
游标(光标Cursor)在java程序中有集合的概念,那么在pl/sql中也会用到多条记录,这时就要用到游标,游标可以存储查询返回的多条数据。语法:cursor 游标名 [(参数名 数据类型, 参数名 数据类型,····)] is select语句;例如: cursor &n原创 2020-07-10 16:05:24 · 257 阅读 · 0 评论 -
oracle 分页
oracle 分页有一个fenye表,表里有46条数据:我想一页看10条数据: select * from fenye where rownum<=10select * from (select rownum r,e.* from fenye e where rownum<=10 order by id)where r>0;原创 2020-08-24 16:30:39 · 81 阅读 · 0 评论 -
视图
视图视图就是封装了一条复杂查询的语句。视图是一个虚表。最大的优点就是简化复杂的查询。创建视图的语法:一般普通用户正常创建视图需要以下的权限:grant create view to 用户名; grant select any table to 用户名; grant select any dictionary to 用户名; 创建视图示例建立一个视图,此视图包括了20部门的全部员工信息create view empa as select * from emp t where t.原创 2020-07-09 16:53:45 · 94 阅读 · 0 评论 -
java调用oracle的存储过程取出游标里的数据
java程序连接oracle数据库连接在我的服务器上有一个oracle实例是在运行的。在plsql里可以查看到这个实例有个表叫fenye:首先下载ojdbc.jar ,提取码:iehb随便建立一个java项目:添加JUnit4,把ojdbc包导进来:创建一个Cono测试类用于测试:public class Cono { @Test public void t1() { //注册驱动 String driver = "oracle.jdbc.driver.Oracl原创 2020-08-24 16:29:12 · 1247 阅读 · 0 评论 -
sqlplus的基本使用
sql*plus在oracle数据库安装好了后(oracle数据库安装教程在此),其中的sqlplus是一个与Oracle交互的工具。Oracle 数据库中所有的管理操作都可以通过sqlplus工具完成。sqlplus 可以运行于任何Oracle数据库可运行的操作系统平台,其使用方法基本相同。利用SQL*Plus可以实现以下操作:❏ 输入、编辑、存储、提取、运行和调试SQL语句和PL/SQL程序。❏ 开发、执行批处理脚本。❏ 执行数据库管理。❏ 处理数据,生成报表,存储、打印、格式化查询结果原创 2020-07-14 17:16:58 · 20602 阅读 · 0 评论