Oracle 面试题库SQL.docx
《Oracle 面试题库SQL.docx》由会员分享,可在线阅读,更多相关《Oracle 面试题库SQL.docx(36页珍藏版)》请在冰豆网上搜索。
Oracle面试题库SQL
题目内容:
1.ORACLE用来判断列值是否为空的操作符是____
A==NULL
BISNULL
CASNULL
DNULLIS
2分析以下的SQL命令
SELECTi.id_number,m.id_number
FROMinventoryi,manufacturerm
WHEREi.manufacturer_id=m.id_number
ORDERBYinventory.description;
如何修改上述命令使其成功执行()
AORDERBYdescription
BORDERBYi.description
CWHEREinventory.manufacturer_id=m.id_number
ORDERBYinventory.description
DORDERBYinventory.description;
3.在客户定单表(CUSTOMER)中有一列为单价(PRICE),写一个SELECT命令显示所有单价在500以上的查询语句。
ASELECT*FROMCUSTOMERWHEREPRICE>500;
BSELECT*FROMCUSTOMERWHEREPRICEBETWEEN500AND*;
CSELECT*FROMCUSTOMERWHEREPRICE LIKE‘%500%’;
DSELECT*FROMCUSTOMERWHEREPRICE>=500;
4.分析以下SQL命令:
SELECTprice
FROMinventory
WHEREpriceBETWEEN1AND50
AND(priceIN(55,30,95);
命令执行后的输出结果是:
( )
A55
B30
C95
DNULL
5.分析以下的SQL命令:
SELECTmanufacturer_id
FROMinventory
WHEREmanufacturer_idLIKE‘%N\%P\%O%’ESCAPE‘\’;
命令执行的返回结果是()
A所有包含’NPO’的纪录
B所有包含’N\P\O’的纪录
C所有包含’N%P%O’的纪录
D所有包含’%N\P\O%’的纪录
6.分析以下的SQL命令:
SELECTi.id_number,m.manufacturer_name
FROMinventoryi,manufacturerm
WHEREi.manufacturer_id(+)=m.id_number;
WHERE子句中的(+)是什么含义?
A将inventory表中不满足条件的记录也查出来
B将i.manufacturer_id+m.id_number
C将manufacturer表中不满足条件的记录也查出来
D不能这样写,语法错误
7.写一SQL语句实现以下功能,把inventory表中的ORDER_DATE值‘23-MAY-00′显示成‘01-JAN-00′
A SELECTROUND(order_date,‘YEAR’)FROMinventory;
B SELECTTO_DATE(order_date,‘DD-MM-YY’)FROMinventory;
C SELECTTO_CHAR(order_date,‘DD-MM-YY’)FROMinventory;
D 都不对
8.下面的SQL命令显示的结果是什么类型:
TO_DATE(’01-JAN-1998′)–TO_DATE(’01-DEC-1996′)
A数值
B字符串
C日期
D出现错误
9.简述ROUND和TRUNC 操作的区别?
A ROUND在截掉数据时有四舍五入的判断,TRUNC直接按要求截掉没有进位。
B都是将数据按指定的长度截断
CTRUNC是四舍五入,ROUND是截断
D都会四舍五入
10.简述SUBSTR和LENGTH的主要功能。
答案:
SUBSTR:
用来在一个字符串中求子串
LENGTH:
用于求字符串的长度。
11.分析以下的SQL命令:
SELECTCONCAT(UPPER(SUBSTR(location,1,3)),dept_number)“DepartmentLocation”
FROMdepartment;
哪个function最后执行?
a.UPPER
答案:
concat
12.分析以下的SQL命令:
SELECT*
FROMproduct
WHERELOWER(description)=‘CABLE’;
命令能否执行?
是否有结果返回?
为什么?
答案:
命令可以执行,没有结果返回,因为查询条件中的LOWER把查询列值改为小写,而等号右侧为大写,所以不会有结果返回。
13.在PLAN表中有一列为SPECIES_ID,该列与SPECIES表的ID列对应,但后者包含空值,要想在显示结果中包含SPECIES表的ID列为空值的行的信息,用那种连接条件可以实现?
答案:
外连接
14.分析以下的SQL命令:
SELECTi.id_number,m.manufacturer_id
FROMinventoryi,inventorym
WHEREi.manufacturer_id=m.region_id_number;
该命令中使用的连接条件是()连接
答案:
自连接
15.外连接的符号可以放在连接条件的哪边,可以两边同时使用吗?
答案:
放在包含空值的一边,不可以两边同时使用
16.如果用等值连接来查询5张表内的信息,至少需要几个连接条件?
答案:
至少需要4个连接条件。
17.分析以下的SQL命令:
SELECTi.id_number,m.id_number
FROMinventoryi,manufacturerm
WHEREi.manufacturer_id=m.id_number
ORDERBY1;
该命令执行结果的排序是按那一列的值排序的?
答案:
按inventory 表的id_number列排序
18.如果在where子句中有两个条件要同时满足,应该用以下哪个逻辑符来连接
A.OR
B.NOT
C.AND
D.NONE
答案c
19.外连接的条件可以放在以下的那一个子句中
A.FROM
B.WEHRE
C.SELECT
D.HAVING
E.GROUPBY
F.ORDERBY
答案B
20.在从两个表中查询数据时,连接条件要放在哪个子句中
A.FROM
B.WHERE
C.SELECT
D.HAVING
E.GROUPBY
答案B
21用以下哪个子句来限制分组统计结果信息的显示
A.FROM
B.WEHRE
C.SELECT
D.HAVING
E.GROUPBY
F.ORDERBY
答案D
22.数据库中的TEACHER表的结果如下:
IDNUMBER(7)PK
SALARYNUMBER(7,2)
SUBJECT_IDNUMBER(7)
至少有两行以上的SUBJECT_ID值是不同的
分析以下的SQL命令:
1.SELECTROUND(SUM(salary),-4)
FROMteacher;
2.SELECTsubject_id,ROUND(SUM(salary),-2)
FROMteacher
GROUPBYsubject_id;
两个命令的显示结果相同吗?
哪个命令显示的结果会多些?
答案:
不同,命令2会返回更多的结果
23.如果想对分组统计的结果信息进行筛选,用where条件子句能实现吗?
如果不行该用什么子句实现?
答案:
用where子句不能实现,应该用having子句
24.以下需求中哪个需要用分组函数来实现?
A.把ORDER表中的定单时间显示成‘DDMONYYYY’格式
B.把字符串‘JANUARY28,2000′转换成日期格式
C.显示PRODUCT表中的COST列值总量
D.把PRODUCT表中的DESCRIPTION列用小写形式显示
答案C
25.用以下的SQL语句查询数据库:
SELECTid_number“PartNumber”,SUM(price*quantity)TOTAL,description
FROMinventory
WHEREprice>5.00
ORDERBY“PartNumber”,3;
哪一句会产生错误?
A.FROMINVENTORY
B.WHEREPRICE>5.00
C.ORDERBY“PARTNUMBER”,3;
D.SELECTid_number“PartNumber”,SUM(price*quantity)TOTAL,description
答案D
26. EMPLOYEE表包含以下的列:
EMP_IDNUMBER(9)
NAMEVARCHAR2(25)
BONUSNUMBER(5,2)
DEPT_IDNUMBER(9)
如果想计算所有具有bonus的职员的bonus平均值,不考虑该列包含空值的那些雇员,用什么功能函数可以实现?
答案:
使用AVG函数可以实现。
27.写出包含SELECT,FROM,HAVING,WHERE,GROUPBY,ORDERBY子句的书写顺序
答案:
SELECTFROMWHEREGROUPHAVINGORDERBY
28.分析以下的SQL命令
SELECTid_number“PartNumber”,SUM(price)“Price”
FROMinventory
WHEREprice>5.00
GROUPBY“PartNumber”
ORDERBY2;
哪一个子句会产生错误?
如何修改
答案:
第四句GROUPBY“PartNumber”会产生错误,应改为GROUPBYid_number
29.在单行子查询中,子查询的返回结果为多少,返回2行可以吗?
答案:
只能返回一行,否则会出错。
30.以下操作符中哪个可以用做单行简单查询的操作符
A.=
B.IN
C.LIKE
D.BETWEEN
答案A
31.分析以下的SQL命令:
SELECTid_number
FROMinventory
WHEREmanufacturer_idIN
(SELECTmanufacturer_id
FROMinventory
WHEREprice<1.00
ORprice>6.00);
该子查询的能否执行,是否有语法错误?
答案:
没有语法错误,可以执行为
32.分析以下SQL命令:
SELECTemployee_id,name
FROMemployee
WHEREemployee_idNOTIN(SELECTemployee_id
FROMemployee
WHEREdepartment_id=30
ANDjob=‘CLERK’);
如果子查询返回空值,结果会是什么样?
答案没有结果返回。
33.如果用户用UPDATE命令修改了表中的数据值,是否可以恢复回来?
答案:
如果事务没有提交可以用ROLLBACK恢复回来。
34.用户对某表中的数据做修改操作,还没有提交,此时机器断电,修改结果是否能保存在数据库中?
答案:
不能,因为非正常结束的事务会被ORACLE回滚掉
35.以下那些命令可以暗含提交操作?
A.GRANT
B.UPDATE
C.SELECT
D.ROLLBACK
答案A
36.那种类型的约束可以自动创建索引?
答案:
UNIQUE,PRIMARTKEY
37哪中类型的约束只能定义在列级
A.CHECK
B.UNIQUE
C.NOTNULL
D.PRIMARTKEY
E.FOREIGNKEY
答案C
38.可以在以下哪个对象上创建视图?
(选择两个)
A.VIEW
B.QUERY
C.TABLE
D.COMMAND
E.TRANSAction
答案A,C
39.分析以下SQL命令:
CREATEFORCEVIEWparts_vu(company,contact)
ASSELECTmanufacturer_name,contact_name
FROMinventory
WITHREADONLY;
在PARTS_VU视图上可以执行UPDATE操作吗?
为什么?
可以进行什么操作?
答案:
不能执行UPDATE操作,因为该视图是只读的,只能进行select(检索)操作
40.表PERSONNEL的结构如下:
IDNUMBER(9)
LAST_NAMEVARCHAR2(25)
FIRST_NAMEVARCHAR2(25)
MANAGER_IDNUMBER(9)
这里,部门的管理者也看作是雇员..
分析以下两个命令:
SELECTp.last_name,p.first_name,m.last_name,m.first_name
FROMpersonnelp,personnelm
WHEREm.id=p.manager_id;
SELECTp.last_name,p.first_name,m.last_name,m.first_name
FROMpersonnelp,personnelm
WHEREm.manager_id=p.id;
两个的执行结果一样吗?
答案一样,但格式不同
41.如果一个表中的数据包含许多空值,是否适合建索引?
答案适合
42.分析以下命令
CREATEPUBLICSYNONYMparts
FORmarilyn.inventory;
它的作用是什么?
为用户marilyn的inventory对象(不一定是表)建一个同义词或叫别名
43.分析以下的SQL命令
CREATESEQUENCEline_item_id
STARTWITH10001
MAXVALUE999999999
NOCYCLE;
请问这个序列NOCYCLE关键字的含义是什么?
答案:
当序列的值增长到最大值的时候,会从1001开始从新使用
44.DEPARTMENT表的结构如下:
DEPT_IDNUMBER(9)
DEPT_NAMEVARCHAR2(20)
REGION_IDNUMBER(9)
REGION_ID列有一个外键约束,参照REGION表,用下面的SQL语句修改DEPARTMENTtable表
UPDATEdepartment
SETdept_id=6546,
region_id=9705
WHEREdept_id=8940;
产生以下的错误信息:
ORA-02291:
integrityconstraint(SYS_C23)violated–parentkeynotfound
错误可能会在那一行?
答案:
可能在region_id=9705这一行。
45.表TEACHER的结构如下:
NameNull?
Type
—————————————————————-—————————-
TEACHER_IDNOTNULLNUMBER(9)
NAMEVARCHAR2(25)
SALARYNUMBER(7,2)
SUBJECT_IDNOTNULLNUMBER(3)
SUBJECT_DESCRIPTIONVARCHAR2
(2)
编写一个SQL命令,实现以下要求,给所有的scienceteachers增加8%的工资TheSUBJECT_IDforscienceteachers的SUBJECT_ID值是011.
答案:
UPDATEteacher
SETsalary=salary*1.08
WHEREsubject_id=011;
46.ORACLE数据库有哪几种约束类型
答案:
五种。
是PRIMARYKEY,FOREIGNKEY,UNIQUE,CHECK,NOTNULL。
47.在建表时如果希望某列的值,在一定的范围内,应建什么样的约束?
答案:
CHECK约束。
48.RDBMS是下列哪一项的缩写:
___
ARelationalDataBaseManagementSystem(关系数据库管理系统)
BRelationalDataBaseMigrationSystem(关系数据库移植系统)
CRelationalDataMigrationSystem(关系数据移植系统)
DRelationalDataBaseManageSystem(关系数据库管理系统)
49.INSERT是
ADML语句
BDDL语句
CDCL语句
DDTL语句
50.COUNT(*)函数返回____
A包括空值和重复值得所有记录
B不包含空值的纪录
C带有重复值但无空值得记录
D都不是
51.____什么操作符将两个查询的结果合并为单个结果
A算术
B比较
C集合
D以上都不是
52..____什么操作符之返回两个查询的共有行
A INTERSECT
B UNION
C MINUS
D 没有
53.日期函数是
A分组函数
B单行函数
C聚合函数
D都不是
54.SELECTCHR(66)FROMDUAL的结果是_____
A Z
B S
C B
D 都不是
55.____函数返回一个值除以另一个值后的余数
A MOD
B ABS
C CEIL
D 以上都不是
56.____函数返回列表中第一个非空的表达式
A NVL
B NVL2
C COALESCE
D 以上都不是
57.____子句处理分组的结果
A WHERE
B HAVING
C SELECT
D 以上都不是
58.什么锁用于锁定表,仅允许其他用户查询表中的行,行不允许插入,更新,或删除行
A 共享
B 排他
C 共享更新
D 以上都不是
59.使用带有____子句的SELECT命令可以在表的一行或多行上放置排他锁
A FORINSERTOF
B FORUPDATEOF
C FORREFRESH
D EXCLUSIVE
60.对象关系模型支持:
A面向对象的概念和关系的概念
B仅支持关系的概念
C仅面向对象对象的概念
D以上都不是
61.TRUNCATETABLE是用于____:
A删除表结构
B仅删除记录
C删除结构和记录
D都不是
62.同义词用于下列情况
1 隐藏对象的名称和所有者
2 提供对对象的公共访问
A 两者都对
B 1错 2对
C 两者都错
D 1对 2错
63._____是oracle提供的一个对象,可以生成唯一的连续的整数
A 同义词
B 序列
C 视图
D 没有
64.可以使用____和____伪列来访问序列
A nextval和currentval
B nextval和previousval
C cache和nocache
D 以上都不对
65.下列有关视图的描述那一个是正确的
A 视图时已存储的查询
B 视图隐藏了数据的复杂性
C 视图就是表
D 视图不提供安全性
66._____是与表关联的可选结构
A 视图
B 索引
C 同义词
D 以上都不是
67.在下列哪种情况下,索引最有用
A 索引列被声明为notnull
B 在where子句中使用了索引列
C 索引列包含许多不同的值
D 定义尽可能多的索引
68.检查下列创建的orders表的SQL语句
CREATETABLEORDERS(
SER_NONUMBERUNIQUE,
ORDER_IDNUMBER,
ORDER_DATEDATENOTNULL,
STATUSVARCHAR2(10)CHECK(STATUSIN(‘CREDIT’,’CASH’)),
PROD_IDNUMBERREFERENCESPRODUCTS(PRODUCT_ID),
ORD_TOTALNUMBER,
PRIMARYKEY(ORDER_ID,ORDER_DATE)
当执行上述语句时,将自动为那些列创建索引
A SER_ID
B ORDER_ID
C STATUS
D PRID_ID
69当在表加入一条数据时,如果其中一个字段未指定任何数据,此时该字段会存放什么值
A0
BNULL
C”(空字符)
D不确定
1.ORACLE用来判断列值是否为空的操作符是____
A==NULL
BISNULL
CASNULL
DNULLIS
2分析以下的SQL命令
SELECTi.id_number,m.id_number
FROMinventoryi,manufacturerm
WHEREi.manufacturer_id=m.id_number
ORDERBYinventory.description;
如何修改上述命令使其成功执行()
AORDERBYdescription
BORDERBYi.description
CWHEREinventory.manufacturer_id=m.id_number
ORDERBYinventory.description
DORDERBYinventory.description;
3.在客户定单表(CUSTOMER)中有一列为单价(PRICE),写一个SELECT命令显示所有单价在500以上的查询语句。
ASELECT*FROMCUSTOMERWHEREPRICE>500;
BSELECT*FROMCUSTOMERWHEREPRICEBETWEEN500AND*;
CSELECT*FROMCUSTOMERWHEREPRICE LIKE‘%500%’;
DSELECT*FROMCUSTOMERWHEREPRICE>=500;
4.分析以下SQL命令:
SELECTprice
FROMinventory
WHEREpriceBETWEEN1AND50
AND(priceIN(55,30,95);
命令执行后的输出结果是:
( )
A55
B30
C95
DNULL
5.分析以下的SQL命令:
SELECTmanufacturer_id
FROM