SqlServer

SqlServer中的更新锁(UPDLOCK)

UPDLOCK.UPDLOCK的优点是允许您读取数据(不阻塞其它事务)并在以后更新数据,同时确保自从上次读取数据后数据没有被更改。当我们用UPDLOCK来读取记录时可以对取到的记录加上更新锁,从而加上锁的记录在其它的线程中是不能更改的只能等本线程的事务结束后才能更改,我如下示例:BEGINTRANSACTION--开始一个事务SELECTQtyFROMmyTableWITH(UPDLOCK)WHEREIdin(1,2,3)我做了一个测试:在一个查询里写be

系统 2019-08-12 01:55:36 2584

数据库相关

PL/SQL中游标和游标变量的使用

PL/SQL中游标和游标变量的使用(转)游标是什么:游标字面理解就是游动的光标。用数据库语言来描述:游标是映射在结果集中一行数据上的位置实体,有了游标用户就可以访问结果集中的任意一行数据了,将游标放置到某行后,即可对该行数据进行操作,例如提取当前行的数据等等。游标的分类:显式游标和隐式游标(1)、显示游标的使用:1.声明游标CURSORmycur(vartypenumber)isselectemp_no,emp_zcfromcus_emp_basicwhe

系统 2019-08-12 01:55:03 2584

数据库相关

SQL 把表中字段存储的逗号隔开内容转换成列表形

原文:[原创]SQL把表中字段存储的逗号隔开内容转换成列表形式我们日常开发中,不管是表设计问题抑或是其他什么原因,或多或少都会遇到一张表中有一个字段存储的内容是用逗号隔开的列表。具体效果如下图:------》从左边图转换成右边图,像这种需求,我们难免会遇到。今天我写了个存储过程来解决这种问题。主要方式是利用master..spt_values表。具体存储过程如下:--Author:LHM--Createdate:2015-01-10--Descriptio

系统 2019-08-12 01:52:03 2584

数据库相关

SQL点滴23—T-SQL中的除法

原文:SQL点滴23—T-SQL中的除法在T-SQL中没有除法运算,但是在T-SQL中可以实现类似除法的操作Divide。一般除法操作的结果一个列来自于被除关系表,剩下的来自除关系表。这里举一个例子来说明。假设如下有三个表:客户Customers,销售人员Employees,订单Orders,查询返回一些客户,要求这些客户和所有美国雇员都至少有一次交易记录。来看下面一个语句:selectcustidfromSales.CustomersasCwhereno

系统 2019-08-12 01:33:14 2583

数据库相关

缺省数据库描述对象的数据库访问模式

当我们去操作数据库的时候都必须构建一个组件的环境对象,似乎这种传统的操作模式这样做是必须的也没有什么问题(就如同你在传统ADO.NET方式下操作数据打开连接一下).但细想一下会发现一个问题,很多时候的应用只是针对一个数据库;既然很多时候只针对一个数据库为什么组件在设计时不提供一个缺省的操作模式呢?让数据操作上节省了构造组件访问对象这一步(当然也应该提供,因为总要面对同时操作多个数据库的时候).其实设计这种访问模式并不难,只需要在设计的时候提供一些缺省参数方

系统 2019-08-12 01:32:56 2583

MySql

MySql 集群配置

MYSQLCLUSTER方案介绍本文的大致框架来自罗志威、黄川的报告,在它的基础上进行简化和修改一些bug并且添加了主从复制的章节,最后做出该文档MySQLCluster是MySQL适合于分布式计算环境的高实用、高冗余版本。它采用了NDBCluster存储引擎,允许在1个Cluster中运行多个MySQL服务器。现在mysqlcluster被独立出来,作为一个专门的产品进行运营,mysql-server-5.6+就不在存在对mysqlcluster的支持,

系统 2019-08-12 01:53:17 2582

数据库相关

join的例子

直接上代码:片段1:>>>deffunc(x):print(','.join(str(i)foriinrange(1,x+1)))>>>func(5)1,2,3,4,5>>>func(10)1,2,3,4,5,6,7,8,9,10片段2:>>>deffunc(x):foriinrange(1,x+1):print(','.join(str([j,'password'][j==i])forjinrange(1,x+1)))>>>func(10)passwor

系统 2019-08-12 01:52:57 2582

数据库相关

校验表中数据是否有循环编码的通用存储过程.sql

