考试2016年秋程序员软考( )

某教学管理数据库中,学生、课程关系模式分别为:S(学号,姓名,性别,家庭住址,电话),关系S 的主键为学号;C(课程号,课程名,学分),关系 C 的主键为课程号。假设一个学生可以选择多门课程,一门课程可以由多个学生选择;一旦学生选择某门课程必定有该课程的成绩。由于学生与课程之间的“选课”联系类型为__(1)__,所以对该联系___(2)__.

查询“软件工程”课程的平均成绩、最高成绩与最低成绩之间差值的 SOL 语句如下:

SELECT AVG(成绩) AS 平均成绩,__(3)__FROM C,SC

WHERE C.课程名=!软件工程’AND c.课程号=sC.课程号

(1)A.n:m   B.1:n   c.n:1   D.1:1 

(2)A.不需要构建一个独立的关系模式

B.需要构建一个独立的关系模式,且关系模式为:SC(课程号,成绩)

C.需要构建一个独立的关系模式,且关系模式为:SC(学生号,成绩)

D.需要构建一个独立的关系模式,且关系模式为:SC(学生号,课程号,成绩)

(3)A.差值 AS MAX(成绩)-MIN(成绩)  B.MAX(成绩)-MIN(成绩) AS 差值

C.差值 IN MAX(成绩)-MIN(成绩)  D.MAX(成绩)-MIN(成绩) IN 差值

ADB

根据题意“一个学生可以选择多门课程,一门课程可以由多个学生选择”,故学生“选课”的联系类型为n:m。

学生“选课”的联系类型为 n:m,故需要构建一个独立的关系模式,且关系模式应有学生关系模式的码“学生号”和课程关系模式的码“课程号”,以及联系的属性“成绩”构成。故“选课”关系模式为:SC(学生号,课程号,成绩)。

SQL 提供可为关系和属性重新命名的机制,这是通过使用具有“Old-name as new-name”形式的 as 子句来实现的。As子句既可出现在 select 子句,也可出现在 from 子句中。

等级考试2016年春程序员软考( )

设有一个关系emp- sales(部门号,部门名,商品编号,销售数),查询各部门至少销售了5种商品或者部门总销售数大于2000的部门号、部门名及平均销售数的SQL语句如下:

SELECT 部门号,部门名,AVG(销售数) AS 平均销售数

FROM emp-sales

GROUP BY __(1)__

HAVING __(2)__ OR __(3)__;

(1)A.部门号 B.部门名 C.商品编号 D.销售数

(2)A. COUNT(商品编号)>5 B. COUNT(商品编号)>=5

