Oracle练习题

合集下载

Oracle经典练习题及标准答案

Oracle经典练习题及标准答案

Oracle经典练习题及标准答案oracle经典练习sql/*1、选择在部门30中员工的所有信息*/select * from scott.emp where deptno = '30'/*2、列出职位为(MANAGER)的员工的编号,姓名*/select empno, ename from scott.emp where job = 'MANAGER'/*3、找出奖金高于工资的员工*/select * from scott.emp where comm > sal/*4、找出每个员工奖金和工资的总和*/select ename, sal + nvl(comm, 0) from scott.emp/*5、找出部门10中的经理(MANAGER)和部门20中的普通员工(CLERK) */select *from scott.empwhere deptno = '10'and job = 'MANAGER'unionselect *from scott.empwhere job = 'CLERK'and deptno = '20'/*6、找出部门10中既不是经理也不是普通员工,而且工资大于等于2000的员工*/ select *from scott.empwhere job != 'MANAGER'and job != 'CLERK'and sal > 2000/*7、找出有奖金的员工的不同工作*/select distinct(job) from scott.emp where comm is not null /*8、找出没有奖金或者奖金低于500的员工*/select *from scott.empwhere comm is not nulland comm > 500/*9、显示雇员姓名,根据其服务年限,将最老的雇员排在最前面*/select enamefrom scott.emporder by (months_between(sysdate, hiredate) / 12) descselect ename,hiredate from scott.emp order by hiredate/*10、找出每个月倒数第三天受雇的员工*/select * from scott.emp where hiredate = last_day(hiredate) - 2/*11、分别用case和decode函数列出员工所在的部门,deptno=10显示'部门10',deptno=20显示'部门20'deptno=30显示'部门30'deptno=40显示'部门40'否则为'其他部门'*/select ename,case deptnowhen 10 then'部门10'when 20 then'部门20'when 30 then'部门30'when 40 then'部门40'else'其他部门'end 工资情况from scott.empselect ename,decode(deptno,10,'部门10',20,'部门20',30,'部门30',40,'部门40','其他部门') 工资情况from scott.emp/*12、分组统计各部门下工资>500的员工的平均工资*/select avg(sal) from scott.emp where sal > 500 group by deptno/*13、统计各部门下平均工资大于500的部门*/select deptno from scott.emp group by deptno having avg(sal) > 500 /*14、算出部门30中得到最多奖金的员工奖金*/ select max(comm) from scott.emp where deptno = 30/*15、算出部门30中得到最多奖金的员工姓名*/select enamefrom scott.empwhere deptno = 30and comm = (select max(comm) from scott.emp where deptno = 30) /*16、算出每个职位的员工数和最低工资*/select count(ename), min(sal), job from scott.emp group by job/*17、列出员工表中每个部门的员工数,和部门no */select count(ename), deptno from scott.emp group by deptno/*18、得到工资大于自己部门平均工资的员工信息*/select *from scott.emp ewhere sal > (select avg(sal) from scott.emp where e.deptno = deptno)select *from scott.emp e1,(select avg(sal) sals, deptno from scott.emp group by deptno) e2where sal > salsand e1.deptno = e2.deptno/*19、分组统计每个部门下,每种职位的平均奖金(也要算没奖金的人)和总工资(包括奖金) */select avg(nvl(comm,0)), sum(sal + nvl(comm, 0))from scott.empgroup by deptno,job/*20、笛卡尔集*/select * from scott.emp, scott.dept/*21、显示员工ID,名字,直属主管ID,名字*/select empno,ename,mgr,(select ename from scott.emp e1 where e1.empno = e2.mgr) 直属主管名字from scott.emp e2/*22、DEPT表按照部门跟EMP表左关联*/select *fromscott.dept, scott.empwherescott.dept.deptno = scott.emp.deptno(+)/*23、使用此语句重复的内容不再显示了*/select distinct (job) from scott.emp/*24、重复的内容依然显示*/select *from scott.empUNION ALLselect * from scott.emp/*23和24题和22题是一样的*//*25、只显示了两个表中彼此重复的记录。

史上最全Oracle数据库基本操作练习题(含答案)

史上最全Oracle数据库基本操作练习题(含答案)

Oracle基本操作练习题使用表:员工表(emp):(empno NUMBER(4)notnull,--员工编号,表示唯一ename VARCHAR2(10),--员工姓名job VARCHAR2(9),--员工工作职位mgr NUMBER(4),--员工上级领导编号hiredate DATE,--员工入职日期sal NUMBER(7,2),--员工薪水comm NUMBER(7,2),--员工奖金deptno NUMBER(2)—员工部门编号)部门表(dept):(deptno NUMBER(2)notnull,--部门编号dname VARCHAR2(14),--部门名称loc VARCHAR2(13)—部门地址)说明:增删改较简单,这些练习都是针对数据查询,查询主要用到函数、运算符、模糊查询、排序、分组、多变关联、子查询、分页查询等。

建表脚本.txt建表脚本(根据需要使用):练习题:1.找出奖金高于薪水60%的员工信息。

SELECT * FROM emp WHERE comm>sal*0.6;2.找出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料。

SELECT * FROM emp WHERE (JOB='MANAGER' AND DEPTNO=10) OR (JOB='CLERK' AND DEPTNO=20);3.统计各部门的薪水总和。

SELECT deptno,SUM(sal) FROM emp GROUP BY deptno;4.找出部门10中所有理(MANAGER),部门20中所有办事员(CLERK)以及既不是经理又不是办事员但其薪水大于或等2000的所有员工的详细资料。

SELECT * FROM emp WHERE (JOB='MANAGER' AND DEPTNO=10) OR (JOB='CLERK' AND DEPTNO=20) OR (JOB NOT IN('MANAGER','CLERK') AND SAL>2000);5.列出各种工作的最低工资。

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数据库试题100题(附答案)

Oracle数据库试题100题(附答案)

Oracle数据库试题100题(附答案)1.当Oracle服务器启动时,下列哪种文件不是必须的(D)。

A.数据文件B.控制文件C.日志文件D.归档日志文件2.在Oracle中,当用户要执行SELECT语句时,下列哪个进程从磁盘获得用户需要的数据(B)。

A.用户进程B.服务器进程C.日志写入进程(LGWRD.检查点进程(CKPT)3.在Oracle中,一个用户拥有的所有数据库对象统称为(B)。

A.数据库B.模式C.表空间D.实例4.在Oracle中,有一个教师表teacher的结构如下:ID NUMBER(5)NAME V ARCHAR2(25)EMAIL VARCHAR2(50)下面哪个语句显示没有Email地址的教师姓名(C)。

A.SELECT name FROM teacher WHERE email = NULL;B.SELECT name FROM teacher WHERE email NULL;C.SELECT name FROM teacher WHERE email IS NULL;D.SELECT name FROM teacher WHERE email IS NOT NULL;5.在Oracle数据库的逻辑结构中有以下组件:A 表空间B 数据块C 区D 段这些组件从大到小依次是(B)。

A.A→B→C→DB.A→D→C→BC.A→C→B→DD.D→A→C→B6.在Windows操作系统中,Oracle的(A)服务监听并接受来自客户端应用程序的连接请求。

A.OracleHOME_NAMETNSListenerB.OracleServiceSIDC.OracleHOME_NAMEAgentD.OracleHOME_NAMEHTTPServer7.在Oracle 中创建用户时,若未提及DEFAULT TABLESPACE关键字,则Oracle 就将(B)表空间分配给用户作为默认表空间。

oracle考试题--资料

oracle考试题--资料

得分评卷人一、不定项选择题 ( 本大题共 25 道小题,每小题 2,共 50 分。

请将正确选项前的字母填在答题栏内。

)第 1-10 题C B D D AB C B B ABD AC第 11-20 题B B A B B ABC C C C B第21-25题CB BD D C1、___C___是指组成表的各列的名称及数据类型,也就是日常表格的“栏目信息”。

(选择 1项)A)表型B)记录C)字段D)关键字2、下面有关 HAVING子句描述错误的是 ____B___。

( 选择 1 项)A)HAVING子句必须与 GROUPBY子句同时使用,不能单独使用。

B)使用 HAVING子句的同时不能使用WHERE子句。

C)使用 HAVING子句的同时可以使用WHERE子句。

D)使用 HAVING子句的作用是限定分组的条件。

3、已知关系:厂商(厂商号,厂名)PK=厂商号产品(产品号,颜色,厂商号)PK=产品号, FK=厂商号,表如下:厂商产品厂商号厂名C01产品号颜色厂商号宏达P01红C01C02立仁P02黄C03C03广源若再往产品表中插入如下记录:I ( P03,红, C02) II(P01,蓝,C01)III(P04,白,C04)IV(P05,黑, null)能够插入的记录是___D__。

( 选择1 项)A)I,II, IV B)I, III C)I, II D)I,IV4、 GRANT语句是 __D___语句? ( 选择 1 项)A)DQL B)DML C)DDL D)DCL5、在以下哪几种情况下使用唯一约束而不使用主键约束:____AB___( 选择 2项)A)列或几个列的组合不是主键B)列的值允许为空值C)列有外键引用D)列的值不允许为空值6、‘ _P%’表示 ___C____。

(选择 1 项)A)以 P开头 B) 以 P 结束 C)第二个字母是 P D) 右面第二个字母是 P。

7、在以下哪种情况下使用主键约束而不使用唯一约束__B_____:(选择 1 项)A)列的值允许为空值B)列有外键引用C)列的值不允许为空值D)以上都不对8、表 userInfo 中有三个字段( userID 、userName、userAddress ),现在要删除字段 userAddress ,正确的命令是 ____B___。

oracle期末考试卷

oracle期末考试卷

oracle期末考试卷Oracle期末考试卷一、选择题(每题2分,共20分)1. Oracle数据库的默认端口号是什么?A. 1521B. 3306C. 1433D. 54322. 在Oracle数据库中,以下哪个命令用于查看当前数据库的所有用户?A. SELECT USER FROM DUAL;B. SELECT DISTINCT USERNAME FROM DBA_USERS;C. SELECT * FROM ALL_USERS;D. SELECT * FROM USER_USERS;3. 以下哪个不是Oracle数据库的体系结构组件?A. 数据库B. 实例C. 表空间D. 索引4. Oracle数据库的哪个组件负责管理数据的存储和检索?A. SQLB. PL/SQLC. RDBMSD. DBMS5. 在Oracle数据库中,以下哪个命令用于创建一个新的表?A. CREATE TABLE;B. CREATE DATABASE;C. CREATE INDEX;D. CREATE VIEW;6. Oracle数据库中,哪个命令用于删除一个表?A. DROP TABLE;B. REMOVE TABLE;C. DELETE TABLE;D. ERASE TABLE;7. Oracle数据库中,哪个命令用于查看表的结构?A. DESCRIBE table_name;B. EXPLAIN table_name;C. SHOW table_name;D. SELECT table_name;8. 在Oracle数据库中,以下哪个命令用于添加新的列到一个已存在的表?A. ADD COLUMN column_name column_type;B. INSERT COLUMN column_name column_type;C. CREATE COLUMN column_name column_type;D. APPEND COLUMN column_name column_type;9. Oracle数据库中,哪个命令用于更新表中的记录?A. UPDATE table_name SET column_name = new_value WHERE condition;B. MODIFY table_name SET column_name = new_value WHERE condition;C. CHANGE table_name SET column_name = new_value WHERE condition;D. ALTER table_name SET column_name = new_value WHERE condition;10. 在Oracle数据库中,以下哪个命令用于删除表中的记录?A. ERASE FROM table_name WHERE condition;B. REMOVE FROM table_name WHERE condition;C. DELETE FROM table_name WHERE condition;D. DROP FROM table_name WHERE condition;二、简答题(每题5分,共30分)1. 简述Oracle数据库的体系结构。

Oracle题库

Oracle题库

Oracle题库⼀、选择题1、对于Oracle数据库软件的应⽤,主要分为哪两⼤块(AB )。

〖2个答案〗A.开发B.管理C.安装D.调试2、以下哪项不是Oracle数据库物理组件的类型(D)。

〖1个答案〗A. 数据⽂件B. 控制⽂件C. ⽇志⽂件D. 表空间3、以下哪项不是Oracle数据库的逻辑组件的类型(D)。

〖1个答案〗A. 表空间B. 段C. 扩展区D. ⽇志⽂件4、关于数据控制语⾔中,收回所授予的权限的语句是(B)。

〖1个答案〗A. CreateB. RevokeC. GrantD. Update5、Oracle数据库中,取余数的运算符是(B)。

〖1个答案〗A. %B. modC. /D. ||6、Oracle数据库中,连接字符串的运算符是( D)。

〖1个答案〗A. +B. &C. isD. ||7、Oracle数据库中返回字符串长度的函数是(D)。

〖1个答案〗C. InStrD. Length8、Oracle数据库中按指定的精度进⾏四舍五⼊的函数是(C)。

〖1个答案〗A. SignB. TruncC. RoundD. Mod9、转换⽇期类型为字符串的转换函数是(C)。

〖1个答案〗A. to_dateB. to_datetimeC. to_charD. to_number10、在数据库中,对象Index表⽰(D)。

〖1个答案〗A.同义词B.表C.包D.索引11、关于通配符中的“%”,以下说法正确的两项是(BD)。

〖2个答案〗A. 代表任意⼀个字符,与Like结合使⽤B. 代表任意多个字符,与Like结合使⽤C. 代表任意⼀个字符,在Like后的表达式中只能使⽤⼀次“%”D. 代表任意多个字符,在Like后的表达式中可以使⽤多次“%”12、要统计某表中记录的总个数,以下哪项是正确的SQL语句(C)。

〖1个答案〗A. select Max(*) from 表名B. select Sum(*) from 表名C. select Count(*) from 表名D. select Min(*) from 表名13、要求表中数据的最⼤值,应使⽤什么函数(A)。

oracle练习题(打印版)

oracle练习题(打印版)

oracle练习题(打印版)### Oracle数据库练习题#### 一、选择题1. Oracle数据库中,哪个命令用于创建表?- A. CREATE TABLE- B. CREATE DATABASE- C. DROP TABLE- D. ALTER TABLE2. 以下哪个不是Oracle数据库的数据类型?- A. NUMBER- B. CHAR- C. DATE- D. IMAGE3. 在Oracle数据库中,哪个命令用于删除表?- A. DELETE FROM- B. DROP TABLE- C. REMOVE TABLE- D. ERASE TABLE4. Oracle数据库中,如何查看当前用户?- A. SELECT USER FROM DUAL;- B. SELECT CURRENT_USER FROM DUAL;- C. SELECT USERNAME FROM ALL_USERS;- D. SELECT CURRENT_USER FROM ALL_USERS;5. 以下哪个命令用于在Oracle数据库中创建索引?- A. CREATE INDEX- B. CREATE KEY- C. CREATE CONSTRAINT- D. CREATE UNIQUE#### 二、填空题1. 在Oracle数据库中,使用____命令可以查看表结构。

2. Oracle数据库中,使用____命令可以查看当前数据库的所有表。

3. 要删除Oracle数据库中的行,可以使用____命令。

4. Oracle数据库中,____用于存储二进制数据。

5. Oracle数据库中,____命令用于查看数据库中所有的索引。

#### 三、简答题1. 描述Oracle数据库中事务的ACID属性。

2. 解释Oracle数据库中的锁定机制。

3. 说明Oracle数据库中视图的作用。

#### 四、操作题1. 创建一个名为`Employees`的表,包含以下字段:- `EmployeeID` NUMBER(10) PRIMARY KEY,- `FirstName` VARCHAR2(50),- `LastName` VARCHAR2(50),- `HireDate` DATE,- `Salary` NUMBER(10, 2),- `DepartmentID` NUMBER(10).2. 向`Employees`表中插入以下数据:- `EmployeeID`: 1001, `FirstName`: 'John', `LastName`:'Doe', `HireDate`: '2023-01-01', `Salary`: 70000,`DepartmentID`: 101.- `EmployeeID`: 1002, `FirstName`: 'Jane', `LastName`:'Smith', `HireDate`: '2023-02-15', `Salary`: 50000,`DepartmentID`: 102.3. 编写一个查询,显示所有员工的姓名和工资,按工资从高到低排序。

《oracle数据库》练习题4

《oracle数据库》练习题4

练习题41、 选择题(每题1分,共20分)1. 有数据”oracle”分别存放到char(10)和varchar2(10)类型的字段中,其实际存储长度为( )A、 10 10B、66C、 10 6D、 6 102.ORACLE数据库物理结构包括以下三种文件,以下不属于的是( )A、系统文件B、日志文件C、数据文件D、控制文件3.下面四个语句中哪一个是正确的?( )A、 SELECT * , ENAME FROM EMP;B、 DELETE * FROM EMP;C、 SELECT DISTINCT EMPNO ,HIREDATE FROM EMP;D、 SELECT ENAME|SAL AS “name” FROM EMP ;4.更改oracle用户HR,使其变为不可用(锁定)状态( )A、 UPDATE USER HR ACCOUNT DISABLE ;B、 UPDATE USER HR ACCOUNT LOCK ;C、 ALTER USER HR ACCOUNT LOCK ;D、 ALTER USER HR ACCOUNT DISABLE ;5.在Oracle中,使用下列的语句:CREATE PUBLIC SYNONYM parts FOR Scott.inventory; 完成的任务是( )。

A、 需要给出schema被除去的对象名B、 指定了新的对象权限C、 指定了新的系统权限D、给Scott.inventory对象创建一个公用同义词parts6. ORACLE中,用来判断列值是否为空的操作符是( )A、 ==NULLB、IS NULLC、 AS NULLD、 NULLIS7.在CUSTOMER中有一列为单价(PRICE),写一个SELECT命令显示所有单价在500以上的查询语句( )A、SELECT * FROM CUSTOMER WHERE PRICE MORE THAN 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;8. 下列哪个命令是用于ORACLE中数据导出的 ( )A、expB、impC、inputD、output9.以下运算结果不为空值的是()A、12+NULLB、60*NULLC、NULL‖’NULL’D、12/(60+NULL)10.若用户要连接数据库,则该用户必须拥有的权限是()A、create tableB、create indexC、create sessionD、connect11.授予删除任何表的系统权限(DROP ANY TABLE)给user1,并使其能继续授该权限给其他用户,以下正确的SQL语句是()A、Grant drop any table to user1;B、Grant drop any table to user1 with admin option;C、Grant drop table to user1;D、Grant drop any table to user1 with check potion;12.要以自身的模式创建私有同义词,用户必须拥有( )系统权限。

oracle练习题

oracle练习题

ORACL复习题一、填空题:1、ORACLE数据库默认最高管理员账号是。

sys2、ORACLE数据库系统由、组成。

逻辑结构、物理结构和实例3、ORACLE数据库具有3种主要类型的文件,它们分别是:、、。

数据文件,控制文件,日志文件4、ORACLE内存结构主要分为、。

系统全局区,程序全局区5、ORACLE逻辑存储结构包括、、、。

块,区,段,表空间6、在SQL SELECT语句查询中,要去掉查询结果中的重复记录,应该使用_________关键字。

Distinct7、使用SQL语言的SELECT语句进行分组查询时,如果希望去掉不满足条件的分组,应当使用_________子句。

Having8、连接到ORACLE数据库的方法有、。

SQL*PLUS、OEM9、SCOTT用户的默认口令是:。

tiger10、SYS用户登录SQL*PLUS时,连接字符应该为。

数据库名AS sysdba11、安装ORACLE时,(是/否)一定要进行数据库实例的安装。

否12、要登录OEM,必须启动才行。

OracleDBConsoleORCL服务13、OUI工具用来安装和ORACLE组件。

卸载14、打开ORACLE安装目录下的install中的文件可以查看OEM、ISQL*PLUS的URL和端口号。

Portlist.ini15、每个数据库至少有一个系统表空间,被称为表空间。

system16、安装过程中进行了口令的设置,但是出现了口令有错的信息,是因为原因。

口令设置不符合ORACLE的约定17、EXP命令是用来进行文件的。

导出18、数据库可以使用工具进行创建。

DBCA19、登录ISQL*PLUS页面的默认端口号为。

556020、支持客户端应用程序到ORACLE数据库服务器网络会话的组件是。

ORACLE NET21.在SQL*PLUS中使用SQL*PLUS的命令可以显示表的结构信息。

22.所谓方案,就是一系列数据库对角的集合,是数据库中存储数据的一个逻辑表示。

《Oracle数据库应用》-练习题2

《Oracle数据库应用》-练习题2

《Oracle数据库应用》一、选择题(20分)1. 有一产品表(编号,名称,价格,数量,所属分类),下列语法不正确的是()A、select * from 产品表 where价格>1000B、select sum(价格) from 产品表 group by 所属分类 having max(价格)>1000C、select所属分类,sum(价格) from 产品表 where 价格>1000 group by 所属分类D、select所属分类,sum(价格) from 产品表 where max(价格)>1000 groupby 所属分类2.在建表时如果希望某列的值,在一定的范围内,应建什么样的约束?()A、primary keyB、uniqueC、checkD、not null3.你要在Oracle中定义SQL查询。

下列哪个数据库对象不能直接从select语句中引用?()A、表B、序列C、索引D、视图4. SQL *Plus中发出的下列语句:select ceil(256.342), floor(256.342), round(256.342), trunc(256.342) from dual; 下列哪个函数不返回结果256?()A、ceil()B、floor()C、round()D、trunc()5.在Oracle数据库的逻辑结构中有以下组件:A 表空间 B 数据块 C 区 D 段,这些组件从大到小依次是()。

A、表空间→数据块→区→段B、表空间→段→区→数据块C、表空间→区→数据块→段D、段→表空间→区→数据块6. 有数据”test”分别存放到char(10)和varchar2(10)类型的字段中,其实际存储长度为()A、 10 10B、 4 4C、 10 4D、 4 107.SQL语句中修改表结构的命令是()。

A、MODIFY TABLEB、MODIFY STRUCTUREC、ALTER TABLED、ALTER STRUCTURE8. DELETE FROM S WHERE 年龄>60语句的功能是______。

史上最全Oracle数据库基本操作练习题(含答案)

史上最全Oracle数据库基本操作练习题(含答案)

Oracl‎e基本操作‎练习题使用表:员工表(emp):(empno‎N UMBE‎R(4)notnu‎l l,--员工编号,表示唯一ename‎V ARCH‎A R2(10),--员工姓名job VARCH‎A R2(9),--员工工作职‎位mgrNU‎M BER(4),--员工上级领‎导编号hired‎a teDA‎T E,--员工入职日‎期salNU‎M BER(7,2),--员工薪水commN‎U MBER‎(7,2),--员工奖金deptn‎o NUMB‎E R(2)—员工部门编‎号)部门表(dept):(deptn‎o NUMB‎E R(2)notnu‎l l,--部门编号dname‎V ARCH‎A R2(14),--部门名称locVA‎R CHAR‎2(13)—部门地址)说明:增删改较简‎单,这些练习都‎是针对数据‎查询,查询主要用‎到函数、运算符、模糊查询、排序、分组、多变关联、子查询、分页查询等‎。

建表脚本.txt建表脚本(根据需要使‎用):练习题:1.找出奖金高‎于薪水60‎%的员工信息‎。

SELEC‎T * FROM emp WHERE‎comm>sal*0.6;2.找出部门1‎0中所有经‎理(MANAG‎E R)和部门20‎中所有办事‎员(CLERK ‎)的详细资料‎。

SELEC‎T* FROM emp WHERE‎(JOB='MANAG‎E R' AND DEPTN‎O=10) OR (JOB='CLERK‎' AND DEPTN‎O=20);3.统计各部门‎的薪水总和‎。

SELEC‎T deptn‎o,SUM(sal) FROM emp GROUP‎BY deptn‎o;4.找出部门1‎0中所有理‎(M ANAG‎E R),部门20中‎所有办事员‎(C LERK 以及既不是‎经理又不是‎办事员但其‎薪水大于或‎等2000‎的所有员工‎的‎)详细资料‎。

oracle练习题

oracle练习题

Oracle 练习题一、基本概念1. Oracle 数据库是一种什么类型的数据库管理系统?2. 请简述 Oracle 数据库的主要特点。

3. Oracle 数据库中的表空间有什么作用?4. 什么是 Oracle 数据库的实例?5. Oracle 数据库中的数据字典是什么?二、SQL 基础1. 数据定义语言(DDL)1. 如何创建一个名为 `employees` 的表,包含字段`employee_id`(整数型),`employee_name`(字符串型)和`salary`(浮点型)?2. 如何修改表 `employees`,增加一个 `department_id` 字段?3. 如何删除表 `employees`?4. 如何重命名表 `employees` 为 `staff`?2. 数据操纵语言(DML)1. 向 `employees` 表插入一条新记录,`employee_id` 为 1001,`employee_name` 为 '',`salary` 为 8000。

2. 更新 `employees` 表中 `employee_id` 为 1001 的记录,将`salary` 修改为 9000。

3. 删除 `employees` 表中 `employee_id` 为 1001 的记录。

4. 如何查询 `employees` 表中 `salary` 大于 8000 的所有员工信息?3. 数据查询语言(DQL)1. 查询 `employees` 表中所有员工的信息。

2. 查询 `employees` 表中 `department_id` 为 2 的所有员工信息。

3. 查询 `employees` 表中 `salary` 最低的员工信息。

4. 查询 `employees` 表中按 `salary` 升序排列的前 5 条记录。

4. 数据控制语言(DCL)1. 如何给用户 `user1` 授予对 `employees` 表的查询权限?2. 如何撤销用户 `user1` 对 `employees` 表的查询权限?3. 如何创建一个角色 `role1`,包含对 `employees` 表的增、删、改、查权限?4. 如何将角色 `role1` 授权给用户 `user2`?三、函数与表达式1. 如何使用 Oracle 函数计算 `employees` 表中所有员工的年薪?2. 编写一个查询,返回 `employees` 表中 `employee_name` 的长度。

Oracle测试题及答案

Oracle测试题及答案

Oracle试题(数据库技术及应用)学号姓名分数(一) 按照题意写出SQL语句(45分每题3分)本题用到下面三个关系表:借书卡card(cno卡号,name姓名,class班级)图书books(bno书号,bname书名,author作者,price 单价,quantity库存册数) 借书记录borrow (cno借书卡号,bno书号,rdate还书日期)注:限定每人每种书只能借一本;库存册数随借书、还书而改变。

1.写出建立borrow表的SQL语句,要求定义主码完整性约束和引用完整性约束。

create table card(cno char(6) primary key,name varchar2(10),class varchar2(12));create table books(bno char(8) primary key,bname varchar2(50),author varchar2(10),price number(5,3),quantity number(4));create table borrow(cno char(6) references card(cno) on delete cascade,bno char(8) references books(bno) on delete cascade,rdate date,primary key(cno,bno));2.找出借书超过5本的读者,输出借书卡号及所借图书册数。

select cno,count(*) 册数from borrowgroup by cnohaving count(*)>5;3.查询借阅了“水浒”一书的读者,输出姓名及班级。

select name,classfrom cardwhere cno in (select cnofrom borrowwhere bno=(select bnofrom bookswhere bname='水浒'));4.查询过期未还图书,输出借阅者(卡号)、书号及还书日期。

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期末考试试题及答案

号学线一、选择题:〔此题共个小题,每题分,共分〕20240名姓栏1 当Oracle效劳器启动时,以下哪种文件不是必须的()。

A.数据文件B.控制文件C.日志文件D.归档日志文件息2.在Oracle中,一个用户拥有的所有数据库对象统称为()。

A.数据库B.模式C.表空间D.实例信级班订3.在Oracle数据库的逻辑构造中有以下组件:1.表空间2.数据块3.区4.段级这些组件从大到小依次是〔〕。

生A. 1→2→3→4B.1→4→3→2C.1→3→2→4D. 4→1→3→2考业专4.以下哪个子句实现对一个结果集进展分组和汇总()。

A.HAVINGB.ORDERBYC.WHERED.GROUPBY5.在Oracle数据库中,()用户模式存储数据字典表和视图对象。

装A. SYSB. SYSTEMC. SCOTTD. SYSDBA6.以下不属于命名的PL/SQL块的是()。

A.程序包B.过程C.游标D.函数系7.在Oracle中创立用户时,假设未提及DEFAULT TABLESPACE关键字,那么Oracle就将〔〕表空间分配给用户作为默认表空间。

A.HRB.SCOTTC.SYSTEMD.SYS8.在Windows操作系统中,Oracle的()效劳是使用iSQL*Plus必须的。

A.OracleHOME_NAMETNSListenerB. OracleServiceSIDC.OracleHOME_NAMEAgentD. OracleHOME_NAMEServer2.以下哪个语句可以在SQL*Plus中直接调用一个过程()。

A. RETURNB. CALLC. SETD. EXEC10.如果效劳器进程无法在数据缓冲区中找到空闲块,为添加从数据文件中读出的数据块,那么系统会启动如下哪一个进程()A.CKPTB. DBWRC.LGWRD. SMON8.以下哪一个锁模式不属于Oracle()。

A.死锁B.排他锁C.行级共享锁D.共享锁9.有字符串数据〞test〞分别存放到char(10)和varchar2(10)类型的字段中,其实际存储长度为()A. 104B. 44C. 1010D. 41013.在Oracle中,当控制一个显式游标时,下面哪种命令包含INTO子句()。

oracle数据库期末考试试题及答案

oracle数据库期末考试试题及答案

oracle数据库期末考试试题及答案一、选择题(每题2分,共20分)1. 在Oracle数据库中,用于创建数据库表的命令是:A. CREATE DATABASEB. CREATE TABLEC. DROP TABLED. ALTER TABLE答案:B2. 下列哪个选项不是Oracle数据库的系统表?A. USER_TABLESB. DBA_TABLESC. ALL_TABLESD. EMPLOYEE答案:D3. 在Oracle数据库中,用于删除数据库表的命令是:A. DROP TABLEB. DELETE TABLEC. REMOVE TABLED. ERASE TABLE答案:A4. Oracle数据库中,哪个命令用于查询数据库中所有用户?A. SELECT * FROM USER_USERS;B. SELECT * FROM ALL_USERS;C. SELECT * FROM DBA_USERS;D. SELECT * FROM USER;答案:B5. 在Oracle数据库中,用于添加新列的命令是:A. ADD COLUMNB. INSERT COLUMNC. CREATE COLUMND. ALTER TABLE答案:D6. 下列哪个选项不是Oracle数据库的存储引擎?A. InnoDBB. Oracle RDBMSC. BDBD. Oracle ASM答案:A7. Oracle数据库中,用于更新表中数据的命令是:A. UPDATEB. CHANGEC. MODIFYD. ALTER答案:A8. Oracle数据库中,用于删除表中数据的命令是:A. DELETEB. REMOVEC. DROPD. ERASE答案:A9. 在Oracle数据库中,用于查询表中数据的命令是:A. SELECTB. QUERYC. FETCHD. GET答案:A10. Oracle数据库中,用于创建索引的命令是:A. CREATE INDEXB. CREATE KEYC. INDEXD. KEY答案:A二、填空题(每题2分,共20分)1. Oracle数据库的默认端口号是______。

ORACLE期末考试试题及答案

ORACLE期末考试试题及答案

ORACLE期末考试试题及答案一、选择题(每题2分,共40分)1. ORACLE数据库系统属于以下哪一种数据库类型?A. 关系型数据库B. 层次型数据库C. 网状型数据库D. 对象-关系型数据库答案:A2. 在ORACLE中,以下哪个命令用来创建一个表?A. CREATE TABLEB. CREATE VIEWC. CREATE INDEXD. CREATE SEQUENCE答案:A3. 数据库的三级模式结构包括以下哪几个层次?A. 外模式、概念模式、内模式B. 概念模式、内模式、物理模式C. 外模式、内模式、物理模式D. 外模式、概念模式、物理模式答案:A4. 在ORACLE中,以下哪个命令用来删除一个表?A. DROP TABLEB. DELETE TABLEC. DROP VIEWD. DELETE VIEW答案:A5. 数据库事务的四个特性包括以下哪些?A. 原子性、一致性、隔离性、持久性B. 原子性、一致性、独立性、持久性C. 原子性、一致性、并发性、持久性D. 原子性、一致性、并发性、独立性答案:A6. 在ORACLE中,以下哪个命令用来修改表的结构?A. ALTER TABLEB. MODIFY TABLEC. UPDATE TABLED. ALTER VIEW答案:A7. 数据库的备份分为以下哪几种类型?A. 冷备份、热备份、逻辑备份B. 冷备份、热备份、物理备份C. 冷备份、热备份、完全备份D. 冷备份、热备份、增量备份答案:D8. 在ORACLE中,以下哪个命令用来创建一个索引?A. CREATE INDEXB. CREATE TABLEC. CREATE VIEWD. CREATE SEQUENCE答案:A9. 数据库的并发控制主要包括以下哪些方法?A. 乐观并发控制、悲观并发控制、时间戳并发控制B. 乐观并发控制、悲观并发控制、锁并发控制C. 乐观并发控制、悲观并发控制、令牌并发控制D. 乐观并发控制、悲观并发控制、版本并发控制答案:B10. 在ORACLE中,以下哪个命令用来创建一个序列?A. CREATE SEQUENCEB. CREATE TABLEC. CREATE VIEWD. CREATE INDEX答案:A二、填空题(每题2分,共20分)1. 在ORACLE中,使用______命令可以创建一个表。

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习题及答案

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.显示所有员工的姓名,部门号和部门名称。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Select ename from emp where instr(ename,’R’)=0;
--14、显示所有雇员的姓名的前三个字符
select subs示所有雇员的姓名,用a替换所有'A'
Select replace(ename,’A’,’a’) from emp
--10、找出早于25年之前受雇的雇员
select * from emp where months_between(sysdate,hiredate)/12>25;
select * from emp where hiredate<add_months(sysdate,-12*25);
--11、显示只有首字母大写的所有雇员的姓名
select ename,to_char(hiredate,'yyyy'),to_char(hiredate,'mm') from emp order by hiredate asc
--21、显示在一个月为30天的情况下所有雇员的日薪金
select ename,sal/30 from emp;
--3、找出佣金高于薪金的雇员
select * from emp where comm>sal;
--4、找出佣金高于薪金60%的雇员
select * from emp where comm>sal*0.6
--5、找出部门10中所有经理和部门20中的所有办事员的详细资料
select * from emp where (deptno=10 and job=upper('manager')) or (deptno=20 and job=upper('clerk '));
select ename from emp where ename=initcap(ename);
--12、显示正好为6个字符的雇员姓名
select ename from emp where length(ename)=6
--13、显示不带有'R'的雇员姓名
Select ename from emp where ename not like ‘%R%’;
--22、找出在(任何年份的)2月受聘的所有雇员
select * from emp where to_char(hiredate,'mm')='02';
--23、对于每个雇员,显示其加入公司的天数
select ename,sysdate-hiredate from emp
--24、显示姓名字段的任何位置,包含 "A" 的所有雇员的姓名
--16、显示所有雇员的姓名以及满10年服务年限的日期
Select ename,add_months(hiredate,12*10) ‘服务年限的日期’ from emp
--17、显示雇员的详细资料,按姓名排序
Select * from emp order by ename
--18、显示雇员姓名,根据其服务年限,将最老的雇员排在最前面
--1、选择部门30中的雇员
select * from emp where deptno=30;
--2、列出所有办事员的姓名、编号和部门
select ename,empno,dname from emp e inner join dept d on e.deptno = d.deptno where job=upper('clerk’);
Select ename from emp order by hiredate
--19、显示所有雇员的姓名、工作和薪金,按工作的降序顺序排序,而工作相同时按薪金升序
Select ename,job,sal from emp order by job desc ,sal asc
--20、显示所有雇员的姓名和加入公司的年份和月份,按雇员受雇日所在月排序,将最早年份的项目排在最前面
--7、找出收取佣金的雇员的不同工作
select distinct job from emp where comm>0;
--8、找出不收取佣金或收取的佣金低于100的雇员
select * from emp where nvl(comm,0)<100;
--9、找出各月最后一天受雇的所有雇员
select * from emp where hiredate= last_day(hiredate);
--6、找出部门10中所有经理、部门20中所有办事员,既不是经理又不是办事员但其薪金>=2000的所有雇员的详细资料
select * from emp where (deptno=10 and job=upper('manager')) or (deptno=20 and job=upper('clerk ')) or (job<>upper(‘manager’) and job<>upper(‘clerk’) and sal>=2000)
select ename from emp where ename like '%A%';
select ename from emp where instr(ename,’A’,1)>0;
相关文档
最新文档