Oracle 面试题库—SQL

1. ORACLE用来判断列值是否为空的操作符是____
A ==NULL
B IS NULL
C AS NULL
D NULLIS
2 分析以下的 SQL命令
SELECT i.id_number, m.id_number
FROM inventory i, manufacturer m
WHERE i.manufacturer_id = m.id_number
ORDER BY inventory.description;
如何修改上述命令使其成功执行()
A ORDER BY description
B ORDER BY i.description
C WHERE inventory.manufacturer_id = m.id_number
ORDER BY inventory.description
D ORDER BY inventory.description;
3. 在客户定单表(CUSTOMER)中有一列为单价(PRICE),写一个SELECT命令显示所有单价在500以上的查询语句。
A SELECT * FROM CUSTOMER WHERE PRICE>500;
B SELECT * FROM CUSTOMER WHERE PRICE BETWEEN 500 AND *;
C SELECT * FROM CUSTOMER WHERE PRICE  LIKE ‘%500%';
D SELECT * FROM CUSTOMER WHERE PRICE>=500;
4. 分析以下SQL 命令:
SELECT price
FROM inventory
WHERE price BETWEEN 1 AND 50
AND (price IN(55, 30, 95);
命令执行后的输出结果是:( )
A 55
B 30
C 95
D NULL
5. 分析以下的SQL 命令:
SELECT manufacturer_id
FROM inventory
WHERE manufacturer_id LIKE ‘%N\%P\%O%' ESCAPE ‘\';
命令执行的返回结果是()
A 所有包含'NPO'的纪录
B 所有包含'N\P\O'的纪录
C 所有包含'N%P%O'的纪录
D 所有包含'%N\P\O%'的纪录
6. 分析以下的SQL命令:
SELECT i.id_number, m.manufacturer_name
FROM inventory i, manufacturer m
WHERE i.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  SELECT ROUND(order_date, ‘YEAR') FROM inventory;
B  SELECT TO_DATE(order_date, ‘DD-MM-YY') FROM inventory;
C  SELECT TO_CHAR(order_date, ‘DD-MM-YY') FROM inventory;
D  都不对
8.下面的SQL命令显示的结果是什么类型:
TO_DATE('01-JAN-1998′) - TO_DATE('01-DEC-1996′)
A 数值
B 字符串
C 日期
D 出现错误
9. 简述ROUND 和TRUNC 操作的区别?
A  ROUND在截掉数据时有四舍五入的判断,TRUNC直接按要求截掉没有进位。
B 都是将数据按指定的长度截断
C TRUNC是四舍五入,ROUND是截断
D 都会四舍五入
10. 简述SUBSTR和LENGTH的主要功能。
答案:SUBSTR:用来在一个字符串中求子串
LENGTH:用于求字符串的长度。
11. 分析以下的SQL命令:
SELECT CONCAT(UPPER(SUBSTR(location, 1, 3)), dept_number) “Department Location”
FROM department;
哪个function 最后执行?
a.UPPER
答案:concat
12. 分析以下的SQL命令:
SELECT *
FROM product
WHERE LOWER(description) = ‘CABLE';
命令能否执行?是否有结果返回?为什么?
答案:命令可以执行,没有结果返回,因为查询条件中的LOWER把查询列值改为小写,而等号右侧为大写,所以不会有结果返回。
13. 在PLAN表中有一列为SPECIES_ID ,该列与SPECIES 表的ID列对应,但后者包含空值,要想在显示结果中包含SPECIES 表的ID列为空值的行的信息,用那种连接条件可以实现?
答案:外连接
14. 分析以下的 SQL 命令:
SELECT i.id_number, m.manufacturer_id
FROM inventory i, inventory m
WHERE i.manufacturer_id = m.region_id_number;
该命令中使用的连接条件是()连接
答案:自连接
15 .外连接的符号可以放在连接条件的哪边,可以两边同时使用吗?
答案:放在包含空值的一边,不可以两边同时使用
16. 如果用等值连接来查询5张表内的信息,至少需要几个连接条件?
答案:至少需要4个连接条件。
17. 分析以下的 SQL 命令:
SELECT i.id_number, m.id_number
FROM inventory i, manufacturer m
WHERE i.manufacturer_id = m.id_number
ORDER BY 1;
该命令执行结果的排序是按那一列的值排序的?
答案:按inventory 表的id_number列排序
18. 如果在where子句中有两个条件要同时满足,应该用以下哪个逻辑符来连接
A.OR
B.NOT
C.AND
D.NONE
答案 c
19. 外连接的条件可以放在以下的那一个子句中
A.FROM
B.WEHRE
C.SELECT
D.HAVING
E.GROUP BY
F.ORDER BY
答案 B
20. 在从两个表中查询数据时,连接条件要放在哪个子句中
A.FROM
B.WHERE
C.SELECT
D.HAVING
E.GROUP BY
答案 B
21 用以下哪个子句来限制分组统计结果信息的显示
A.FROM
B.WEHRE
C.SELECT
D.HAVING
E.GROUP BY
F.ORDER BY
答案 D
22. 数据库中的 TEACHER 表的结果如下:
ID NUMBER(7) PK
SALARY NUMBER(7,2)
SUBJECT_ID NUMBER(7)
至少有两行以上的SUBJECT_ID值是不同的
分析以下的 SQL命令:
1. SELECT ROUND(SUM(salary),-4)
FROM teacher;
2. SELECT subject_id, ROUND(SUM(salary),-2)
FROM teacher
GROUP BY subject_id;
两个命令的显示结果相同吗?哪个命令显示的结果会多些?
答案:不同,命令2会返回更多的结果
23. 如果想对分组统计的结果信息进行筛选,用where 条件子句能实现吗?如果不行该用什么子句实现?
答案:用where子句不能实现,应该用having 子句
24. 以下需求中哪个需要用分组函数来实现?
A.把ORDER表中的定单时间显示成 ‘DD MON YYYY' 格式
B.把字符串 ‘JANUARY 28, 2000′ 转换成日期格式
C.显示PRODUCT 表中的COST 列值总量
D.把PRODUCT表中的DESCRIPTION列用小写形式显示
答案 C
25. 用以下的SQL语句查询数据库:
SELECT id_number “Part Number”, SUM(price * quantity) TOTAL, description
FROM inventory
WHERE price > 5.00
ORDER BY “Part Number”, 3;
哪一句会产生错误?
A.FROM INVENTORY
B.WHERE PRICE > 5.00
C.ORDER BY “PART NUMBER”, 3;
D.SELECT id_number “Part Number”, SUM(price * quantity) TOTAL, description
答案 D
26.  EMPLOYEE 表包含以下的列:
EMP_ID NUMBER(9)
NAME VARCHAR2(25)
BONUS NUMBER(5,2)
DEPT_ID NUMBER(9)
如果想计算所有具有bonus的职员的bonus平均值,不考虑该列包含空值的那些雇员,用什么功能函数可以实现?
答案:使用AVG函数可以实现。
27. 写出包含 SELECT,FROM ,HAVING ,WHERE,GROUP BY ,ORDER BY子句的书写顺序
答案:SELECT FROM WHERE GROUP HAVING ORDER BY
28. 分析以下的SQL命令
SELECT id_number “Part Number”, SUM(price) “Price”
FROM inventory
WHERE price > 5.00
GROUP BY “Part Number”
ORDER BY 2;
哪一个子句会产生错误?如何修改
答案:第四句GROUP BY “Part Number”会产生错误,应改为GROUP BY id_number
29. 在单行子查询中,子查询的返回结果为多少,返回2行可以吗?
答案:只能返回一行,否则会出错。
30. 以下操作符中哪个可以用做单行简单查询的操作符
A.=
B.IN
C.LIKE
D.BETWEEN
答案 A
31. 分析以下的 SQL 命令:
SELECT id_number
FROM inventory
WHERE manufacturer_id IN
(SELECT manufacturer_id
FROM inventory
WHERE price < 1.00
OR price > 6.00);
该子查询的能否执行,是否有语法错误?
答案:没有语法错误,可以执行为
32. 分析以下SQL命令:
SELECT employee_id, name
FROM employee
WHERE employee_id NOT IN (SELECT employee_id
FROM employee
WHERE department_id = 30
AND job = ‘CLERK');
如果子查询返回空值,结果会是什么样?
答案 没有结果返回。
33. 如果用户用UPDATE 命令修改了表中的数据值,是否可以恢复回来?
答案:如果事务没有提交可以用ROLLBACK 恢复回来。
34.用户对某表中的数据做修改操作,还没有提交,此时机器断电,修改结果是否能保存在数据库中?
答案:不能,因为非正常结束的事务会被ORACLE 回滚掉
35. 以下那些命令可以暗含提交操作?
A.GRANT
B.UPDATE
C.SELECT
D.ROLLBACK
答案 A
36. 那种类型的约束可以自动创建索引?
答案:UNIQUE ,PRIMART KEY
37 哪中类型的约束只能定义在列级
A. CHECK
B.UNIQUE
C.NOT NULL
D.PRIMART KEY
E.FOREIGN KEY
答案 C
38. 可以在以下哪个对象上创建视图? (选择两个)
A.VIEW
B.QUERY
C.TABLE
D.COMMAND
E.TRANSAction
答案 A,C
39. 分析以下SQL 命令:
CREATE FORCE VIEW parts_vu (company, contact)
AS SELECT manufacturer_name, contact_name
FROM inventory
WITH READ ONLY;
在 PARTS_VU 视图上可以执行UPDATE操作吗?为什么?可以进行什么操作?
答案: 不能执行UPDATE操作,因为该视图是只读的,只能进行select (检索)操作
40. 表PERSONNEL 的结构如下:
ID NUMBER(9)
LAST_NAME VARCHAR2(25)
FIRST_NAME VARCHAR2(25)
MANAGER_ID NUMBER(9)
这里, 部门的管理者也看作是雇员..
分析以下两个命令:
SELECT p.last_name, p.first_name, m.last_name, m.first_name
FROM personnel p, personnel m
WHERE m.id = p.manager_id;
SELECT p.last_name, p.first_name, m.last_name, m.first_name
FROM personnel p, personnel m
WHERE m.manager_id = p.id;
两个的执行结果一样吗?
答案 一样,但格式不同
41. 如果一个表中的数据包含许多空值,是否适合建索引?
答案 适合
42. 分析以下命令
CREATE PUBLIC SYNONYM parts
FOR marilyn.inventory;
它的作用是什么?
为用户marilyn的inventory 对象(不一定是表)建一个同义词或叫别名
43.分析以下的SQL命令
CREATE SEQUENCE line_item_id
START WITH 10001
MAXVALUE 999999999
NOCYCLE;
请问这个序列NOCYCLE关键字的含义是什么?
答案:当序列的值增长到最大值的时候,会从1001开始从新使用
44. DEPARTMENT 表的结构如下:
DEPT_ID NUMBER(9)
DEPT_NAME VARCHAR2(20)
REGION_ID NUMBER(9)
REGION_ID 列有一个外键约束,参照REGION 表,用下面的SQL语句修改DEPARTMENT table 表
UPDATE department
SET dept_id = 6546,
region_id = 9705
WHERE dept_id = 8940;
产生以下的错误信息:
ORA-02291: integrity constraint (SYS_C23) violated - parent key not found
错误可能会在那一行?
答案:可能在region_id = 9705这一行。
45.表 TEACHER 的结构如下:
Name Null? Type
————————————— ————————- —————————-
TEACHER_ID NOT NULL NUMBER(9)
NAME VARCHAR2(25)
SALARY NUMBER(7,2)
SUBJECT_ID NOT NULL NUMBER(3)
SUBJECT_DESCRIPTION VARCHAR2(2)
编写一个SQL命令,实现以下要求,给所有的science teachers 增加 8%的工资 The SUBJECT_ID for science teachers 的SUBJECT_ID 值是011.
答案:UPDATE teacher
SET salary = salary * 1.08
WHERE subject_id = 011;
46.ORACLE数据库有哪几种约束类型
答案:五种。是PRIMARY KEY,FOREIGN KEY,UNIQUE,CHECK,NOT NULL。
47.在建表时如果希望某列的值,在一定的范围内,应建什么样的约束?
答案:CHECK 约束。
48. RDBMS是下列哪一项的缩写:___
A Relational DataBase Management System(关系数据库管理系统)
B Relational DataBase Migration System(关系数据库移植系统)
C Relational Data Migration System(关系数据移植系统)
D Relational DataBase Manage System(关系数据库管理系统)
49. INSERT 是
A DML语句
B DDL语句
C DCL语句
D DTL语句
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.SELECT CHR(66) FROM DUAL的结果是_____
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  FOR INSERT OF
B  FOR UPDATE OF
C  FOR REFRESH
D  EXCLUSIVE
60. 对象关系模型支持:
A 面向对象的概念和关系的概念
B 仅支持关系的概念
C 仅面向对象对象的概念
D 以上都不是
61. TRUNCATE TABLE 是用于____:
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  索引列被声明为not null
B  在where子句中使用了索引列
C  索引列包含许多不同的值
D  定义尽可能多的索引
68.检查下列创建的orders表的SQL语句
CREATE TABLE ORDERS(
SER_NO NUMBERUNIQUE,
ORDER_ID NUMBER,
ORDER_DATE DATE NOT NULL,
STATUS VARCHAR2(10) CHECK (STATUS IN (‘CREDIT’,’CASH’)),
PROD_ID NUMBER REFERENCES PRODUCTS(PRODUCT_ID),
ORD_TOTAL NUMBER,
PRIMARY KEY (ORDER_ID,ORDER_DATE)
当执行上述语句时,将自动为那些列创建索引
A  SER_ID
B  ORDER_ID
C  STATUS
D  PRID_ID
69 当在表加入一条数据时,如果其中一个字段未指定任何数据,此时该字段会存放什么值
A 0
B NULL
C ”(空字符)
D 不确定

你可能感兴趣的:(oracle,sql,C++,c,面试)