随笔分类 -  数据库技术

SQL 中 NULL值测试
摘要:刚刚想从数据库中的表EXPERT_DETAILS中检索出修改人Modifier(类型 VARCHAR2(20),可为空)为空的那些记录,因为该字段的类型为VARCHAR2(20),我使用的SQL语句为select * from expert_details twhere t.modifier = ''没有检索出一条记录,而这与存储在该表中的记录是不相符的。后来想到即便是空字符型存储在数据库中也应该是NULL而不是''。 然后我使用下列SQL 语句,仍然没有检索出一条记录。select * from expert_details twhere t.modifier 阅读全文

posted @ 2011-03-29 10:50 慕容小北 阅读(657) 评论(1) 推荐(0) 编辑

Oracle AS关键字
摘要:今天运行程序时,在Oracle中输入SQL语句:select * from USERS as u ,程序报错 输入select * from USERS u 可以正常的查询出结果。 但是在SQL Server 2005 中输入''select * from USERS as u''相同的语句就没有错,查了原因如下:SQL2规范允许关键字AS出现在表的名字和表的别名之间,虽然这使得FROM子句更容易被读懂,但是在特定的SQL产品中它可能还不被支持。 我想Oracle还不支持这样的语法。 阅读全文

posted @ 2011-03-28 18:10 慕容小北 阅读(1173) 评论(0) 推荐(0) 编辑

SQL 复合查询条件(AND,OR,NOT)对NULL值的处理
摘要:在SQL的3值逻辑下,一个查询条件可以产生以下三种情况:TRUE,FALSE,NULL。只有那些满足WHERE子句的值是TRUE的记录才出现在结果表中。 NULL值影响查询条件的结果,并且结果很微妙。 以下是SQL中AND,OR,NOT的真值表。表1 AND的真值表TRUEFALSENULLTRUETRUEFALSENULLFALSEFALSEFALSEFALSENULLNULLFALSENULL表2 OR的真值表 TRUEFALSENULLTRUETRUETRUETRUEFALSETRUEFALSENULLNULLTRUENULLNULL表3 NOT的真值表 TRUEFALSENULLFA. 阅读全文

posted @ 2011-03-24 21:38 慕容小北 阅读(2015) 评论(0) 推荐(0) 编辑

Microsoft SQL Server 2005 和Oracle 语法的一点差异
摘要:1.获取系统当前时间SQL Server 2005:1 select getdate()Oracle:1 select sysdate from dual2.获取年月日SQL Server 2005:1 select year(getdate()) --20112 select month(getdate()) --33 select day(getdate()) --23Oracle:1 select to_char(sysdate,'yyyy') from dual --2011 2 select to_char(sysdate,'mm') from dua 阅读全文

posted @ 2011-03-23 22:13 慕容小北 阅读(529) 评论(1) 推荐(2) 编辑

Microsoft SQL Server 2005提示未能加载包"Microsoft SQL Management Studio Package "
摘要:最初“Microsoft SQL Server 2005” 运行正常,后来我安装.NET Framwork 2.0 SP1,安装过程提示“安装过程中出现了问题,安装失败”。再次打开SQL Server 2005时,出现如下问题: 解决办法:修复“Microsoft .NET Framework 2.0”。步骤:开始——控制面板——添加或删除程序——单击“Microsoft .NET Framework 2.0”——更改——修复。 修复成功后,重启电脑,运行SQL Server 2005 ,一切正常。因为“Microsoft SQL Server 2005”是基于.NET Framwork 2. 阅读全文

posted @ 2011-03-23 15:44 慕容小北 阅读(11448) 评论(0) 推荐(1) 编辑

Oracle trunc()函数的用法
摘要:--Oracle trunc()函数的用法/**************日期********************/1.select trunc(sysdate) from dual --2011-3-18 今天的日期为2011-3-182.select trunc(sysdate, 'mm') from dual --2011-3-1 返回当月第一天.3.select trunc(sysdate,'yy') from dual --2011-1-1 返回当年第一天4.select trunc(sysdate,'dd') from dual - 阅读全文

posted @ 2011-03-18 22:24 慕容小北 阅读(132242) 评论(2) 推荐(11) 编辑