随笔分类 -  Database

主要记录关于SQL、Oracle、MySQL等数据的一些使用方法
SQL语句Left join 中On和Where的用法区别
摘要:SQL语句如下:SELECT * FROM 表1 LEFT JOIN 表2 ON 表1.id = 表2.id AND 表2.Name != 'ff'WHERE 表1.NAME != 'aa' 步骤1:返回笛卡尔积(SELECT * FROM表1 CROSS JOIN表2) 步骤2:应用ON筛选器(当前的条件为 表1.id = 表2.id AND 表2.Name != 'ff') 步骤3:添加外部行 这一步只对OUTER JOIN起作用,如果是LEFT JOIN会以左边的表为保留表,如果是RIGHT JOIN会以右边的表为保留表。所谓外部行是指,保 阅读全文

posted @ 2013-07-03 15:04 不死小强 阅读(310) 评论(0) 推荐(0)

SQL中delete删除多表数据的进一步认识
摘要:SQL中delete删除多表数据的进一步认识前些时间已经谈过delete的删除多表数据的问题了。不过认识的不是太深刻,今天进一步查证了一些资料,终于对DELETE删除多表数据有了进一步的了解。1、delete from t1 where 条件2、delete t1 from t1 where 条件3、delete t1 from t1,t2 where 条件4、delete t1,t2 from t1,t2 where 条件 www.2cto.com 前3者是可行的,第4者不可行。也就是简单用delete语句无法进行多表删除数据操作,不过可以建立级联删除,在两个表之间建立级联删除关系,则可以实 阅读全文

posted @ 2013-04-11 16:32 不死小强 阅读(806) 评论(0) 推荐(0)

sql server 中某个字段值合并【转】
摘要:转自于 风的梦缘 阅读全文

posted @ 2013-03-29 09:47 不死小强 阅读(244) 评论(0) 推荐(0)

SQL 行转列方法
摘要:SELECT A.* FROM (select PL_ColorClothStocks.*, CM_Dyeworks.DyeworksName from PL_ColorClothStocks INNER JOIN CM_Dyeworks ON DyeworksId = CM_Dyeworks.Id)AS Bpivot(SUM(B.TotalCount) for DyeworksName in (东盈,东岳))as A--group by, avg/max, pivot。这里用max和avg,结果都一样,有什么区别吗?有点不明白--参考网上的资料,用法如下/*pivot( 聚合函数(要转... 阅读全文

posted @ 2013-03-22 16:16 不死小强 阅读(148) 评论(0) 推荐(0)

Sql Server 日期格式化函数GETDATE()
摘要:Sql Server 中一个非常强大的日期格式化函数Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AMSelect CONVERT(varchar(100), GETDATE(), 1): 05/16/06Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06Sele 阅读全文

posted @ 2013-01-30 10:40 不死小强 阅读(161) 评论(0) 推荐(0)

SQL 常用的获取Date时间相关处理方法
摘要:常用的获取时间差的sql语句"select count(*) from [注册] where datediff(day,time,getdate())<1";//获取当天注册人员数sql="select id,classid,classname,xiaoshoue,xiaoshou,jinhuo,kucun,addtime " sql=sql&" from xiaoshou where addtime between '" & format(starttime,"yyyy-mm-dd" 阅读全文

posted @ 2013-01-29 18:35 不死小强 阅读(1184) 评论(0) 推荐(0)

SQL 在存储过程中获取另一个存储过程返回的结果集
摘要:INSERT INTO table_name EXEC procedure_name @parameters_var基本思路是先创建一个临时表,通过INSERT ... EXEC ...语句将存储过程的返回结果保存到临时表中,接下来就可以像处理普通数据表那样对待这个临时表了。对于动态SQL语句,可以通过dbo.sp_executesql存储过程执行,或者直接作为EXEC的参数执行。最后给出两种最常见的处理流程:1。创建一个临时表#tmp,表结构与目标存储过程procedure_name的返回结果集兼容(兼容即可,不必相同)。CREATE TABLE #tmp([columns_list])2。 阅读全文

posted @ 2013-01-29 18:07 不死小强 阅读(1493) 评论(0) 推荐(0)

SQL 在已有很多数据的表中添加一个必填字段的方法,且不影响正常删除字段的方法
摘要:1.先在对应的表中添加必填(非空)字段,以及设置该字段的默认值2.删除该字段的默认值设置约束3.根据该表中已有的数据要求修改该字段的值ALTER TABLE WH_StoreInputs ADD Status NVARCHAR(50) NOT NULL constraint df_adc default '未提交' alter table WH_StoreInputs drop constraint df_adcUPDATE WH_StoreInputsSET Status = '已审核'WHERE CheckStatus = 1ALTER TABLE WH_S 阅读全文

posted @ 2013-01-29 11:20 不死小强 阅读(1903) 评论(0) 推荐(0)

Oracle 数据库相关知识 ---------- DML、DDL、DCL 命令区别
摘要:DML DDL DCL 区别总体解释:DML(data manipulation language): 它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言DDL(data definition language): DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用DCL(Data Control Language): 是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括 阅读全文

posted @ 2012-12-30 20:59 不死小强 阅读(333) 评论(0) 推荐(0)

导航