随笔分类 - 数据库
1
摘要:今天在macOS 系统下搭建 Java开发环境,需要配置MySQL,按照Windows的习惯,使用Navicat for MySQL 操作比较习惯。然后找不到比较好的破解版,这里介绍一个老版的,还是英文版的工具安装破解说明。 1. 官网下载地址: http://download3.navicat.c
阅读全文
摘要:遇到了一个问题,从excel导入数据到sql2005,之前操作过很多次,这次遇到了一些新情况。 使用的语句如下: select * from OpenRowSet ('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;HDR=Yes;IMEX=1;Database=E:\bb.xls', [Sheet1$] )结果提示错误:因为 OLE DB 访问接口 'Microsoft.Jet.OLEDB.4.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。 查了很多资料一般都是客户端和服务器端都是64位系统的情
阅读全文
摘要:bcp 实用工具可以在 SQL Server 实例和用户指定格式的数据文件间大容量复制数据。使用 bcp 实用工具可以将大量新行导入 SQL Server 表,或将表数据导入数据文件。除非与 queryout 选项一起使用,否则使用该实用工具不需要了解 Transact-SQL 知识。若要将数据导入表中,必须使用为该表创建的格式文件,或者必须了解表的结构以及对于该表中的列有效的数据类型。bcp 所有参数:bcp可以执行四种操作:(1) 导入这个动作使用in命令完成,后面跟需要导入的文件名。(2) 导出这个动作使用out命令完成,后面跟需要导出的文件名。(3) 使用SQL语句导出这个动作使用qu
阅读全文
摘要:常用到通过两个数字之间获取随机数,C#中有内置方法,数据库中没有。以前有找到过一个方法,是通过数据库自定义函数实现,但是找不到了,今天自己写了个,记录下来备用!代码如下:ifexists(select*fromsys.objectswherename='f_random')dropfunctionf_randomgo/*两个数之间获取随机数*/createfunctionf_random(@min_numint,@max_numint)returnsintasbegindeclare@basicnumberdecimal(18,9)--基数declare@randnumberd
阅读全文
摘要:T-SQL象数组一样处理字符串、分割字符串 在日常的编程过程中,数组是要经常使用到的。在利用SQL对数据库进行操作时,有时就想在SQL使用数组,比如将1,2,3,4,5拆分成数组。可惜的是在T-SQL中不支持数组。不过还是有变通的办法。我们可以自己编写两函数Get_StrArrayLength(取得字符串的长度-元素的个数)和Get_StrArrayStrOfIndex(按指定符号分割字符串,返回分割后指定索引的第几个元素)。有了这两个函数,我们就可以非常方便的在T-SQL中处理形如1,2,3,4,5这样的字符串了。 T-SQL对字符串的处理能力比较弱,比如我要循环遍历象1,2,3,4,5这.
阅读全文
摘要:还原数据库备份的时候会出现一个这样的错误提示:因为数据库正在使用,所以无法获得对数据库的独占访问权解决方法是:修改一些数据库名称,执行一下sql代码,然后马上还原即可usemasterdeclare@dbnamevarchar(20)set@dbname='dfd_Test'---这是数据库名称declare@sqlnvarchar(500)declare@spidint--SPID值是当用户进行连接时指派给该连接的一个唯一的整数set@sql='declaregetspidcursorforselectspidfromsysprocesseswheredbid=db_
阅读全文
摘要:/*断开所有用户打开的连接*/usemastergoifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[p_killspid]')andOBJECTPROPERTY(id,N'IsProcedure')=1)dropprocedure[dbo].[p_killspid]GOcreateprocp_killspid@dbnamesysname--要关闭进程的数据库名asdeclare@snvarchar(1000)declaretbcursorlocalforselects='kill&
阅读全文
摘要:MSSQL2000setANSI_NULLSONsetQUOTED_IDENTIFIERONgoALTERPROC[dbo].[PROCE_PageView2000](@tbnamenvarchar(100),--要分页显示的表名@FieldKeynvarchar(1000),--用于定位记录的主键(惟一键)字段,可以是逗号分隔的多个字段@PageCurrentint=1,--要显示的页码@PageSizeint=10,--每页的大小(记录数)@FieldShownvarchar(1000)='',--以逗号分隔的要显示的字段列表,如果不指定,则显示所有字段@FieldOrde
阅读全文
摘要:DECLARE @dt datetimeSET @dt=GETDATE()DECLARE @number intSET @number=3--1.指定日期该年的第一天或最后一天--A. 年的第一天SELECT CONVERT(char(5),@dt,120)+'1-1'--B. 年的最后一天SELECT CONVERT(char(5),@dt,120)+'12-31'--2.指定日期所在季度的第一天或最后一天--A. 季度的第一天SELECT CONVERT(datetime, CONVERT(char(8), DATEADD(Month, DATEPART(Q
阅读全文
摘要:SETQUOTED_IDENTIFIERONGOSETANSI_NULLSONGO--通过歌名进行全文索引-搜索歌曲--xiaopin--2011-08-15ALTERprocedurep_show_infokey_bysongname@keyvarchar(128)='',@pageint=1,@pagesizeint=10,@totalint=-1outputassetnocountonsettransactionisolationlevelreaduncommittedsetxact_abortonset@key=rtrim(ltrim(@key))declare@upp
阅读全文
摘要:数据库中一些简单的防刷机制update t_userinfo set lastupdatetime = getdate() where userid = @userid and lastupdatetime < dateadd(second,-5,getdate() )if(@@rowcount = 0 )begin set @outmsg = '刷新太频繁' returnend条件是距离上次更新必须至少多5秒 where userid = @userid and lastupdatetime < dateadd(second,-5,getdate() )
阅读全文
摘要:一、数据库存储结构 SQL Server 7.0中的每个数据库有多个操作组成,数据库的所有资料、对象和数据库操作日志均存储在这些操作中。根据这些的作用不同,可以将它们划分为以下三类:? 主数据文件:每个数据库有且只有一个主数据文件,它是数据库和其它数据文件的起点。主数据文件的扩展名一般为.mdf; ? 辅数据文件:用于存储主数据文件中未存储的剩余资料和数据库对象,一个数据库可以没有辅数据文件,但也可以同时拥有多个辅数据文件。辅数据文件的多少主要根据数据库的大小、磁盘存储情况和存储性能要求而设置。辅数据文件的扩展名一般为.ndf;? 日志文件:存储数据库的事务日志信息,当数据库损坏时,管理员使用
阅读全文
摘要:1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select*frompeople wherepeopleIdin(selectpeopleIdfrompeoplegroupbypeopleIdhavingcount(peopleId)>1) 例二: select * from testtable where numeber in (select number from people group by number having count(number) > 1 ) 可以查出testtable表中number相同的记录 2、删除表中多余的重复记录,重
阅读全文
摘要:判断某一个表的记录总数,对于一个开发者来说是最再常见不过的事,我想大家都常用的作法就是: [代码] 这种做法没做,我这儿主要说的是效率问题。当一个数据表的记录数不是太多时,这样得到记录总数的效率不是问题。但试想,如果一个表的记录总数超过几百万或者几千万,要再用上面的Sql语句得到表的记录总数,速度会慢得让人难以忍受。有人会说了,可以一表上建立聚簇集索引呀,不错,若在表的某个字段上建立聚簇索引,第一次执行该语句的时间和没有索引的时间差不多,之后执行上述语句,速度很快。但如果要经常做增删改操作,建立聚簇索引不是一个明智的做法,将会极大的影响增删改的速度。得到一个数据表的记录总数经常用在以下几
阅读全文
摘要:这是leoD网友提出的问题由于原来表结构过于复杂。所以模拟一个简单的。。person date sumt1 t2 t3 t4t5 jack2010-1-150 05 00jack2010-1-1000 00 00jack2010-1-2090 00 09tom 2010-1-34040 00tom 2010-1-9600060tom 2010-1-188 008 00.................................................t1. . .t5 最多只会有一个不为0,其余都为0、日期可以看做每天都有。要得到personmonth1 23 4....89
阅读全文
摘要:1. ASCII返回与指定的字符对应的十进制数;SQL> select ascii(A) A,ascii(a) a,ascii(0) zero,ascii( ) space from dual;A A ZERO SPACE--------- --------- --------- -------...
阅读全文
摘要:有3张表:学生表:S字段:学生编号 学生姓名课程表:C字段:课程编号 课程名称成绩表:SC字段:学生编号 课程编号 分数需要实现最终效果如下:(后面有些课程省略没有截图了)实现的方法:方法一:[代码]运行结果为上一张图片所示。优点:这种方法有点傻瓜式,意思简单明了。缺点:都是固定死的,如果需求一变动,就需要改代码。方法二:[代码]运行结果:这里我们发现Chemistry的成绩没有?原因是成绩单里面...
阅读全文
摘要:从可查询的分布式解决方案,如MongoDB,到简单的分布式Key/Value存储解决方案,如Cassandra。此外,还有Riak,Tokyo Cabinet,Voldemort,CouchDB和Redis。但目前仅有少量的NoSQL项目支持在Windows平台上运行,如果要说到生产应用那就更少了。...
阅读全文
摘要:转载地址:http://www.cnblogs.com/nokiaguy/archive/2009/02/05/1384860.html排名函数是SQL Server2005新加的功能。在SQL Server2005中有如下四个排名函数:1.row_number 2.rank3.dense_rank4.ntile 下面分别介绍一下这四个排名函数的功能及用法。在介绍之前假设有一个t_table表,...
阅读全文
摘要:Mysql:select * from [tablename] order by rand() limit 10Sql Server:select top 5 * from [tablename] order by NEWID()Access:select top 5 * from [tablename] order by rnd(id),其中id是自动编号的字段。在vb+access可以随机,但...
阅读全文
1