C. COUNT( DISTINCT部门号)=5 D. COUNT(DISTINCT部门号>5

(3)A.SUM(销售数)>2000    B.SUM(销售数)>=2000

C.SUM(销售数)>2000        D.SUM(销售数)≥=2000

(1)A  (2)B  (3)A

GROUP BY子句可以将查询结果表的各行按一列或多列取值相等的原则进行分组,对查询结果分组的目的是为了细化集函数的作用对象。如果分组后还要按一定的条件对这些组进行筛选,最终只输出满足指定条件的组,可以使用 HAVING短语指定筛选条件。

由题意可知,在这里只能根据部门号进行分组,并且要满足条件:此部门号的部门至少销售了5种商品或者部门总销售数大于2000。完整的SQL语句如下:

SELECT 部门号,部门名,AVG(销售数) AS 平均销售数

FROM emp-sales

GROUP BY 部门号

HAVING COUNT(商品编号)>=5 OR SUM(销售数)>2000;

等级考试2015年秋程序员软考( )

某数据库系统中,假设有部门关系Dept(部门号,部门名,负责人,电话),其中,“部门号”是该关系的主键;员工关系Emp(员工号,姓名,部门,家庭住址),属性“家庭住址”包含省、市、街道以及门牌号,该属性是一个__(1)__属性。

创建Emp关系的SQL语句如下:

CREATE TABLE Emp(员工号CHAR(4)__(2)__

姓名CHAR(10),

部门CHAR(4),

家庭住址CHAR(30)

__(3)__);

为在员工关系Emp中增加一个“工资”字段,其数据类型为数字型并保留2位小数,可采用的SQL语句为__(4)__。

(1)A.简单 B.复合 C.多值 D.派生

(2)A. PRIMARY KEY

B. NULL

C. FOREIGN KEY

D. NOT NULL

(3) A. PRIMARY KEY NOT NULL

B. PRIMARY KEY UNIQUE

C. FOREIGN KEY REFERENCES Dept(部门名)

D. FOREIGN KEY REFERENCES Dept(部门号)

(4)A. ALTER TABLE Emp ADD 工资 CHAR(6,2);

B. UPDATA TABLE Emp ADD 工资 NUMERIC(6,2);

C. ALTER TABLE Emp ADD 工资 NUMERIC(6,2);

D. ALTER TABLE Emp MODIFY 工资 NUMERIC(6,2);

(1)B  (2)A  (3)D  (4)C

(1)正确的选项为B。因为复合属性可以细分为更小的部分(即划分为别的属性有时用户希望访问整个属性,有时希望访问属性的某个成分,那么在模式设计时可采用复台属性。根据题意“家庭住址”可以进一步分为邮编、省、市、街道以及门牌号,所以该属性是复合属性。

(2)正确的选项为A。因为根据题意“员工号”是员工关系EmD的主键,需要用语句 PRIMARY KEY进行主键约束。

(3)正确的选项为D。根据题意,属性“部门”是员工关系Emp的外键,因此需要用语句“ FOREIGN KEY REFERENCES Dep(部门号”进行参考完整性约束。

(4)的正确答案是C。根据题意,在员工关系Emp中增加一个“工资”字段,数据类型为数字并保留2位小数,修改表的语句格式如下:

ALTER TABLE<表名>[ADD<新列名><数据类型>[完整性约束条件]]

[DROP<完整性约束名>]

[ MODIFY<列名><数据类型>];

故正确的SQL语句为 ALTER TABLE Emp ADD 工资 NUMERIC(6,2)。

等级考试2015年春程序员软考( )

某医院有科室关系D(科室号,科室名,负责人,联系电话),其中:“科室号”唯一标识关系D中的每一个元组。住院部设有病人关系R(住院号,姓名,性别,科室号,家庭住址),其中,“住院号”唯一标识关系R中的每一个元组,“性别”的取值只能为M或F,要求科室号参照科室关系D中的科室号。创建R关系的SQL语句如下:

CREATE TABLE R(

住院号 CHAR(8) __(1)__,

姓名CHAR(10),

性别 CHAR(1) __(2)__,

科室号 CHAR(4) __(3)__,

家庭住址 CHAR(30));

(1)A. PRIMARY KEY B. REFERENCES D(科室号)

C. NOT NULL D. FOREIGN KEY

(2)A.IN(M,F) B. CHECK('M','F')

C. LIKEC('M','F') D. CHECK(性别 IN('M','F'))

(3) A. PRIMARY KEY NOT NULL

B. PRIMARY KEY UNIQUE

C. FOREIGN KEY REFERENCES D(科室号)

D. FOREIGN KEY REFERENCES D科室名)

(1)A  (2)D  (3)C

空(1)的正确答案是A。根据题意,属性“住院号”唯一标识关系R中的每一个元组,因此需要用语句“ PRIMARY KEY”进行主键的完整性约束。

空(2)的正确答案是D。根据题意,属性“性别”的取值只能为M或F,因此需要用语句“ CHECK 性别 N('M','F')”进行完整性约束。

空(3)的正确答案是C。根据题意。属性“科室号”是外键,因此需要用语句“ REFERENCES D(科室号)”进行参考完整性约束。

等级考试2014年春程序员软考( )

设有一个员工关系EMP(员工号,姓名,部门名,职位薪资),将员工号为“10058”姓名为“黄晓华”、部门名为“开发部”的元组插入EMP关系中的SQL语句为【 】

A、insert into EMP values(10058,黄晓华,开发部,,)

B、insert into EMP values(10058,ˋ黄晓华ˊ,ˋ开发部ˊ,,)

C、insert set to EMP values(10058,黄晓华,开发部,,)

D、insert set to EMP Valuest(10058,ˋ黄晓华ˊ,ˋ开发部ˊ,,)

insert into EMP values(10058,ˋ黄晓华ˊ,ˋ开发部ˊ,,)

插入语句的基本格式如下:

INSERT INTO 基本表名 (字段名[,字段名].)

VALUES(常量[,常量]…);

按照 SELECT语句的语法,字符串插入时,需要用单引号括起。