Visual FoxPro数据库程序设计

单选题有如下订单表和客户表:订单(订单号(C,4),客户号(C,4),职员号(C,3),签订日期(D),金额(N,6,2))客户(客户号(C,4),客户名(C,36),地址(C,36),所在城市(C,10),联系电话(C,8))查询签订了订单号为“0036”的订单的客户信息,不正确的SQL语句是(  )。A SELECT客户.客户号,客户名FROM客户,订单WHERE客户.客户号=订单.客户号AND订单号=”0036”B SELECT客户.客户号,客户名FROM客户,订单ON客户.客户号=订单.客户号AN

题目
单选题
有如下订单表和客户表:订单(订单号(C,4),客户号(C,4),职员号(C,3),签订日期(D),金额(N,6,2))客户(客户号(C,4),客户名(C,36),地址(C,36),所在城市(C,10),联系电话(C,8))查询签订了订单号为“0036”的订单的客户信息,不正确的SQL语句是(  )。
A

SELECT客户.客户号,客户名FROM客户,订单WHERE客户.客户号=订单.客户号AND订单号=”0036”

B

SELECT客户.客户号,客户名FROM客户,订单ON客户.客户号=订单.客户号AND订单号=”0036”

C

SELECT客户.客户号,客户名FROM客户JOIN订单ON客户.客户号=订单.客户号AND订单号=”0036”

D

SELECT客户.客户号,客户名FROM客户JOIN订单ON客户.客户号=订单.客户号WHERE订单号=”0036”

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有以下SQL语句:SELECT 订单号,签订日期,金额 FROM 订单,职员WHERE 订单.职员号=职员.职员号 AND 姓名=“李二”与如上语句功能相同的SQL语句是A) SELECT订单号,签订日期,金额FROM订单WHERE EXISTS(SELECT*FROM职员WHERE姓名=“李二”)B) SELECT订单号,签订日期,金额FROM订单WHEREEXISTS(SELECT*FROM职员WHERE职员号=订单.职员号AND姓名=“李二”:C) SELECT订单号,签订日期,金额FROM订单WHERE IN(SELECT职员号FROM职员WHERE姓名=“李二”)D) SELECT订单号,签订日期,金额FROM订单WHEREIN(SELECT职员号FROM职员WHERE职员号=订单.职员号AND姓名=“李二”)


正确答案:B
题干中的SQL语句约功能是:查询那些姓名为“李二”的职员的订单号,签订日期和金额的信息;四个选项中只有选项B中的查询条件与此等价。WHERE条件后跟EXISTS不是IN,选项C和选项D可排除,用(SELECTFROM... WHERE...)实现选择出“李二”的职员,选项A缺少“订单.职员号=职员.职员号”条件表达式。

第2题:

假设 “ 订单 ” 表中有订单号、职员号、客户号和金额字段,正确的 SQL 语句只能是

A)SELECT 职员号 FROM 订单 GROUP BY 职员号 HAVING COUNT(*)>3 AND AVG_ 金额 >200

B)SELECT 职员号 FROM 订单 GROUP BY 职员号 HAVING COUNT(*)>3 AND AVG( 金额 )>200

C)SELECT 职员号 FROM 订单 GROUP BY 职员号 HAVING COUNT(*)>3 WHERE AVG( 金额 )>200

D)SELECT 职员号 FROM 订单 GROUP BY 职员号 WHERE COUNT(*)>3 AND AVG_ 金额 >200


正确答案:B

第3题:

第(29)~(35)题使用如下三个表:有如下三个表: 职员.DBF:职员号C (3),姓名C (6),性别C (2),组号N (1),职务C(10) 客户.DBF:客户号C (4),客户名C (36),地址C (36),所在城市C (36)订单.DBF:订单号C (4),客户号C (4),职员号C (3),签订日期D,金额N (6.2) (29)查询金额最大的那10%订单的信息。正确的SQL语句是A)SELECT*TOP 10 PERCENT FROM订单B)SELECT TOP 10%*FROM订单ORDER BY金额C)SELECT*TOP 10 PERCENT FROM订单ORDER BY金额D)SELECT TOP 10 PERCENT*FROM订单ORDER BY金额DESC


