Oracle面试题库-SQL
- 格式:doc
- 大小:26.50 KB
- 文档页数:11
oracle面试题sql语句当面试官问到关于Oracle SQL的问题时,通常会涉及到基本的查询、聚合函数、连接、子查询、索引等方面的知识。
我会从这些方面给出一些可能被问到的问题和相应的SQL语句作为回答。
1. 基本查询。
基本查询是SQL中最基本的操作,可能会涉及到SELECT语句以及WHERE子句的使用。
例如:sql.SELECT FROM employees;SELECT employee_id, first_name, last_name FROM employees WHERE department_id = 20;2. 聚合函数。
面试官可能会问到如何使用聚合函数来对数据进行统计,比如求和、平均值等。
例如:sql.SELECT AVG(salary) FROM employees;SELECT MAX(salary) FROM employees WHERE department_id = 30;3. 连接。
连接是SQL中非常重要的一部分,可能会涉及到INNER JOIN、LEFT JOIN、RIGHT JOIN等。
例如:sql.SELECT e.first_name, st_name, d.department_name.FROM employees e.JOIN departments d ON e.department_id = d.department_id;4. 子查询。
子查询也是SQL中常见的操作,可以用来进行嵌套查询或者作为临时表使用。
例如:sql.SELECT employee_id, first_name, last_name.FROM employees.WHERE department_id IN (SELECT department_id FROM departments WHERE location_id = 1700);5. 索引。
面试官可能会问到如何创建索引以及索引对查询的影响。
sql经典⾯试题——oracle1、⽤⼀条SQL 语句查询出每门课都⼤于80 分的学⽣姓名name kecheng fenshu张三语⽂ 81张三数学 75李四语⽂ 76李四数学 90王五语⽂ 81王五数学 100王五英语 90A: select distinct name from table where name not in (select distinct name from table where fenshu<=80)select name from table group by name having min(fenshu)>802、学⽣表如下:⾃动编号学号姓名课程编号课程名称分数1 2005001 张三 0001 数学 692 2005002 李四 0001 数学 893 2005001 张三 0001 数学 69删除除了⾃动编号不同, 其他都相同的学⽣冗余信息A: delete table where⾃动编号 not in(select min( ⾃动编号) from table group by 学号, 姓名, 课程编号, 课程名称, 分数)3、⾯试题:怎么把这样⼀个表⼉year month amount1991 1 1.11991 2 1.21991 3 1.31991 4 1.41992 1 2.11992 2 2.21992 3 2.31992 4 2.4查成这样⼀个结果year m1 m2 m3 m41991 1.1 1.2 1.3 1.41992 2.1 2.2 2.3 2.4答案⼀、select year,(select amount from aaa m where month=1 and m.year=aaa.year) as m1,(select amount from aaa m where month=2 and m.year=aaa.year) as m2,(select amount from aaa m where month=3 and m.year=aaa.year) as m3,(select amount from aaa m where month=4 and m.year=aaa.year) as m4from aaa group by year5、有⼀张表,⾥⾯有3个字段:语⽂,数学,英语。
Oracle面试题及答案整理1、表:table1(FId,Fclass,Fscore),用最高效最简单的SQL列出各班成绩最高的列表,显示班级,成绩两个字段。
select fclass,max(fscore) from table1 group by fclass,fid2、有一个表table1有两个字段FID,Fno,字都非空,写一个SQL语句列出该表中一个FID对应多个不同的Fno的纪录。
类如:101a1001101a1001102a1002102a1003103a1004104a1005104a1006105a1007105a1007105a1007结果:102a1002102a1003104a1005104a1006select 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 > 35fsalary>9999 and fage < 35fsalary <9999 and fage > 35fsalary <9999 and fage < 35每种员工的数量;select sum(case when fsalary>9999 and fage>35 then 1 else 0 end),sum(case when fsalary>9999 and fage<35 then 1 else 0 end),sum(case when fsalary<9999 and fage>35 then 1 else 0 end),sum(case when fsalary<9999 and fage<35 then 1 else 0 end) from empinfo4、表A字段如下month person income月份人员收入要求用一个SQL语句(注意是一个)的处所有人(不区分人员)每个月及上月和下月的总收入要求列表输出为月份当月收入上月收入下月收入MONTHS PERSON INCOME---------- ---------- ----------200807 mantisXF 5000200806 mantisXF2 3500200806 mantisXF3 3000200 805 mantisXF1 2000200805 mantisXF6 2200200804 mantisXF7 1800200803 8mantisXF 4000200802 9mantisXF 4200200802 10mantisXF 3300200801 11mantisXF 4600200809 11mantisXF 680011 rows selectedselect months, max(incomes), max(prev_months), max(next_months)from (select months,incomes,decode(lag(months) over(order by months),to_char(add_months(to_date(months, 'yyyymm'), -1), 'yyyymm'), lag(incomes) over(order by month s), 0) as prev_months, decode(lead(months) over(order by months), to_char(add_months(to_date (months, 'yyyymm'), 1), 'yyyymm'), lead(incomes) over(order by months), 0) as next_months from (select months, sum(income) as incomes from a group by months) aa) aaagroup by months;MONTHS MAX(INCOMES) MAX(PREV_MONTHS) MAX(NEXT_MONTHS)---------- ------------ ---------------- ----------------200801 4600 0 7500200802 7500 4600 4000200803 4000 7500 1800200804 1800 4 000 4200200805 4200 1800 6500200806 6500 4200 5000200807 5000 6500 0200809 6800 0 0Select (Select Month From Table Where Month = To_Char(Sysdate, 'mm')) 月份,(Select Sum(Income) From Table Where Month = To_Char(Sysdate, 'mm')) 当月收入,(Select Sum(Income) From Table Where To_Number(Month) = To_Number(Extract(Month From Sys date)) - 1) 上月收入,(Select Sum(Income) From Table Where To_Number(Month) = To_Number(Extract(Month From Sys date)) + 1) 下月收入From Dual5,表BC1 c22005-01-01 12005-01-01 32005-01-02 5要求的处数据2005-01-01 42005-01-02 5合计9试用一个Sql语句完成。
第1篇1. 请简述Oracle数据库的体系结构,并说明各层的作用。
2. 请解释什么是Oracle实例?实例与数据库之间的关系是什么?3. 请简述Oracle数据库的存储结构,包括数据文件、控制文件、日志文件等。
4. 请说明Oracle数据库的内存结构,包括SGA、PGA等。
5. 请解释Oracle数据库的备份策略,包括全备份、增量备份、差异备份等。
6. 请说明Oracle数据库的恢复策略,包括不完全恢复、完全恢复等。
7. 请解释Oracle数据库的事务管理,包括事务的ACID特性。
8. 请说明Oracle数据库的锁机制,包括共享锁、排他锁等。
9. 请解释Oracle数据库的并发控制,包括多版本并发控制(MVCC)。
10. 请说明Oracle数据库的安全机制,包括角色、权限、用户等。
二、SQL语言1. 请简述SQL语言的组成,包括数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)等。
2. 请说明如何创建一个简单的表,包括表结构、字段类型、约束等。
3. 请编写一个查询语句,查询某个表中所有年龄大于30岁的记录。
4. 请编写一个更新语句,将某个表中年龄大于40岁的记录的年龄加1。
5. 请编写一个删除语句,删除某个表中年龄小于20岁的记录。
6. 请编写一个插入语句,插入一条记录到某个表中。
7. 请说明如何使用SQL语句实现分页查询。
8. 请说明如何使用SQL语句实现多表查询。
9. 请说明如何使用SQL语句实现子查询。
10. 请说明如何使用SQL语句实现联合查询。
三、Oracle高级特性1. 请解释什么是视图?如何创建视图?2. 请解释什么是索引?有哪些常见的索引类型?3. 请解释什么是触发器?如何创建触发器?4. 请解释什么是存储过程?如何创建存储过程?5. 请解释什么是函数?如何创建函数?6. 请解释什么是包?如何创建包?7. 请解释什么是序列?如何创建序列?8. 请解释什么是同义词?如何创建同义词?9. 请解释什么是物化视图?如何创建物化视图?10. 请解释什么是分区表?如何创建分区表?四、Oracle性能优化1. 请说明如何查看Oracle数据库的性能统计信息。
oracle常见的面试题Oracle数据库是目前全球广泛使用的一种关系型数据库管理系统。
在现代的IT行业中,掌握Oracle数据库的知识成为了许多岗位的基本要求之一。
因此,面试官们经常会在面试中提出一些与Oracle相关的问题来评估应聘者的能力和经验。
本文将介绍一些常见的Oracle面试题,并为每个问题提供详细的回答。
面试题一:什么是Oracle数据库?回答:Oracle数据库是一个基于客户与服务器结构的关系型数据库管理系统。
它是由美国Oracle公司开发并推广的,能够在多个操作系统上运行,包括Windows、Unix和Linux等。
Oracle数据库以其高性能、高可用性和强大的数据管理功能而闻名于业界。
面试题二:请简要介绍一下Oracle数据库的体系结构。
回答:Oracle数据库的体系结构包括以下几个组件:1. 实例(Instance):实例是Oracle数据库的运行环境,负责管理内存、进程和后台服务等。
每当启动一个Oracle数据库时,都会创建一个实例。
2. 数据库(Database):数据库是物理存放数据的地方,通过实例进行访问和操作。
一个Oracle实例可以管理多个数据库。
3. 数据文件(Data File):数据文件是数据库中存储数据的文件,每个文件对应一个表空间(Tablespace)。
Oracle数据库使用数据文件来存储表、索引、触发器等对象的数据。
4. 表空间(Tablespace):表空间是逻辑存储单元,用于管理和组织数据库中的对象。
每个表空间由一个或多个数据文件组成。
5. 表(Table):表是数据库中用于存储数据的基本对象,由多个列(Column)组成。
面试题三:请介绍一下Oracle数据库的事务(Transaction)概念。
回答:在Oracle数据库中,事务是一系列数据库操作的逻辑单元,它要么全部执行成功,要么全部回滚。
事务可以保证数据库的一致性和完整性。
事务具有以下四个特性,常简称为ACID特性:1. 原子性(Atomicity):事务作为一个整体执行,要么全部成功,要么全部失败。
oracle sql 面试题Oracle是一种常用的关系型数据库管理系统,而SQL(Structured Query Language)是Oracle数据库的查询语言。
在Oracle SQL面试中,常常会涉及各种与SQL相关的问题和知识点。
本文将介绍一些常见的Oracle SQL面试题,并给出详细的解答。
1. 什么是Oracle数据库?Oracle数据库是一种关系型数据库管理系统,由美国Oracle公司开发。
它提供了一个可靠、高性能的数据存储和管理环境,广泛应用于企业级应用程序。
2. 什么是SQL?SQL是结构化查询语言(Structured Query Language)的缩写,是一种用于管理关系型数据库的标准化查询语言。
它可用于插入、删除、更新和查询数据,以及定义和修改数据库结构。
3. Oracle的数据类型有哪些?Oracle支持多种数据类型,包括数值型、字符型、日期型等。
常见的数据类型包括:NUMBER(数字)、VARCHAR2(可变长字符串)、DATE(日期时间)、CLOB(大文本对象)等。
4. 如何创建表?在Oracle中,可以使用CREATE TABLE语句来创建表。
例如,创建一个名为"students"的表,包含"ID"(数值型)、"NAME"(字符型)、"AGE"(数值型)三个字段的语句如下:```CREATE TABLE students (ID NUMBER,NAME VARCHAR2(50),AGE NUMBER);```5. 如何插入数据?在Oracle中,可以使用INSERT INTO语句将数据插入表中。
例如,插入一条学生信息的语句如下:```INSERT INTO students (ID, NAME, AGE) VALUES (1, 'John', 20);```6. 如何查询数据?在Oracle中,可以使用SELECT语句来查询数据。
oracle数据库sql试题及答案Oracle数据库SQL试题及答案1. 如何查询员工表中所有员工的姓名和工资,要求工资从高到低排序?```sqlSELECT name, salaryFROM employeesORDER BY salary DESC;```2. 如何统计每个部门的员工人数?```sqlSELECT department_id, COUNT(*) AS employee_countFROM employeesGROUP BY department_id;```3. 如何查询工资高于平均值的员工信息?```sqlSELECT *FROM employeesWHERE salary > (SELECT AVG(salary) FROM employees);```4. 如何找出没有直属上司的员工?```sqlSELECT *FROM employees e1WHERE NOT EXISTS (SELECT 1FROM employees e2WHERE e1.manager_id = e2.employee_id);```5. 如何查询工资在3000到5000之间的员工姓名和工资?```sqlSELECT name, salaryFROM employeesWHERE salary BETWEEN 3000 AND 5000;```6. 如何删除员工表中所有工资低于3000的员工记录?```sqlDELETE FROM employeesWHERE salary < 3000;```7. 如何更新员工表中所有部门为10的员工的工资,增加10%?```sqlUPDATE employeesSET salary = salary * 1.1WHERE department_id = 10;```8. 如何查询员工表中每个员工的姓名和他们直属上司的姓名?```sqlSELECT AS employee_name, AS manager_name FROM employees e1JOIN employees e2 ON e1.manager_id = e2.employee_id; ```9. 如何查询员工表中每个部门的平均工资?```sqlSELECT department_id, AVG(salary) AS avg_salary FROM employeesGROUP BY department_id;```10. 如何查询员工表中工资最高的员工信息?```sqlSELECT *FROM employeesWHERE salary = (SELECT MAX(salary) FROM employees); ```。
1 【问题】解释一下sum的作用答:求符合条件的记录某数值字段的和2 【问题】Table1有两个字段,field1 varchar2(10)和field2 number。
请写出向这两个表中插入’test’和100的sql语句。
答:insert into Table1 (field1,field2) values(‘test’,100);请写出一个sql语句,将Table1中的field1字段的值更新成’test111’:答:update Table1 set field1=’test111’; –此为将Table1表中所有记录field1字段的值改为’test111’update Table1 set field1=’test111’ where field2=100; –此为将Table1表中field2字段等于100的记录的field1字段的值改为’test111’请写出一个sql语句,将Table1中的数据全部选出来:答: select field1,field2 from Table1;3 【问题】Delete和truncate的区别是什么?答: Delete删除的记录如不提交可以恢复,此命令不能删除回滚段中的数据truncate删除的记录不能恢复,并可删除回滚段中的数据4 【问题】请解释一下varchar2和char的区别答: char 最大可以容纳2000个字节varchar2最大可以容纳4000个字节,此为可变长字段5 【问题】解释一下group by的作用答: 此关键字的作用是将查询出的符合条件的记录集按某字段列表分组,在此过程中预查出的字段若为字符型,分组后只取最上面的一个,预为数值型将求和6 【问题】Order by有什么作用答: 此关键字的作用是将查询出符合条件的记录集按某字段列表进行排序,默认为升序(Asc),降序为: Desc7 【问题】Union和union all有什么区别答:8 【问题】Months_between的用法是什么答: 是在一个月份的范围内。
oracle sql优化面试题1. 介绍SQL优化的重要性(约200字)在大规模数据处理和复杂查询的背景下,SQL优化在提高性能和效率方面起到至关重要的作用。
通过优化SQL查询语句,我们可以减少数据库的负载,提升查询速度,提高系统的响应能力和用户体验。
SQL优化能够帮助我们减少不必要的计算和IO操作,从而减少系统资源的消耗,提高系统的稳定性和可用性。
因此,了解并掌握SQL优化技巧对于数据库开发和管理人员来说是非常重要的。
2. 查询优化相关的基本概念和知识(约400字)2.1 索引的使用索引是优化查询性能的重要手段之一。
在表中创建适当的索引可以加快查询速度。
需要注意的是,索引的创建需要根据具体的查询需求和数据特征进行选择。
索引字段应该选择在查询中使用频率较高的列,并且避免过多的索引,以免增加维护成本。
2.2 SQL语句的编写与书写风格合理的SQL语句编写和书写风格能够提高查询性能。
应避免使用通配符查询,尽量使用具体的条件进行查询。
同时,避免使用SQL中的函数,尽量使用简单的操作符,减少不必要的计算和转换操作。
2.3 数据库范式设计合理的数据库范式设计可以减少冗余数据,提高数据查询的效率。
通过将数据分解为多个关联的表,可以避免数据重复,从而减少在查询过程中对重复数据的计算和传输。
3. SQL优化常见问题和解决方案(约800字)3.1 查询中的表连接优化当查询需要多个表之间进行连接时,选择合适的连接类型是重要的。
根据数据量和查询结果的大小,可以选择INNER JOIN、LEFT JOIN或者RIGHT JOIN等连接方式。
另外,可以考虑对经常进行连接操作的字段添加索引,加快连接过程。
3.2 子查询的优化子查询在某些情况下可以帮助我们实现复杂的查询逻辑,但是过多的子查询会增加系统的负载和查询时间。
为了优化子查询,可以考虑将子查询转换为连接查询、使用临时表或者使用WITH语句。
3.3 适当使用优化器提示Oracle数据库提供了优化器提示(Hint)功能,可以手动控制查询语句的执行计划。
oracle基础面试题面对 Oracle 基础面试,我们需要理解 Oracle 数据库与 SQL 语言的基础概念和操作,下面列举了一些常见的基础面试题:1. 什么是 Oracle 数据库?Oracle 数据库是一种关系型数据库管理系统(RDBMS),它能够存储和管理大量的结构化数据,并提供高效且安全的数据操作和管理。
2. 什么是 SQL 语言?SQL(Structured Query Language)语言是一种操作关系型数据库的标准化语言,包括数据查询、修改、更新、删除等操作。
3. 什么是表?表是 Oracle 数据库中的一种基本数据结构,它可以包含多个列和行,列表示数据的属性,行表示数据记录。
4. 什么是视图?视图是一种虚拟表,它是由查询语句生成的,可以基于现有的表或其他视图进行定义。
使用视图可以对数据进行更为灵活的查询和操作,同时也可以保护数据的安全性。
5. 什么是索引?索引是一种优化数据库查询速度的机制,它可以使数据库系统更快地查找和访问特定的数据行。
在查询大量数据时,使用索引可以显著提高查询响应速度。
6. Oracle 中有哪些数据类型?Oracle 支持多种数据类型,包括数值型、字符型、日期型、二进制型等等。
不同数据类型用于存储不同类型的数据值。
7. 什么是 SQL 查询语句?SQL 查询语句是一种用于查询数据库中数据的语句,包括 SELECT、FROM、WHERE 等多个子句。
查询语句可以根据需要检索和过滤特定数据,也可以对多个数据表进行 JOIN 操作。
8. 什么是关系型数据库模型?关系型数据库模型是一种基于关系(即表)的模型,它使用表、行、列、键等概念将数据组织成一种结构化形式,方便进行管理、操作和查询。
9. 数据库中如何实现事务管理?事务是一组操作序列,要么全部执行,要么全部回滚。
Oracle 数据库提供了多种事务管理机制,包括自动提交、手动提交、事务回滚、事务隔离级别等等。
1. ORACLE用来判断列值是否为空的操作符是____A ==NULLB IS NULLC AS NULLD NULLIS2 分析以下的SQL命令SELECT ,FROM inventory i, manufacturer mWHERE =ORDER BY ;如何修改上述命令使其成功执行()A ORDER BY descriptionB ORDER BYC WHERE =ORDER BYD 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 WHERE PRICE>=500;4. 分析以下SQL 命令:SELECT priceFROM inventoryWHERE price BETWEEN 1 AND 50AND (price IN(55, 30, 95);命令执行后的输出结果是:()A 55B 30C 95D NULL5. 分析以下的SQL 命令:SELECT manufacturer_idFROM inventoryWHERE 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 mWHERE (+) = ;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 最后执行?答案:concat12. 分析以下的SQL命令:SELECT *FROM productWHERE LOWER(description) = ‘CABLE’;命令能否执行是否有结果返回为什么?答案:命令可以执行,没有结果返回,因为查询条件中的LOWER把查询列值改为小写,而等号右侧为大写,所以不会有结果返回。
13. 在PLAN表中有一列为SPECIES_ID ,该列与SPECIES 表的ID列对应,但后者包含空值,要想在显示结果中包含SPECIES 表的ID列为空值的行的信息,用那种连接条件可以实现?答案:外连接14. 分析以下的SQL 命令:SELECT ,FROM inventory i, inventory mWHERE = ;该命令中使用的连接条件是()连接答案:自连接15 .外连接的符号可以放在连接条件的哪边,可以两边同时使用吗?答案:放在包含空值的一边,不可以两边同时使用16. 如果用等值连接来查询5张表内的信息,至少需要几个连接条件?答案:至少需要4个连接条件。
17. 分析以下的SQL 命令:SELECT ,FROM inventory i, manufacturer mWHERE =ORDER BY 1;该命令执行结果的排序是按那一列的值排序的?答案:按inventory表的id_number列排序18. 如果在where子句中有两个条件要同时满足,应该用以下哪个逻辑符来连接答案 c19. 外连接的条件可以放在以下的那一个子句中BYBY答案 B20. 在从两个表中查询数据时,连接条件要放在哪个子句中BY答案 B21 用以下哪个子句来限制分组统计结果信息的显示BYBY答案 D22. 数据库中的TEACHER 表的结果如下:ID NUMBER(7) PKSALARY 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 teacherGROUP BY subject_id;两个命令的显示结果相同吗哪个命令显示的结果会多些?答案:不同,命令2会返回更多的结果23. 如果想对分组统计的结果信息进行筛选,用where 条件子句能实现吗如果不行该用什么子句实现?答案:用where子句不能实现,应该用having 子句24. 以下需求中哪个需要用分组函数来实现?A.把ORDER表中的定单时间显示成‘DD MON YYYY’ 格式B.把字符串‘JANUARY 28, 2000′ 转换成日期格式C.显示PRODUCT 表中的COST 列值总量D.把PRODUCT表中的DESCRIPTION列用小写形式显示答案 C25. 用以下的SQL语句查询数据库:SELECT id_number “Part Number”, SUM(price * quantity) TOTAL, descriptionFROM inventoryWHERE price >ORDER BY “Part Number”, 3;哪一句会产生错误?INVENTORYPRICE >BY “PART NUMBER”, 3;id_number “Part Number”, SUM(price * quantity) TOTAL, description答案 D26. 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 BY28. 分析以下的SQL命令SELECT id_number “Part Number”, SUM(price) “Price”FROM inventoryWHERE price >GROUP BY “Part Number”ORDER BY 2;哪一个子句会产生错误如何修改答案:第四句GROUP BY “Part Number”会产生错误,应改为GROUP BY id_number29. 在单行子查询中,子查询的返回结果为多少,返回2行可以吗?答案:只能返回一行,否则会出错。
30. 以下操作符中哪个可以用做单行简单查询的操作符A.=答案 A31. 分析以下的SQL 命令:SELECT id_numberFROM inventoryWHERE manufacturer_id IN(SELECT manufacturer_idFROM inventoryWHERE price <OR price > ;该子查询的能否执行,是否有语法错误?答案:没有语法错误,可以执行为32. 分析以下SQL命令:SELECT employee_id, nameFROM employeeWHERE employee_id NOT IN (SELECT employee_idFROM employeeWHERE department_id = 30AND job = ‘CLERK’);如果子查询返回空值,结果会是什么样?答案没有结果返回。
33. 如果用户用UPDATE 命令修改了表中的数据值,是否可以恢复回来?答案:如果事务没有提交可以用ROLLBACK 恢复回来。
34.用户对某表中的数据做修改操作,还没有提交,此时机器断电,修改结果是否能保存在数据库中?答案:不能,因为非正常结束的事务会被ORACLE 回滚掉35. 以下那些命令可以暗含提交操作?答案 A36. 那种类型的约束可以自动创建索引?答案:UNIQUE ,PRIMART KEY37 哪中类型的约束只能定义在列级A. CHECKNULLKEYKEY答案 C38. 可以在以下哪个对象上创建视图(选择两个)答案A,C39. 分析以下SQL 命令:CREATE FORCE VIEW parts_vu (company, contact)AS SELECT manufacturer_name, contact_nameFROM inventoryWITH 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 mWHERE = ;SELECT , , ,FROM personnel p, personnel mWHERE = ;两个的执行结果一样吗?答案一样,但格式不同41. 如果一个表中的数据包含许多空值,是否适合建索引?答案适合42. 分析以下命令CREATE PUBLIC SYNONYM partsFOR ;它的作用是什么?为用户marilyn的inventory 对象(不一定是表)建一个同义词或叫别名43.分析以下的SQL命令CREATE SEQUENCE line_item_idSTART WITH 10001MAXVALUE 9NOCYCLE;请问这个序列NOCYCLE关键字的含义是什么?答案:当序列的值增长到最大值的时候,会从1001开始从新使用44.DEPARTMENT 表的结构如下:DEPT_ID NUMBER(9)DEPT_NAME VARCHAR2(20)REGION_ID NUMBER(9)REGION_ID 列有一个外键约束,参照REGION 表,用下面的SQL语句修改DEPARTMENT table 表UPDATE departmentSET dept_id = 6546,region_id = 9705WHERE dept_id = 8940;产生以下的错误信息:ORA-02291: integrity constraint (SYS_C23) violated – parent key not found错误可能会在那一行?答案:可能在region_id = 9705这一行。