oracle习题及答案

合集下载

oracle练习题及答案

oracle练习题及答案

oracle练习题及答案Oracle练习题及答案Oracle是一种强大的关系数据库管理系统,被广泛应用于企业级应用程序和数据管理中。

为了帮助大家更好地掌握Oracle数据库的知识,以下是一些Oracle练习题及答案,希望能够帮助大家更好地理解和掌握Oracle数据库的知识。

1. 什么是Oracle数据库?Oracle数据库是一种关系数据库管理系统,由美国Oracle公司开发。

它是一种高性能、可靠性高的数据库系统,被广泛应用于企业级应用程序和数据管理中。

2. Oracle数据库的特点有哪些?Oracle数据库具有以下特点:高性能、高可用性、可伸缩性、安全性高、灵活性强、易管理等。

3. 如何创建一个新的数据库用户?在Oracle数据库中,可以使用以下SQL语句来创建一个新的数据库用户:```CREATE USER username IDENTIFIED BY password;```4. 如何查看Oracle数据库中所有的表?可以使用以下SQL语句来查看Oracle数据库中所有的表:```SELECT table_name FROM user_tables;```5. 如何在Oracle数据库中插入一条新的记录?可以使用以下SQL语句来在Oracle数据库中插入一条新的记录:```INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);```6. 如何在Oracle数据库中更新一条记录?可以使用以下SQL语句来在Oracle数据库中更新一条记录:```UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;```7. 如何在Oracle数据库中删除一条记录?可以使用以下SQL语句来在Oracle数据库中删除一条记录:```DELETE FROM table_name WHERE condition;```通过以上Oracle练习题及答案的学习,相信大家对Oracle数据库有了更深入的了解。

oracle练习题及答案

oracle练习题及答案