正确答案:D
查询金额最大的10%的订单,应该是按金额从高向低降序排列,显示前面10%,只有选项D的描述是完整的。

第4题:

查询2010年1月1日后签订的订单,并显示订单的订单号、客户名及签订日期,正确的SQL语句是( )。

A.SELECT订单号,客户名,签订日期FROM订单JOIN客户0N订单.客户号=客户.客户号WHERE 签订日期>{^2010—1—1}

B.SELECT订单号,客户名,签订日期FROM订单JOIN客户WHERE订单.客户号=客户.客户号AND 签订日期>{^2010—1—1}

C.SELECT订单号,客户名,签订日期FROM订单,客户WHERE订单.客户号=客户.客户号AND签订日期<{^2010—1—1}

D.SELECT订单号,客户名,签订日期FROM订单,客户ON订单.客户号=客户.客户号AND签订日期<{^2010—1—1}


正确答案:A
查询2010年1月1日后的订单,应表示为签订日期>{^2010—1—1},JOIN子句为普通连接(内部连接),应使用0N子句指定连接条件,WHERE子句在最后限定元组。

第5题:

阅读下列说明,回答问题1至问题5,将解答填入答题纸的对应栏内。

[说明]

某企业网上销售管理系统的数据库部分关系模式如下所示:

客户(客户号,姓名,性别,地址,邮编)

产品(产品号,名称,库存,单价)

订单(订单号,时间,金额,客户号)

订单明细(订单号,产品号,数量)

关系模式的主要属性及约束如下表所示。

以下是创建部分关系表的SQL语句,请将空缺部分补充完整。

CREATE TABLE客户(

客户号 CHAR(5) (a),

姓名 CHAR(30),

性别 CHAR(2) (b),

地址 CHAR(30),

邮编 CHAR(6));

