-
实例理解SQL中truncate和delete的区别
本文以一个简单实例为大家介绍了SQL中truncate和delete的区别,帮助大家理解,具体内容如下---创建表Table1IFOBJECT_ID('Table1','U')ISNOTNULLDROPTABLETable1GOCREATETABLETable1(IDINTNOTNULL,FOIDINTNOTNULL)GO--插入测试数据INSERTINTOTable1VALUES(1,101),(2,102),(3,103),(4,104)GO---创建表Table2IFOBJECT_ID('Table2','U')ISNOTNULLDROPTABLETable2GOCREATETABLETable2(FOIDINTNOTNULL)GO--插入测试数据INSERTINTOTable2VALUES(101),(102),(103),(104)GOSELECT*FROMTable1GOSELECT*FROMTable2GO在Table1表中创建触发器,当表中的数据被删除时同时删除Table2表中对应的FOIDCREATETRIGGERTG_Table1ONTable1AFTERDELET...
数据库操作教程 2022-09-23 17:42:41 -
针对distinct疑问引发的一系列思考
有人提出了这样一个问题,整理出来给大家也参考一下假设有如下这样一张表格:这里的数据,具有如下的特征:在一个DepartmentId中,可能会有多个Name,反之也是一样。就是说Name和DepartmentId是多对多的关系...
数据库操作教程 2022-09-23 17:38:26 -
SqlServer实现类似Oracle的before触发器示例
1.插入数据前判断数据是否存在SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGO--=============================================--Author:<Author,,Name>--Createdate:<CreateDate,,>--Description:<Description,,>--=============================================alterTRIGGERCategoryExistTriggerONProductCategoryinsteadofinsertASdeclare@categoryNamevarchar(50);BEGIN--SETNOCOUNTONaddedtopreventextraresultsetsfrom--interferingwithSELECTstatements...
数据库操作教程 2022-09-23 17:35:39 -
如何使用VisualStudio2010在数据库中生成随机测试数据
测试在项目中是很重要的一个环节,在VisualStudio2010中,在测试方面已经有很好的支持了,比如有单元测试,负载测试等等。在数据测试的方面,VisualStudio2010,还支持对数据库进行多种测试,其中一个很好用的功能是能为开发者在测试阶段,大量方便地为数据库生成随机的数据,而且还可以自己指定生成数据的规则,十分方便,这就让在测试过程中,开发者能有更充足的数据样本对项目进行测试...
数据库操作教程 2022-09-23 17:33:17 -
SqlServer2012中First_Value函数简单分析
First_Value返回结果集中某列第一条数据的值,跟TOP1效果一样,比较简单的一个函数先贴测试用代码DECLARE@TestDataTABLE(IDINTIDENTITY(1,1),DepartmentVARCHAR(20),LastNameVARCHAR(20),RateFLOAT)INSERTINTO@TestData(Department,LastName,Rate)SELECT'DocumentControl','Arifin',17.7885UNIONALLSELECT'DocumentControl','Norred',16...
数据库操作教程 2022-09-23 17:25:59 -
在SQLServer2005中创建CLR存储过程的详细介绍
在2005之前的版本创建存储过程都是在数据库里面写Transact-SQL语言实现的,不过现在SQLServer2005支持用其他面向对象的语言编写CLR存储过程了,关于这样做的好处,官方有很多解释了,这里就直接说明实现方法了。假设服务器里面有个test数据库,数据库有个架构user,还有一个表test1,然后有个sql登陆用户叫test_user,将这个用户设置成VS2005里面数据库连接的登陆用户...
数据库操作教程 2022-09-23 17:25:44 -
sqlserver实现oracle的sequence方法
当然这点小问题是难不倒我们程序员的,“max+1啊”,有人会说这样的方式。是的,这种方式实现起来也比较简单...
数据库操作教程 2022-09-23 17:23:52 -
oracle学习笔记(二)
一、多行函数又称组合函数(GroupFunctions)、聚合函数1、TypesofGroupFunctionsavg、count、max、min、stddev、sum、varianceavg求平均数selectavg(nvl(列1,0))from表1count求行数在where条件中不允许使用聚合函数,但可以使用havingavg(列1)>1000having所起的作用和where一样二、子查询Subqueries查询前10行数据oracle:select*from表名whererownum<=10;sql:selecttop10*from表名单行子查询select*from表1where工资列1>(selectavg(工资列1)from表1)多行子查询select*from表1where工资列1in(selectmin(工资列1)from表1groupby部门列)三、自定义变量setverifyon/offshowallhelpshow/setcolumnliejustifyleft四、数据操作语句1、insert插入语句向表2里插入数据oracle:insert...
数据库操作教程 2022-09-23 17:19:52 -
基于SQLServer中char,nchar,varchar,nvarchar的使用区别
对于程序中的一般字符串类型的字段,SQLServer中有char、varchar、nchar、nvarchar四种类型来对应,那么这四种类型有什么区别呢,这里做一下对比。1.定长或变长所谓定长就是长度固定,当要保存的数据长度不够时将自动在其后面填充英文空格,使长度达到相应的长度;有var前缀的,表示是实际存储空间是动态变化的,比如varchar,nvarchar变长字符数据则不会以空格填充...
数据库操作教程 2022-09-23 17:18:40 -
CREATEFUNCTIONsqlserver用户定义函数
创建用户定义函数,它是返回值的已保存的Transact-SQL例程。用户定义函数不能用于执行一组修改全局数据库状态的操作...
数据库操作教程 2022-09-23 17:18:33 -
Sql学习第四天——SQL关于withcube,withrollup和grouping解释及演示
关于withcube,withrollup和grouping通过查看sql2005的帮助文档找到了CUBE和ROLLUP之间的具体区别:CUBE生成的结果集显示了所选列中值的所有组合的聚合。ROLLUP生成的结果集显示了所选列中值的某一层次结构的聚合...
数据库操作教程 2022-09-23 17:15:35 -
DDL、DML和DCL的区别与理解
DML、DDL、DCL区别.总体解释:DML(datamanipulationlanguage):它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言DDL(datadefinitionlanguage):DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用DCL(DataControlLanguage):是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句...
数据库操作教程 2022-09-23 17:15:30