某企业职工和部门的关系模式如下所示,其中部门负责人也是一个职工。 职工(职工号,姓名,年龄,月工资,部门号,电话,办公室)部门(部门号,部门名,负责人代码,任职时间)查询每个部门中月工资最高的“职工号”的SQL查询语句如下: Select 职工号 from 职工 as E where 月工资=二(Select Max(月工资) from 职工 as M(58))。A.where M.部门号=E.部门号B.where M.职工号=E.职工号C.where M.职工号=E.负责人代码D.where M.部门号

题目

某企业职工和部门的关系模式如下所示,其中部门负责人也是一个职工。 职工(职工号,姓名,年龄,月工资,部门号,电话,办公室)部门(部门号,部门名,负责人代码,任职时间)查询每个部门中月工资最高的“职工号”的SQL查询语句如下: Select 职工号 from 职工 as E where 月工资=二(Select Max(月工资) from 职工 as M(58))。

A.where M.部门号=E.部门号

B.where M.职工号=E.职工号

C.where M.职工号=E.负责人代码

D.where M.部门号=E.职工号


相似考题
参考答案和解析
正确答案:A
解析:查询每个部门中月工资最高的“职工号”的SQL查询语句如下:Select职工号from职工asEwhere月工资=(SelectMax(月工资)from职工asMwhereM.部门号=E.部门号)。其中,子查询“selectMax(月工资)from职工asMwhereM.部门号=E.部门号”意为找出M.部门号最高月工资。主查询“select职工号from职工asEwhere月工资=”意为该职工的月工资等于最高工资。因此,(58)空缺处的正确答案是选项A。
更多“某企业职工和部门的关系模式如下所示,其中部门负责人也是一个职工。 职工(职工号,姓名,年龄,月工资,部门号,电话,办公室)部门(部门号,部门名,负责人代码,任职时间)查询每个部门中月工资最高的“职工号”的SQL查询语句如下: Select 职工号 from 职工 as E where 月工资=二(Select Max(月工资) from 职工 as M(58))。A.where M.部门号=E.部门号B.where M.职工号=E.职工号C.where M.职工号=E.负责人代码D.where M.部门号”相关问题
  • 第1题:

    ● 某企业职工和部门的关系模式如下所示,其中部门负责人也是一个职工。职工和 部门的关系模式的外键分别是 (5) 。

    职工 (职工号,姓名,年龄,月工资,部门号,电话,办公室)

    部门 (部门号,部门名,负责人代码,任职时间)

    查询每个部门中月工资最高的 “职工号”的SQL 查询语句如下:

    where 月工资= (Select Max (月工资)from 职工 as M (6) )。

    (5)A. 职工号和部门号 B. 部门号和负责人代码

    C. 职工号和负责人代码 D. 部门号和职工号

    (6)A. where M.职工号=E.职工号 B. where M.职工号=E.负责人代码

    C. where M.部门号=部门号 D. where M.部门号=E.部门号


    正确答案:B,D

  • 第2题:

    某企业职工和部门的关系模式如下所示,其中部门负责人也是一个职工。职工和部门关系的外键分别是(48)。

    职工(职工号,姓名,年龄,月工资,部门号,电话,办公室)

    部门(部门号,部门名,负责人代码,任职时间)

    查询每个部门中月工资最高的“职工号”的SQL查询语句如下:

    Select 职工号 from 职工as E

    where 月工资=(Select Max(月工资)from 职工 as M(49))。

    A.职工号和部门号

    B.部门号和负责人代码

    C.职工号和负责人代码

    D.部门号和职工号


    正确答案:B
    解析:本题考查的是关系数据库中关系模式和SQL查询方面的基础知识。
      试题(48)的正确答案是B。因为,作为主键其值能唯一地标识元组的一个或多个属性,主键通常也称为主码。所谓外键是指如果关系模式R中的属性或属性组不是该关系的码,但它是其他关系的码,那么该属性集对关系模式R而言是外键,通常也称外码。根据题意分析,职工关系中的主键是职工号,部门关系中的主键是部门号。显然,职工关系中的外键是部门号。但是,部门关系中的外键是负责人代码,为什么?因为题中说明部门负责人也是一个职工,这样负责人代码的取值域为职工号,所以根据外键定义部门关系中的外键是负责人代码。
      试题(49)的正确答案是D。正确的查询每个部门中月工资最高的“职工号”的SQL查询语句如下:
      Select 职工号 from 职工 as E
      where 月工资=(Select Max(月工资) from职工 as M where M.部门号=E.部门号);
      此题子查询“Select Max(月工资) from 职工as M where M.部门号=E.部门号”意为找出M.部门号最高月工资,主查询“Select 职工号 from 职工 as E where月工资=”意为该职工的月工资等于最高工资。

  • 第3题:

    某企业职工和部门的关系模式如下,其中部门负责人也是一名职工。

    职工(职工号,姓名,年龄,月工资,部门号。电话,办公室);

    部门(部门号,部门名,负责人代码,任职时间)。

    查询每个部门中月工资最高的“职工号”的SQI。查询语句如下:

    Select职工号from职工as E where月1:资=(Select Max(月工资)from职工as M)——。

    A.where M.职工号=E.职_l二号

    B.where M.职工号=E.负责人代码

    C.where M.部门号=E.部门号

    D.where M.部门号=E.职工号


    正确答案:C
    解析:子查询“Select Max(月工资)from职工a8M where M.部门号=E.部门号”意为找出M.部门号最高月工资。主查询“Select职工号from职工8s Ewhere,月工资=”意为该职工的月工资等于最高工资。

  • 第4题:

    到(35)题使用如下数据表。

    部门(部门号C(2)、部门名称C(10) )

    职工(部门号C(2)、职工号C(4)、姓名C(8)、基本工资N(7,2) )

    检索有职工的基本工资大于或等于“11”部门中任意一名职工工资的“部门号”,正确的语句是( )。

    A.SELECT DISTmCT部门号FROM职工WHERE基本工资>=ANY; (SELECT基本工资FROM职工WHERE部门号="11")

    B.SELECT DISTINC部门号FROM职工WHERE基本工资>=ALL; (SELECT基本工资FROM职工WHERE部门号="11")

    C.SELECT DISTINCT部门号FROM职工WHERE基本工资>=ANY; (SELECT MAX(基本工资)FROM职工WHERE部门号="11")

    D.SELECT DISTINCT部门号FROM职工WHERE基本工资>=ALL; (SELECT MIN(基本工资)FROM职工WHERE部门号="11")


    正确答案:B
    解析:在SQL语句中可以利用ANY、ALL等量词进行查询。基本格式为:
    表达式>比较运算符>[ANY|ALL|SOME](子查询)
    其中,ANY(任意的)和SOME(一些)表示只要子查询中存在符合条件的行,结果就成立:而ALL(所有的)只有子查询中的所有行都符合条件,结果才成立。
    本题中要求检索有职工的基本工资大于或等于“11”部门中任意一名职工的工资的部门号,等价于其他部门职工的基本工资有大于或等于“11”部门中所有职工的工资,因此要使用ALL短语。选项C)和D)的属于语法错误,SQL不支持此类型查询。

  • 第5题:

    第下列各题使用如下数据。 部门(部门号C(2)、部门名称C(10)) 职工(部门号C(2)、职工号C(4)、姓名C(8)、基本工资 N(7,2)) 检索有职工的基本工资大于或等于“11”部门中任意一名职工工资的“部门号”,正确的语句是( )。

    A.SELECT DISTINCT部门号FROM职711 WHERE基本工资>=ANY (SELECT基本工资FROM职工WHERE部门号一”ll”)

    B.SELECT DISTINCT部门号FROM职工WHERE基本工资>=ALL (SELECT基本工资FROM职工WHERE部门号 一”ll”)

    C.SELECT DISTINCT部门号FROM职工WHERE基本工资>=ANY (SELECT MAX(基本工资)FROM职工WHERE部门号=”ll”)

    D.SELECT DlSTINcT部门号FROM职工WHERE基本工资>=ALL (SELECT MIN(基本工资)FROM职工WHERE部 门号=”11”)


    正确答案:B
    B。【解析】在SQL语句中可以利用ANY、ALL等量词进行查询。基本格式为:<表达式><比较运算符>[ANYIALLISOME](子查询)其中,ANY(任意的)和SOME(一些)表示只要子查询中存在符合条件的行,结果就成立;而ALL(所有的)只有子查询中的所有行都符合条件,结果才成立。本题中要求检索有职工的基本工资大于或等于“ll”部门中任意一名职工的工资的部门号,等价于其他部门职工的基本工资有大于或等于“ll”部门中所有职工的工资,因此要使用ALL短语。选项C和D的属于语法错误,SQL不支持此类型查询。

  • 第6题:

    使用如下3个表:

    部门.DBF:部门号C(8),部门名C(12),负责人C(6),电话C(16)

    职工.DBF:部门号C(8),职工号C(10),姓名C(8),性别C(2),出生日期D

    部门.DBF:部门号C(10),基本工资N(8.2),津贴N(8.2),奖金N(8.2),扣除N(8.2)

    查询职工实发工资的正确命令是

    A.SELECT姓名,(基本工资+津贴+奖金-扣除)AS实发工资FROM工资

    B.SELECT姓名,(基本工资+津贴+奖金-扣除)AS实发工资FROM工资 WHERE职工.职工号=工资.职工号

    C.SELECT姓名,(基本工资+津贴+奖金-扣除)AS实发工资; FROM工资,职工WHERE职工.职工号=工资.职工号

    D.SELECT姓名,(基本工资+津贴+奖金-扣除)AS实发工资; FROM工资JOIN职工WHERE职工.职工号=工资.职工号


    正确答案:C
    解析:在SQL查询语句中,续行符号应使用分号(;)。进行多表查询,指定两表关键字进行联接时,JOIN短语应该与ON短语连用。

  • 第7题:

    企业职工和部门的关系模式如下所示,其中部门负责人也是一个职工。

    职工(职工号,姓名,年龄,月薪,部门号,电话,地址)

    部门(部门号,部门名,电话,负责人代码,任职时间)

    请将下面的SQL语句空缺部分补充完整。

    CREATE TABLE部门(部门号CHAR(4)PRIMARY KEY,部门名CHAR(20),

    电话CHAR(13),负责人代码CHAR(5),任职时间DATE,

    FOREIGN KEY (37));

    查询比软件部所有职工月薪都要少的职工姓名及月薪的SQL语句如下:

    SELECT 姓名,月薪FROM 职工

    WHERE月薪<(SELECT (38) FROM职工

    WHERE部门号=(39));

    A.(电话)REFERENCES职工(电话)

    B.(部门号)REFERENCES部门(部门号)

    C.(部门号)REFERENCES职工(部门号)

    D.(负责人代码)REFERENCES职工(职工号)


    正确答案:D

  • 第8题:

    查询有10名以上(含10名)职工的部门信息(部门名和职工人数),并按职工人数降序排序。正确的命令是A)SELECT部门名,COUNT(职工号)AS职工人数; FROM部门,职工WHERE部门.部门号=职工.部门号; GROUP BY部门名HAVING COUNT(*)>=10; ORDER BY COUNT(职工号)ASCB)SEIECT部门名,COUNT(职工号)AS职工人数; FROM部门,职工WHERE部门.部门号=职工.部门号; GROUP BY部门名HAVING COUNT(*)>=10; ORDER BY COUNT(职工号)DESCC)SELECT部门名,COUNT(职工号)AS职工人数;FROM部门,职工WHERE部门.部门号=职工.部门号; GROUP BY部门名HAVING COUNT(*)>=10; ORDER BY职工人数ASCD)SELECT一部门名,COUNT(职工号)As职工人数;FROM部门,职工WHERE部门.部门号一职工.部门号; GROUP BY部门名HAVING COUNT(*)>=10; ORDER BY职工人数DESC


    正确答案:D
    本题考查使用COUNT()函数来构造复杂查询,分组条件GROUP BY部门名HAVIN COUNT(*)>10表示部门人数大于10人。另外可以用排除法求解,首先可以排除选项A和选项C,这两个选项中ORDER BY子句后的关键字是ASC表示升序,不符合题意。选项B的错误在于没有使用职工人数作为排序关健字。

  • 第9题:

    某企业职工和部门的关系模式如下所示,其中部门负责人也是一个职工。职工和部门的关系模式的外键分别是(5)。

    职工(职工号,姓名,年龄,月工资,部门号,电话,办公室)

    部门(部门号,部门名,负责人代码,任职时间)

    查询每个部门中月工资最高的“职工号”的SQL查询语句如下:

    Select职工号 from职工as E

    where月工资=(Select Max(月工资)from职工as M(6))。

    A.职工号和部门号

    B.部门号和负责人代码

    C.职工号和负责人代码

    D.部门号和职工号


    正确答案:B
    解析:本题考查的是关系数据库中关系模式和SQL查询方面的基础知识。
      试题(5)的正确答案是B。因为,作为主键其值能唯一地标识元组的一个或多个属性,主键通常也称为主码。所谓外键是指如果关系模式R中的属性或属性组非该关系的码,但它是其他关系的码,那么该属性集对关系模式R而言是外键,通常也称外码。根据题意分析,职工关系中的主键是职工号,部门关系中的主键是部门号。显然,职工关系中的外键是部门号。但是,部门关系中的外键是负责人代码,为什么?因为题中说明部门负责人也是一个职工,这样负责人代码的取值域为职工号,所以根据外键定义部门关系中的外键是负责人代码。
      试题(6)的正确答案是D。正确的查询每个部门中月工资最高的“职工号”的SQL查询语句如下:
      Select职工号 from职工as E
      where月工资=(Select Max(月工资)from职工as M where M.部门号=E.部门号);
      此题子查询“Select Max(月工资)from职工as M where M.部门号=E.部门号”意为找出M.部门号最高月工资,主查询“Select职工号from职工as E where月工资;”意为该职工的月工资等于最高工资。

  • 第10题:

    阅读下列说明,回答问题1至问题5。

    【说明】

    某工厂的信息管理数据库的部分关系模式如下所示:

    职工(职工号,姓名,年龄,月工资,部门号,电话,办公室)

    部门(部门号,部门名,负责人代码,任职时间)

    关系模式的主要属性、含义及约束如表22-1所示,“职工”和“部门”的关系示例分别如表22-2和表22-3所示。

    根据上述说明,由SQL定义的“职工”和“部门”的关系模式,以及统计各部门的人数C、工资总数Totals、平均工资Averages的D_S视图如下所示,请在空缺处填入正确的内容。

    Create Table 部门 (部门号 Char(1) (a)

    部门名 Char(16),

    负责人代码 Char(4),

    任职时间 DATE,

    (b) (职工号));

    Create Table 职工 (职工号 Char(4),

    姓名 Char(8),

    年龄 NUMDER(3),

    月工资 NUMDER(4),

    部门号 Char(1),

    电话 Char(8),

    办公室 Char(8),

    (a) (职工号),

    (c) (部门号),

    CHECK( (d) ));

    Create View D_S(D,C,Totals,Averages) As

    (Select 部门号, (e)

    from 职工

    (f)


    正确答案:a. Primary Key b. Constraint FK_DEPT Foreign Key(负责人代码) References 职工或Foreign Key(负责人代码)References 职工 c. Constraint FK_PERDEPT Foreign Key(部门号)References 部门或Foreign Key(部门号)References 部门 d.月工资Between 500 And 5000或月工资>=500 And 月工资=5000 e.Count(*)Sum(月工资)
    a. Primary Key b. Constraint FK_DEPT Foreign Key(负责人代码) References 职工或Foreign Key(负责人代码)References 职工 c. Constraint FK_PERDEPT Foreign Key(部门号)References 部门或Foreign Key(部门号)References 部门 d.月工资Between 500 And 5000或月工资>=500 And 月工资=5000 e.Count(*),Sum(月工资) 解析:SQL语言包括数据定义、数据查询和数据操纵,其中数据定义有表、视图和索引的定义。
    数据库完整性包括实体完整性、参照完整性和用户自定义完整性约束。用户自定义完整性写在列级完整性约束条件中。定义实体完整性通常采用“Not Null”,“Unique”,“Constraint主键约束名Primary Key(属性组)”等。其中:
    .“Not Null”表示该列的属性不能为空,定义时紧跟数据类型的后面;
    .“Unique”表示该列的属性是唯一标识的(即不能取重复值),定义时可以紧跟数据类型的后面,也可以放在最后面,这时的格式是:Unique(列名,[列名]...);
    .“Constraint主键约束名Primary Key(属性组)”表示该属性组是表的主键,能唯一标识记录。
    定义参照完整性通常采用:
    Constraint参照约束名Foreign Key参照表(属性组)References被参照表(属性组)定义用户自定义完整性通常采用:
    Constraint自定义约束名Check(条件)
    例如:某表R1(a1,a2,a3),其中a1,a2,a3都是int型。现约束要求a1+a2100,则用户自定义完整性定义是:
    Constraint C1 Check(a1+a2100)
    其中“Constraint约束名”可以省略。
    关于定义视图的一般格式如下:
    Create View视图名>[(列名>[,列名>]...)]
    Aa子查询>
    [with Check Option]
    注意:
    (1)其中的查询可以是任意复杂的Select语句,但通常不允许含有Order by子句和Distinct短语。
    (2)With Check Option表示对视图进行Update,Insert和Delete操作时要保证更新、插入或删除的行满足视图定义中的谓词条件(即子查询中的条件表达式)。
    对视图的查询、更新操作,它的执行过程是首先把这个SQL语句与定义这个视图的SQL语句合并起来,转换成一个新的SQL语句,然后才真正的执行。
    SQL语言还提供了一些常用的统计函数,如:Count用来统计元组个数,Sum用来计算一列值的总和,Avg用来计算一列值的平均值,Max用来求一列值中的最大值, Min用来求一列值中的最小值,等等。
    SQL语言的查询优化在数据库系统中有着非常重要的地位,同时也是考试的一个难点,能反映出考生能否比较熟练地掌握SQL语言,做这种类型的题目有一些技巧。一般来说,如果查询中采用了查询嵌套,特别是自我连接的那种类型,优化的原则是尽量采用不嵌套的的SQL语句来实现相同的功能;当有选择运算时,应尽可能让它先做:在执行连接前注意对关系做适当的预处理,比如在联接的属性上建立索引和对关系排序,然后再执行联接。
    [问题1]
    从试题描述可以看出,在“部门”关系中,“部门号”是唯一标识记录的,是该关系的主键,可采用(部门号Char(1)Primary Key)来定义。在“职工”关系中,“职工号”是唯一标识记录的,因此它是主键,可以定义为:UNIQUE(职工号)或Constraint PF PER Primary Key(职工号)。
    显然,“负责人代码”是“部门”关系的外键,通过“负责人代码”等于“职工号”来关联“职工”关系的,定义为:Constraint FK_DEPT Foreign Key(负责人代码)References职工(职工号)。同时“部门号”是“职工”关系的外键,定义为:Constraint FK_PERDEPT Foreign Key(部门号)References部门(部门号)。
    由于表22-1中告诉我们在“职工”关系中的月工资有个约束:500元≤月工资≤ 5000元。它属于用户自定义完整性约束,可以定义为:Check(月工资Between 500 And 5000)。
    通过对题目分析,建立该视图,要采用到集函数和记录分组语句,采用Count来计算部门的人数,用Sum来计算工资总数,用Avg来计算平均工资。然后用“Group by部门号”来对不同部门进行分组。创建D_S视图的SQL语句如下:
    Create View D_S(D,C.Totals,Averages) AS (Select 部门号,Count (*),sum (月工资),Avg(月工资)From 职工Group by部门号)

  • 第11题:

    第 31~33 使用如下三个表:

    部门.dbf:部门号C(8),部门名C(12),负责人C(6)

    职工.dbf:部门号C(8),职工号C(10),姓名C(8),性别C(2),出生日期D(8)

    工资.dbf:职工号C(10),基本工资N(8.2),津贴N(8.2),奖金N(8.2)

    第 31 题 查询每个部门年龄最小者的信息,要求得到的信息包括部门名和最长者的出生日期。正确的命令是( )。

    A)SELECT部门名,MIN(出生日期)FROM部门JOIN职工:

    WHERE部门.部门号=职工.部门号GROUP BY部门名

    B)SELECT部门名,MIN(出生日期)FROM部门JOIN职工:

    ON部门.部门号=职工.部门号GROUP BY部门名

    C)SELECT部门名,MAX(出生日期)FROM部门JOIN职工:

    ON部门.部门号=职工.部门号GROUP BY部门名

    D)SELECT部门名,MAX(出生日期)FROM部门JOIN职工:


    正确答案:C
    SQL语言的数据查询功能的语法一般格式如下:
    SELECT<目标列表达式>
    FROM[[<表名1>|<视图名1>]
    [[INNE]
    JOIN<表名2>|<视图名1>]…
    [ON<联接条件>]…]
    FROM[[<数据库名>]<owner>     
    {<表名>|<视图名>}
    [,[[<数据库名>.]<owner>.
    {<表名>|<视图名>}…
    [WHERE<条件表达式>]
    [GROUP BY<列名1>
    [HAVING<内部函数表达式>]]
    [ORDER By<列名2>{ASC/DESC}]
    语句的功能是从FROM子句列出的表中,按照WHERE子句中给出的条件,找出满足条件的元组,在按SELECT子句中给出的目标列表达式,选出元组中的列值形成结果表。MAX函数表示求最大值。

  • 第12题:

    某企业职工和部门的关系模式如下所示,其中部门负责人也是一个职工。职工和部门的关系模式的外键分别是( )。职工(职工号,姓名,年龄,月工资,部门号,电话,办公室)部门(部门号,部门名,负责人代码,任职时间)查询每个部门中月工资最高的“职工号”的SQL查询语句如下:Select职工号 from职工as Ewhere月工资=(Select Max(月工资)from职工as M(请作答此空))。

    A.where] M.职工号=E.职工号
    B.where] M.职工号=E.负责人代码
    C.where] M.部门号=部门号
    D.where] M.部门号=E.部门号

    答案:D
    解析:
    本题考查的是关系数据库中关系模式和SQL查询方面的基础知识。试题(5)的正确答案是B。因为,作为主键其值能唯一地标识元组的一个或多个属性,主键通常也称为主码。所谓外键是指如果关系模式R中的属性或属性组非该关系的码,但它是其他关系的码,那么该属性集对关系模式R而言是外键,通常也称外码。根据题意分析,职工关系中的主键是职工号,部门关系中的主键是部门号。显然,职工关系中的外键是部门号。但是,部门关系中的外键是负责人代码,为什么?因为题中说明部门负责人也是一个职工,这样负责人代码的取值域为职工号,所以根据外键定义部门关系中的外键是负责人代码。试题(6)的正确答案是D。正确的查询每个部门中月工资最高的“职工号”的SQL查询语句如下:Select职工号 ?from职工as Ewhere月工资=(Select Max(月工资)from职工as M where M.部门号=E.部门号);此题子查询“Select Max(月工资)from职工as M where M.部门号=E.部门号”意为找出M.部门号最高月工资,主查询“Select职工号from职工as E where月工资;”意为该职工的月工资等于最高工资。

  • 第13题:

    查询有10名以上(含10名)职工的部门信息(部门名和职工人数),并按职工人数降序排序。正确的命令是 ______。

    A.SELECT 部门名,COUNT (职工号)AS 职工人数; FROM 部门,职工 WHERE 部门. 部门号=职工.部门号; GROUP BY 部门名 HAVING COUNT(*)>=10; ORDER BY COUNT (职工号) ASC

    B.SELECT 部门名,COUNT (职工号) AS 职工人数; FROM 部门,职工 WHERE 部门.部门号=职工.部门号; GROUP BY 部门名 HAVING COUNT(*)>=10; ORDER BY COUNT (职工号) DESC

    C.SELECT 部门名,COUNT (职工号) AS 职工人数; FROM 部门,职工 WHERE 部门.部门号=职工.部门号; GROUP BY 部门名 HAVING COUNT(*)>=10; ORDER BY 职工人数 ASC

    D.SELECT 部门名,COUNT(职工号) AS 职工人数; FROM 部门,职工 WHERE 部门. 部门号= 职工.部门号; GROUP BY 部门名 HAVING COUNT (*)>=10; ORDER BY 职工号人数 DESC


    正确答案:D
    解析:本小题考查使用COUNT()函数来构造复杂查询,分组条件GROUP BY 部门名 HAVING COUNT(*)>10表示部门人数大于10人。另外可以用排除法求解,首先可以排除选项A和选项C,这两个选项中ORDER BY子句后的关键字是ASC表示升序,不符合题意。选项B的错误在于没有使用职工人数作为排序关键字。

  • 第14题:

    某企业职工和部门的关系模式如下所示,其中部门负责人也是一名职工。 职工(职工号,姓名,年龄,月工资,部门号,电话,办公室) 部门(部门号,部门名,负责人代码,任职时间) 查询每个部门中月工资最高的“职工号”的SQL查询语句如下:

    Select 职工号 from 职工 as E

    where 月工资=(Select Max(月工资)from 职工as M (54) );

    A.where M.部门号=E.部门号

    B.where M.职工号=E.职工号

    C.where M.职工号=E.负责人代码

    D.where M.部门号=E.职工号


    正确答案:A
    解析:查询每个部门中月工资最高的“职工号”的SQL查询语句如下所示。
      Select 职工号 from 职工 as E
      where 月工资=(Select Max (月工资) from 职工 as M where M.部门号=E.部门号);
      其中,子查询“Select Max(月工资) from 职工 as M where M.部门号=E.部门号”意为找出M.部门号最高月工资。主查询“Select 职工号 from 职工 as E where月工资=”意为该职工的月工资等于最高工资。因此,(54)空缺处的正确答案是选项A。

  • 第15题:

    检索每个部门职工工资的总和,要求显示部门名称和工资,正确的命令是

    部门表(部门号N(4)、部门名称C(10))

    职工表(部门号N(4)、职工号C(4)、姓名C(8)、工资N(7,2))

    A.SELECT 部门号,SUM(工资)FROM 部门表,职工表; WHERE 职工表.部门号=部门表.部门号; GROUP BY部门号

    B.SELECT 部门号,SUM(工资)FROM职工表; WHERE 职工表.部门号=部门表.部门号; GROUP BY职工表.部门号

    C.SELECT 部门号,SUM(工资)FROM 部门表,职工表; WHERE 职工表.部门号=部门表.部门号; ORDRE BY职工表.部门号

    D.SELECT 部门号,SUM(工资)FROM 部门表,职工表; WHERE 职工表.部门号=部门表.部门号; GROUP BY职工表.部门号


    正确答案:D
    解析:利用分组查询计算各个部门职工的工资总和,注意指定分组条件时,要指定数据表名称,否则系统提示部门号不惟一,必须加以限定。

  • 第16题:

    可以正确查询每个部门年龄最长的信息(要求得到的信息包括部门名和最长者的出生日期)的SQL SELECT命令是( )。

    A.SELECT部门名,MAX(出生日期)FROM部门JOIN职工; ON部门.部门号=职工.部门号GROUP BY部门名

    B.SELECT部门名,MIN(出生日期)FROM部门JOIN职工; ON部门.部门号=职工.部门号GROUP BY部门名

    C.SELECT部门名,MIN(出生日期)FROM部门JOIN职工; WHERE部门.部门号=职工.部门号GROUP BY部门名

    D.SELECT部门名,MAX(出生日期)FROM部门JOIN职工; WHERE部门.部门号=职工.部门号GROUP BY部门名


    正确答案:B
    B。IMP:]WHERE是设定查询条件,JOINON是联系两个表设定连接条件,一起查询的条件。排除C、D,要查年龄最长者,即出生日期数值最小,故选B。

  • 第17题:

    查询每个部门中月工资最高的“职工号”的SQL查询语句如下:

    Select 职工号 from 职工 E

    Where 月工资=(Select Max(月工资)

    from 职工 as M

    where M. 部门号=E. 部门号);

    (1)请用30字以内文字简要说明该查询语句对查询效率的影响。

    (2)对该查询语句进行修改,使它既可以完成相同功能,又可以提高查询效率。


    正确答案:(1)对于外层的“职工”关系E中的每一个元组都要对内层的整个“职工”关系M进行检索因此查询效率不高。 (2)本题可以有两种解法: 解答一: 改正后的SQL语句使用了临时表: Select Max(月工资)as 最高工资部门号Into Temp From 职工 Group by 部门号 Select 职工号 From 职工Temp Where 月工资=最高工资 And 职工.部门号=Temp.部门号; 解答二: Select 职工号 Fro
    (1)对于外层的“职工”关系E中的每一个元组,都要对内层的整个“职工”关系M进行检索,因此查询效率不高。 (2)本题可以有两种解法: 解答一: 改正后的SQL语句使用了临时表: Select Max(月工资)as 最高工资,部门号Into Temp From 职工 Group by 部门号 Select 职工号 From 职工,Temp Where 月工资=最高工资 And 职工.部门号=Temp.部门号; 解答二: Select 职工号 Fro

  • 第18题:

    有"部门表"和"商品表"的内容如下:

    部门.dbf:部门号C(8),部门名C(12),负责人C(6),电话C(16)

    职工.dbf:部门号C(8),职工号C(10),姓名C(8),性别C(2),出生日期D

    查询有10名以上(含10名)职工的部门信息(部门名和职工人数),并按职工人数降序排列。正确的命令是

    A.SELECT 部门名,COUNT(职工号) AS 职工人数; FROM 部门,职工 WHERE 部门.部门号=职工.部门号; GROUP BY 部门名 HAVING COUNT(*)>=10; ORDER BY COUNT(职工号) ASC

    B.SELECT 部门名,COUNT(职工号) AS 职工人数; FROM 部门,职工 WHERE 部门.部门号=职工.部门号; GROUP BY 部门名 HAVING COUNT(*)>=10; ORDER BY COUNT(职工号) DESC

    C.SELECT 部门名,COUNT(职工号) AS 职工人数; FROM 部门,职工 WHERE 部门.部门号=职工.部门号; GROUP BY 部门名 HAVING COUNT(*)>=10 ORDER BY职工人数ASC

    D.SELECT 部门名,COUNT(职工号) AS 职工人数; FROM 部门,职工 WHERE 部门.部门号=职工.部门号; GROUP BY 部门名 HAVING COUNT(*)>=10 ORDER BY 职工人数 DESC


    正确答案:D
    解析:在SQL SELECT子句中可以包含算术表达式或函数,利用AS可以为它们重新定义字段名,但它们并不存储在表内,因此被称为虚字段。对指定的字段进行排序,应使用重新定义的字段名,对查询结果进行降序排序时,还应使用关键字DESC。

  • 第19题:

    查询每个部门年龄最长者的信息,要求得到的信息包括部门名和最长者的出生日期。正确的命令是A)SELECT部门名,MIN(出生日期)FROM部门JOIN职工;ON部门.部门号=职工.部门号GROUP BY部门名B)SELECT部门名,MAX(出生日期)FROM部门JOIN职工;ON部门.部门号=职工.部门号GROUP BY部门名C) SELECT部门名,MIN(出生日期)FROM部门JOIN职工;WHERE部门.部门号=职工.部门号GROUP BY部门名D) SELECT部门名,MAX(出生日期)FROM部门JOIN职工;WHERE部门.部门号=职工.部门号GROUP BY部门名


    正确答案:A
    使用函数min()对日期型数据进行运算,需理解表达式的含义。表达式min(出生日期)表示年龄最长,因此可以首先排除选项B和选项D选项C的错误在于谁普误的使用了连接子句中的关键字,JOIN表示连接,与之配合使用的关键字应该是ON,用来表示连接的条件,因此选项A为正确答案。

  • 第20题:

    使用如下三个表 部门.dbf:部门号C(8),部门名C(12),负责人C(8) 职工.dbf:职工号C(10),部门号C(8),姓名C(8),性别C(2),出生日期D(8) 工资.dbf:职工号C(10),基本工资N(8,2),津贴N(8,2),奖金N(8,2),扣除N(8,2) 查询每个部门年龄最长者的信息,要求包括所在部门名和最长者的出生日期。正确的命令是( )。

    A. SELECT部门名,MIN(出生日期)FROM部门JOIN职工; ON部门.部门号=职工.部门号GROUP BY部门号

    B. SELECT部门名,MAX(出生日期)FROM部门JOIN职工; ON部门.部门号=职工.部门号GROUP BY部门号

    C. SELECT部门名,MIN(出生Et期)FROM部门JOIN职工; WHERE部门.部门号=职工.部门号GROUP BY部门号

    D. SELECT部门名,MAX(出生Et期)FROM部门JOIN职工; WHERE部门.部门号=职工.部门号GROUP BY部门号


    正确答案:A
    在SQL查询语句中,利用JOIN连接两个数据表,它的连接条件在ON短语中指出,而不是在WHERE中指出,连接类型在FROM短语中指出。本题中可利用MIN函数来求职工的最小出生日期,因为所得年份值越小,年龄就越大。

  • 第21题:

    以下5题使用下列数据表。

    部门(部门号C (2)、部门名称C (10))

    职工(部门号C (2)、职工号C(4)、姓名C(8)、基本工资N(7,2))

    检索有职工的基本工资大于或等于“11”部门中任意一名职工工资的“部门号”,正确的命令是( )。

    A.SELECT DISTINCT 部门号 FROM 职工 WHERE 基本工资>=ANY; (SELECT 基本工资 FROM 职工 WHERE 部门号="11")

    B.SELECT DISTINCT 部门号 FROM 职工 WHERE 基本工资>=ALL; (SELECT 基本工资 FROM 职工 WHERE 部门号="11")

    C.SELECT DISTINCT 部门号 FROM 职工 WHERE 基本工资>=ANY; (SELECT MAX(基本工资) FROM 职工 WHERE 部门号="11")

    D.SELECT DISTINCT 部门号 FROM 职工 WHERE 基本工资>=ALL; (SELECT MIN(基本工资) FROM 职工 WHERE 部门号="11")


    正确答案:B
    解析:在SQL语句中可以利用ANY、ALL等量词进行查询。基本格式为:表达式>比较运算符>[ANY|ALL|SOME](子查询)其中,ANY(任意的)和SOME(一些)表示只要子查询中存在符合条件的行,结果就成立;而ALL(所有的)只有子查询中的所有的行都符合条件,结果才成立。本题中要求检索有职工的基本工资大于或等于“11”部门中任意一名职工的工资的部门号,等价于其他部门职工的基本工资有大于或等于“11”部门中所有职工的工资,因此要使用ALL短语。选项C)和D)的属于语法错误,SQL不支持此类型查询。

  • 第22题:

    设有“职工”表,表结构如下:

    职工(部门号C(2)、职工号C(4)、姓名C(8)、年龄N(2)、工资N(7,2))

    检索最少有3名职工的每个部门的职工工资的总额( )。

    A)SELECT部门号,COUNT(﹡),SUM(工资)FROM职工;

    HAVING COUNT(﹡)﹥=3

    B)SELECT部门号,COUNT(﹡),SUM(1资)FROM职工;

    GROUP BY基本工资HAVING COUNT(﹡)>=3

    C)SELECT部门号,COUNT(﹡),SUM(1资)FROM职工;

    GROUP BY部门号HAVING COUNT(﹡)>=3

    D)SELECT部门号,COUNT(﹡),SUM(T资)FROM职工;

    GROUP BY部门号WHERE COUNT(﹡)>=3


    正确答案:C
    根据题意,本题应按照“部门号”分组, COUNT(*)>=3为限定分组的条件。在SQL语句中,分组使用GROUP BY子句,HAVING子句用来限定分组的条件。SUM函数用来求和, COUNT0函数用来计数。

  • 第23题:

    某企业职工和部门的关系模式如下所示,其中部门负责人也是一个职工。职工和部门的关系模式的外键分别是(请作答此空)。职工(职工号,姓名,年龄,月工资,部门号,电话,办公室)部门(部门号,部门名,负责人代码,任职时间)查询每个部门中月工资最高的“职工号”的SQL查询语句如下:Select职工号 from职工as Ewhere月工资=(Select Max(月工资)from职工as M( ))。

    A.职工号和部门号
    B.部门号和负责人代码
    C.职工号和负责人代码
    D.部门号和职工号

    答案:B
    解析:
    本题考查的是关系数据库中关系模式和SQL查询方面的基础知识。试题(5)的正确答案是B。因为,作为主键其值能唯一地标识元组的一个或多个属性,主键通常也称为主码。所谓外键是指如果关系模式R中的属性或属性组非该关系的码,但它是其他关系的码,那么该属性集对关系模式R而言是外键,通常也称外码。根据题意分析,职工关系中的主键是职工号,部门关系中的主键是部门号。显然,职工关系中的外键是部门号。但是,部门关系中的外键是负责人代码,为什么?因为题中说明部门负责人也是一个职工,这样负责人代码的取值域为职工号,所以根据外键定义部门关系中的外键是负责人代码。试题(6)的正确答案是D。正确的查询每个部门中月工资最高的“职工号”的SQL查询语句如下:Select职工号 ?from职工as Ewhere月工资=(Select Max(月工资)from职工as M where M.部门号=E.部门号);此题子查询“Select Max(月工资)from职工as M where M.部门号=E.部门号”意为找出M.部门号最高月工资,主查询“Select职工号from职工as E where月工资;”意为该职工的月工资等于最高工资。