-
边界值法举例
2007-01-31 15:35:09
2007-01-30 14:28:31 / 个人分类:测试方法
找零钱最佳组合
假 设 商 店 货 品 价 格 (R) 皆 不 大 於 100 元 ( 且 为 整 数 ) , 若 顾 客 付 款 在 100 元 内 (P) , 求 找 给 顾 客 之 最 少 货币 个(张) 数 ? ( 货 币 面 值 50 元 (N50) , 10 元 (N10) , 5 元 (N5) , 1 元 (N1) 四 种 )
一、 分 析 输 入 的 情 形 。
R > 100
0 < R < = 100
R <= 0
P > 100
R<= P <= 100
P < R
二、 分 析 输 出 情 形 。
N50 = 1
N50 = 0
4 > N10 >= 1
N10 = 0
N5 = 1
N5 = 0
4 > N1 >= 1
N1 = 0
三、 分 析 规 格 中 每 一 决 策 点 之 情 形 , 以 RR1, RR2, RR3 表 示 计 算 要 找 50, 10, 5 元 货 币 数 时 之 剩 余 金 额 。 R > 100R <= 0P > 100P < RRR1 >= 50RR2 >= 10RR3 >= 5
四、 由 上 述 之 输 入 / 输 出 条 件 组 合 出 可 能 的 情 形 。
R > 100
R <= 0
0 < R <= 100, P > 1000 < R <= 100, P < R0 < R <= 100, R <= P <= 100, RR = 500 < R <= 100, R <= P <= 100, RR = 490 < R <= 100, R <= P <= 100, RR = 100 < R <= 100, R <= P <= 100, RR = 90 < R <= 100, R <= P <= 100, RR = 50 < R <= 100, R <= P <= 100, RR = 40 < R <= 100, R <= P <= 100, RR = 10 < R <= 100, R <= P <= 100, RR = 0
五、 为 满 足 以 上 之 各 种 情 形 , 测 试 资 料 设 计 如 下 :
1. 货品价格 = 101
2. 货品价格 = 0
3.货品价格 = -1
4. 货品价格 = 100, 付款金额 = 101
5. 货品价格 = 100, 付款金额 = 99
6. 货品价格 = 50, 付款金额 = 100
7. 货品价格 = 51, 付款金额 = 100
8. 货品价格 = 90, 付款金额 = 100
9. 货品价格 = 91, 付款金额 = 100
10. 货品价格 = 95, 付款金额 = 100
11. 货品价格 = 96, 付款金额 = 100
12. 货品价格 = 99, 付款金额 = 100
13. 货品价格 = 100, 付款金额 = 100 -
SQL查询语句精华使用简要
2007-01-31 16:19:54
一、 简单查询
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。
例如,下面的语句查询testtable表中姓名为"张三"的nickname字段和email字段。SELECT nickname,email
FROM testtable
WHERE name='张三'(一) 选择列表
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。
1、选择所有列
例如,下面语句显示testtable表中所有列的数据:
SELECT *
FROM testtable2、选择部分列并指定它们的显示次序
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。
例如:SELECT nickname,email
FROM testtable3、更改列标题
在选择列表中,可重新指定列标题。定义格式为:
列标题=列名
列名 列标题
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题:SELECT 昵称=nickname,电子邮件=email
FROM testtable4、删除重复行
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。
5、限制返回的行数
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。
例如:SELECT TOP 2 *
FROM testtable
SELECT TOP 20 PERCENT *
FROM testtable(二)FROM子句
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定:SELECT username,citytable.cityid
FROM usertable,citytable
WHERE usertable.cityid=citytable.cityid在FROM子句中可用以下两种格式为表或视图指定别名:
表名 as 别名
表名 别名(二) FROM子句
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定:SELECT username,citytable.cityid
FROM usertable,citytable
WHERE usertable.cityid=citytable.cityid在FROM子句中可用以下两种格式为表或视图指定别名:
表名 as 别名
表名 别名
例如上面语句可用表的别名格式表示为:SELECT username,b.cityid
FROM usertable a,citytable b
WHERE a.cityid=b.cityidSELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。
例如:
SELECT a.au_fname+a.au_lname
FROM authors a,titleauthor ta
(SELECT title_id,title
FROM titles
WHERE ytd_sales>10000
) AS t
WHERE a.au_id=ta.au_id
AND ta.title_id=t.title_id此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。
(三) 使用WHERE子句设置查询条件
WHERE子句设置查询条件,过滤掉不需要的数据行。例如下面语句查询年龄大于20的数据:
SELECT *
FROM usertable
WHERE age>20WHERE子句可包括各种条件运算符:
比较运算符(大小比较):>、>=、=、<、<=、<>、!>、!<
范围运算符(表达式值是否在指定的范围):BETWEEN...AND...
NOT BETWEEN...AND...
列表运算符(判断表达式是否为列表中的指定项):IN (项1,项2......)
NOT IN (项1,项2......)
模式匹配符(判断值是否与指定的字符通配格式相符):LIKE、NOT LIKE
空值判断符(判断表达式是否为空):IS NULL、NOT IS NULL
逻辑运算符(用于多条件的逻辑连接):NOT、AND、OR1、范围运算符例:age BETWEEN 10 AND 30相当于age>=10 AND age<=30
2、列表运算符例:country IN ('Germany','China')
3、模式匹配符例:常用于模糊查找,它判断列值是否与指定的字符串格式相匹配。可用于char、varchar、text、ntext、datetime和smalldatetime等类型查询。
可使用以下通配字符:
百分号%:可匹配任意类型和长度的字符,如果是中文,请使用两个百分号即%%。
下划线_:匹配单个任意字符,它常用来限制表达式的字符长度。
方括号[]:指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。[^]:其取值也[] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
例如:
限制以Publishing结尾,使用LIKE '%Publishing'
限制以A开头:LIKE '[A]%'
限制以A开头外:LIKE '[^A]%'4、空值判断符例WHERE age IS NULL
5、逻辑运算符:优先级为NOT、AND、OR
(四)查询结果排序
使用ORDER BY子句对查询返回的结果按一列或多列排序。ORDER BY子句的语法格式为:
ORDER BY {column_name [ASC|DESC]} [,...n]
其中ASC表示升序,为默认值,DESC为降序。ORDER BY不能按ntext、text和image数据类型进行排
序。
例如:SELECT *
FROM usertable
ORDER BY age desc,userid ASC另外,可以根据表达式进行排序。
二、 联合查询
UNION运算符可以将两个或两个以上上SELECT语句的查询结果集合合并成一个结果集合显示,即执行联合查询。UNION的语法格式为:
select_statement
UNION [ALL] selectstatement
[UNION [ALL] selectstatement][...n]其中selectstatement为待联合的SELECT查询语句。
ALL选项表示将所有行合并到结果集合中。不指定该项时,被联合查询结果集合中的重复行将只保留一行。
联合查询时,查询结果的列标题为第一个查询语句的列标题。因此,要定义列标题必须在第一个查询语句中定义。要对联合查询结果排序时,也必须使用第一查询语句中的列名、列标题或者列序号。
在使用UNION 运算符时,应保证每个联合查询语句的选择列表中有相同数量的表达式,并且每个查询选择表达式应具有相同的数据类型,或是可以自动将它们转换为相同的数据类型。在自动转换时,对于数值类型,系统将低精度的数据类型转换为高精度的数据类型。
在包括多个查询的UNION语句中,其执行顺序是自左至右,使用括号可以改变这一执行顺序。例如:
查询1 UNION (查询2 UNION 查询3)
三、连接查询
通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。
在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给用户带来很大的灵活性,他们可以在任何时候增加新的数据类型。为不同实体创建新的表,尔后通过连接进行查询。
连接可以在SELECT 语句的FROM子句或WHERE子句中建立,似是而非在FROM子句中指出连接时有助于将连接操作与WHERE子句中的搜索条件区分开来。所以,在Transact-SQL中推荐使用这种方法。
SQL-92标准所定义的FROM子句的连接语法格式为:
FROM join_table join_type join_table
[ON (join_condition)]其中join_table指出参与连接操作的表名,连接可以对同一个表操作,也可以对多表操作,对同一个表操作的连接又称做自连接。
join_type 指出连接类型,可分为三种:内连接、外连接和交叉连接。内连接(INNER JOIN)使用比较运算符进行表间某(些)列数据的比较操作,并列出这些表中与连接条件相匹配的数据行。根据所使用的比较方式不同,内连接又分为等值连接、自然连接和不等连接三种。外连接分为左外连接(LEFT OUTER JOIN或LEFT JOIN)、右外连接(RIGHT OUTER JOIN或RIGHT JOIN)和全外连接(FULL OUTER JOIN或FULL JOIN)三种。与内连接不同的是,外连接不只列出与连接条件相匹配的行,而是列出左表(左外连接时)、右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的数据行。
交叉连接(CROSS JOIN)没有WHERE 子句,它返回连接表中所有数据行的笛卡尔积,其结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。
连接操作中的ON (join_condition) 子句指出连接条件,它由被连接表中的列和比较运算符、逻辑运算符等构成。
无论哪种连接都不能对text、ntext和image数据类型列进行直接连接,但可以对这三种列进行间接连接。例如:
SELECT p1.pub_id,p2.pub_id,p1.pr_info
FROM pub_info AS p1 INNER JOIN pub_info AS p2
ON DATALENGTH(p1.pr_info)=DATALENGTH(p2.pr_info)(一)内连接
内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。内连接分三种:
1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。
2、不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括>、>=、<=、<、!>、!<和<>。
3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。
例,下面使用等值连接列出authors和publishers表中位于同一城市的作者和出版社:SELECT *
FROM authors AS a INNER JOIN publishers AS p
ON a.city=p.city
又如使用自然连接,在选择列表中删除authors 和publishers 表中重复列(city和state):
SELECT a.*,p.pub_id,p.pub_name,p.country
FROM authors AS a INNER JOIN publishers AS p
ON a.city=p.city(二)外连接
内连接时,返回查询结果集合中的仅是符合查询条件( WHERE 搜索条件或 HAVING 条件)和连接条件的行。而采用外连接时,它返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接时)、右表(右外连接时)或两个边接表(全外连接)中的所有数据行。如下面使用左外连接将论坛内容和作者信息连接起来:SELECT a.*,b.* FROM luntan LEFT JOIN usertable as b
ON a.username=b.username下面使用全外连接将city表中的所有作者以及user表中的所有作者,以及他们所在的城市:
SELECT a.*,b.*
FROM city as a FULL OUTER JOIN user as b
ON a.username=b.username(三)交叉连接
交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。例,titles表中有6类图书,而publishers表中有8家出版社,则下列交叉连接检索到的记录数将等于6*8=48行。
SELECT type,pub_name
FROM titles CROSS JOIN publishers
ORDER BY type -
每天睡眠5小时
2007-01-31 16:16:22
最近一段时间发现自己好忙,每天有很多需要解决的问题,另外还要在家加班做一个东西,准备近日内推出。晚饭经常化11点多吃,凌晨1点睡觉,5点起床,赶车,上班。细数下来,每天只睡几小时。一天的时间过得好快!
不过还是觉得很充实,因为学到了很多东西。每晚睡前在电脑前工作一会,成为了一种习惯。当一切安静下来后安心的去和周公约会了。朋友说我都快成工作狂了,呵呵,也许...有点。不过,个人感觉,或许这种并不算工作狂,而是一种责任感。再不是小孩了,也懂得了责任的含义 -
健康饮食40条,你做到了多少?
2007-01-31 16:10:00
1.就餐姿势须正确:进餐时要端正坐姿,做到不压胃,使食物由食道较快进入胃内。
2.间隔时间要适宜:一般两次进餐间隔以4-6小时为宜。
3.尽可能不极饥时进食:因饥饿时食欲特强,容易一下子吃得多,从而导致肥胖。
4.不要吃得太多:如先吃喜爱的食物,情绪上的满足会使你较快地产生饱胀感,从而避免进食过量。
5.细嚼慢咽:细嚼慢咽有助于消化。
6.膳后莫用脑:进食后,胃部消化需要集中血液。听听轻音乐,休息一会儿最为合适。若吃完就用脑,血液流向头部,胃肠血少,容易影响消化。
7.晚餐不宜过量:晚餐应吃一些简便易消化的食物,并应严格控制过量。这对控制体重和减肥很有必要。
8.就餐时不谈与吃饭无关的事:若讨论复杂或令人扫兴的问题,就会影响人的食欲。
9.注意营养平衡:一日三餐应注意营养搭配,避免重样。
10.保证吃好早餐:不吃好早餐,人体最低限度的血糖维持不足,人就不能充满活力地去学习和工作。
11.早餐宜进热食:早上是自律神经、副交感神经转往交感神经的时间。热食能提高体温,促进转换,且能增进食欲。
12.饭后宜喝点茶:茶中主要成分丹宁酸有杀菌消毒的作用,其植物皂素能清洗口中食后残屑。
13.饭后宜适当运动:这样可提高细胞活力,减少脂肪聚集,防止发胖。
14.晚上不宜吃
冷饮 :晚上人体水分代谢不活跃,若晚上7时以后吃冷饮,会由于水分代谢慢而积存体内,降低体温,从而不易消除疲劳。15.晚餐要有所节制:晚餐有节制,翌日早餐才能有食欲。
16.睡前不要吃东西:睡前吃东西,肠胃不能充分休息,易导致胃病和影响睡眠,但睡前喝杯热牛奶是可以的。
17.吃过油腻的东西之后勿吃甜点:吃过油腻的东西后再吃甜点,人体脂肪组织吸收多余的葡萄糖。淀粉,会使人体肥胖。
18.吃过肥腻的东西后宜喝
咖啡 式茶:茶和咖啡含咖啡因,能刺激自律神经活动,促进脂肪代谢。19.多些创新口味:这样能增进食欲,有利于补充人体所需要的多种营养。
20.食盐不宜过多:盐摄入过多,易导致高血压。
21.多吃些颜色深的蔬菜:颜色深的蔬菜比颜色浅的含胡萝卜素、
维生素 b2、镁、铁等营养素更丰富。22.小孩食谱不应与大人一样:孩子食谱应营养全面,特别要注意补充有利于长身体的营养素。
23.不可挑食、偏食:挑食、偏食会使营养不平衡。
24.不可长期进食植物油:
花生油 、玉米油中易混杂强致癌物黄曲霉素,菜籽油中的芥酸不利于高血压、心脏病患者的健康。正确的用油应是一份植物油配0.7份动物油。25.不要怕吃菜渣:纤维素能促进大肠蠕动,排除有害物质,预防肠癌。蔬菜有渣,只要不太韧,就应咽下去。
26.就餐时可听听优雅的音乐:优雅的音乐能提高副交感神经作用,促进消化和吸收,但不宜听跳跃、动荡、拍子太快的音乐。
27.经常改变饮食方式:每天吃同样的东西,按健康饮食40条,你做到了多少?同样方式饮食,久而久之营养就会失衡,因此要注意多样化。
28.不宜一边看电视(或看报)一边进食:看报看电视易使饮食时间过长,不知不觉吃多了。同时也分散精力,不能很好地品尝到食品的滋味。
29.饮食时要宽怀:发怒、紧张、哀伤、忧虑,都会减弱消化吸收功能,也影响味觉。
30.共食比独食好:一人一份菜易引起营养失衡。多人共食品种多,每种吃一点易达到营养平衡。
31.钙质最好和醋一起摄取:醋能把钙质离子化,易于为人体所吸收。吃鱼类、骨类食品最好用醋烹制。
32.每天一定要吃一次纤维食品:人体摄取了多余的脂肪和蛋白质,与大肠杆菌作用,会变成有害的腐败物。纤维质可把它们包围并排泄掉。
33.喝酒前吃点东西:空腹喝酒,肝脏负担很大。维生素b族及氨基酸不足,则肝脏容易聚集脂肪。喝酒前吃点东西喝些水,还可以防止醉酒。
34.体虚者可多吃肉:因肉类蛋白质多,可增强体质。
35.尽可能吃较硬的食物:吃硬的食物能有效地锻炼牙龈及腭肌肉,还能促进消化液分泌。
36.尽量避开燥音:强烈的噪音会使人神经兴奋,胃肠功能衰减,长此下去可使食欲减退,发生胃溃疡。
37.不要站立进食:站立进食,交感神经作用活跃,可抑制胃肠正常功能发挥,这也常常是胃下垂、胃扩张及慢性胃炎的诱因。
38.不可吃烫食:常吃烫食,食道和胃易受损伤。
39.按自己的速度进餐:与人一起吃饭不要随着人家速度的快慢,只有我行我素,消化功能才能充分发挥作用。
40.不要食用太多的
调味品 :美国一项调查表明,胡椒、桂皮、丁香、小茴香等天然调味品有一定的诱变性和毒性。多吃可导致人体细胞畸变,并会产生口干、咽喉痛、精神不振、失眠等副作用,还会诱发高血压、胃肠炎等病变。