CREATEPROCp_VerifyData@TableNamesysname,--要校验树形数据的表@CodeFieldsysname,--编码字段名@ParentCodeFieldsysname--上级编码字段名ASSETNOCOUNTON--参数检查IFISNULL(OBJECTPROPERTY(OBJECT_ID(@TableName),N'IsUserTable'),0)=0BEGINRAISERROR(N'"%s"不存在,或者不是用户表',1,

系统 2019-08-12 01:51:31 2582

数据库相关

备份还原mbr

E:\>;debug-a1371:0100movax,2011371:0103movbx,2001371:0106movcx,11371:0109movdx,801371:010Cint131371:010Emovax,3011371:0111movcx,3f1371:0114int131371:0116int201371:0118-rcxCX0000:18-nmbr_back.com-w100Writing00018bytes-qE:\>;debug-a

系统 2019-08-12 01:55:36 2581

数据库相关

T-SQL问题解决集锦——数据加解密(2)

原文:T-SQL问题解决集锦——数据加解密(2)问题三、如何让指定用户可以对数据表进行Truncate操作?Truncate在对大表全删除操作时,会明显比Delete语句更快更有效,但是因为它不需要存放日志,并且一定是全表删除,所以造成数据的不可恢复性。也说明了它的危险性。但是,执行Truncate需要有表拥有者、系统管理员、db_owner、db_ddladmin这些里面的其中一种高权限角色才能执行。对此,可以使用05之后的EXECUTEAS表达式来实现

系统 2019-08-12 01:54:55 2581

数据库相关

查找数据库中重复值

1.查某一列(或多列)的重复值(只可以查出重复记录的值,不能查出整个记录的信息)SELECT新库编号FROMusedcar_detailGROUPBY新库编号HAVING(COUNT(*)>1)ORDERBY新库编号2.查某一列有重复值的记录(此方法查出的是所有重复的记录,如果有两条记录重复的,就查出两条)select*fromstuinfowherestuidin(selectstuidfromstuinfogroupbystuidhaving(coun

系统 2019-08-12 01:53:27 2581

MySql

MySQL HINT:Straight_JOIN

来自生产环境的朋友、可能都会碰到:原本运行良好的查询语句,过了一段时间后,可能会突然变得很糟糕一个很大可能的原因就是数据分布情况发生了变化从而导致MySQL优化器对驱动表的选择发生了变化,进而出现索引失效的情况所以、闲着蛋疼喝咖啡的时候、应该多收集两下表的统计信息这个时候、Straight_JOIN闪亮登场MySQL只支持NestedLoopJoin、关于这个NestedJOIN的详细用法请参阅偶之前blog:点击打开链接和Oracle对比下、不然得知、S

系统 2019-08-12 01:53:21 2581

数据库相关

SQL语句汇总(终篇)—— 表联接与联接查询

既然是最后一篇那就不能只列出些干枯的标准语句,更何况表联接也是SQL中较难的部分,所以此次搭配题目来详细阐述表联接。上一篇博文说到相关子查询效率低下,那我们怎么能将不同表的信息一起查询出来呢?这就需要用到表联接。和之前的UNION组合查询不同,UNION是将不同的表组合起来,也就是纵向联接,说白了就是竖着拼起来。而表联接是通过笛卡尔乘积将表进行横向联接,所谓的通过笛卡尔乘积简单说就是两表的行依次相联再相加。要想更详细的理解可以百度下,毕竟本文主要是汇总SQ

系统 2019-08-12 01:32:45 2581

Oracle

Oracle数据块的概念总结

Oracle数据内部的逻辑存储Oracle存储数据的最小粒度(finestlevelofgranularity)被称为数据块(datablock)(也叫做逻辑块(logicalblock),Oracle块(Oracleblock)或页(page))。一个数据块对应于磁盘上数个字节(byte)的物理数据库空间。处于数据块之上的逻辑数据库空间是数据扩展(extent)。数据扩展是为存储数据而分配的一组连续的数据块。位于数据扩展之上的逻辑数据库存储结构是段(se

系统 2019-08-12 09:30:13 2580

Oracle

oracle pl/sql中使用自定义数据类型

模式:CREATEORREPLACETYPE类型名asOBJECT(属性名属性类型,...);举例:CREATEORREPLACETYPEBITS_IDX_BASEASOBJECT(NAMEVARCHAR2(4000),FIELDSVARCHAR2(4000),CREATE_DATEVARCHAR2(4000),INCREMENT_DATEVARCHAR2(4000));CREATEORREPLACETYPEBITS_IDX_BASE_TBLASTABLE

系统 2019-08-12 01:54:55 2580