实验目的: |
1. 掌握字符串函数的使用(函数见后页) |
2. 掌握日期函数的使用(函数见后页) |
3. 掌握数学函数的使用 |
4. 掌握数据类型转换函数的使用 |
实验内容(打印时不需打印后页所附的函数表格) |
完成在在Recruitment,GlobalToyz和Student数据库基础上的查询,按要求完成给出的下列题目,要求写出相应数据库的查询语句( SELECT )。 |
1. 显示玩具的适用年龄在4岁到8岁之间的所有玩具的名称和描述,要求只显示玩具描述的前25个字符。(两种函数实现) |
Ans1: select vToyName, left (vToyDescription,25) |
from Toys |
where siLowerAge = 4 and siUpperAge = 8; |
Ans2: select vToyName, SUBSTRING (vToyDescription,1,25) |
from Toys |
where siLowerAge = 4 and siUpperAge = 8; |
2. 对于Toys表的所有玩具,将名称和价格结合在一起按要求的格式输出,例如对ID为000001的玩具,打印输出的是‘The price of Robby the Whale is 8.99$’。请按该格式输出所有玩具的名称和价格。 |
Ans: select 'The price of ' + vToyName+ ' is' + convert ( char (10),mToyRate) |
from Toys |
3.将Shopper表的订购者姓和名结合在一起显示,在姓和名显示的时候在中间加上一个空格。如‘Angela Smith’。 |
Ans: select vFirstName+ ' ' +vLastName |
from Shopper |
4. 显示价格最高的五种玩具的名称和价格(vToyName,mToyRate)。 |
Ans: select top 5 vToyName, mToyRate |
from Toys |
order by mToyRate desc |
5. 现需要查看Shopper表的订购者所使用的电子邮件服务商。对于每个订购者,只需要显示电子邮件服务商地址,不需要显示用户名。例如‘angelas@qmail.com’,只需要显示‘@qmail.com’。对于查询结果中重复出现的电子邮件服务商地址,只需要显示一次。 |
Ans: select distinct ( substring (vEmailId,charindex( '@' ,vEmailId),50)) |
from Shopper |
6. 对于每份订单,请输出下列信息,包括订单号,订单日期,周第几日。 |
Ans: select cOrderNo,dOrderDate,DATENAME(dw,dOrderDate) |
from Orders |
7. 对于每份订单要求输出的是订单号,订单日期的月份和日子。例如,订单号为‘000001’的订单的输出结果为‘000001号订单的日期是5月20日’。 |
Ans: select cOrderNo+ '号的日期是' + convert ( char (2),DATEPART(mm,dOrderDate))+ '月' +DATENAME(dd,dOrderDate)+ '日' |
from Orders |
8. 对于装运表Shipment,请根据每份订单输出实际投递时间(dActualDeliveryDate)和装运时间(dShipmentDate)之间相隔的天数。 |
Ans: select DATEDIFF(dy,dActualDeliveryDate,dShipmentDate) |
from Shipment |
9. 假设规则为订单的过期时间为下订单后的一个月,请输出每份订单的订单号,下订单的日期,以及理论的订单过期时间。 |
Ans: select cOrderNo,dOrderDate,dateadd(mm,1, dOrderDate) '订单过期时间' |
from Orders |
10. 对于装运表Shipment,按该格式输出每份订单的装运日期。如订单号为‘000001’的输出结果为‘The Shipment date of Order No . 000001 is 2001.05.23’。 |
Ans: select 'The Shipment date of Order No. ' +cOrderNo+ ' is ' +datename(yy,dShipmentDate)+ '.' +datename(mm,dShipmentDate)+ '.' +datename(dd,dShipmentDate) |
from Shipment |
11. 输出Shopper表的‘Texas’州的前10%的订购者的详细信息。 |
Ans: select top 10 percent * |
from Shopper |
where cState= 'Texas' |