Oracle面试题库-SQL
1. ORACLE用来判断列值是否为空的操作符是____
A ==NULL
B IS NULL
C AS NULL
D NULLIS
2 分析以下的SQL命令
SELECT ,
FROM inventory i, manufacturer m
WHERE =
ORDER BY ;
如何修改上述命令使其成功执行()
A ORDER BY description
B ORDER BY
C WHERE =
ORDER BY
D ORDER BY ;
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 WHER
E 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 ,
FROM inventory i, manufacturer m
WHERE (+) = ;
WHERE 子句中的(+)是什么含义?
A 将inventory表中不满足条件的记录也查出来
B 将+
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 最后执行?
答案:concat
12. 分析以下的SQL命令:
SELECT *
FROM product
WHERE LOWER(description) = ‘CABLE’;
命令能否执行是否有结果返回为什么?
答案:命令可以执行,没有结果返回,因为查询条件中的LOWER把查询列值改为小写,而等号右侧为大写,所以不会有结果返回。
13. 在PLAN表中有一列为SPECIES_ID ,该列与SPECIES 表的ID列对应,但后者包含空值,要想在显示结果中包含SPECIES 表的ID列为空值的行的信息,用那种连接条件可以实现?
答案:外连接
14. 分析以下的SQL 命令:
SELECT ,
FROM inventory i, inventory m
WHERE = ;
该命令中使用的连接条件是()连接
答案:自连接
15 .外连接的符号可以放在连接条件的哪边,可以两边同时使用吗?
答案:放在包含空值的一边,不可以两边同时使用
16. 如果用等值连接来查询5张表内的信息,至少需要几个连接条件?
答案:至少需要4个连接条件。
17. 分析以下的SQL 命令:
SELECT ,
FROM inventory i, manufacturer m
WHERE =
ORDER BY 1;
该命令执行结果的排序是按那一列的值排序的?
答案:按inventory表的id_number列排序
18. 如果在where子句中有两个条件要同时满足,应该用以下哪个逻辑符来连接
答案 c
19. 外连接的条件可以放在以下的那一个子句中
BY
BY
答案 B
20. 在从两个表中查询数据时,连接条件要放在哪个子句中
BY
答案 B
21 用以下哪个子句来限制分组统计结果信息的显示
BY
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 >
ORDER BY “Part Number”, 3;
哪一句会产生错误?
INVENTORY
PRICE >
BY “PART NUMBER”, 3;
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 >
GROUP BY “Part Number”
ORDER BY 2;
哪一个子句会产生错误如何修改
答案:第四句GROUP BY “Part Number”会产生错误,应改为GROUP BY id_number
29. 在单行子查询中,子查询的返回结果为多少,返回2行可以吗?
答案:只能返回一行,否则会出错。
30. 以下操作符中哪个可以用做单行简单查询的操作符
A.=
答案 A
31. 分析以下的SQL 命令:
SELECT id_number
FROM inventory
WHERE manufacturer_id IN
(SELECT manufacturer_id
FROM inventory
WHERE price <
OR price > ;
该子查询的能否执行,是否有语法错误?
答案:没有语法错误,可以执行为
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
36. 那种类型的约束可以自动创建索引?
答案:UNIQUE ,PRIMART KEY
37 哪中类型的约束只能定义在列级
A. CHECK
NULL
KEY
KEY
答案 C
38. 可以在以下哪个对象上创建视图(选择两个)
答案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 , , ,
FROM personnel p, personnel m
WHERE = ;
SELECT , , ,
FROM personnel p, personnel m
WHERE = ;
两个的执行结果一样吗?
答案一样,但格式不同
41. 如果一个表中的数据包含许多空值,是否适合建索引?
答案适合
42. 分析以下命令
CREATE PUBLIC SYNONYM parts
FOR ;
它的作用是什么?
为用户marilyn的inventory 对象(不一定是表)建一个同义词或叫别名
43.分析以下的SQL命令
CREATE SEQUENCE line_item_id
START WITH 10001
MAXVALUE 9
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 *
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 都不是
什么操作符将两个查询的结果合并为单个结果
A 算术
B 比较
C 集合
D 以上都不是
52. .____什么操作符之返回两个查询的共有行
A INTERSECT
B UNION
C MINUS
D 没有
53.日期函数是
A 分组函数
B 单行函数
C 聚合函数
D 都不是
CHR(66) FROM DUAL的结果是_____
A Z
B S
C B
D 都不是
函数返回一个值除以另一个值后的余数
B ABS
C CEIL
D 以上都不是
函数返回列表中第一个非空的表达式
A NVL
B NVL2
C COALESCE
D 以上都不是
子句处理分组的结果
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错
是oracle提供的一个对象,可以生成唯一的连续的整数
B 序列
C 视图
D 没有
64.可以使用____和____伪列来访问序列
A nextval和currentval
B nextval和previousval
C cache和nocache
D 以上都不对
65.下列有关视图的描述那一个是正确的
A 视图时已存储的查询
B 视图隐藏了数据的复杂性
C 视图就是表
D 视图不提供安全性
是与表关联的可选结构
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
一、技术问题部分(数据库部分) 1、表空间的管理方式有哪几种? 数据字典管理方式 本地文件管理方式 2、谈谈你对索引的理解? 索引是若干数据行的关键字的列表,查询数据时,通过索引中的关键字可以快速定位到要访问的记录所在的数据块,从而大大减少读取数据块的I/O次数,因此可以显著提高性能。 3、说说索引的组成? 索引列、rowid 4、分区表用过么?谈谈分区表的应用? 分区表在对表的DML的并行处理上有极大得优势,而且可以一部分设为只读,用在销售记录,医院处方等地方!! 5、你对分区表的理解?怎样截断分区表一个分区的记录? 一个分区表有一个或多个分区,每个分区通过使用范围分区、散列分区、或组合分区分区的行 分区表中的每一个分区为一个段,可各自位于不同的表空间中 对于同时能够使用几个进程进行查询或操作的大型表分区非常有用 alter table table_name truncate partition partition_name; 6、物理文件有哪几种?控制文件包含了什么信息? 1)数据文件2)控制文件3)日志文件 包含维护和验证有选举权据库完整性的必要信息、例如,控制文件用于识别数据文件和重做日志文件,一个有选举权据库至少需要一个控制文件 7、表空间用完了如何增加? 三种种扩展方式: 1 增加数据文件alter tablespace name add datafile …路径? size 4M; 2 扩展数据文件大小alter database datafile …路径? resize 4M; 3 把数据文件设为自动增长 alter database datafile …路径? autoextend on next 1M maxsize 20M; 8、SGA包含几部分? Shared pool(共享池),DataBase Buffer Cache(数据缓冲区) Redo Log Buffer(重做日志缓冲区), Large Pool,大池,JAVA池。 9、DECODE函数的用法? DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表示如果value等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else。初看一下,DECODE 只能做等于测试,但刚才也看到了,我们通过一些函数或计算替代value,是可以使DECODE函数具备大于、小于或等于功能。还可以转化表结构! 10、DELETE和TRUNCATE的区别? 答:1、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有
几个Oracle的笔试题
Oracle笔试试题 1. SQL必备 <选择题每空 1 分共 14题> 1. 如果在where子句中有两个条件要同时满足,应该用以下哪个逻辑符来连接 ( ) A.OR B.NOT C.AND D.NONE 2. 外连接的条件可以放在以下的那一个子句中( ) A.FROM B.WEHRE C.SELECT D.HAVING E.GROUP BY F.ORDER BY 3. 在从两个表中查询数据时,连接条件要放在哪个子句中( ) A.FROM B.WHERE C.SELECT D.HAVING E.GROUP BY 4. 用以下哪个子句来限制分组统计结果信息的显示( ) A.FROM B.WEHRE C.SELECT D.HAVING E.GROUP BY F.ORDER BY 5. 以下需求中哪个需要用分组函数来实现( ) A.把ORDER表中的定单时间显示成 'DD MON YYYY' 格式 B.把字符串 'JANUARY 28, 2000' 转换成日期格式 C.显示PRODUCT 表中的COST 列值总量 D.把PRODUCT表中的DESCRIPTION列用小写形式显示 6. 以下那些命令可以暗含提交操作( )
A.GRANT B.UPDATE C.SELECT D.ROLLBACK 7.RDBMS是下列哪一项的缩写( ) A. Relational DataBase Management System(关系数据库管理系统) B. Relational DataBase Migration System(关系数据库移植系统) C. Relational Data Migration System(关系数据移植系统) D. Relational DataBase Manage System(关系数据库管理系统) 8.INSERT 是( ) A. DML语句 B. DDL语句 C. DCL语句 D. DTL语句 9.SELECT CHR(66) FROM DUAL的结果是( ) A. Z B. S C. B D. 都不是 10.函数返回一个值除以另一个值后的余数( ) A. MOD B. ABS C. CEIL D. 以上都不是 11. 什么锁用于锁定表,仅允许其他用户查询表中的行,行不允许插入,更新, 或删除行( ) A. 共享 B. 排他 C. 共享更新 D. 以上都不是 12.什么是oracle提供的一个对象,可以生成唯一的连续的整数( ) A. 同义词 B. 序列 C. 视图 D. 没有 13. 那种类型的约束可以自动创建索引( ) A.CHECK B.UNIQUE
Oracle精选面试题(附答案及分析)
Oracle精选面试题 1.显示10 号部门的所有经理('MANAGER')和20 号部门的所有职员('CLERK')的详细信息 答案: Select * from emp where deptno=10 and job=’MANAGER’ or deptno=20 and job=’clerk’; select * from emp where deptno = 10 and job = 'MANAGER' or deptno = 20 and job ='CLERK'; 2.显示姓名中没有'L'字的员工的详细信息或含有'SM'字的员工信息 答案: Select * from emp where ename note like ‘%L%’ or ename like ‘%SM%’; select * from emp where ename not like '%L%' or ename like '%SM%'; 3.显示各个部门经理('MANAGER')的工资 答案: select deptno,emname, salary from emp_wqq where job='MANAGER'; 4.显示佣金(COMM)收入比工资(SAL)高的员工的详细信息 答案: select * from emp where comm > sal; 5.把hiredate 列看做是员工的生日,求本月过生日的员工 答案: select * from emp where to_char(hiredate, 'mm') = to_char(sysdate , 'mm'); 6.把hiredate 列看做是员工的生日,求下月过生日的员工 答案: select * from emp where to_char(hiredate, 'mm') = to_char(add_months(sysdate,1) , 'mm'); 7.求1982 年入职的员工 答案: select * from emp where to_char(hiredate,'yyyy') = '1982'; 8.求1981 年下半年入职的员工 答案: select * from emp where hiredate between to_date('1981-7-1','yyyy-mm-dd') and to_date('1982-1-1','yyyy-mm-dd') - 1; 9.求1981 年各个月入职的的员工个数 答案: select count(*), to_char(trunc(hiredate,'month'),'yyyy-mm')
Oracle面试题库_3
Oracle面试题库 END LOOP;7. 当在一个PLSQL块中通过查询得到一个值,但是没有任何值返回时,会产生异常吗?如果产生,是什么异常?A 不会有异常,只不过没有结果而已B 有异常,异常为No_data_foundC 有异常,异常为Value_erroD 编译都不通过8. 在PLSQL块中处理异常的语句是 A EXCEPTIONIF EXCEPTION_NAME THENDBMS_OUTPUT.PUT_LINE();END;B EXCEPTIONWHEN EXCEPTION_NAME THENDBMS_OUTPUT.PUT_LINE();END EXCEPTION ;C WHEN EXCEPTION_NAME THENDBMS_OUTPUT.PUT_LINE();D BEGINNULL;EXCEPTIONWHEN EXCEPTION_NAME THENDBMS_OUTPUT.PUT_LINE();END ;9. 当用户在PLSQL块中,像抛出自定义异常或者是系统异常时,所使用的关键字是 A THROWB RAISEC RAISE_APPLICATION_ERRORD EXCEPTION10. 在自定义异常中,用户可用的错误号范围在A 20000 ~ 29999B -20000 ~ -20999C 1~65535D 没有限制11. 阅读代码DECLAREBEGINDBMS_OUTPUT.PUT_LINE(‘外不快’);DECLAREMYEXCE EXCEPTION;BEGINRAISE MYEXCE;END;EXCEPTIONWHEN MYEXCE THENDBMS_OUTPUT.PUT_LINE(‘异常捕获’);END;出现的结果是
oracle常见面试题及答案
需求: 写一个邮件系统, 采用oracle+jsp+servlet来完成. 1.创建一个表空间。 2.创建一个用户,将用户赋到表空间上. 3.给用户赋权限. 4.以新建用户登录,创建一个程序包. 5.在表空间上建表,两个表 用户表 Id int Uname varchar Upass varchar 邮件表 eId int Title varchar Contents varchar Uid int 外键 附件表 Id int Filepath varchar Eid int 外键 6.作增,删,改,查的操作,全部封装到存储过程中 7.写一个java程序来调用. 1.解释FUNCTION,PROCEDURE和PACKAGE区别 答:function 和procedure是PL/SQL代码的集合,通常为了完成一个任务。procedure 不需要返回任何值, 而function将返回一个值. 在另一方面,Package是为了完成一个商业功能的一组function和procedure的集合。
2.取某个序列的当前值的PL/SQL语句怎么写? 答:SELECT 序列名.CURRVAL FROM DUAL; Create sequence 名字 start with x increment by y maxvalue z nocycle 3.说明ORACLE数据库实例与ORACLE用户的关系? 答:实例可以包含多个用户,一个用户只能在一个实例下 4.创建用户时,需要赋予新用户什么权限才能使它连上数据库? 答:grant CONNECT [on 表名] to 用户名 5.比较truncate和delete命令? 答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL(data defining language数据定义语言),它移动HWK,不需要rollback segment(处理事务回滚操作)而Delete是DML(data manufacturing language数据操作语言)操作,需要rollback segment(处理事务回滚操作)且花费较长时间 6.给出数据的相关约束类型? 答:主键约束,外键约束,非空约束,唯一约束,检查约束。 7.说明索引的类型与作用? 答:索引类型上分为聚集索引,非聚集索引. 其作用是加快查询速度。 8.获取某个字符字段的最后3个字符的函数是什么? 答:select substr (字段,(length(字段)-3)) from 表 9.取当前系统时间点日期(不包括年月)的SQL写法是怎样的? 答:Select substr (to_char(sysdate,’YYYYMMDDh24hh:MM:SS’),5) from dual; to_char(sysdate,’YYYYMMDDh24hh:MM:SS’) 10.返回大于等于N的最小整数值? 答:select ceil(1.5) from dual; floor(1.5) 11.将根据字符查询转换后结果,规则为:’A’转换为’男’,’B’转换为’女’,其他字符转换为’未知’,请用一个SQL语句写出。 答:select decode(字符,’A’,’男’,’B’,’女’,’未知’) from dual; 12.如何搜索出前N条记录? 答:select * from 表 where Rownum <= N;
oracle面试题集锦
本文是Oracle技术人员求职面试题集锦,答案仅供参考…… 1. 解释冷备份和热备份的不同点以及各自的优点 解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘) 2. 你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢? 解答:重建控制文件,用带backup control file 子句的recover 命令恢复 数据库。 3. 如何转换init.ora到spfile? 解答:使用create spfile from pfile 命令. 4. 解释data block , extent 和segment的区别(这里建议用英文术语) 解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent . 一个数据库对象 拥有的所有extents被称为该对象的segment. 5. 给出两个检查表结构的方法 解答:1。DESCRIBE命令 2. DBMS_METADATA.GET_DDL 包 6. 怎样查看数据库引擎的报错 解答:alert log. 7. 比较truncate和delete 命令 解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要rollback segment .而Delete是DML操作, 需要rollback segment 且花费较长时间. 8. 使用索引的理由 解答:快速访问表中的data block 9. 给出在STAR SCHEMA中的两种表及它们分别含有的数据 解答:Fact tables 和dimension tables. fact table 包含大量的主要的信息而dimension tables 存放对fact table 某些属性描述的信息 10. FACT Table上需要建立何种索引? 解答:位图索引(bitmap index) 11. 给出两种相关约束? 解答:主键和外键 12. 如何在不影响子表的前提下,重建一个母表 解答:子表的外键强制实效,重建母表,激活外键 13. 解释归档和非归档模式之间的不同和它们各自的优缺点 解答:归档模式是指你可以备份所有的数据库transactions并恢复到任意一个时间点。非归档模式则相反,不能恢复到任意一个时间点。但是非归档模式可以带来数据库性能上的少许提高 . 14. 如何建立一个备份控制文件? 解答:Alter database backup control file to trace. 15. 给出数据库正常启动所经历的几种状态? 解答:
oracle面试题70问及答案
1. 解释冷备份和热备份的不同点以及各自的优点 解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘) 2. 你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢? 解答:重建控制文件,用带backup control file 子句的recover 命令恢复数据库。 3. 如何转换init.ora到spfile? 解答:使用create spfile from pfile 命令 .4. 解释data block , extent 和segment的区别(这里建议用英文术语) 解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent . 一个数据库对象拥有的所有extents被称为该对象的segment. 5. 给出两个检查表结构的方法 解答:1、DESCRIBE命令 2、DBMS_METADA TA.GET_DDL 包 6. 怎样查看数据库引擎的报错 解答:alert log. 7. 比较truncate和delete 命令 解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要rollback segment .而Delete是DML操作, 需要rollback segment 且花费较长时间. 8. 使用索引的理由 解答:快速访问表中的data block 9. 给出在STAR SCHEMA中的两种表及它们分别含有的数据 解答:Fact tables 和dimension tables. fact table 包含大量的主要的信息而dimension tables 存放对fact table 某些属性描述的 信息 10. FACT Table上需要建立何种索引? 解答:位图索引(bitmap index) 11. 给出两种相关约束? 解答:主键和外键 12. 如何在不影响子表的前提下,重建一个母表 解答:子表的外键强制失效,重建母表,激活外键 13. 解释归档和非归档模式之间的不同和它们各自的优缺点 解答:归档模式是指你可以备份所有的数据库transactions并恢复到任意一个时间点。非归档模式则相反,不能恢复到任意一个时间点。 但是非归档模式可以带来数据库性能上的少许提高 14. 如何建立一个备份控制文件? 解答:Alter database backup control file to trace. 15. 给出数据库正常启动所经历的几种状态? 解答: STARTUP NOMOUNT –数据库实例启动 STARTUP MOUNT - 数据库装载
Oracle面试题及答案整理
Oracle面试题及答案整理
Oracle面试题及答案整理 1、表:table1(FId,Fclass,Fscore),用最高效最简单的SQL列出各班成绩最高的列表,显示班级,成绩两个字段。 select fclass,max(fscore) from table1 group by fclass,fid 2、有一个表table1有两个字段FID,Fno,字都非空,写一个SQL语句列出该表中一个FID对应多个不同的Fno的纪录。 类如: 101a1001 101a1001 102a1002 102a1003 103a1004 104a1005 104a1006 105a1007 105a1007 105a1007 结果: 102a1002
102a1003 104a1005 104a1006 select t2.* from table1 t1, table1 t2 where t1.fid = t2.fid and t1.fno <> t2.fno; 3、有员工表empinfo ( Fempno varchar2(10) not null pk, Fempname varchar2(20) not null, Fage number not null, Fsalary number not null ); 假如数据量很大约1000万条;写一个你认为最高效的SQL,用一个SQL计算以下四种人: fsalary>9999 and fage > 35 fsalary>9999 and fage < 35 fsalary <9999 and fage > 35 fsalary <9999 and fage < 35 每种员工的数量; select sum(case when fsalary > 9999 and fage > 35 then 1 else 0end) as "fsalary>9999_fage>35",
Oracle数据库DBA面试题及答案_经典
1.OracleDBA面试题之一解释冷备份和热备份的不同点以及各自的优点 解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。 冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘) 2. 你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢? 解答:重建控制文件,用带backup control file 子句的recover 命令恢复数据库。 3. 如何转换init.ora到spfile? 解答:使用create spfile from pfile 命令 4. OracleDBA面试题:解释data block , extent 和 segment的区别(这里建议用英文术语) 解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent . 一个数据库对象拥有的所有extents 被称为该对象的segment. 5. 给出两个检查表结构的方法 解答:1、DESCRIBE命令 2、DBMS_METADATA.GET_DDL 包 6. 怎样查看数据库引擎的报错 解答:alert log. 7. 比较truncate和delete 命令 解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要 rollback segment .而Delete是DML操作需要rollback segment 且花费较长时间. 8. 使用索引的理由 解答:快速访问表中的data block 9. 给出在STAR SCHEMA中的两种表及它们分别含有的数据 解答:Fact tables 和dimension tables. fact table 包含大量的主要的信息而dimension tables 存放对fact table 某些属性描述的信息
Oracle+面试及答案-经典
一、基础概念 1.列举几种表连接方式 Answer:等连接(内连接)、非等连接、自连接、外连接(左、右、全) Or hash join/merge join/nest loop(cluster join)/index join ??ORACLE 8i,9i 表连接方法。 一般的相等连接: select * from a, b where a.id = b.id; 这个就属于内连接。 对于外连接: Oracle中可以使用“(+) ”来表示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN LEFT OUTER JOIN:左外关联 SELECT https://www.360docs.net/doc/1818051319.html,st_name, e.department_id, d.department_name FROM employees e LEFT OUTER JOIN departments d ON (e.department_id = d.department_id); 等价于 SELECT https://www.360docs.net/doc/1818051319.html,st_name, e.department_id, d.department_name FROM employees e, departments d WHERE e.department_id=d.department_id(+) 结果为:所有员工及对应部门的记录,包括没有对应部门编号department_id 的员工记录。 RIGHT OUTER JOIN:右外关联 SELECT https://www.360docs.net/doc/1818051319.html,st_name, e.department_id, d.department_name FROM employees e RIGHT OUTER JOIN departments d ON (e.department_id = d.department_id); 等价于 SELECT https://www.360docs.net/doc/1818051319.html,st_name, e.department_id, d.department_name FROM employees e, departments d WHERE e.department_id(+)=d.department_id 结果为:所有员工及对应部门的记录,包括没有任何员工的部门记录。 FULL OUTER JOIN:全外关联 SELECT https://www.360docs.net/doc/1818051319.html,st_name, e.department_id, d.department_name FROM employees e FULL OUTER JOIN departments d ON (e.department_id = d.department_id);
Oracle面试问题-技术篇
Oracle 面试问题-技术篇 这也许是你一直期待的文章,在关注这部分技术问题的同时,请务必阅读有关面试中有关个人的问题和解答。这里的回答并不是十分全面,这些问题可以通过多个角度来进行解释,也许你不必在面试过程中给出完全详尽的答案,只需要通过你的解答使面试考官了解你对ORACLE?念的熟悉程度。 1. 解释冷备份和热备份的不同点以及各自的优点 解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下, 数据库性能会比归档模式稍好。(因为不必将archive log 写入硬盘) 2. 你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢? 解答:重建控制文件,用带backup control file 子句的recover 命令恢复数据库。 3. 如何转换init.ora 到spfile? 解答:使用create spfile from pfile 命令. 4. 解释data block , extent 和segment 的区别(这里建议用英文术语) 解答:data block 是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block 就组成了extent . 一个数据库对象拥有的所有extents 被称为该对象的segment. 5. 给出两个检查表结构的方法
解答:「DESCRIBE命令 2.DBMS_METADATA.GET_EtoL 6. 怎样查看数据库引擎的报错 解答:alert log.
Oracle面试题集锦
Oracle 面试题集锦 一、经典面试题 1.OracleDBA面试题之一解释冷备份和热备份的不同点以及各自的优点 解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。 冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘) 2.你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢? 解答:重建控制文件,用带backup control file 子句的recover 命令恢复数据库。 3.如何转换init.ora到spfile? 解答:使用create spfile from pfile 命令 4.解释data block , extent 和 segment的区别(这里建议用英文术语) 解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent . 一个数据库对象拥有的所有extents被称为该对象的segment. 5.给出两个检查表结构的方法 解答:1、DESCRIBE命令 DBMS_METADATA.GET_DDL 包 6.怎样查看数据库引擎的报错 解答:alert log. 7.比较truncate和delete 命令 解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要 rollback segment .而Delete是DML操作需要rollback segment 且花费较长时间. 8.使用索引的理由 解答:快速访问表中的data block 9.给出在STAR SCHEMA中的两种表及它们分别含有的数据
Oracle-笔试题目带标准答案
1.( )程序包用于读写操作系统文本文件。(选一项) A、Dbms_output B、Dbms_lob C、Dbms_random D、Utl_file 2.( )触发器允许触发操作的语句访问行的列值。(选一项) A、行级 B、语句级 C、模式 D、数据库级 3.( )是oracle在启动期间用来标识物理文件和数据文件的二进制文件。(选一项) A、控制文件 B、参数文件 C、数据文件 D、可执行文件 4.CREATE TABLE 语句用来创建(选一项) A、表 B、视图 C、用户 D、函数 5.imp命令的哪个参数用于确定是否要倒入整个导出文件。(选一项) A、constranints B、tables C、full D、file 6.ORACLE表达式NVL(phone,'0000-0000')的含义是(选一项) A、当phone为字符串0000-0000时显示空值 B、当phone为空值时显示0000-0000 C、判断phone和字符串0000-0000是否相等 D、将phone的全部内容替换为0000-0000 7.ORACLE交集运算符是(选一项) A、intersect B、union C、set D、minus 8.ORACLE使用哪个系统参数设置日期的格式(选一项) A、nls_language
B、nls_date C、nls_time_zone D、nls_date_format 9.Oracle数据库中,通过()访问能够以最快的方式访问表中的一行(选一项) A、主键 B、Rowid C、唯一索引 D、整表扫描 10.Oracle数据库中,下面()可以作为有效的列名。(选一项) A、Column B、123_NUM C、NUM_#123 D、#NUM123 11.Oracle数据库中,以下()命令可以删除整个表中的数据,并且无法回滚(选一项) A、drop B、delete C、truncate D、cascade 12.Oracle中, ()函数将char或varchar数据类型转换为date数据类型。(选一项) A、date B、to_date C、todate D、ctodate 13.ORACLE中,执行语句:SELECTaddress1||','||address2||','||address2 "Address" FROMemploy;将会返回()列(选一项) A、0 B、1 C、2 D、3 14.Oralce数据库中,以下()函数可以针对任意数据类型进行操作。(选一项) A、TO_CHAR B、LOWER C、MAX D、CEIL 15.partition by list(msn_id)子句的含义是(选一项) A、按msn_id列进行范围分区 B、按msn_id列进行列表分区
oracle企业面试题集锦
oracle企业面试题集锦 宏观上: 1.最大的区别在于平台,oracle可以运行在不同的平台上,sql server只能运行在 windows 平台上,由于 windows 平台的稳定性和安全性影响了 sql server的稳定性和安全性 2.oracle使用的脚本语言为 PL-SQL ,而sql server使用的脚本为 T-SQL 微观上:从数据类型,数据库的结构等等回答 2.如何使用Oracle的游标 1.oracle中的游标分为显示游标和隐式游标 2.显示游标是用cursor is命令定义的游标,它可以对查询语句(select)返回的多条记录进行处理;隐式游标是在执行插入 (insert)、删除(delete)、修改(update)和返回单条记录的查询(select)语句时由 PL/SQL 自动定义的。 3.显式游标的操作:打开游标、操作游标、关闭游标;PL/SQL 隐式地打开SQL游标,并在它内部处理SQL语句,然后关闭它 3.Oracle 中 function 和 procedure 的区别 1.可以理解函数是存储过程的一种 2.函数可以没有参数,但是一定需要一个返回值,存储过程可以没有参数,不需要返回值 3.两者都可以通过out参数返回值,如果需要返回多个参数则建议使
用存储过程 4.在sql数据操纵语句中只能调用函数而不能调用存储过程 4.Oracle的导入导出有几种方式,有何区别 1.使用 oracle 工具 exp/imp 2.使用plsql相关工具 方法1.导入/导出的是二进制的数据,2.plsql导入/导出的是 sql语句的文本文件 5.Oracle中有哪几种文件 数据文件(一般后缀为.dbf或者.ora),日志文件(后缀名.log),控制文件(后缀名为.ctl) 6.怎样优化Oracle数据库,有几种方式 个人理解,数据库性能最关键的因素在于IO,因为操作内存是 快速的,但是读写磁盘是速度很慢的,优化数据库最关键的问题在于减少磁盘的IO,就个人理解应该分为物理的和逻辑的优化,物理的是指oracle产品本身的一些优化,逻辑优化是指应用程序级别的优化物理优化的一些原则: 1.Oracle的运行环境(网络,硬件等) 2.使用合适的优化器 3.合理配置oracle实例参数 4.建立合适的索引(减少IO) 5.将索引数据和表数据分开在不同的表空间上(降低 10冲突) 6.建立表分区,将数据分别存储在不同的分区上(以空间换取时间,
Oracle数据库的面试题目及答案
Oracle数据库的面试题目及答案 基础题目: 1. 比较truncate和命令 解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要 rollback segment . 而Delete是DML操作, 需要rollback segment 且花费较长时间. 【相同点 truncate和不带where子句的, 以及drop都会删除表内的数据 不同点: 1. truncate和只删除数据不删除表的结构(定义) drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,
但是变为invalid状态. 2.语句是dml,这个操作会放到rollback segement中,事务提交 之后才生效;如果有相应的trigger,执行的时候将被触发. truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger. 3.语句不影响表所占用的extent, 高水线(high watermark)保持 原位置不动 显然drop语句将表所占用的空间全部释放 truncate 语句缺省情况下见空间释放到 minextents个 extent, 除非使用reuse storage; truncate会将高水线复位(回到最开始). 4.速度,一般来说: drop>; truncate >; 5.安全性:小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不及
使用上,想删除部分数据行用,注意带上where子句. 回滚段要足够大. 想删除表,当然用drop 想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还是用. 如果是表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据 2.Oracle中,需要在查询语句中把空值(NULL)输出为0,如何处理? 答案:nvl(字段,0). nvl( ) 函数 从两个表达式返回一个非 null 值。 语法
华为面试题(附答案)Oracle-DBA、JAVA架构师必看
DBA数据库管理员JAVA程序员架构师必看 一、技术问题部分(数据库部分) 1、表空间的管理方式有哪几种? 数据字典管理方式 本地文件管理方式 2、谈谈你对索引的理解? 索引是若干数据行的关键字的列表,查询数据时,通过索引中的关键字可以快速定位到要访问的记录所在的数据块,从而大大减少读取数据块的I/O次数,因此可以显著提高性能。 3、说说索引的组成? 索引列、rowid 4、分区表用过么?谈谈分区表的应用? 分区表在对表的DML的并行处理上有极大得优势,而且可以一部分设为只读,用在销售记录,医院处方等地方!! 5、你对分区表的理解?怎样截断分区表一个分区的记录? 一个分区表有一个或多个分区,每个分区通过使用范围分区、散列分区、或组合分区分区的行 分区表中的每一个分区为一个段,可各自位于不同的表空间中 对于同时能够使用几个进程进行查询或操作的大型表分区非常有用 alter table table_name truncate partition partition_name; 6、物理文件有哪几种?控制文件包含了什么信息? 1)数据文件2)控制文件3)日志文件 包含维护和验证有选举权据库完整性的必要信息、例如,控制文件用于识别数据文件和重做日志文件,一个有选举权据库至少需要一个控制文件 7、表空间用完了如何增加? 三种种扩展方式: 1 增加数据文件alter tablespace name add datafile …路径? size 4M; 2 扩展数据文件大小alter database datafile …路径? resize 4M; 3 把数据文件设为自动增长 alter database datafile …路径? autoextend on next 1M max size 20M; 8、SGA包含几部分? Shared pool(共享池),DataBase Buffer Cache(数据缓冲区) Redo Log Buffer(重做日志缓冲区), Large Pool,大池,JAVA池。 9、DECODE函数的用法? DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表示如果value等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else。初看一下,DECODE 只能做等于测试,但刚才也看到了,我们通过一些函数或计算替代value,是可以使DECODE函数具备大于、小于或等于功能。还可以转化表结构! 10、DELETE和TRUNCATE的区别?
Oracle笔试题及答案
一、选择题(每题1分) 1.Oracle发出下列select语句: SQL> select e.empno, e.ename, d.loc 2 from emp e, dept d 3 where e.deptno = d.deptno 4 and substr(e.ename, 1, 1) = ‘S’; 下列哪个语句是Oracle数据库中可用的ANSI兼容等价语句? A.select empno, ename, loc from emp join dept on emp.deptno = dept.deptno where substr(emp.ename, 1, 1) = ‘S’; B.select empno, ename, loc from emp, dept on emp.deptno = dept.deptno where substr(emp.ename, 1, 1) = ‘S’; C.select empno, ename, loc from emp join dept where emp.deptno = dept.deptno and substr(emp.ename, 1, 1) = ‘S’; D.select empno, ename, loc from emp left join dept on emp.deptno = dept.deptno and substr(emp.ename, 1, 1) = ‘S’; 2.你要对操纵Oracle数据库中的数据。下列哪个选项表示Oracle中select语句的功能, 并且不需要使用子查询? A.可以用select语句改变Oracle中的数据 B.可以用select语句删除Oracle 中的数据 C.可以用select语句和另一个表的内容生成一个表 D.可以用select语句对表截断 3.Oracle数据库中发出一个查询。下列哪个选项不能查询对用户定义静态表达式执行数学 运算时的查询组件? A.列子句 B.表子句 C.DUAL表 D.where子句 4.你要操纵Oracle数据,下列哪个不是SQL命令? A.select * from dual; B.set define C.update emp set ename = 6543 where ename = ‘SMITHERS’; D.create table employees(empid varchar2(10) primary key); 5.你要在Oracle中定义SQL查询。下列哪个数据库对象不能直接从select语句中引用?A.表 B.序列 C.索引 D.视图 6.你要根据PRODUCT_NAME列从PROFITS表查询中过滤返回的数据。下列哪个子句包含相 应过滤条件的引用? A.select B.from C.where D.having 7.下列代码显示了PROFITS表输出的局部: PRODUCT_NAME PRODUCT_TYPE QTR_END_DATE PROFIT ------------ ------------ ------------ ------------- BARNEY DOLL TOY 31-MAR-2001 6575430.30 GAS GRILL APP 31-MAR-2001 1234023.88