前言: 在阅读《从零开始学 Oracle 》的时候,发现课后习题可以帮助自己回忆这一章节的内容。但是,没能找到题目的答案,于是自己总结了一份,这里是第9章、第10章。
第九章 操纵数据
一、填空题
- DML 的中文全称是 数据操纵语言,英文全称是 Data Manipulation Language .
- 在使用INSERT语句时,如果要插入默认值,可以使用 DEFAULT 关键字,如果要插入空值,可以使用 NULL 关键字。
- 在Oracle 10g 以后的版本中,使用可以使用RETURNING 子句来返回所有的更新结果值。
- MERGE语句用来实现对数据的合并,它实际上是一种整合了UPDATE和INSERT的特殊语句。
二、选择题
-
下面的对DML语句的描述中错误的是:
A. 所有的DML语句通常只能操作一个表,INSERT和MERGE可以操作多个表
B. 如果表中的字段有NOT NULL约束,在INSERT操作时需要为列指定列值
C. 在执行了DML语句后,必须显示地使用COMMIT和ROLLBACK语句进行回滚
D. Oracle会在每一条DML语句后显示地进行事务的提交【D】Oracle的事务只有使用COMMIT语句显示地提交,才会将用户所做的更改保存到数据库
-
如果要清空一个表中的数据,并且不进行任何日志记录,需要使用如下哪个语句?
A. MERGE
B. UPDATE
C. DELETE
D. TRUNCATE【D】TRUNCATE语句一次性删除所有的表数据,没有WHERE条件,不会产生回退日志。
三、问答题
-
在使用DELETE语句删除记录时,必须要注意的事项有哪些?
DELETE语句只会删除整条记录,而不能对记录的某个字段进行删除
删除一个表可能导致与其他表的引用完整性出现问题,因此必须要注意删除的顺序
DELETE语句只是删除表中的数据,并不会对整个表进行移除工作,移除表使用DROP TABLE语句
DELETE语句在删除数据时会产生回退日志信息,因此可以使用事务进行回滚恢复。 -
简述DELETE与TRUNCATE的区别。
TRUNCATE语句一次性删除所有的表数据,它没有WHERE条件,也不会产生回退日志,因此删除速度要比DELETE语句快,但是TRUNCATE删除的数据不能恢复,因此使用该语句时应该慎重。
第十章 Oracle内置函数
一、填空题
- 在Oracle中,函数按照其功能可以分为两大类,分别是单行函数和多行函数。
- 要将英文字母字符转换为小写,可以使用LOWER函数。
- 要返回字符串的子串,可以使用SUBSTR函数。
- 在Oracle中要向另一个日期添加月份,可以使用ADD_MONTHS函数。
二、选择题
-
下面哪个函数不属于转换函数?
A. TO_CHAR
B. TO_DATE
C. TRUNC
D. CONVERT【C】TRUNC属于数字型函数,一般用户截取特定的小数位
-
下面哪个函数的作用类似于CASE语句?
A. UNLLIF
B. COALESCE
C. DECODE
D. NVL【C】DECODE根据特定的条件,实现IF-THEN-ELSE条件判断的返回值,类似于CASE语句
三、问答题
-
简述NAL和NAL2的区别。
NVL和NVL2函数都用来检测一个表达式是否为NULL,如果一个表达式为NULL,可以返回一个非NULL的替代值。NVL函数和NVL2函数功能类似,但是NVL2比NVL的功能更加灵活。
-
简述COALESCE函数的作用。
COALESCE是相对于NVL和NVL2来说最灵活的一个函数,这个函数接受一个参数值列表,COALESCE将返回列表中的第一个非NULL的值。