oracle的SQL练习题 下载本文

内容发布更新时间 : 2024/6/1 21:30:25星期一 下面是文章的全部内容请认真阅读。

Oracle的sql语句范例 1. 表结构

Emp----员工信息表

Ename varchar2(30), --姓名 Empno number(5), --编号 Deptno number(5), --所在部门

Job varchar2(20), --工种(人员类别),如:manager 经理,clerk 办事员Hiredate Date --雇用日期

Hiredate Date, --雇佣日期 Comm number(6,2), --佣金 Sal number(6,2) --薪金

Dept-----部门表

Dname varchar2(30), --部门名 Deptno number(5), --部门号 Loc varchar2(50) --位置

2. 准备数据:

create table emp –创建员工信息表 (

Ename varchar2(30), --姓名 Empno number(5), --编号 Deptno number(5), --所在部门

Job varchar2(20), --工种(人员类别),如:manager 经理,clerk 办事员Hiredate 用日期

Hiredate Date --雇佣日期 Comm number(6,2), --佣金 Sal number(6,2) --薪金 )

insert into emp(Ename,Empno,Deptno,Job,Comm,Sal) values('刘涛',10001,10,'办事员',500,2000);

insert into emp(Ename,Empno,Deptno,Job,Comm,Sal) values('吴昊',10002,10,'办事员',650,2200);

insert into emp(Ename,Empno,Deptno,Job,Comm,Sal) values('唐丹丹',10002,20,'办事员',650,2200);

insert into emp(Ename,Empno,Deptno,Job,Comm,Sal) values('李阳杨',20001,20,'经理',980,3200);

insert into emp(Ename,Empno,Deptno,Job,Comm,Sal) values('李军',10003,30,'办事员',400,2500);

create table dept --部门表 (

Dname varchar2(30), --部门名

Date --雇 Deptno number(5), --部门号 Loc varchar2(50) --位置 )

insert into dept(Dname,Deptno,Loc) values('市场部',10,'辽宁大连'); insert into dept(Dname,Deptno,Loc) values('公关部',20,'辽宁沈阳'); insert into dept(Dname,Deptno,Loc) values('研发部',30,'深圳')

1、选择部门30中的雇员

2、列出所有办事员的姓名、编号和部门

3、找出佣金高于薪金的雇员

4、找出佣金高于薪金60%的雇员

5、找出部门10中所有经理和部门20中的所有办事员的详细资料

6、找出部门10中所有经理、部门20中所有办事员,既不是经理又不是办事员但其薪金>=2000的所有雇员的详细资料

7、找出收取佣金的雇员的不同工作

8、找出不收取佣金或收取的佣金低于100的雇员

9、找出各月最后一天受雇的所有雇员

10、找出早于25年之前受雇的雇员

11、显示只有首字母大写的所有雇员的姓名

12、显示正好为6个字符的雇员姓名

13、显示不带有'R'的雇员姓名

14、显示所有雇员的姓名的前三个字符

15、显示所有雇员的姓名,用a替换所有'A'

16、显示所有雇员的姓名以及满10年服务年限的日期

17、显示雇员的详细资料,按姓名排序

18、显示雇员姓名,根据其服务年限,将最老的雇员排在最前面

19、显示所有雇员的姓名、工作和薪金,按工作的降序顺序排序,而工作相同时按薪金升序

20、显示所有雇员的姓名和加入公司的年份和月份,按雇员受雇日所在月排序,将最早年份的项目排在最前面

21、显示在一个月为30天的情况下所有雇员的日薪金

22、找出在(任何年份的)2月受聘的所有雇员

23、对于每个雇员,显示其加入公司的天数

24、显示姓名字段的任何位置,包含 \的所有雇员的姓名

25、以年、月和日显示所有雇员的服务年限

Oracle笔试题

一、选择题

1.当你执行以下查询语句: SELECT empno,ename FROM emp

WHERE empno =7782 OR empno =7876;

在WHERE语句中,以下哪个操作符可以取代OR? A. IN

B. BETWEEN …… C. LIKE D. <= E. >=

2. 哪个实现 IF..THEN…ELSE 逻辑? A. INITCAP() B. REPLACE() C. DECODE() D. IFELSE()

3. 以下哪行有错? 1 SELECT deptno 2 FROM emp

3 GROUP BY deptno

4 HAVING COUNT(deptno)=

5 (SELECT max(count(deptno)) 6 FROM emp

7 GROUP BY deptno); A. Line 3 B. Line 4 C. Line 5 D. Line 7 E. 都没错.

4. 当一个程序执行了 SELECT...FOR UPDATE 语句, 以下哪个步骤必须需要完成? A. 执行 COMMIT or ROLLBACK 结束 transaction, 即使并没有数据改变。 B. 如果有数据改变,则需要执行commit or rollback 来结束 transaction。

C. 由于只有数据确实改变后,一个transaction 才会开始,所以现在不需要COMMIT or ROLLBACK 被执行。

5. 以下哪个命令可以被用来从表 STATE中 drop 列 UPDATE_DT ? A. ALTER TABLE STATE DROP COLUMN UPDATE_DT; B. ALTER TABLE STATE REMOVE COLUMN UPDATE_DT; C. DROP COLUMN UPDATE_DT FROM STATE; D. 你不能从这个表中DROP该列.

6. 哪个命令用来创建一个primary key constraint pk_books 在表 BOOKS, 列 ISBN上? 请选择一个。 A. create primary key on books(ISBN);

B. create constraint pk_books primary key on books(ISBN);

C. alter table books add constraint pk_books primary key (ISBN); D. alter table books add primary key (ISBN);

7. 以下哪行有错r? 1 X :=Y +200; 2 IF X <10 THEN 3 Y :=30;

4 ELSEIF X <40 THEN 5 Y :=20; 6 END IF;

A. Line 2 B. Line 3 C. Line 4 D. Line 5

8. 一个VIEW被以下语句创建,请问在该VIEW上可进行哪个操作? CREATE VIEW USA_STATES AS SELECT *FROM STATE WHERE CNT_CODE =1 WITH READ ONLY;

A. SELECT

B. SELECT , UPDATE C. SELECT , DELETE D. SELECT , INSERT