数据库
lllini
这个作者很懒,什么都没留下…
展开
-
oracle中取月初,月末,季初,季末及年初,年末时间
1.取周的开始时间和结束时间: 开始时间(以星期一为开始时间): SQL> select trunc(sysdate,'D')+1 from dual; 结束时间(以星期日为结束时间): SQL> select trunc(sysdate,'D')+7 from dual;2.取月的开始时间和结束时间: 月初时间: SQL> select trunc(sysdate,'MM') from dual; 月末时间:转载 2021-05-10 11:24:27 · 8292 阅读 · 0 评论 -
Oracle之唯一性约束(UNIQUE Constraint)用法详解
1 目标用示例演示如何创建、删除、禁用和使用唯一性约束。2 什么是唯一性约束?唯一性约束指表中一个字段或者多个字段联合起来能够唯一标识一条记录的约束。联合字段中,可以包含空值。注:在Oracle中,唯一性约束最多可以有32列。唯一性约束可以在创建表时或使用ALTER TABLE语句创建。3 唯一性约束和主键的区别主键(Primary Key):所有组成主键的列都不能包含空值。唯一性约束(Unique Constraint):如果唯一性约束由多列组成,其中的部分列可以包含空值。Oracle中转载 2020-05-16 11:48:29 · 2918 阅读 · 0 评论 -
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
在redhat7上安装mysql时,使用临时密码登录后,修改密码时,报以下错误:ERROR 1819 (hy000): Your password does not satisfy the current policy requirements。为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是RPM包,则默认...原创 2019-12-31 14:26:28 · 604 阅读 · 1 评论 -
linux安装MySQL教程
安装依赖yum install libaio wget -y检查MYSQL是否已安装yum list installed | grep mysql如果有先卸载#格式 yum -y remove [包名]yum -y remove mysql-libs.x86_64下载MySQL官网的仓库文件cd /tmpwget http://repo.mysql.com...原创 2019-12-31 14:14:37 · 144 阅读 · 1 评论 -
Oracle的directory详细路径查看、创建及修改
directory对象所定义的路径可以在EM中的“管理”-“方案”-“目录对象”进行查看、创建或修改用命令来创建directory,则为如下语句:SQL>create directory dumpdir as '/home/dumpdata/';要更改dumpdir目录的路径,则为如下语句:SQL>create or replace directory dumpdir as ...原创 2019-12-25 10:04:39 · 9073 阅读 · 0 评论 -
Java连接Oracle的两种方式--单实例和RAC
概述经常:碰到JAVA Spring配置数据库连接后连接不上,但是PLSQL连接正常,这种情况下经常选择将TNS直接配置到Tomcat的JNDI中来解决问题,但是配置在tomcat中对于多个项目交叉不好维护,特来提供有效的简单的处理方式。关键说明数据库的部署有单实例和RAC的情况,单实例比较简单,使用SID连接;RAC 有多个实例来增加并发和负载,RAC时TNS一般配置的是Server N...转载 2019-12-13 17:28:25 · 802 阅读 · 0 评论 -
Oracle dblink的简应用
1.查看DBLINKSELECT * FROM DBA_DB_LINKS;或:SELECT OWNER,OBJECT_NAME FROM DBA_OBJECTS WHERE OBJECT_TYPE='DATABASE LINK';或:SELECT * FROM ALL_DB_LINKS;2.创建DBLINK前提:创建DBLINK的用户有对应的数据库权限CREATE PUBLIC...原创 2019-11-06 11:59:38 · 183 阅读 · 0 评论 -
SQL SERVER中DBLINK的实现
–创建链接服务器EXEC SP_ADDLINKEDSERVER'ITSV' ,'' , 'SQLOLEDB' ,'远程服务器名或IP地址'EXEC SP_ADDLINKEDSRVLOGIN'ITSV' ,'FALSE' ,NULL , '用户名' ,'密码'–查询示例SELECT* FROM ITSV.数据库名.DBO.表名–导入示例SELECT* INTO 表FROM ITSV...原创 2019-11-05 15:39:49 · 5855 阅读 · 0 评论 -
SQL中CharIndex函数、InStr 函数、PatIndex函数、Stuff函数区别与作用
在c#中可以用字符串的IndexOf方法来判断一个字符串中是否含有指定的字符。而在SQL SERVER中也就相关的函数来实现IndexOf的功能。CharIndex,InStr,PatIndex三个函数就是和IndexOf类似,最后介绍一个替换插入字符的函数Stuff。下面就来说说SQL中CharIndex函数、InStr 函数、PatIndex函数、Stuff函数区别与作用。一、CHARIN...转载 2019-01-10 15:10:32 · 1811 阅读 · 0 评论 -
游标 CURSOR
游标 CURSOR一、游标概述游标(cursor)是数据库系统在内存中开设的一个数据缓冲区,存放SQL语句的执行结果。每个游标都有一个名字,用户可以用SQL语句逐一从游标中获取记录,并赋给变量做进一步处理。作用:用于定位结果集的行 和 遍历结果集。游标产生时间:当执行DML SQL语句时;游标用于存放:结果集游标有名字吗:有,SQL或用户给他取名游标如何操作:用FETCH语句逐一从...转载 2019-01-12 14:11:35 · 3758 阅读 · 0 评论 -
SQL强化:将相同的或连续的时间段合并
问题描述:有一张签到表,需要将连续或相同的时间段合并,即把多条记录查询合并成一条连续的时间段记录。数据表如下:DROP TABLE IF EXISTS `timesheets`;CREATE TABLE `timesheets` ( `task_id` varchar(10) NOT NULL DEFAULT '', `start_date` date DEFAULT NULL, ...转载 2019-02-18 17:22:58 · 3355 阅读 · 0 评论 -
oracle判断是否包含字符串
一、oracle判断是否包含字符串的方法1、contains,contains用法如下:select * from students where contains(address, 'beijing')但是,使用contains谓词有个条件,那就是列要建立索引,也就是说如果上面语句中students表的address列没有建立索引,那么就会报错。2、instr,instr的用法如下:...原创 2018-12-14 14:22:29 · 55317 阅读 · 0 评论 -
sql server 登录名和用户名的区别和联系
总括:登录名可以理解为进入整个大楼的钥匙,用户名可以理解为一个房间的钥匙,这里所说的大楼就是sql server服务器,而房间就是这个sql server服务器中的具体的库,要注意登录名是存在于master数据库的syslogins表中,用户名是在各个具体的库下建立的(也就是要先进入各个库), 最关键的是:一个登录名可以和多个不同库下的用户做映射,但是在同一个库下只能和一个用户做映射,并且一个用户...转载 2018-11-22 11:56:09 · 4866 阅读 · 0 评论 -
查询SQLSERVER执行过的SQL记录
仅支持SQL SERVER2008及以上版本SELECT TOP 1000–创建时间QS.creation_time,–查询语句SUBSTRING(ST.text,(QS.statement_start_offset/2)+1,((CASE QS.statement_end_offset WHEN -1 THEN DATALENGTH(st.text)ELSE QS.statemen...转载 2018-11-06 15:27:58 · 18338 阅读 · 1 评论 -
查看oracle 备份 dmp文件
在工作中经常使用到别人提供过来的dmp文件,由于不知道备份时所用的用户名,这样就不能恢复。 通过打开DMP文件可以查看到备份时使用的用户名。1、如果dmp文件比较小,用文本编辑器打开就可以了。 2、如果dmp特别大,可以通过toad工具打开。在database/export/exert file browse浏览要打开的dmp即可。...转载 2018-06-11 10:33:31 · 6779 阅读 · 0 评论 -
Oracle高级查询,over 用法
注:标题中的红色order by是说明在使用该方法的时候必须要带上order by。 一、rank()/dense_rank() over(partition by …order by …)现在客户有这样一个需求,查询每个部门工资最高的雇员的信息,相信有一定oracle应用知识的同学都能写出下面的SQL语句:select e.ename, e.job, e.sal, e.deptno fr转载 2018-02-26 16:53:42 · 160 阅读 · 0 评论 -
Oracle高级查询,over 用法
注:标题中的红色order by是说明在使用该方法的时候必须要带上order by。 一、rank()/dense_rank() over(partition by …order by …)现在客户有这样一个需求,查询每个部门工资最高的雇员的信息,相信有一定oracle应用知识的同学都能写出下面的SQL语句:select e.ename, e.job, e.sal, e.deptno fr转载 2018-02-26 16:52:59 · 323 阅读 · 0 评论 -
Oracle获取两个日期之间的所有日期
1、日期格式YYYY-MM-DDSELECT TO_CHAR(TO_DATE('2018-01-28', 'YYYY-MM-DD') + ROWNUM - 1, 'YYYY-MM-DD') DAY_ID FROM DUALCONNECT BY ROWNUM <= TO_DATE('2018-02-04', 'YYYY-MM-DD') - TO_DATE('2018-01-28', ...原创 2019-01-12 15:51:59 · 6918 阅读 · 0 评论 -
深入理解connect by rownum
connect by中的条件就表示了父子之间的连接关系比如 connect by id=prior pid但如果connect by中的条件没有表示记录之间的父子关系(如 connect by里没有 id=prior pid)那会出现什么情况?常见的,connect by会在构造序列的时候使用。用select rownum from dual connect by rownum<...转载 2019-01-12 16:28:00 · 2785 阅读 · 0 评论 -
Connect By
Oracle Connect By Prior用法:1、connect by中的条件就表示了父子之间的连接关系,比如 connect by id=prior pid。2、prior,表示在一表上,prior所在列pid的某一值A的记录行的父亲是列id上值等于列pid上值A的记录行。3、LEVEL伪列表示树的深度(或叫高度)。一、oracle中的select语句可以用START WITH…...转载 2019-01-12 17:13:57 · 9086 阅读 · 2 评论 -
oracle 查看数据库和表命令
1、su – oracle 不是必需,适合于没有DBA密码时使用,可以不用密码来进入sqlplus界面。 2、sqlplus /nolog 或sqlplus system/manager 或./sqlplus ; 3、SQL>connect / as sysdba ;(as sysoper)或 connect internal/oracle AS SYSDBA ;(scott/tiger)转载 2016-10-27 21:23:47 · 12019 阅读 · 0 评论 -
ubantu安装mysql (解决配置密码问题)
ubantu自带mysql,如需要安装,大多是如下代码:sudo apt-get install mysql-serversudo apt-get install mysql-client检查MySQL是否运行:sudo netstat -tap | grep mysql如果成功安装,会显示如下内容:tcp 0 0 localhost:mysql : LISTEN 18475/my...原创 2019-09-02 16:04:06 · 244 阅读 · 0 评论 -
Navicat Premium 12 connection is being used以及查询sql文件保存位置
1、数据库地址突然换了,在旧的链接上编辑,一直提示 connection is being used不知道是不是Navicat Premium 12 的BUG,需要重新建立一个连接2、建立以后,一不小心把旧的连接删了,里面还保存着SQL的脚本,发现也跟着没了,然后在网上查,太复杂了3、Navicat 里面的查询右键菜单有个 “在文件夹中显示” 打开就是保存SQL的位置,找到旧的连接地址名...原创 2019-08-16 09:21:03 · 5180 阅读 · 0 评论 -
plsql误删除数据,提交事务后如何找回
select *from tbs_rep_template as of timestamp to_timestamp(‘2018-07-12 14:23:00’, ‘yyyy-mm-dd hh24:mi:ss’)where tplname like ‘%工业管道定期检验报告%’;–其中2018-07-12 14:23:00为:误删数据时间 可以使用快捷键 ctrl + e 查看...原创 2019-04-08 19:49:56 · 4444 阅读 · 0 评论 -
update子查询
基础知识1, 关联子查询和非关联子查询在非关联子查询中,内部查询只执行一次并返回它的值给外部查询,然后外部查询在它的处理中使用内部查询返回给它的值。而在关联子查询中,对于外部查询返回的每一行数据,内部查询都要执行一次。另外,在关联子查询中是信息流是双向的。外部查询的每行数据传递一个值给子查询,然后子查询为每一行数据执行一次并返回它的记录。然后,外部查询根据返回的记录做出决策。如:SELEC...转载 2019-03-27 19:14:38 · 5697 阅读 · 1 评论 -
基于连接和子查询的update语句
1: 效率高, 连接,update 后跟别名update a set a.Field1= b.Field1from Table1 aleft join Table2 b on a.SID=b.IDwhere b.Code like 'm%'效率高2: 子查询,update后跟表名update Table1set Field1= (select Field1 from Ta...转载 2019-03-27 19:05:49 · 2176 阅读 · 1 评论 -
SQL Server中如何获取当前年,月,日,时,分,秒
Select GETDATE() as ‘当前日期’,DateName(year,GetDate()) as ‘年’,DateName(month,GetDate()) as ‘月’,DateName(day,GetDate()) as ‘日’,DateName(dw,GetDate()) as ‘星期’,DateName(week,GetDate()) as ‘周数’,DateNam...转载 2019-03-16 12:58:05 · 7546 阅读 · 0 评论 -
ORA-20000:ORU-10027:buffer overflow,limit of 10000 bytes 解决方法
ORACLE 执行存储过程时, 的时候,报ORA-20000:ORU-10027:buffer overflow,limit of 10000 bytes.问题原因:过程中含有dbms_output.putline(变量),缓冲区是10000位,打印的字符超出了限制。解决方法1 增大缓冲区set serveroutput on size 1000000;解决方法2 ...原创 2019-01-14 11:08:35 · 6399 阅读 · 0 评论 -
Oracle 从一个用户导出再导入到另一个用户
如果想导入的用户已经存在: 1. 导出用户 expdp user1/pass1 directory=dumpdir dumpfile=user1.dmp 2. 导入用户 impdp user2/pass2 directory=dumpdir dumpfile=user1.dmp REMAP_SCHEMA=user1:user2 EXCLUDE=USER如果想导入的用户不存在: 1. 导出用户原创 2018-02-01 00:00:02 · 20962 阅读 · 1 评论 -
redhat 安装 Oracle 11g Linux
redhat 下安装 Oracle 11g 安装环境:操作系统 Red Hat Enterprise Linux Server release 6.4 (Santiago) 64位Oracle版本 11.2.0.3安装步骤:1、检查操作系统版本Last login: Thu Jan 29 11:02:05 2015 from 10.100.116.83[root@localhost ~]# cat转载 2017-12-20 09:53:07 · 4579 阅读 · 0 评论 -
with grant option与with admin option区别
相同点: - 两个都可以既可以赋予user 权限时使用,也可以在赋予role 时用 GRANT CREATE SESSION TO emi WITH ADMIN OPTION; GRANT CREATE SESSION TO role WITH ADMIN OPTION; GRANT role1 to role2 WITH ADMIN OPTION; GRANT select ON cus转载 2016-11-10 22:55:57 · 5733 阅读 · 0 评论 -
oracle数据库语句级触发器和行级触发器的使用
行级触发器对DML语句影响的每个行执行一次,触发器表(如:您的定义触发器的emp表)变化一个记录(I、D、U)就执行一次。 语句级触发器对每个DML语句执行一次,完成一次“事务”触发一次。 如果在TABLE表中插入的数据为500行,那么这个表上的语句级触发器只执行一次,而行级的触发器就要执行500次了。 语句级别触发器 是在表上或者某些情况下的视图上执行的特定语句或者语句组上的触发器原创 2016-11-10 20:20:37 · 6655 阅读 · 0 评论 -
【Oracle】PL/SQL 显式游标、隐式游标、动态游标
在PL/SQL块中执行SELECT、INSERT、DELETE和UPDATE语句时,ORACLE会在内存中为其分配上下文区(Context Area),即缓冲区。游标是指向该区的一个指针,或是命名一个工作区(Work Area),或是一种结构化数据类型。在每个用户会话中,可以同时打开多个游标,其数量由数据库初始化参数文件中的OPEN_CURSORS参数定义。对于不同的SQL语句,游标的使用情况不同:转载 2016-11-10 18:09:54 · 368 阅读 · 0 评论 -
Oracle 游标(显式)使用
-- 声明游标;CURSOR cursor_name IS select_statement--For 循环游标--(1)定义游标--(2)定义游标变量--(3)使用for循环来使用这个游标declare --类型定义 cursor c_job is select empno,ename,job,sal from emp转载 2016-11-10 17:34:18 · 483 阅读 · 0 评论 -
Oracle使用REF 动态游标
1:定义REF动态游标类型TYPE <类型名> IS REF CURSORRETURN <返回类型>; 声明REF动态游标<游标名> <类型名>打开REF动态游标OPEN <游标名> FOR <查询语句>2:REF动态游标的分类 主要分为两类,强类型和弱类型的,强类型的为带有RETURN语句的REF动态游标,弱类型为不带有RETURN语句的REF动态游标,弱类型的动态游标可以与任何查询语句匹配转载 2016-11-10 17:29:50 · 987 阅读 · 0 评论 -
oracle中的sql%found sql%notfound和sql%rowcount
当执行一条DML语句后,DML语句的结果保存在四个游标属性中,这些属性用于控制程序流程或者了解程序的状态。当运行DML语句时,PL/SQL打开一 个内建游标并处理结果,游标是维护查询结果的内存中的一个区域,游标在运行DML语句时打开,完成后关闭。隐式游标只使用 SQL%FOUND,SQL%NOTFOUND,SQL%ROWCOUNT三个属性.SQL%FOUND,SQL%NOTFOUND是布尔 值,SQ转载 2016-11-10 17:10:30 · 3562 阅读 · 0 评论 -
centos7 删除mysql
查看已经安装的服务rpm -qa|grep -i mysql-i 作用是不区分大小写可以看到有两个安装包MySQL-server-5.6.19-1.linux_glibc2.5.x86_64.rpmMySQL-client-5.6.19-1.linux_glibc2.5.x86_64.rpm删除这两个服务(去掉后缀)rpm –e MySQL-client-5转载 2016-09-03 03:36:29 · 745 阅读 · 0 评论 -
SQL Server 2012时出现命名管道提供程序: 无法打开与 SQL Server 的连接
今天用一个Java程序去连接SQL server时一直连接不上,而sql Server manager studio可以正常使用,包括建立数据库各查询,于是反复检查代码(表示不相信有错),上网查各种解决方法,在SQL Server配置管理器中打开各种服务,启动各种禁用,然而并没什么用。于是用 navicat进行连接,结果报了08001-命名管道提供程序: 无法打开与 SQL Server 的连接。。原创 2016-03-15 02:31:42 · 9248 阅读 · 1 评论 -
DATETIME和DATE及TIMESTAMP的区别
DATE只保存日期,不保存时分秒DATETIME类型用在你需要同时包含日期和时间信息的值时。MySQL检索并且以’YYYY-MM-DD HH:MM:SS’格式显示DATETIME值,支持的范围是’1000-01-01 00:00:00’到’9999-12-31 23:59:59’。TIMESTAMP列类型提供一种类型,你可以使用它自动地用当前的日期和时间标记INSERT或UPDATE的操作。如果你有原创 2015-11-26 13:07:56 · 1078 阅读 · 0 评论 -
MySQL复制表结构,表数据。
1、复制表结构及数据到新表 CREATE TABLE 新表 SELECT * FROM 旧表 这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete from newtable;来删除。 不过这种方法的一个最不好的地方就是新表中没有了旧表的primary key、Extra(auto_increment)等属性。需要自己用"alter"添加,而且容易搞错。2、只复制表结原创 2015-11-24 19:06:23 · 527 阅读 · 0 评论