问题1576--SQL中的SELECT语句

1576: SQL中的SELECT语句

[命题人 : ]
时间限制 : 1.000 sec  内存限制 : 64 MB

题目描述

SQL中的SELECT语句用于从数据库中查询记录。某个工程项目数据库中有一个所有数据均为字符串的表,需要查询一些满足条件的记录数。本题考虑SELECT语句的简化形式,相关语句格式如下: 1. 计数语句,查询满足条件的记录条数。有两种格式: 格式1:SELECT COUNT(*) WHERE <条件> 格式2:SELECT COUNT(*) 2. 子集选择语句,选择满足条件的记录并组成一个集合。有两种格式 格式1:SELECT * WHERE <条件> 格式2:SELECT * 上述两种语句中的FROM子句具有相同的格式: 格式1:FROM 格式2:FROM (子集选择语句) 其中TABLENAME为该工程中惟一的表名,子集选择语句即上述用SELECT *开头的语句。 条件的格式为一条或多条=用关键字and连接(不区分大小写),其中FIELD为字段名,VALUE为数据值,它们均为由大小写字母和数字组成的长度不超过10的非空字符串。该条件表示所有特定的字段必须等于给定值。 给定表中的所有记录和若干条计数语句,输出所有语句的结果。

输入

输入第一行为三个整数c, n, q,分别表示数据库中表的列数、记录数和查询次数;第二行为表名(即TABLENAME);第三行为表中的c个字段名(FIELD),之间用一个或多个空格隔开,字段名各不相同;接下来n行,每行表示一个记录,有c个数据值(VALUE),之间用空格隔开;接下去有q行,每行一条SELECT记录数语句,该语句长度(包括空格)不超过1000。输入数据保证每条语句满足题目中给出的计数语句的定义,并且FROM子句的格式1中出现的表名和输入的表名一致。

输出

输出q行,每行一个整数,表示相应语句输出的结果(即满足条件的记录数)。

样例输入 Copy

4 5 6
Book
BookName Price PublishDate Author
NBAsports 10 2004 dearboy
SQL 20 2002 absorbed
IntrotoAlgorithm 59 2002 Thomas
MultipeView 60 2002 RichardHautley
NBAsports 10 2004 dearboy
SELECT COUNT(*) FROM Book WHERE BookName=NBAsports and Author=dearboy
SELECT COUNT(*) FROM Book WHERE Price=20
SELECT COUNT(*) FROM Book WHERE Author=lala
SELECT COUNT(*) FROM (SELECT * FROM Book WHERE BookName=NBAsports)
SELECT COUNT(*) FROM (SELECT * FROM Book WHERE BookName=NBAsports) WHERE Price=20
SELECT COUNT(*) FROM Book

样例输出 Copy

2
1
0
2
0
5

提示

目前仅有题中所提到的样例数据。