读书人

急求SQL有关问题与JAVA程序有关问题。

发布时间: 2012-03-08 13:30:13 作者: rapoo

急求SQL问题与JAVA程序问题。。。。
因为无图,请高手去这里看

http://blog.csdn.net/zhangsaim/archive/2007/06/20/1660106.aspx
[说明]

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

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

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

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

如表2-2 和表2-3 所示。


[问题1]

根据上述说明,由SQL 定义的“职工”和“部门”的关系模式,以及统计各部

门的人数C、工资总数Totals、平均工资Averages 的D_S 视图如下所示,请在空缺处填入正

确的内容。

Create Table 部门(部门号 CHAR(1) (a) ,

部门名 CHAR(16),

负责人代码 CHAR(4),

任职时间 DATE,

(b) (职工号));

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

姓名 CHAR(8),

年龄 NUMBER(3),

月工资 NUMBER(4),

部门号 CHAR(1),

电话 CHAR(8),

办公室 CHAR(8),

(a) (职工号),

(c) (部门号),

CHECKL( (d) ));

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

(Select 部门号, (e)

from 职工

(f)



解答:

(a)

(b)

(c)

(d)

(e)

(f)



[问题2]

对于表2-2、表2-3 所示的“职工”和“部门”关系,请指出下列各行是否可

以插入,为什么?(3 分)




[问题3]

在问题l 定义的视图D-S 上,下面那个查询或更新是允许执行的,为什么? (3 分)

(1)Update D_S set=3 where D=4;

(2)Delete from D_S where C> 4;

(3)Select D,Averages fromD_S

where C> (Select C from D_S where D=:dept);

(4)SelectD,C FromD_S

where Totals> 10000;

(5)Select*fromD_S;



[问题4]

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

Select 职工号 from 职工E

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

from职工as M

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

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

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



[问题5]

假定分别在“职工”关系中的“年龄”和“月工资”字段上创建了索引,如下的Select 查询语句可能不会促使查询优化器使用索引,从而降低查询效率,请写出既可以完成相同功能又可以提高查询效率的SQL 语句。(2 分)

Select 姓名,年龄,月工资from 职工

where 年龄> 45 or 月工资 <1000;



SQL语句分析题:


请分析上图中SQL语句应该如何优化。



一、编程题(20分)

Java 的通信编程,用JAVA SOCKET编程,每次从服务器读N个字符,再写入本地显示,其中N是服务器从服务器中读到的字符的第一个数字字符,如果读到的字符不是数字,则结束?


[解决办法]
某工厂的信息管理数据库的部分关系模式如下所示:

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

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

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

如表2-2 和表2-3 所示。


[问题1]

根据上述说明,由SQL 定义的“职工”和“部门”的关系模式,以及统计各部

门的人数C、工资总数Totals、平均工资Averages 的D_S 视图如下所示,请在空缺处填入正

确的内容。

Create Table 部门(部门号 CHAR(1) (a) ,

部门名 CHAR(16),

负责人代码 CHAR(4),

任职时间 DATE,

(b) (职工号));

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

姓名 CHAR(8),

年龄 NUMBER(3),

月工资 NUMBER(4),

部门号 CHAR(1),

电话 CHAR(8),

办公室 CHAR(8),

(a) (职工号),

(c) (部门号),



CHECKL( (d) ));

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

(Select 部门号, (e)

from 职工

(f)



解答:

(a) PRIMARY KEY(主键)或者NOT NULL——UNQUIEN

(b) FOREIGN KEY(外键)

(c) FOREIGN KEY(外键)

(d)

(e)部门号 ,count(*)sum(月工资),average(月工资)

(f) z,部门 b where z. 部门号=b. 部门号



[问题2]

对于表2-2、表2-3 所示的“职工”和“部门”关系,请指出下列各行是否可

以插入,为什么?(3 分)
没看到行。。



[问题3]

在问题l 定义的视图D-S 上,下面那个查询或更新是允许执行的,为什么? (3 分)

(1)Update D_S set=3 where D=4;

(2)Delete from D_S where C> 4;

(3)Select D,Averages fromD_S

where C> (Select C from D_S where D=:dept);

(4)SelectD,C FromD_S

where Totals> 10000;

(5)Select*fromD_S;

MS是4,5

[问题4]

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

Select 职工号 from 职工E

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

from职工as M

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

(1)请用30 字以内文字简要说明该查询语句对查询效率的影响。(3 分)
查询效率低下,根据笛卡尔乘积可知执行效率将是N的乘方 

(2)对该查询语句进行修改,使它既可以完成相同功能,又可以提高查询效率。(3 分)
Select E.Max(月工资) 职工号 from 职工E 部门D where D. 部门号= E.部门号



[问题5]

假定分别在“职工”关系中的“年龄”和“月工资”字段上创建了索引,如下的Select 查询语句可能不会促使查询优化器使用索引,从而降低查询效率,请写出既可以完成相同功能又可以提高查询效率的SQL 语句。(2 分)

Select 姓名,年龄,月工资from 职工

where 年龄> 45 or 月工资 <1000;



SQL语句分析题:


请分析上图中SQL语句应该如何优化。
Select 姓名,年龄,月工资from 职工

where 年龄> 45 UNION Select 姓名,年龄,月工资from 职工

where月工资 <1000

读书人网 >J2SE开发

热点推荐