oracle(6)

一、 单选题

1.观察下表(EMP)
在这里插入图片描述
本月老板要在所有员工原有奖金的基础上多发500元的奖金,查询出所有员工姓名以及他的奖金,下列SQL语句能够满足该需求的是()
A:

SELECT ENAME,COMM+500 FROM EMP;

B:

SELECT ENAME,NVL(COMM,0)+500 FROM EMP;

C:

SELECT ENAME,NVL(COMM+500,0) FROM EMP;

D:

SELECT ENAME,NVL2(COMM,0)+500 FROM EMP;

参考答案:B
解析:
有null参与的数学运算,其结果都是null。为了达到给每位员工都加500元奖金的目的,必须对null值做处理,将其用0替换,再加500,也即NVL(comm,0)+500。

NVL2(exp,value1,value2): NVL2函数的参数必须是三个,其作用是如果exp的值为null,则表达式的值为value2,否则为value1。请务必记牢!

2.您需要创建一个视图EMP_VU。 该视图应允许用户仅操作部门10或20工作的员工的记录。您将使用哪个SQL语句创建视图EMP_VU?
A:

CREATE VIEW emp_vu AS
SELECT *
FROM employees
WHERE department_id IN (10,20);

B:

CREATE VIEW emp_vu AS
SELECT *
FROM employees
WHERE department_id IN (10,20)
WITH READ ONLY;

C:

CREATE VIEW emp_vu AS
SELECT *
FROM employees
WHERE department_id IN (10,20)
WITH CHECK OPTION;

D:

CREATE FORCE VIEW emp_vu AS
SELECT *
FROM employees
WHERE department_id IN (10,20);

E:

CREATE FORCE VIEW emp_vu AS
SELECT *
FROM employees
WHERE department_id IN (10,20)
NO UPDATE;

参考答案:C
解析:
创建视图语句里含有 with check option 子句时,当你操作视图时就会受到创建视图的where子句的限制。

3.观察customers表的表结构
在这里插入图片描述
CUSTOMER_ID列是表的主键。您需要确定您的客户群如何分散。 哪个表达式能够找出CUSTOMERS表中不同国家/地区的数量?
A:COUNT(UPPER(country_address))
B:COUNT(DIFF(UPPER(country_address)))
C:COUNT(UNIQUE(UPPER(country_address)))
D:COUNT DISTINCT UPPER(country_address)
E:COUNT(DISTINCT (UPPER(country_address)))

参考答案:E
解析:
查找国家/地区的数量,首先应该排除国家/地区大小写的影响,然后剔除重复,最后计数即可。

4.SQL语言具有( )的功能
A:关系规范化、数据操纵、数据控制
B:数据定义、数据操纵、数据控制
C:数据定义、关系规范化、数据控制
D:数据定义、关系规范化、数据操纵

参考答案:B

5.观察下列三张表(分别为学生表STUDENT,课程表SUBJECT,成绩表SCORE)的表结构
在这里插入图片描述
下列SQL语句能正确运行的是()
A:

SELECT stuId,stuName,subName,SCORE 
FROM STUDENT stu,SUBJECT sub,SCORE1 sc 
WHERE SC.stuId=STU.stuId AND SC.subId=SUB.subId;

B:

SELECT STU.stuId,stuName,subId,subName,SCORE 
FROM STUDENT stu,SUBJECT sub,SCORE1 sc 
WHERE SC.stuId=STU.stuId AND SC.subId=SUB.subId;

C:

SELECT stuId,stuName,subName,subId,SCORE 
FROM STUDENT stu,SUBJECT sub,SCORE1 sc 
WHERE SC.stuId=STU.stuId AND SC.subId=SUB.subId;

D:

SELECT STU.stuId,stuName,subName,SCORE 
FROM STUDENT stu,SUBJECT sub,SCORE1 sc 
WHERE SC.stuId=STU.stuId AND SC.subId=SUB.subId;

参考答案:D
解析:
当我们要连接的表含有相同的列名是,在select子句中一定要给该列指定一个表名,以防出现列名相同带来的歧义

6.您需要设计一个学生注册数据库,其中包含存储学员信息的多个表。STUDENTS表存储有关学生的信息。 STUDENT_GRADES表存储有关学生成绩的信息。 这两个表都有一个名为STUDENT_ID的列。 STUDENTS表中的STUDENT_ID列是主键。
您需要在STUDENT_GRADES表的STUDENT_ID列上创建指向STUDENTS表的STUDENT_ID列的外键。
下列哪个语句完成了建表和上述要求?

A:

CREATE TABLE student_grades
(student_id NUMBER(12),
semester_end DATE,
gpa NUMBER(4,3),
CONSTRAINT student_id_fk REFERENCES (student_id)
FOREIGN KEY students(student_id));

B:

CREATE TABLE student_grades
(student_id NUMBER(12),
semester_end DATE,
gpa NUMBER(4,3),
student_id_fk FOREIGN KEY (student_id)
REFERENCES students(student_id));

C:

CREATE TABLE student_grades
(student_id NUMBER(12),
semester_end DATE,
gpa NUMBER(4,3),
CONSTRAINT FOREIGN KEY (student_id)
REFERENCES students(student_id));

D:

CREATE TABLE student_grades
(student_id NUMBER(12),
semester_end DATE,
gpa NUMBER(4,3),
CONSTRAINT student_id_fk 
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值