CREATE TABLE 订单(

订单号CHAR(4),

时间 CHAR(10),

金额 NUMBER(6,2),

客户号CHAR(5)NOTNULL,

PRIMARY KEY(订单号),

(c);


正确答案:(a)NOT NULL UNIQUE或NOT NULL PRIMARY KEY 或 PRIMARY KEY (b)CHECK (VALUE IN('男''女')) (c)FOREIGN KEY (客户号) REFERENCES 客户(客户号)
(a)NOT NULL UNIQUE或NOT NULL PRIMARY KEY 或 PRIMARY KEY (b)CHECK (VALUE IN('男','女')) (c)FOREIGN KEY (客户号) REFERENCES 客户(客户号) 解析:本题考查的是SQL语言中的创建基本表命令。
SQL中使用CREATE TABLE命令来定义基本表,其一般格式为:
CREATE TABLE表名>(列名>数据类型>[列级完整性约束条件]
[,列名>数据类型>[列级完整性约束条件]]...
[,表级完整性约束条件>]);
本题着重考查完整性约束的定义。
. 实体完整性定义。声明主键有两种方法:将PRIMARYKEY保留字加在属性类型之后;在属性列表中引入一个新元素,该元素包含保留字PRIMARY KEY和用圆括号括起的构成主键的属性或者属性组列表。
. 参照完整性定义。FOREIGNKEY(属性名)REFERFENCES表名(属性名)。参照完整性通过保留字FOREIGNKEY定义哪些列为外码,REFERFENCES指明外码所对应的被参照表的主码。
. 用户定义完整性定义。用CHECK后增加一条检查子句来完成属性值上的约束。
根据题目描述,客户号唯一标识一位客户,客户性别取值为“男”或者“女”,一份订单必须且仅对应一位客户。所以,客户号是客户表的主键,客户性别的取值只能为“男”或者“女”,订单中的客户号必须外键依赖于客户。
因此,客户号应表示为主键:
(a)NOT NULL UNIQUE或NOT NULL PRIMARY KEY或PRIMARY KEY;
客户性别的取值只能为“男”或者“女”:
(b)CHECK (VALUE IN('男','女'))
订单中的客户号必须外键依赖于客户:
(c)FOREIGN KEY(客户号)REFERENCES客户(客户号)

第6题:

使用如下3个表:职员.DBF:职员号C(3),姓名C(6),性别C(2),组号N(1),职务C(10)客户.DBF:客户号C(4),客户名C(36),地址C(36),所在城市C(36)订单.DBF:订单号C(4),客户号C(4),职员号C(3),签订日期D,金额N(6,2)查询金额最大的那10%订单的信息。正确的SQL语句是______。

A.SELECT*TOP 10 PERCENT FROM 订单

B.SELECT TOP 10% *FROM 订单 ORDER BY 金额

C.SELECT*TOP 10 PERCENT FROM 订单 ORDER BY 金额

D.SELECT TOP 10 PERCENT * FROM 订单 ORDER BY 金额 DESC


正确答案:D
解析:Visual FoxPro的SELECT—SQL命令的一般语法格式如下:
    SELECT[ALL|DISTINCT]目标列表达式>[,目标列表达式>]…
    FROM基本表(或视图>[,基本表(或视图)>]…
    [WHERE条件表达式>]
    [GROUPBY列名1>[HAVING内部函数表达式>]]
    [ORDERBY列名2>[ASCIDESC]]
    [TOP数值表达式>[PERCENT]]
  说明:①ORDER BY子句:指定查询结果中记录按列名2>排序,默认升序。选项ASC表示升序,DESC表示降序。
  ②TOP子句:TOP子句必须与ORDER BY子句同时使用。数值表达式>表示在符合条件的记录中选取的记录数。范围1~32 767,排序后的若干记录只计一个。含PERCENT选项肘,数值表达式>表示百分比,记录数为小数时自动取整,范围0.01~99.99。

第7题:

设有订单表order(其中包括字段:订单号,客户号,客户号,职员号,签订日期,金额),删除2002年1月1日以前签订的订单记录,正确的SQL命令是:()

A、DELETETABLEorderWHERE签订日期<{^2002-1-1}

B、DELETETABLEorderWHILE签订日期>{^2002-1-1}

C、DELETEFROMorderWHERE签订日期<{^2002-1-1}

D、DELETEFROMorderWHILE签订日期>{^2002-1-1}


参考答案:C

第8题:

显示2005年1月1日后签订的订单,显示订单的订单号、客户名以及签订日期。正确的SQL语句是A) SELECT订单号,客户名,签订日期FROM订单JOIN客户ON订单.客户号=客户.客户号WHERE签订日期>{^2005-1-11}B) SELECT订单号,客户名,签订日期FROM订单JOIN客户WHERE订单.客户号=客户.客户号AND签订日期>{^2005-1-11}C) SELECT订单号,客户名,签订日期FROM订单,客户WHERE订单.客户号=客户.客户号AND签订日期<{^2005-1-1}D) SELECT订单号,客户名,签订日期FROM订单,客户ON订单.客户号=客户.客户号AND签订日期<{^2005-1-11}


正确答案:A
显示2005年1月1日后签定订单,表示方法为:签定日期>{^2005-1-1},故排除选项C和选项D。两个表使用JOIN连接,连接条件使用ON,故选项A为正确答案。

第9题:

第{TSE}题使用如下3个数据库表:

职员.dbf:职员号C(3),姓名C(6),性别C(2),组号N(1),职务C(10)

客户.dbf:客户号C(4),客户名C(36),地址C(36),所在城市C(36)

订单.dbf:订单号C(4),客户名C(4),职员号C(3),签订日期D,金额N(6.2)

{TS}查询金额最大的10%订单的信息,正确的SQL语句是( )。


正确答案:D

第10题:

根据下表,回答下列各题: 职员.DBF:职员号C(3),姓名C(6),性别C(2),组号N(1),职务C(10) 客户.DBF:客户号C(4),客户名C(36),地址C(36),所在城市C(36) 订单.DBF:订单号C(4),客户名C(4),职员号C(3),签订日期D,金额N(6.2) {TS}从订单表中查询金额大于10000元的订单号,正确的命令是( )。

A. SELECT金额>10000 FROM订单FOR订单号

B. SELECT订单号FROM订单FOR金额>10000

C. SELECT金额>10000 FROM订单WHERE订单号

D. SELECT订单号FROM订单WHERE金额>10000


正确答案:D
简单查询基于单个表,查询由SELECT和FROM短语(无条件查询)或SELECT、FROM和WHERE短语(条件查询)构成。其基本格式为:SELECT select—item FROM Database Name WHERE Filter Cndition。

更多相关问题