欢迎来到天天文库
浏览记录
ID:38686493
大小:45.00 KB
页数:9页
时间:2019-06-17
《软件测试中的SQL基本语句》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、软件测试中的SQL基本语句,通俗易懂发布:2010-8-1010:12
2、作者:网络转载
3、来源:领测软件测试网采编
4、查看:10次
5、进入软件测试论坛讨论领测软件测试网这一查询的结果如表4所示。请注意在ORDERBY之后是如何放置列名BRANCH_OFFICE的,这就是我们想要对其进行排序的列。为什么即使是结果表中只有一个列时我们也必须指出列名呢?这是因为我们还能够按照表中其他列进行排序,即使它们并不显示出来。列名BRANCH_OFFICE之后的关键字ASC表示按照升序排列。如果你希望以降序排列,那么可以用关键字DESC。 同样我们应该指出ORDERBY子句只将临时表中的结果进行排序;
6、并不影响原来的表。 假设我们希望得到按部门排序并从工资最高的雇员到工资最低的雇员排列的列表。除了工资括号中的内容,我们还希望看到按照聘用时间从最近聘用的雇员开始列出的列表。以下是你将要用到的语句: SELECTBRANCH_OFFICE,FIRST_NAME, LAST_NAME,SALARY,HIRE_DATE FROMEMPLOYEES ORDERBYSALARYDESC, HIRE_DATEDESC; 这里我们进行了多列的选择和排序。排序的优先级由语句中的列名顺序所决定。SQL将先对列出的第一个列进行排序。如果在第一个列中出现了重复的行时,这些行将被按照第二列进
7、行排序,如果在第二列中又出现了重复的行时,这些行又将被按照第三列进行排序……如此类推。这次查询的结果如表5所示。 将一个很长的表中的所有列名写出来是一件相当麻烦的事,所以SQL允许在选择表中所有的列时使用*号: SELECT*FROMEMPLOYEES; 这次查询返回整个EMPLOYEES表,如表1所示。 下面我们对开始时给出的SELECT语句的语法进行一下更新(竖直线表示一个可选项,允许在其中选择一项。): SELECT[DISTINCT] (column[{,columns}])
8、* FROMtable[{,table}] [ORDERBYcolumn[ASC]
9、
10、DESC [{,column[ASC]
11、DESC}]]; 定义选择标准 在我们目前所介绍的SELECT语句中,我们对结果表中的列作出了选择但返回的是表中所有的行。让我们看一下如何对SELECT语句进行限制使得它只返回希望得到的行: SELECTcolumnsFROMtables[WHEREpredicates]; WHERE子句对条件进行了设置,只有满足条件的行才被包括到结果表中。这些条件由断言(predicate)进行指定(断言指出了关于某件事情的一种可能的事实)。如果该断言对于某个给定的行成立,该行将被包括到结果表中,否则该行被忽略。在SQL语句中断言通常通过比较来
12、表示。例如,假如你需要查询所有姓为Jones的职员,则可以使用以下SELECT语句: SELECT*FROMEMPLOYEES WHERELAST_NAME='Jones'; LAST_NAME='Jones'部分就是断言。在执行该语句时,SQL将每一行的LAST_NAME列与“Jones”进行比较。如果某一职员的姓为“Jones”,即断言成立,该职员的信息将被包括到结果表中(见表6)。 使用最多的六种比较 我们上例中的断言包括一种基于“等值”的比较(LAST_NAME='Jones'),但是SQL断言还可以包含其他几种类型的比较。其中最常用的为: 等于= 不等于<>
13、 小于< 大于> 小于或等于<= 大于或等于>= 下面给出了不是基于等值比较的一个例子: SELECT*FROMEMPLOYEES WHERESALARY>50000; 这一查询将返回年薪高于$50,000.00的职员(参见表7)。 逻辑连接符 有时我们需要定义一条不止一种断言的SELECT语句。举例来说,如果你仅仅想查看DavyJones的信息的话,表6中的结果将是不正确的。为了进一步定义一个WHERE子句,用户可以使用逻辑连接符AND,OR和NOT。为了只得到职员DavyJones的记录,用户可以输入如下语句: SELECT*FROMEMPLOYEES
14、WHERELAST_NAME='Jones'ANDFIRST_NAME='Davy'; 在本例中,我们通过逻辑连接符AND将两个断言连接起来。只有两个断言都满足时整个表达式才会满足。如果用户需要定义一个SELECT语句来使得当其中任何一项成立就满足条件时,可以使用OR连接符: SELECT*FROMEMPLOYEES WHERELAST_NAME='Jones'ORLAST_NAME='Smith'; 有时定义一个断言的最好方法是通过相反的描述来说明。如果你想
此文档下载收益归作者所有