-
实例学习SQL的Select命令
-1、查找员工的编号、姓名、部门和出生日期,如果出生日期为空值,--显示日期不详,并按部门排序输出,日期格式为yyyy-mm-dd。select emp_no ,emp_name ,dept ,isnull(convert(char(10),birthday,120),'日期不详') birthdayfrom employeeorder by dept --2、查找与喻自强在同一个单位的员工姓名、性别、部门和职称select emp_no,emp_name,dept,titlefrom employeewhere emp_name<>'喻自强' and dept in(select dept from employeewhere emp_name='喻自强')--3、按部门进行汇总,统计每个部门的总工资select dept,sum(salary)from emplo...
数据库操作教程 2022-09-23 17:27:21 -
SQLServerExecpt和notin性能区别
主要讲except和notin的性能上的区别。复制代码代码如下:CREATETABLEtb1(IDint)CREATETABLEtb2(IDint)BEGINTRANDECLARE@iINT=500WHILE@i>0beginINSERTINTOdbo.tb1VALUES(@i--v-int)SET@i=@i-1endCOMMIT我测试的时候tb1是1000,tb2是500复制代码代码如下:DBCCFREESYSTEMCACHE('ALL','default');SETSTATISTICSIOONSETSTATISTICSTIMEonSELECT*FROMtb1EXCEPTSELECT*FROMtb2;SELECT*FROMtb1WHEREidNOTIN(SELECTidFROMtb2);--得不到任何值SETSTATISTICSIOOFFSETSTATISTICSTIMEOFF执行计划:复制代码代码如下:SELECT*FROMtb1EXCEPTSELECT*FROMtb2;|--MergeJoin(RightAntiSemiJoin,MERGE:([master1].[dbo]...
数据库操作教程 2022-09-23 17:26:30 -
insertselect与selectinto的用法使用说明
insertinto(列名)select列名from表名where条件--不创建表,只复制表数据select列名into表名(这个表名是不存在的)from表名where条件,--创建一张新表,只复制选择的列名字段数据Insert是T-sql中常用语句,InsertINTOtable(field1,field2,...)values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECTINTO和INSERTINTOSELECT表复制语句了...
数据库操作教程 2022-09-23 17:25:36 -
sqlserver中Selectcount(*)和Count(1)的区别和执行方式
在SQLServer中Count(*)或者Count(1)或者Count([列])或许是最常用的聚合函数。很多人其实对这三者之间是区分不清的...
数据库操作教程 2022-09-23 17:25:26 -
sqlserver合并DataTable并排除重复数据的通用方法分享
代码如下:复制代码代码如下:///<summary>///将两个列不同的DataTable合并成一个新的DataTable///</summary>///<paramname="dt1">源表</param>///<paramname="dt2">需要合并的表</param>///<paramname="primaryKey">需要排重列表(为空不排重)</param>///<paramname="maxRows">合并后Table的最大行数</param>///<returns>合并后的datatable</returns>publicstaticDataTableMergeDataTable(DataTabledt1,DataTabledt2,stringprimaryKey,intmaxRows){//判断是否需要合并if(dt1==null&&dt2==null){returnnull;}if(dt1==null&...
数据库操作教程 2022-09-23 17:25:18 -
深入SQLSERVER合并相关操作Union,Except,Intersect的详解
对于结果集有几个处理,值得讲解一下1.并集(union,Unionall)这个很简单,是把两个结果集水平合并起来。例如SELECT*FROMAUNIONSELECT*FROMB【注意】union会删除重复值,也就是说A和B中重复的行,最终只会出现一次,而unionall则会保留重复行...
数据库操作教程 2022-09-23 17:25:01 -
sqlserver实现oracle的sequence方法
当然这点小问题是难不倒我们程序员的,“max+1啊”,有人会说这样的方式。是的,这种方式实现起来也比较简单...
数据库操作教程 2022-09-23 17:23:52 -
OBJECTPROPERTY与sp_rename更改对象名称的介绍
相关的OBJECTPROPERTY可参考:http://msdn.microsoft.com/en-us/library/ms176105.aspx开发过程中,错误免不了。为了纠正错误与规范化...
数据库操作教程 2022-09-23 17:23:16 -
SQLServer:探讨EXEC与sp_executesql的区别详解
摘要1,EXEC的使用2,sp_executesql的使用MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有。还有一个最大的好处就是利用sp_executesql,能够重用执行计划,这就大大提供了执行性能(对于这个我在后面的例子中会详加说明),还可以编写更安全的代码...
数据库操作教程 2022-09-23 17:21:08 -
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 -
使用FORFILES命令来删除SQLServer备份的批处理
虽然有很多种方式可以解决这个问题,但是我们可以用T-SQL代码来处理这个文件删除过程。我用xp_cmdshell命令和FORFILES命令来处理类似于你所列出的过程...
数据库操作教程 2022-09-23 17:16:55 -
INSERTINTOSELECT语句与SELECTINTOFROM语句的一些区别
1.INSERTINTOSELECT语句语句形式为:InsertintoTable2(field1,field2,...)selectvalue1,value2,...fromTable1要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。示例如下:INSERTINTOSELECT语句复制表数据复制代码代码如下:--1.创建测试表createTABLETable1(avarchar(10),bvarchar(10),cvarchar(10),CONSTRAINT[PK_Table1]PRIMARYKEYCLUSTERED(aASC))ON[PRIMARY]createTABLETable2(avarchar(10),cvarchar(10),dint,CONSTRAINT[PK_Table2]PRIMARYKEYCLUSTERED(aASC))ON[PRIMARY]GO--2.创建测试数据InsertintoTable1values('赵','asds','90')InsertintoTable1values('钱'...
数据库操作教程 2022-09-23 17:16:32