随笔分类 -  数据库知识

摘要:最近在学SQL Server数据库程序,以前也学过一些内容,但是没有提高自己的应用水平,停留在理论知识层次,而且有很多概念都不懂。首先看看下面的的SQL 语句SELECT*FROMAINNERJOINBONA.Id=B.ParentId问一个问题,返回的结果数量是大概是多少呢A。大于A的行数 B.等于A的行数 C。小于A的行数 D。小于或者等于A的行数可能按照Join的概念来说,囫囵吞枣说是符合A的记录。那么可能的选择就会是D。 最近在实际中应用的时候发现,这个是自己的认识误区。实际上A,B,C,D 都有可能是正确的结果。比如说A与B的关系是1对多的关系,那么返回的结果记录行数就会大于A的行数 阅读全文
posted @ 2012-08-09 21:30 richardzeng 阅读(177) 评论(0) 推荐(0)
摘要:SQL MAX可以对数字列或者字符列进行运算。但是有一种MAX对字符列的特殊情况一定要注意。比如Key 列是字符列,现在有数据1,2,3,4,5....9现在要在前面的基础上加上1,得到下一个Key值一般的方法是如下DECLARE@next_keyintSELECT@next_key=MAX(CustomSort)fromPersonsprint@next_key +1上面的这段代码永远返回10,导致next_key不能自增加。DECLARE@next_keyintSELECT@next_key=MAX(Cast(CustomSortasint))fromPersonsprint@next_k 阅读全文
posted @ 2012-08-05 18:31 richardzeng 阅读(3979) 评论(0) 推荐(0)
摘要:SQL 语法SQL 语句不区分大小写,比如关键字。而且Where 里面的运算符也不区分大小写的,比如LastName = 'ZG' 这个就能匹配很多。一般来说关键字大写(风格)。使用单引号来包含字符串,而数字类型的不要用单引号来包含。SELECT * FROM Users命名习惯一般给table命名是加s后缀,表示表格包含数据项的集合列名一般采用FirstName这种风格命名数据排序排序是Order By语句而不是Sort By,有时候会模棱两可对于char类型的列排序是按照Alpha顺序的,而不是按照数值大小进行排序,比如10,2,11,排序后按Asc升序就是10,11,2对 阅读全文
posted @ 2012-08-05 16:21 richardzeng 阅读(216) 评论(0) 推荐(0)