Oracle 阶段测试题
一选择题(2*10=20)
1.下列不属于ORACLE的逻辑结构的是(C )
A区
B段
C 数据文件
D表空间
2. 下面哪个用户不是ORACLE缺省安装后就存在的用户(A)
A . SYSDBA
B. SYSTEM
C. SCOTT
D. SYS
3 .下面哪个操作会导致用户连接到ORACLE数据库,但不能创建表(A)
A授予了CONNECT的角,但没有授予RESOURCE的角
B没有授予用户系统管理员的角
C数据库实例没有启动
D数据库监听没有启动
4. 在Oracle中,下面关于函数描述正确的是(AD)。
A SYSDATE函数返回Oracle服务器的日期和时间
B ROUND数字函数按四舍五入原则返回指定十进制数最靠近的整数
C ADD_MONTHS日期函数返回指定两个月份天数的和
D SUBSTR函数从字符串指定的位置返回指定长度的子串
5. 在Oracle中,表EMP包含以下列:
……
NAME VARCHAR2(20)
ADDR VARCHAR2(60)
……
要以NAME’s address is ADDR格式返回数据,以下SQL语句正确的是(B)。
+ 的两边做T o_number()
A SELECT NAME + ’’’s address is ‘ + ADDR FROM EMP;
B SELECT NAME || ’’’s address is ‘ || ADDR FROM EMP;
C SELECT NAME + ’\’s address is ‘ + ADDR FROM EMP;
D SELECT NAM
E || ’\’s address is ‘ || ADDR FROM EMP;
6:
在Oracle中,执行下面的语句:
SELECT ceil(-97.342),
floor(-97.342), -123.01 -124
round(-97.342),
trunc(-97.342)
FROM dual;
哪个函数的返回值不等于-97(B)。
A ceil()
B floor()
C round()
D trunc()
7:在Oracle中,事务中使用下列SQL语句不会引起锁定(A)。(选择一项)
A SELECT
B INSERT
C UPDATE
D DELETE
8:
ORACLE中,执行语句:SELECT address1||’,'||address2||’,'||address2 ”Address”FROM employ;将会返回(B)列。
A 0
B    1
C    2
D    3
9:
Oracle数据库中,下面(C)可以作为有效的列名。
A Column
B 123_NUM
C NUM_#123
D #NUM123
10:
Oracle数据库中,以下(C)命令可以删除整个表中的数据,并且无法回滚。
A drop
B delete
C truncate
D cascade
二简答题(4*10=40)
1. 写出几个对字符串操作的函数?
答:ASCII() –函数返回字符表达式最左端字符的ASCII 码值
CHR() –函数用于将ASCII 码转换为字符
–如果没有输入0 ~ 255 之间的ASCII 码值CHR 函数会返回一个NULL 值
–应该是必须给chr()赋数字值
concat(str,str)连接两个字符串
LOWER() –函数把字符串全部转换为小写
UPPER() –函数把字符串全部转换为大写
LTRIM() –函数把字符串头部的空格去掉
RTRIM() –函数把字符串尾部的空格去掉
TRIM() –同时去掉所有两端的空格
实际上LTRIM(),RTRIM(),TRIM()是将指定的字符从字符串中裁减掉
其中LTRIM(),RTRIM()的格式为xxxx(被截字符串,要截掉的字符串),但是TRIM()
的格式为TRIM(要截掉的一个字符from 被截的字符串)
SUBSTR() –函数返回部分字符串
INSTR(String,substring) –函数返回字符串中某个指定的子串出现的开始位置,如
果不存在则返回0
REPLACE(原来的字符串,要被替换掉的字符串,要替换成的字符串)
SOUNDEX() –函数返回一个四位字符码
–SOUNDEX函数可用来查声音相似的字符串但SOUNDEX函数对数字和汉字
均只返回NULL 值
2.描述一下事务,以及事务的一致性和可恢复性。
答案:事务是这样一种机制,它确保多个SQL语句被当作单个工作单元来处理。事务具有以下的作用:
* 一致性:同时进行的查询和更新彼此不会发生冲突,其他用户不会看到发生了变
化但尚未提交的数据。
* 可恢复性:一旦系统故障,数据库会自动地完全恢复未完成的事务。
3.Truncate; drop; delete三者的区别?
这道题可以衍生出很多的问题比如:想快速的清除一个很大的表中的数据应该用设么操作?答案是:应该用truncate。还有,在对两个相同纪录数的分别表使用
了truncate,和delete commit;后对这两个表进行count(*)统计记录数操作,那个表
速度会快些?答案是:使用了truncate的会快些。)
delete一般用于删除少量记录的操作,而且它是要使用回滚段并且要进行显示的提交事务。而truncate则使用于大量删除数据,而且隐式提交事务,其速度要
比使用delete快的多。
1>、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK
命令DELETE将被撤销,而TRUNCATE则不会被撤销。
2>、TRUNCATE是一个DDL语言而DELETE是DML语句,向其他所有的DDL
语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。
3>、TRUNCATE将重新设置高水平线和所有的索引。在对整个表和索引进行完全
浏览时,经过TRUNCATE操作后的表比DELETE操作后的表要快得多。
4>、TRUNCATE不能触发触发器,DELETE会触发触发器。
5>、不能授予任何人清空他人的表的权限。
6>、当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。
7>、不能清空父表。
4.DDL和DML分别代表什么??
DDL表示数据定义语言,在ORACLE中主要包括CREATE,ALTER,DROP
DML表示数据操作语言,主要的DML有SELECT,INSERT,UPDATE,DELETE
oracle四舍五入Oracle中使用DROP USER来删除用户,如果使用DROP USER CASCADE那么用户的对象也同时被删除掉。为了达到删除用户的效果而又不影响对用户下的对象的使用可以使用alter user username account lock将用户锁定。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。