- 博客(37)
- 收藏
- 关注
原创 oracle触发器
触发器简介:触发器是当特定事件出现时自动执行的存储过程,特定事件可以是执行更新的DML语句和DDL语句触发器不能被显式调用,只能被隐式触发触发器的功能: 自动生成数据 自定义复杂的安全权限 提供审计和日志记录 启用复杂的业务逻辑创建触发器的语法:CREATE [OR REPLACE] TRIGGER trigger_nameAFTER | BEFO...
2019-08-12 16:41:52
205
原创 oracle自主事务处理
假如一个存储过程中调用了另外一个存储过程,为了使两个存储过程之间的事务不会相互影响,就需要自主事务处理,下面举例。create or replace procedure proc_useradd1isPRAGMA AUTONOMOUS_TRANSACTION; -- 用于标记子程序为自主事务处理begin insert into userinfo(userid,username...
2019-08-11 22:22:35
363
原创 oracle函数篇
函数是可以返回值的命名的 PL/SQL 子程序,必须包含至少一条return语句(返回单个值),存储过程中也可以有return语句,但是不是用来返回值的,而是起到中断程序的作用。1、创建函数的语法:CREATE [OR REPLACE] FUNCTION <function name> [(param1,param2)]RETURN <datatype> IS...
2019-08-11 22:00:15
166
原创 oracle存储过程篇
存储过程的参数有三种模式:in(默认的参数模式,用来接收调用程序的值)out(用来向调用程序返回值)in out(用于接收调用程序的值,并向调用程序返回更新的值)以下用一个小例子为例:假设有一张用户表user_info,里面有字段userid,username,age,写一个存储过程,根据userid查询用户名1、创建存储过程:只有一个默认参数:create or ...
2019-08-09 22:25:36
390
翻译 Linux正则表达式
1、什么是正则表达式2、为什么要学会正则表达式3、容易混淆的两个注意事项cat >>xjy.txt<<EOF要追加的内容EOF4、grep -n对匹配的内容显示行号grep -n "^m" xjy.txt 从xjy.txt文件中过滤出以m开头的行,并显示行号grep -v "^$" xjy.txt 从xjy.txt文件中过滤掉空行grep -o "\.$" xjy.tx...
2018-05-01 22:42:53
118
原创 Linux重要子目录说明
1、网卡的配置文件cat /etc/sysconfig/network-scripts/ifcfg-etheth0就是第一块网卡DNS是域名解析服务,比如:在访问www.baidu.com的时候,通过将此网址解析成IP地址,真正服务的其实就是IP地址,之所以会有域名存在是因为IP地址不好记重启网卡:2、DNS配置文件路径/etc/resolv.conf...
2018-05-01 18:08:53
150
原创 shell脚本一些零碎知识点
1、exit(1)表示异常退出.这个1是返回给操作系统.当你 exit 0 的时候,在调用环境 echo $? 就返回0,也就是说调用环境就认为你的这个程序执行正确当你exit1的时候,一般是出错定义这个1,也可以是其他数字,很多系统程序这个错误编号是有约定的含义的。 但不为0 就表示程序运行出错。 调用环境就可以根据这个返回值判断, 你这个程序运行是否ok。如果你用脚本a调用 脚本b ,要在a中...
2018-04-07 23:34:34
177
原创 shell脚本精简
shell中文本处理工具和正则表达式比较重要三、一个最简单的shell脚本程序(helloworld)第一行#!/bin/bash是告诉内核该使用什么来解析这个shell脚本程序echo为shell脚本中的输出语句四、变量的定义与输出如果name变量后面没有空格紧接着接字符串,那么它会把name加上那段字符串当做一个变量名,这样肯定找不到那个变量,为了解决这个问题,那么给n...
2018-03-18 23:00:05
448
原创 shell脚本
$0 这个程式的执行名字$n 这个程式的第n个参数值,n=1..9$* 这个程式的所有参数,此选项参数可超过9个。$# 这个程式的参数个数$$ 这个程式的PID(脚本运行的当前进程ID号)$! 执行上一个背景指令的PID(后台运行的最后一个进程的进程ID号)$? 执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)$- 显示shell使用的当前选项,与set命令...
2018-03-15 00:21:43
184
原创 面试中遇到的一些问题(数据仓库)
1、Oracle中有哪个函数可以定位字符串中指定字符出现的位置 在Oracle中查找字符串中指定字符的位置使用instr()函数INSTR(string,subString,position,ocurrence)查找字符串位置解释:string:源字符串 subString:要查找的子字符串 position:查找的开始位置 ...
2018-03-14 23:58:13
2739
原创 Linux一些面试题
1、2、一个目录下的文件覆盖另一个目录下的文件,而且不让系统出现是否覆盖的提示法一是使用的cp命令的全路径法二中反斜线\作用就是屏蔽别名功能,相当于使用的就是cp命令,而不是cp -i其实还有第三种方法就是取消cp命令的别名,unalias cp(这只是临时生效,当系统重启之后就失效了)别名的作用:别名可以自己来指定3、法一:此法比较low法二:此方法更有效率-n的作用是取消默认的输出,要按照规则...
2018-03-12 00:20:21
218
原创 Linux常用的命令
Linux中设置字符集使用LANG=en(设置字符集为英文)1、read命令用于从标准输入读取数值,read 内部命令被用来从标准输入读取单行数据。这个命令可以用来读取键盘输入,当使用重定向的时候,可以读取文件中的一行数据read-p 后面跟提示信息,即在输入前打印提示信息2、tree -a将当前目录下的所有目录与文件以树的形式展现(不接任何参数的时候默认是将当前目录做一个全...
2018-03-11 18:24:35
684
原创 Hadoop
http://archive.apache.org/dist/(推荐网站,Apache所有的项目都在里面)黄色小象 storm处理实时数据,storm可以运行在YARN上HDFS:Hadoop distributed file system分布式文件系统 存储MapReduce:并行计算框架YARN:yet another resource negotiator 资源管理调度系统水平扩...
2018-03-09 20:20:14
162
原创 Linux(朱老师)
1、如果要想查看隐藏文件,那么使用ls -a命令(显示所有文件),普通查看的话就直接是ls命令。2、相对路径与绝对路径3、Linux内核、发行版4、人机交互的两种方式:GUI(图形化用户界面)以及CMDLINE(命令行)5、Linux常用命令(1)ls(2)cd命令6、vi的使用(其实指的是vim)当使用vi打开一个文件的时候,若这个文件不存在,那么系统会自动创建这个文件并打开(若不保存内容直接退...
2018-03-07 00:28:51
566
原创 powerdesigner设计工具
powerdesigner设计工具主要是进行数据表的设计的,这个工具是由sybase公司出品的。在进行数据库设计的过程之中,往往都会借助于一些开发工具。 如果要使用powerdesigner设计工具进行设计的话,那么需要首先建立一个物理数据模型。下面的DBMS选项可以选择自己所使用的数据库。此时preview是如下现象:所以说name表示的是在工具里面的名字,而cod...
2018-03-05 16:26:29
252
原创 数据库设计范式
数据库设计的三个参考范式。现在所给出的三个参考范式值能够说是一种思路,在实际之中不可能完全按照设计范式的要求做。一、第一范式(单表) 数据表中每一个列的内容不可再分。现在假设定义一个用户信息表,包含有如下字段:所以此时联系方式列的内容依然可以再分,这样的设计就不符合于第一设计范式,合理的做法应该如下:实际上第一范式的核心意义就在于使用常用的数据类型:NUMBER、DATE、VARCH...
2018-03-05 15:19:49
154
原创 数据库备份
数据库的备份操作在所有项目运营环境中都需要涉及到。一、数据的导出与导入二、数据库冷备份 数据库的冷备份严格来讲称为归档备份,指的是数据库要关闭服务,所有的事务都需要提交了。从实际来讲,如果要进行备份则需要备份如下的内容:•控制文件:控制着整个Oracle的实例信息,可以使用“v$controlfile”数据字典找到;•重做日志文件:通过“v$logfile”数据字典找到;•数据文件:...
2018-03-03 23:22:11
177
原创 用户管理
DCL属于数据控制语言,主要有两个语法:GRANT(授予)、REVOKE(回收)这两个命令必须以用户对象为基础使用。如果要想进行用户的创建,那么必须要有管理员的权限,本次就直接使用sys用户。使用sys登录:1、sys登录conn sys/change_on_install as sysdba;2、创建一个新的用户,名字为dog,密码为wangwangCREATE USER dog IDENTIF...
2018-03-02 22:49:58
196
原创 索引
1、这是一条非常简单的查询语句,下面通过这条语句分析一下数据库在这之中做了什么,为了观察方便,下面打开追踪器。切换到sys用户打开之后直接在sys用户中进行性能信息的查询,此时的查询除了会返回结果之外,还会返回给用户一些分析的信息TABLE ACCESS FULL此时直接描述的是要进行全表扫描,就属于逐行扫描。而且最为关键的问题在于,如果现在emp表的数据有50W条,可能在第20920条之后就没有...
2018-03-01 23:35:59
120
原创 同义词(了解同义词作用即可)
此时的程序就是查询日期时间的,但是在之前说过,dual属于一张临时表,那么它是属于谁呢? 通过一系列查询可以发现,DUAL表本身属于sys用户的。那么既然dual属于sys,按照之前的概念来讲,不同的用户要进行表的互相访问,那么前面需要使用模式名,也就是说如果Scott用户要使用dual表,则应该使用sys.dual才对,而这个操作就属于同义词的定义范畴,也就是说dual是sys.d...
2018-03-01 18:48:31
1016
原创 视图
1、利用视图可以实现复杂SQL语句的封装操作视图依然属于DDL的范畴,所以需要使用如下语法进行创建:希望将10部门的所有雇员信息保存在视图之中。在Oracle 10g及以前的版本,Scott是可以直接进行视图创建的,但是从Oracle 10g R2版本开始如果要想创建视图,就需要单独分配创建视图的权限视图本身属于数据库对象,所以要想查看视图的信息可以使用"user_views"数据字典完成。在这个...
2018-02-28 20:29:48
199
原创 序列
在许多数据库之中都会存在有一种数据类型——自动增长列,它能够创建流水号。在Oracle 12C以前并没有提供这样自动的增长列,但是从Oracle 12C开始出现了自动增长列,如果在Oracle之中要想实现这样的自动增长列,就可以使用序列的方式完成。1、如果要想使用序列,则可以采用如下的语法完成创建:序列属于数据库对象的创建过程,属于DDL的分类范畴。对于序列而言,创建之后一定会在数...
2018-02-28 18:27:47
295
原创 杂(案例)
任何的系统起码具备两个用户级别:前台普通用户、后台管理员。后台管理员负责发布所有的信息,而前台普通用户只是根据已发布的内容使用而已。...
2018-02-27 19:55:25
215
原创 表的修改
在实际开发之中为了方便数据库的使用,往往设计人员会给出数据库的脚本。这个脚本后缀一般是“*.sql”,开发人员可以利用这个脚本对数据库进行快速恢复,所有一般这个脚本会包含有如下几个内容:1、修改已有列例如现在在name字段上没有设置默认值,这样每当增加新数据不指定name的时候内容就是null,所以希望可以有默认值2、为表增加列语法:ALTER TABLE 表名 ADD(列名称 类...
2018-02-26 15:53:25
244
原创 Oracle数据表的删除与闪回技术
一、删除数据表语法:DROP TABLE 表名;删表之后会多一些下图中以BIN开头的内容在最早的时候如果执行了删除语句,那么数据表就会直接进行删除。但是从Oracle 10g开始,对于删除的操作出现了一次挽救的机会,类似于Windows回收站。如果没有其他的说明,那么这个时候会将表暂时保存在回收站之中,如果用户删除出现了问题,可以进行恢复,或者是彻底删除。称为闪回技术(Flash Back)。二、...
2018-02-24 21:51:07
1026
原创 截断表
事务处理本身是保护数据完整性的手段,但是在使用事务处理的过程之中需要注意一点:在用户更新事务后,还未进行提交中,如果发生了DDL操作(比如建表操作),那么所有的事务都会自动提交。 事务只对表的更新DML起作用,对DDL不起作用。表删错了,或改错了,事务是控制不了的。 假如说现在有一张表中的所有数据不再需要了,那么首先想到的是将数据表中的全部数据使用del...
2018-02-24 20:18:38
393
原创 Oracle中两个重要的数据伪列
之前接触过SYSDATE伪列。所谓的伪列就是指列本身不存在,但是却可以进行使用的列。Oracle里面提供有两个非常重要的伪列:ROWNUM(比较重要)、ROWID。1、行号(ROWNUM)如果在开发之中使用了ROWNUM,那么就表示会自动地生成行号。发现ROWNUN在每一行显示的时候都会自动增加一个行号,但是ROWNUM生成的行号不是固定的,而是动态计算得来的。此时行号是根据查询结...
2018-02-19 20:14:56
531
原创 子查询
所有可能出现的子查询都需要使用“()”声明。所谓的子查询实质上就属于查询嵌套,而且从理论上来讲查询子句的任意位置上都可以随意出现子查询。但是出现子查询最多的位置:WHERE、FROM1、WHERE子句使用子查询:范例:子查询返回多行单列(重点) 如果说子查询返回了多行单列的数据,那么实质上就相当于告诉用户一个数据的操作范围。而如果要想进行范围的判断,在WHERE子句里面提供有主要的三...
2018-02-13 21:43:55
342
原创 分组统计
1、统计函数(分组函数)常用函数一般有五个:COUNT()、SUM()、MIN()、MAX()、AVG()以上几个操作函数,在表中没有数据的时候,只有COUNT()函数会返回结果(返回0),其他都是NULL。实际上针对于COUNT()函数有三种使用形式: ①COUNT(*):可以准确地返回表中的全部记录数; ②COUNT(字段):统计不为null的所有数据量; ③COUNT(DISTINCT...
2018-02-12 23:29:39
749
原创 多表查询相关,以及数据集合操作
一、多表连接1、只要是多表查询,这多张表之间一定要存在有关联关系,没有关联关系的表是不可能多表查询的 虽然能够消除显示的笛卡尔积,但是笛卡尔积却一直都存在着,是永远无法消除的,如果说表之间的数据量小,还可以承受,如果数据量大,那么多表查询直接会带来严重的性能问题。 如果要想判断程序慢有两个方式:程序算法慢(CPU占用率高)、数据库数据大(内存占用率高)2、表的连接 实际上对于两张...
2018-02-12 00:11:54
600
原创 Oracle中比较常用的单行函数
所有的单行函数可以在SQL语句的任意位置上出现。一、字符串函数UPPER()、LOWER()、INITCAP()、REPLACE()、LENGTH()、SUBSTR()1、大小写转换函数小写转大写函数:字符串 UPPER(列|字符串)大写转小写函数:字符串 LOWER(列|字符串)如果想在Oracle之中验证字符串函数,需要写完整的SQL语句。为了可以方便地进行函数验证,往往会使用一张虚拟表,...
2018-02-09 19:16:18
461
原创 Oracle中SQLplus一些命令
1、设置每行显示的数据长度:SET LINESIZE 300;2、设置每次显示的行数:SET PAGESIZE 30;(即30条记录为一页)以上两个命令都是针对于整体显示的格式化,那么也可以针对于一个列进行格式化操作COL 列名称 FOR A长度数字3、Windows操作系统下,在SQLplus中可以调用记事本(相当于Linux里面的VI),可利用“ed”命令启动本机的记事本程序,
2018-02-06 00:39:42
279
原创 Oracle的服务
正常情况Oracle成功安装之后,服务列表里会出现如下几个服务:因为Oracle会占用大量内存,所以服务都设置为手动启动在上面这些服务之中有两个服务是最重要的:OracleOraDb11g_home1TNSListener:监听服务,主要是留给客户端访问本机时所使用的。例如在进行程序开发时,需要连接数据库,如果此服务没有启动或者是错误,将导致程序无法连接OracleServ
2018-02-04 23:43:34
289
原创 Oracle学习笔记
一、目前比较流行的Oracle版本是Oracle 11g R2,可以去www.oracle.com去下载,同时下载下来的有两个压缩包(1和2),这两个压缩包可以一起解压缩到同一个文件夹,再进行安装,在安装之前需要关闭各种防火墙,点击setup.exe开始安装,安装过程中需要注意的几点事项:1、在安装的时候需要选择高级配置,配置编码,不配置的话,以后可能在代码中出现乱码,同时需要定义样本数据;
2018-02-04 23:24:49
98
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人