o r a c l e练习题及答案(总7页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--试题一一、填空题(每小题4分,共20分)1、数据库管理技术经历了___人工管理、文件系统、数据库系统__三个阶段2、数据库三级数据结构是:外模式、模式、内模式3、Oracle数据库中,SGA由_数据库缓冲区,重做日志缓冲区,共享池组成4、在Oracle数据库中,完正性约束类型有:Primay key约束。

Foreign key约束,Unique约束,check约束,not need约束5、PL/SQL中游标操作包括:声明游标,打开游标,提取游标,关闭游标二、正误判断题(每小题2分,共20分)1、数据库中存储的基本对象是数据(T)2、数据库系统的核心是DBMS(T)3、关系操作的特点是集合操作(T)4、关系代数中五种基本运算是并、差、选择、投影、连接(F)5、Oracle进程就是服务器进程(F)6、oraclet系统中SGA所有用户进程和服务器进程所共享(T)7、oracle数据库系统中数据块的大小与操作系统有关(T)8、oracle数据库系统中,启动数据库和第一步是启动一个数据库实例(T)9、PL/SQL中游标的数据是可以改变的(F)10、数据库概念模型主要用于数据库概念结构设计(T)三、简答题(每小题7分,共35分)1、何谓数据与程序的逻辑独立性和物理独立性2、试述关系代数中等值连接与自然连接的区别与联系3、何谓数据库,数据库设计一般分为哪些阶段4、简述Oracle逻辑数据库的组成5、试任举一例说明游标的使用方法五、设有雇员表emp(empno,ename,age,sal,tel,deptno),其中:empno-----编号,name------姓名,age -------年齡,sal-----工资,tel-----电话deptno-----部门号。

请按下列要求分别晨SQL*PLUS下编程。

oracle练习题及答案

oracle练习题及答案

oracle练习题及答案Oracle练习题及答案Oracle数据库是全球最受欢迎的关系型数据库管理系统之一,广泛应用于企业级应用程序开发和数据管理。

为了提高对Oracle数据库的理解和应用能力,下面将提供一些常见的Oracle练习题及其答案。

1. 查询表中的所有数据答案:使用SELECT语句可以查询表中的所有数据,例如:SELECT * FROM 表名;2. 查询表中的特定列数据答案:使用SELECT语句并指定需要查询的列名,例如:SELECT 列名1, 列名2 FROM 表名;3. 查询表中满足特定条件的数据答案:使用SELECT语句并使用WHERE子句来指定条件,例如:SELECT * FROM 表名 WHERE 列名 = 值;4. 对查询结果进行排序答案:使用SELECT语句并使用ORDER BY子句来指定排序的列和排序方式,例如:SELECT * FROM 表名 ORDER BY 列名 ASC/DESC;5. 对查询结果进行分组答案:使用SELECT语句并使用GROUP BY子句来指定分组的列,例如:SELECT 列名1, 列名2 FROM 表名 GROUP BY 列名1;6. 查询表中的唯一数据答案:使用SELECT DISTINCT语句可以查询表中的唯一数据,例如:SELECT DISTINCT 列名 FROM 表名;7. 查询表中的前N条数据答案:使用SELECT语句并使用ROWNUM关键字来限制查询结果的行数,例如:SELECT * FROM 表名 WHERE ROWNUM <= N;8. 使用聚合函数进行数据统计答案:使用聚合函数如SUM、AVG、COUNT等可以对数据进行统计,例如:SELECT COUNT(*) FROM 表名;9. 进行多表查询答案:使用SELECT语句并使用JOIN关键字来连接多个表,例如:SELECT * FROM 表名1 JOIN 表名2 ON 表名1.列名 = 表名2.列名;10. 更新表中的数据答案:使用UPDATE语句可以更新表中的数据,例如:UPDATE 表名 SET 列名 = 值 WHERE 条件;11. 删除表中的数据答案:使用DELETE语句可以删除表中的数据,例如:DELETE FROM 表名 WHERE 条件;12. 创建新表答案:使用CREATE TABLE语句可以创建新表,例如:CREATE TABLE 表名 (列名1 数据类型, 列名2 数据类型, ...);13. 修改表结构答案:使用ALTER TABLE语句可以修改表的结构,例如:ALTER TABLE 表名 ADD 列名数据类型;14. 删除表答案:使用DROP TABLE语句可以删除表,例如:DROP TABLE 表名;以上是一些常见的Oracle练习题及其答案,希望能够帮助读者更好地理解和应用Oracle数据库。

oracle练习题及答案

oracle练习题及答案

oracle练习题及答案Oracle练习题及答案Oracle是一种广泛使用的关系型数据库管理系统,它具有强大的数据处理和管理能力。

对于想要提升自己的数据库技能的人来说,练习题是一个非常有效的学习方法。

通过解答一系列的练习题,可以帮助我们更好地理解Oracle的使用和原理。

下面是一些常见的Oracle练习题及其答案,供大家参考。

1. 查询一个表中所有的数据答案:可以使用SELECT语句来查询一个表中的所有数据。

例如,假设我们有一个名为"employees"的表,可以使用以下语句来查询所有的数据:SELECT * FROM employees;2. 查询一个表中特定列的数据答案:如果我们只想查询一个表中特定列的数据,可以使用SELECT语句,并在其中指定要查询的列名。

例如,如果我们只想查询"employees"表中的"first_name"和"last_name"列,可以使用以下语句:SELECT first_name, last_name FROM employees;3. 查询满足特定条件的数据答案:如果我们只想查询满足特定条件的数据,可以在SELECT语句中使用WHERE子句来指定条件。

例如,如果我们只想查询"employees"表中工资大于5000的员工,可以使用以下语句:SELECT * FROM employees WHERE salary > 5000;4. 对查询结果进行排序答案:如果我们想对查询结果进行排序,可以在SELECT语句中使用ORDER BY子句,并指定要排序的列名。

例如,如果我们想按照"employees"表中的"last_name"列进行升序排序,可以使用以下语句:SELECT * FROM employees ORDER BY last_name ASC;5. 对查询结果进行分组答案:如果我们想对查询结果进行分组,可以在SELECT语句中使用GROUP BY 子句,并指定要分组的列名。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.查询工资大于12000的员工姓名和工资Select last_name||' '||first_name,salary from employees where salary >12000;2.查询员工号为176的员工的姓名和部门号Select last_name||' '||first_name,department_id from employees where employee_id=176;3.选择工资不在5000到12000的员工的姓名和工资Select last_name||' '||first_name,salary from employees where salary not between 5000 and 12000;4.选择雇用时间在1998-02-01到1998-05-01之间的员工姓名,job_id和雇用时间Select last_name||' '||first_name,job_id,hire_date from employees where hire_date between '1-2月-98' and '1-5月-98';5.选择在20或50号部门工作的员工姓名和部门号Select last_name||' '||first_name,department_id from employees where department_id in (20,50);6.选择在1994年雇用的员工的姓名和雇用时间Select last_name||' '||first_name,hire_date from employees where hire_date like '%94';7.选择公司中没有管理者的员工姓名及job_idSelect last_name||' '||first_name,job_id from employees where Manger_id is null;8.选择公司中有奖金的员工姓名,工资和奖金Select last_name||' '||first_name,salary,commission_pct from employees where commission_pct is not null;9.选择员工姓名的第三个字母是a的员工姓名Select last_name||' '||first_name from employees where last_name||' '||first_name like '___a%';10.选择姓名中有字母a和e的员工姓名Select last_name||' '||first_name from employees where last_name||first_name like '%a%e%' or last_name||first_name like '%e%a%';多表查询11.显示所有员工的姓名,部门号和部门名称。

Select st_name,d.department_id,d.department_name from employeese , departments d where (e.department_id=d.department_id);12.查询90号部门员工的job_id和90号部门的location_idSelect e.job_id,d.location_id from employees e, departments d wheree.department_id=d.deparement_id and d.department_id=90;13.选择所有有奖金的员工的last_name , department_name , location_id , citySelect st_name , d.department_name , l.location_id , city from employees e,departments d,locations l where e.department_id=d.department_id AND d.location_id=l.location_idAND commission_pct is not null;14.选择在Toronto工作的员工的last_name , job_id , department_id , department_nameSelect st_name , e.job_id , d.department_id , d.department_name from employees e,departments d ,locations l where e.department_id=d.department_id AND d.location_id=l.location_id AND l.city='Toronto';15.选择所有员工的姓名,员工号,以及他的管理者的姓名和员工号,结果类似于下面的格式Select e.employee_id "employees",st_name "Emp#",d.manager_id "Mgr#",st_name "manger" from employees e,employees d wheree.manager_id=d.employee_id(+);6. 查询各部门员工姓名和他们的同事姓名,结果类似于下面的格式Select e.department_id "Department_id", st_name "Last_name", st_name "colleague" from employees e join employees d on(d.department_id=e.department_id) where st_name<>st_name;分组查询16.组函数处理多行返回一行(true)17.组函数不计算空值(false)18.where子句在分组之前对检索进行过滤( true)19.查询公司员工工资的最大值,最小值,平均值,总和Select max(salary),min(salary),avg(salary),sum(salary) from employees;20.查询各job_id的员工工资的最大值,最小值,平均值,总和Select max(salary),min(salary),avg(salary),sum(salary) from employees group by job_id;21.选择具有各个job_id的员工人数Select job_id,count(*) from employees group by job_id;22.查询员工最高工资和最低工资的差距(DIFFERENCE)Select max(salary)-min(salary) "DIFFERENCE" from employees;23.查询各个管理者手下员工的最低工资,其中最低工资不能低于6000,没有管理者的员工不计算在内Select manager_id,min(salary) from employees where manager_id is not null group by manager_id having min(salary) >=6000;24.查询所有部门的名字,location_id,员工数量和工资平均值Selectd.department_name,d.location_id,count(e.employee_id),avg(e.salary) from employees e,departments d where e.department_id(+)=d.department_id group byd.location_id,d.department_name;25.查询公司的人数,以及在1995-1998年之间,每年雇用的人数,结果类似下面的格式Select count(employee_id),to_char(hire_date,'yyyy') "y";count(*) from employees where to_char(hire_date,'yyyy') between 1995 and 1998 group by to_char(hire_date,'yyyy') order by y;Select子查询26.查询和zlotkey相同部门的员工姓名和雇用日期Select last_name,hire_date,department_id from employees where department_id=(select department_id from employees where lower(last_name)='zlotkey') ;27.查询工资比公司平均工资高的员工的员工号,姓名和工资。

Select employee_id,last_name,salary from employees where salary>(select avg(salary) from employees );28.查询和姓名中包含字母u的员工在相同部门的员工的员工号和姓名Select employee_id,last_name,department_id from employees where department_id =any (select department_id from employees where lower(last_name) like '%u%');29.查询在部门的location_id为1700的部门工作的员工的员工号,department_id和job_idSelect employee_id,department_id,job_id from employees where department_id = any (select department_id from departments where location_id=1700);30.查询管理者是king的员工姓名和工资Select last_name,salary from employees where manager_id=(select employee_id from employees where last_name='King');创建和管理表31.创建表deptCreate table dept( id Number(7),name varchar(25));32.将表departments中的数据插入表dept中Insert into dept(SELECT department_id, department_nameFROM departments);33.创建表empCreate table emp (id Number(7),First_name varchar(25),Last_name varchar(25),Dept_id number(7));34.将列Last_name的长度增加到50Alter table emp modify (last_name varchar2(50));35.查询数据字典视图user_tables检查刚才的操作Select * from user_tables;36.根据表employees创建employees2Create table employees2 asselect * from employees;37.删除表empDrop table emp;38.将表employees2重命名为empRename employees2 to emp;39.在表dept和emp中添加新列test_column,并检查所作的操作Alter table emp add(test_column varchar(10));单行函数40.显示系统时间Select to_char(sysdate 'DD-MON-YYYY')from dual;41.查询员工号,姓名,工资,以及工资提高百分之20%后的结果(newsalary)Select employee_id,last_name||' '||first_name,salary,salary*1.2 newsalary from employees;42.将员工的姓名按首字母排序,并写出姓名的长度(length)Select last_name,length(last_name) from employees order by substr(last_name,1,1) desc;43.查询各员工的姓名,并显示出各员工在公司工作的月份数(worked_month)。

相关文档
最新文档