操作数据:中级SQL
作者 佚名技术
来源 数据库编程
浏览
发布时间 2012-03-22
ECT 语句与上一个语句是等价的。使用哪一种语句是编程风格的问题,但你会发现使用表达式BETWEEN 的语句更易读。 现在假设你只想取出对你的站点投了1或者10的访问者的名字。要从表opinion中取出这些名字,你可以使用如下的SELECT 语句: SELECT username FROM opinion WHERE vote=1 or vote 这个SELECT语句会返回正确的结果,没有理由不使用它。但是,存在一种等价的方式。使用如下的SELECT可以得到相同的结果: SELECT username FROM opinion WHERE vote IN (1,10) 注意表达式IN 的使用。这个SELECT 语句只取出vote的值等于括号中的值之一的记录。 你也可以使用IN来匹配字符数据。例如,假设你只想取出Bill Gates或President Clinton的投票值。你可以使用如下的SELECT 语句: SELECT vote FROM opinion WHERE username IN (‘Bill Gates’,’President Clinton’) 最后,你可以在使用BETWEEN或IN的同时使用表达式NOT。例如,要取出那些投票值不在7到10之间的人的名字,你可以使用如下的SELECT 语句: SELECT username FROM opinion WHERE vote NOT BETWEEN 7 and 10 要选取那些某个字段的值不在一列值之中的记录,你可以同时使用NOT 和IN,如下例所示: SELECT vote FROM opinion WHERE username NOT IN (‘Bill Gates’,’President Clinton’) 你不是必须在SQL语句中使用BETWEEN或IN,但是,要使你的查询更接近自然语言,这两个表达式是有帮助的。 转换数据 SQL Sever足够强大,可以在需要的时候把大部分数值从一种类型转换为另一种类型。例如,要比较SMALLINT型和INT型数据的大小,你不需要进行显式的类型转换。SQL Sever会为你完成这项工作。但是,当你想在字符型数据和其它类型的数据之间进行转换时,你的确需要自己进行转换操作。例如,假设你想从一个MONEY型字段中取出所有的值,并在结果后面加上字符串“US Dollars”。你需要使用函数CONVERT(),如下例所示: SELECT CONVERT(CHAR(8),price)+’US Dollars’ FROM orders 函数CONVERT()带有两个变量。第一个变量指定了数据类型和长度。第二个变量指定了要进行转换的字段。在这个例子中,字段price被转换成长度为8个字符的CHAR型字段。字段price要被转换成字符型,才可以在它后面连接上字符串’US Dollars’。 当向BIT型,DATETIME型,INT型,或者NUMERIC型字段添加字符串时,你需要进行同样的转换操作。例如,下面的语句在一个SELECT语句的查询结果中加入字符串’The vote is’,该SELECT语句返回一个BIT型字段的值: SELECT ‘The vote is’+CONVERT(CHAR(1),vote) FROM opinion 下面是这个语句的结果示例: The vote is 1 The vote is 1 The vote is 0 (3 row(s) affected) 如果你不进行显式的转换,你会收到如下的错误信息: Implicit conversion from datatype ‘varchar’ to ‘bit’ is not allowec. Use the CONVERT function to run this query. 操作字符串数据 SQL Sever有许多函数和表达式,使你能对字符串进行有趣的操作,包括各种各样的模式匹配和字符转换。在这一节中,你将学习如何使用最重要的字符函数和表达式。 匹配通配符 假设你想建立一个与Yahoo功能相似的Internet目录。你可以建立一个表用来保存一系列的站点名称,统一资源定位器(URL),描述,和类别,并允许访问者通过在HTML form中输入关键字来检索这些内容。 假如有一个访问者想从这个目录中得到其描述中包含关键字trading card的站点的列表。要取出正确的站点列表,你也许试图使用这样的查询: SELECT site_name FROM site_directory WHERE site_desc=’trading card’ 这个查询可以工作。但是,它只能返回那些其描述中只有tra |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: Sql联合查询下一篇: 精通数据库系列之入门-基础篇1
关于操作数据:中级SQL的所有评论