
数据库
悠悠倾我心
这个作者很懒,什么都没留下…
展开
-
wamp下 php连接oracle数据库
环境: apache:2.4.17php:7.0oracle:11.2.0.1wamp:x641:打开php.ini,打开php_oci8.dll 和 php_oci8_11g.dll2:去 http://windows.php.net/downloads/pecl/releases/oci8/2.1.4/ 下载对应php版本的oci8文件然后去php下面的ext替换掉其原创 2017-04-26 17:12:38 · 1189 阅读 · 0 评论 -
SqlServer中循环和条件语句示例!
-- ╔════════╗ -- =============================== ║ if语句使用示例 ║ -- ╚════════╝ declare @a int转载 2017-06-22 12:22:50 · 1162 阅读 · 0 评论 -
php 调用sqlsrv 读取记录+返回参数 调用存储过程
一. sqlsrv连接数据库[php] view plain copy $serverName="ip, port"; $connectionInfo = array("UID"=>"username", "PWD"=>"password", "Database"=>"db", "CharacterSet"=>"u转载 2017-06-22 15:53:23 · 2381 阅读 · 0 评论 -
SQL Server存储过程Return、output参数及使用技巧
SQL Server目前正日益成为WindowNT操作系统上面最为重要的一种数据库管理系统,随着 SQL Server2000的推出,微软的这种数据库服务系统真正地实现了在WindowsNT/2000系列操作系统一统天下的局面,在微软的操作系统上,没有任何一种数据库系统能与之抗衡,包括数据库领域中的领头羊甲骨文公司的看家数据库Oracle在内。不可否认,SQL Server最大的缺陷就是只能运行在转载 2017-06-22 16:47:35 · 2347 阅读 · 0 评论 -
sql远程连接openrowset配置 sql分布式连接openrowset配置 SQL连接到其它对象(OpenRowSet的应用) (这个是测试有效的)
A. 将 OPENROWSET 与 SELECT 语句及用于 SQL Server 的 Microsoft OLE DB 提供程序一起使用USE pubsGOSELECT a.*FROM OPENROWSET('SQLOLEDB','192.168.0.18';'sa';'123', --IP地址或计算机名 'SELECT * FROM pubs.dbo.authors O转载 2017-06-21 15:45:52 · 430 阅读 · 0 评论 -
SqlServer中,用exec处理sql字符串中含有变量,提示:必须声明标量变量@(已解决!)
SqlServer中,用exec处理sql字符串中含有变量,提示:必须声明标量变量@(已解决!)[sql] view plain copydeclare @tssj nvarchar(100) -- 外部变量 declare @Sql_Sql nvarchar(100) -- 存sql字符串变量转载 2017-06-22 18:07:12 · 9794 阅读 · 0 评论 -
sqlserver 调用存储过程时出现必须声明标量变量 "@ReturnMsg"的解决方法
因为项目需要写了一个存储过程,但是调用的时候却一直提示必须声明标量变量,然后将调用过成改造一下就好了,正确调用代码如下:BEGIN --将代码包围到begin end块中,要不然会提示必须声明标量变量DECLARE @Updatetime1 varchar(50) = '2017-06-21 09:10:10';DECLARE @Orgguid1 varchar(50)=原创 2017-06-23 10:31:26 · 30372 阅读 · 1 评论 -
解决为'*********' 的游标已存在问题
出现名为'MM_CURSOR' 的游标已存在。 一般出现这样的问题是: 1:游标没有 --关闭 释放 如: Sql代码 --关闭游标 CLOSE MM_CURSOR --释放游标 DEALLOCATE MM_CURSOR 2:游标已存在同名情况,此时就需要在定义游标时申明一转载 2017-06-23 11:27:03 · 3328 阅读 · 0 评论 -
SQLServer : EXEC和sp_executesql的区别
摘要1,EXEC的使用2,sp_executesql的使用 MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有。还有一个最大的好处就是利用sp_executesql,能够重用执行计划,这就大大提供了执行性能(对于这个我在后面的例子中会详转载 2017-06-23 14:08:46 · 417 阅读 · 0 评论 -
SQL Server 2012建立链接服务器
现在我有一个需求是需要在两个不同的SQL SERVER 2012的服务器之间进行数据访问和更新。我们需要把Server One的数据插入到Server Two的服务器上去,一天执行一次任务。我们的首选方案是在两个服务器之间建立链接服务器,下面介绍下如何建立链接服务器。我需要做的事情是,我需要定时的全量的把Server one的数据插入到Server Two里去。所以这里就涉及到需要把Serve转载 2017-07-01 09:22:02 · 10694 阅读 · 0 评论 -
sql server 2008分布式查询
在接触公司一个系统时,公司使用的是SQL Server 2008数据库,里面涉及到了多个数据库之间的查询,而且数据库是分布式的,数据库分布在多台服务器之间,并且各个数据库各尽其责,负责存放不同模块功能的数据。这里面就要涉及到了数据库的分布式查询。补充一下分布式查询的知识:分布式查询从多异类数据源中访问数据。这些数据源可以存储在同一台计算机或不同的计算机上。Microsoft转载 2017-06-30 17:55:12 · 1442 阅读 · 0 评论 -
ci调用oracle的存储过程
最近因为做项目需要用到oracle存储过程,研究了一下ci自带的存储过程调用方法,stored_procedure,主要是params不知道怎么写,研究了好久终于搞定。原创 2017-05-09 15:09:57 · 842 阅读 · 0 评论 -
用PHP调用Oracle存储过程方法
//建立一个TEST表CREATE TABLE TEST ( ID NUMBER(16) NOT NULL, NAME VARCHAR2(30) NOT NULL, PRIMARY KEY (ID));//插入一条数据INSERT INTO TEST VALUES (5, 'PHP_BOOK');//建立一个存储过程转载 2017-05-09 16:42:25 · 1952 阅读 · 1 评论 -
Oracle修改字段类型方法总结
有一个表名为tb,字段段名为name,数据类型nchar(20)。1、假设字段数据为空,则不管改为什么字段类型,可以直接执行:alter table tb modify (name nvarchar2(20));2、假设字段有数据,则改为nvarchar2(20)可以直接执行:alter table tb modify (name nvarchar2(20));3、转载 2017-06-07 10:09:09 · 275 阅读 · 0 评论 -
sql 一对多 子表多条件查询
例子:商品表:product 字段:rid(int) name(nvarchar) rid name 1 a 2 b 3 c商品属表 Proattr 字段rid(int) TypeID(int)rid TypeID1 11 22 12 33 53 4求商品属性满足1,2的商品sql:select * from pr原创 2017-06-19 13:56:42 · 7086 阅读 · 0 评论 -
sqlserver 跨库查询 分布式查询
--用openrowset连接远程SQL或插入数据 --如果只是临时访问,可以直接用openrowset--查询示例select * from openrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)在跨库查询时需要启用Ad Hoc Distributed Queries启用Ad Hoc Distributed Queries:exec sp_转载 2017-06-21 14:12:14 · 1169 阅读 · 0 评论 -
在SQL Server中创建用户角色及授权
参考文献http://database.51cto.com/art/201009/224075.htm正文要想成功访问 SQL Server 数据库中的数据, 我们需要两个方面的授权:获得准许连接 SQL Server 服务器的权利;获得访问特定数据库中数据的权利(select, update, delete, create table ...)。假设,我们转载 2017-06-30 15:35:36 · 3553 阅读 · 0 评论 -
SQLServer服务器数据库之间的数据操作(完整版)
------------------------------------------------------------------------------------ Author : htl258(Tony)-- Date : 2010-06-25 22:23:18-- Version: Microsoft SQL Server 2008 (RTM) - 10.0.1600.22转载 2017-06-30 16:00:37 · 819 阅读 · 0 评论 -
SQL Server 跨数据库查询
语句SELECT * FROM 数据库A.dbo.表A a, 数据库B.dbo.表B b WHERE a.field=b.field "DBO"可以省略 如 SELECT * FROM 数据库A..表A a, 数据库B..表B b WHERE a.field=b.fieldSqlServer数据库:--这句是映射一个远程数据库EXEC sp_add转载 2017-06-21 14:17:16 · 1792 阅读 · 0 评论 -
sql server如何对表进行查看锁和解锁
[sql] view plain copy print?use master go --检索死锁进程 select spid, blocked, loginame, last_batch, status, cmd, hostname, program_name from sysprocesses where spid in转载 2017-06-23 16:11:12 · 1085 阅读 · 0 评论 -
sqlserver 当删除表中的所有记录后插入记录时提示主键不唯一的解决方法
sqlserver 当删除表中的所有记录后插入记录时提示主键不唯一的解决方法:truncate table WeiShopDB_empty.dbo.i_EntSubInfoNew 执行该语句则清空该表的原有数据原创 2017-06-23 16:31:24 · 1819 阅读 · 0 评论 -
SQL SERVER ID 清空,从新排列
大家经常使用SQL Server的ID自增长,也就是所谓的标识列来充当某张表的主键。这里有两个概念要澄清:1. 标识列:可用 IDENTITY 属性建立,使应用程序开发人员得以对表中所插入的第一行指定标识数字(Identity Seed 属性),并确定要添加到种子上的增量(Identity Increment 属性)以决定后面的标识数字。在向具有标识符列的表中插入值时,通过递增种子转载 2017-06-23 16:32:02 · 3731 阅读 · 1 评论 -
Mysql:实现row_number分组排序功能
Mysql:实现row_number分组排序功能在sql server和oracle中均有row_number实现功能,即对查询结果进行分组排序添加字段。而在mysql中无内置函数,需要曲线救国。表结构如下:CREATE TABLE `total_freq_ctrl` (`time` int(10) unsigned NOT NULL,`machine` cha...转载 2019-03-11 11:39:28 · 1220 阅读 · 0 评论 -
[mysql] 先按某字段分组再取每组中前N条记录
createtablet2(idintprimarykey,gidchar,col1int,col2int)engine=myisam;insertintot2values(1,'A',31,6),(2,'B',25,83),(3,'C',76,21),(4,'D',63,56),(5,'E',3,...转载 2019-04-17 11:44:08 · 594 阅读 · 0 评论 -
mysql 取一个字符串组合和另个一字符串组合的交集
mysql>select'123|124|125'regexp'123|126';+--------------------------------+|'123|124|125'regexp'123|126'|+--------------------------------+|1|+-----...转载 2019-04-17 16:34:23 · 1797 阅读 · 1 评论 -
关于mysql处理百万级以上的数据时如何提高其查询速度的方法
关于mysql处理百万级以上的数据时如何提高其查询速度的方法最近一段时间由于工作需要,开始关注针对Mysql数据库的select查询语句的相关优化方法。由于在参与的实际项目中发现当mysql表的数据量达到百万级时,普通SQL查询效率呈直线下降,而且如果where中的查询条件较多时,其查询速度简直无法容忍。曾经测试对一个包含400多万条记录(有索引)的表执行一条条件查询,其查询时间竟然高达40几...转载 2019-07-11 20:30:22 · 2794 阅读 · 0 评论 -
mysql kill进程后出现killed死锁问题
经常会出现这样的场景:有一张3亿的表,现在要对这张表进行删除1亿行,于是有人开始运行delete from table limit 100000000;毫无疑问这是一个愚蠢的删除方式,于是有人开始变更删除方式:delete from table where id<100000000;然而运行一段时间后,又发现批量删除的效率可能会更高,所以kill掉了上一条运行了一段时间的sql,开始批量...转载 2019-07-17 10:49:08 · 4638 阅读 · 0 评论 -
mysql存储过程之游标
MySQL5中添加了存储过程的支持。大多数SQL语句都是针对一个或多个表的单条语句。并非所有的操作都怎么简单。经常会有一个完整的操作需要多条才能完成存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合。可将其视为批文件。虽然他们的作用不仅限于批处理。为什么要使用存储过程:优点1通过吧处理封装在容易使用的单元中,简化复杂...转载 2019-07-31 11:30:28 · 1038 阅读 · 0 评论 -
Mysql 游标使用动态变量
从语法上来讲DECLARE cur CURSOR for语句必须写在SET @sqlstr前面,这就意味着不能通过先执行一条动态语句根据结果拼凑游标的内容,而且游标在定义的时候也没有参数的概念,而是将定义的结构完全当作一个字符串直接处理,不会做任何的处理,也就是静态游标吧。关于dynamic cursor的内容官方有解释http://dev.mysql.com/doc/refman/5.6/en/...转载 2019-07-31 11:45:30 · 4208 阅读 · 0 评论 -
Mysql 会导致锁表的语法
最近再找一些Mysql锁表原因,整理出来一部分sql语句会锁表的,方便查阅,整理的不是很全,都是工作中碰到的,会持续更新笔者能力有限,如果有不正确的,或者不到位的地方,还请大家指出来,方便你我,方便大家。此测试环境Mysql 5.5 基于innodb 引擎insert into table1 values select … from table2 ….此种方法,会锁tabl...原创 2019-07-31 13:30:08 · 1721 阅读 · 0 评论 -
mysql:on duplicate key update与replace into
在往表里面插入数据的时候,经常需要:a.先判断数据是否存在于库里面;b.不存在则插入;c.存在则更新一、replace into 前提:数据库里面必须有主键或唯一索引,不然replace into 会直接插入新数据,导致数据表里面有重复数据 执行时先尝试插入数据: a.当数据表里面存在(通过主键或唯一索引来判断)该数据,则先将表里的数据删除,再插入新的数据 b....转载 2018-11-07 21:34:53 · 1219 阅读 · 0 评论 -
mysql:on duplicate key update与replace into
在往表里面插入数据的时候,经常需要:a.先判断数据是否存在于库里面;b.不存在则插入;c.存在则更新一、replace into前提:数据库里面必须有主键或唯一索引,不然replace into 会直接插入新数据,导致数据表里面有重复数据执行时先尝试插入数据:a.当数据表里面存在(通过主键或唯一索引来判断)该数据,则先将表里的数据删除,再插入新的数据b.如果数据表里面不存在该数据,则直接...转载 2018-11-07 21:30:52 · 332 阅读 · 0 评论 -
sqlserver sp_executesql 动态SQL字符长度超过8000
动态SQL字符长度超过8000,我记得SQL SERVER 2005中用SP_EXECUTESQL打破了这个限制。 平常用动态SQL,可能都会用EXEC(),但是有限制,就是8000字符串长度。自从SQL SERVER 2005起,在 INSIDE SQLSERVER 2005 T-SQL PROGRAMMING中提到,使用SP_EXECUTESQL()和NVARCHAR(MAX)转载 2017-06-23 18:00:21 · 6682 阅读 · 0 评论 -
php 调用sqlsrv存储过程含输入和输出参数,亲测第二种输出很有效
$serverName = "127.0.0.1";$connectionInfo = array( "UID"=>"sa","PWD"=>"","Database"=>"test");$conn = sqlsrv_connect( $serverName, $connectionInfo);if( $conn === false ){echo "Could not conne原创 2017-06-22 16:15:07 · 2849 阅读 · 1 评论 -
php调用sqlserver存储过程实例,带输入输出参数,经测试可用
因工作原因最近需要用到调用sqlserver存储过程,并且需要输入输出参数,因为单纯的参考网上的一些例子总有问题,最后自己解决后决定写一写解决的过程。首先存储过程如下(其中带*的需要注意):CREATE PROCEDURE [dbo].[UPDATE_STOCK] ( @Updatetime varchar(50), --更新时间 @Orggu原创 2017-06-26 14:14:09 · 8621 阅读 · 0 评论 -
Oracle的存储过程能返回一个select查询结果集吗
使用存储过程,想返回一个像下面图的结果集。 这个在PL/SQL里面能实现吗?因为经常要使用很多联合、多表等查询。而且条件也不同,所以想做个存储过程来保存起来,省得以后每次查询都要重新编写SQL。刚刚使用Oracle不多久,每次的返回结果都是在输出里面显示,但是在这里面是没有办法对表操作的。各位大大,这个方法PL/SQL里面能实现吗?举例:转载 2017-09-05 10:06:54 · 17624 阅读 · 1 评论 -
SQL Server行转列
语法:PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P完整语法:table_sourcePIVOT(聚合函数(value_column)FOR pivot_columnIN()) UNPIVOT用于转载 2017-09-18 18:16:54 · 971 阅读 · 0 评论 -
Mysql与Sql server在语法和关键字上的区别
——用于SQLServer到MySql的转换(1) mysql的ifnull()函数对应sql的isnull()函数; (2) mysql的存储过程中变量的定义去掉@; (3) mysql的每句结束要用";" (4) SQLServer存储过程的AS在MySql中需要用begin .....end替换 (5) 字符窜连接用conca...转载 2018-09-07 19:46:49 · 2127 阅读 · 0 评论 -
各种主流 SQLServer 迁移到 MySQL 工具对比
各种主流 SQLServer 迁移到 MySQL 工具对比 我之所以会写这篇对比文章,是因为公司新产品研发真实经历过这个痛苦过程(传统基于SQL Server开发的C/S产品转为MySQL云产品)。首次需要数据转换是测试环节,当时为了快速验证新研发云产品性能与结果准确性(算法类),所以需大量的原始数据,最快的办法就是使用老产品的真实数据。因为在前期数据转换时主用于内部验证,并没有花很...转载 2018-09-06 16:18:47 · 862 阅读 · 0 评论 -
MySql索引原理与使用大全
林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka一、索引介绍索引是对数据库表中一列或多列的值进行排序的一种结构。在关系数据库中,索引是一种与表有关的数据库结构,它可以使对应于表的SQL语句执行得更快。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。当表中有大量记录时,若要对表进行查询,第一种搜索信息方式是全表搜索,是将...转载 2018-10-05 19:35:20 · 180 阅读 · 0 评论