oracle 有关emp表的简单查询练习题
Oracle基础练习题及答案(多表查询2)

多表查询1.显示所有员工的姓名ename,部门号deptno和部门名称dname。
select ename,a.deptno,dname from emp a,dept b where a.deptno=b.deptno;2.查询20号部门员工的job和20号部门的locselect ename,job,loc from emp a,dept b where a.deptno=b.deptno and a.deptno=20;3.选择所有有奖金comm的员工的ename , dname , locselect ename,dname,loc from emp a,dept b where a.deptno=b.deptno and comm is not null;4.选择在DALLAS工作的员工的ename , job , deptno, dnameselect ename,job,a.deptno,dname from emp a,dept b where a.deptno=b.deptno and loc='DALLAS';5.选择所有员工的姓名ename,员工号deptno,以及他的管理者mgr的姓名ename和员工号deptno,结果类似于下面的格式employees Emp# manager Mgr#SMITH 7369 FORD 7902select a.ename "employees",a.empno "Emp#",b.ename "manager",b.empno "Mgr#" from emp a,emp b where a.mgr=b.empno;6. 查询各部门员工姓名和他们所在位置,结果类似于下面的格式Deptno Ename Loc20 SMITH DALLASselect a.deptno "Deptno",ename "Ename",loc "Loc" from emp a,dept b where a.deptno=b.deptno;。
Oracle练习题讲解

一、填空1.在多进程Oracle实例系统中,进程分为用户进程、后台进程和服务进程。
2.标准的SQL语言语句类型可以分为:数据定义语句(DDL)、数据操纵语句(DML)和数据控制语句(DCL)。
3.在需要滤除查询结果中重复的行时,必须使用关键字Distinct; 在需要返回查询结果中的所有行时,可以使用关键字ALL。
4.当进行模糊查询时,应使用关键字like和通配符问号(?)或百分号"%"。
5.Where子句可以接收From子句输出的数据,而HA VING子句则可以接收来自WHERE、FROM或GROUP BY子句的输入。
6.在SQL语句中,用于向表中插入数据的语句是Insert。
7.如果需要向表中插入一批已经存在的数据,可以在INSERT语句中使用Select 语句。
8.使用Describe命令可以显示表的结构信息。
9.使用SQL*Plus的Get命令可以将文件检索到缓冲区,并且不执行。
10.使用Save命令可以将缓冲区中的SQL命令保存到一个文件中,并且可以使用Run命令运行该文件。
11.一个模式只能够被一个数据库对象所拥有,其创建的所有模式对象都保存在自己的模式中。
12.根据约束的作用域,约束可以分为表级约束和列级约束两种。
列级约束是字段定义的一部分,只能够应用在一个列上;而表级约束的定义独立于列的定义,它可以应用于一个表中的多个列。
13.填写下面的语句,使其可以为Class表的ID列添加一个名为PK_CLASS_ID 的主键约束。
ALTER TABLE ClassAdd ____________ PK_LASS_ID (Constraint)PRIMARY KEY ________ (ID)14. 每个Oracle 10g数据库在创建后都有4个默认的数据库用户:system、sys、sysman和DBcnmp15. Oracle提供了两种类型的权限:系统权限和对象权限。
《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数据库习题.62

1.ORACLE数据库物理结构包括以下三种文件,以下不属于的是〔〕A.系统文件B.日志文件C.数据文件D.控制文件2.以下哪个命令是用于ORACLE中数据导出的 ( )A.exp B.imp C.input D.output3.〔〕是用于控制数据访问的语言。
A.DML B.DDL C.DCL D.DLL4.NULL表示什么〔〕A.0 B.空格 C.值 D.没有值5.下面四个语句中哪一个是正确的?〔〕A.SELECT * , ENAME FROM EMP;B. DELETE * FROM EMP;C. SELECT DISTINCT EMPNO ,HIREDATE FROM EMP;D.SELECT ENAME|SAL AS “name〞 FROM EMP ;6.假定有一张表用户表users,其中一身份证字段ID_card。
为了维护数据的完整性,在设计数据库时,最好对ID_card字段添加约束,请问应该添加什么约束〔〕A. primary key B.check C.default D.not null7.下面哪一个like命令会返回名字象HOTKA的行?〔〕A.where ename like ‘_HOT%'B.where ename like ‘H_T%'C.where ename like ‘%TKA_'D.where ename like ‘%TOK%'8.〔〕操作符只返回由第一个查询选定但是没有被第二个查询选定的行。
B.UNION ALL9.EMPLOYEES表的结构如下:A.表中没有行。
B.有一个姓名为James的员工。
C.不能屡次回滚到相同的保存点。
D. 由于已经删除了员工ID180,因此最后一次更新未更新任何行。
10.以下运算结果不为空值的是〔〕A.12+NULLB.60*NULLC.NULL‖’NULL’D.12/〔60+NULL〕11.假设当前日期为’25-5月-06’,以下〔〕表达式能计算出5个月后那一天所在月份的最后一天的日期。
oracle 有关emp表的简单查询练习题

SQL练习训练一1、查询dept表的结构在命令窗口输入:desc dept;2、检索dept表中的所有列信息select * from dept3、检索emp表中的员工姓名、月收入及部门编号select ename "员工姓名",sal "月收入",empno "部门编号" from emp注意查询字段用分号隔开。
4、检索emp表中员工姓名、及雇佣时间日期数据的默认显示格式为“DD-MM-YY",如果希望使用其他显示格式(YYYY-MM-DD),那么必须使用TO_CHAR函数进行转换。
select ename "员工姓名", hiredate "雇用时间1",to_char(hiredate,'YYYY-MM-DD') "雇用时间2" from emp注意:第一个时间是日期类型的,在Oracle的查询界面它的旁边带有一个日历。
第二个时间是字符型的。
易错点:不要将YYYY-MM-DD使用双引号5、使用distinct去掉重复行。
检索emp表中的部门编号及工种,并去掉重复行。
select distinct deptno "部门编号",job "工种" from emp order by deptno注意distinct放的位置为什么不放在from的前面?翻译成汉语就明白了应该是:选择不重复的部门编号和工种从emp表。
而不是:选择部门编号和工种不重复地从emp表。
这还是人话么O(∩_∩)O哈哈~6、使用表达式来显示列检索emp表中的员工姓名及全年的月收入select ename "员工姓名", (sal+nvl(comm,0))*12 "全年收入" from emp 注意:防止提成comm为空的操作,使用nvl函数7、使用列别名用姓名显示员工姓名,用年收入显示全年月收入。
Oracle自测题-第1,2,3章

第1章Oracle数据库系统的结构与安装选择题1、下列有关ORACLE实例的说法哪个是错误的?(B)A. ORACLE实例主要由内存结构和迚程结构两部分组成B. 每一数据库至少有一个与之对应的实例,一个实例可以打开和使用多个数据库C. 每一个数据库可以由多个实例使用,但一个实例只能打开和使用一个数据库D. 实例就是运行状态下的ORACLE软件,主要是由内存结构和一些迚程组成2、以下哪些内存区域不是SGA的一部分?(B)A. 数据库缓冲区高速缓存B.PGAC.重做日志缓冲区D. 共享池3、DBWR迚程是(C)A. 从Shared Pool读出被更新的数据写入DataFilesB. 从Shared Pool读出被更新的数据写入LogFilesC. 从Database Buffer Cache读出被更新的数据写入DataFilesD. 从Database Buffer Cache读出被更新的数据写入LogFiles4、下面的描述中错误的是:(A)A. Oracle表的存储结构为:一个表就是一个物理文件,物理文件和表之间存在着绝对的一一对应关系。
B. 表空间由一个或多个数据文件组成。
C. 系统全局区(SGA)可由所有的服务器和用户迚程共享。
D. 段、区间、数据块是Oracle数据库的基本逻辑组织单位。
5、下面的描述中错误的是:(B )A. 表空间由一个或多个数据文件组成。
B. 表中的数据存储在数据文件,索引等其他模式对象的数据不存储在数据文件中。
C. 数据块是Oracle I/O操作的最小单位。
D. 区间是由数据块组成的。
6、下面的描述中错误的是:(A)A. 程序全局区(PGA)可由所有的用户迚程共享。
B. Oracle使用表空间组织数据库,每个数据库至少有一个System表空间。
C. 数据块是Oracle I/O操作的最小单位。
D. 区间是由连续的数据块组成的。
7、下面的描述中错误的是:(C)A. 每个数据库必须至少有一个控制文件。
数据库基础知识试题(含答案)
数据库基础知识试题部门____________姓名__________日期_________得分__________一、不定项选择题(每题1.5分,共30分)1.DELETE语句用来删除表中的数据,一次可以删除()。
DA.一行B.多行C.一行和多行D.多行2.数据库文件中主数据文件扩展名和次数据库文件扩展名分别为()。
CA..mdf.ldfB..ldf.mdfC..mdf.ndfD..ndf.mdf3.视图是从一个或多个表中或视图中导出的()。
AA表B查询C报表D数据4.下列运算符中表示任意字符的是()。
BA.*B.%C.LIKED._5.()是SQLServer中最重要的管理工具。
AA.企业管理器B.查询分析器C.服务管理器D.事件探察器6.()不是用来查询、添加、修改和删除数据库中数据的语句。
DA、SELECTB、INSERTC、UPDATED、DROP7.在oracle中下列哪个表名是不允许的()。
DA、abc$B、abcC、abc_D、_abc8.使用SQL命令将教师表teacher中工资salary字段的值增加500,应该使用的命令是()。
DA、Replacesalarywithsalary+500B、Updateteachersalarywithsalary+500C、Updatesetsalarywithsalary+500D、Updateteachersetsalary=salary+5009.表的两种相关约束是()。
CA、主键和索引B、外键和索引C、主键和外键D、内键和外键10.ORACLE数据库物理结构包括()。
ABCA、数据文件B、日志文件C、控制文件D、临时文件11.在Oracle中,一个用户拥有的所有数据库对象统称为()。
CA、数据库B、模式C、表空间D、实例12.在Oracle中,可用于提取日期时间类型特定部分(如年、月、日、时、分、秒)的函数有()。
BA、DATEPARTB、EXTRACTC、TO_CHARD、TRUNC13.在Oracle中,下面用于限制分组函数的返回值的子句是()。
查询emp表的所有记录
查询emp表的所有记录。
Select * from emp查询emp表,显示员工姓名和工资。
Select ename,sal from emp;查找员工的姓名和薪水和奖金。
Select ename,sal,comm from emp查询每个部门的平均工资,显示部门名称和平均工资。
删除emp表中员工编号为7782 的员工信息。
修改编号是7784的员工的工资和奖金,与员工编号是7600的工资和奖金一样。
查询每位员工的姓名和部门名称。
删除emp表中员工编号为7007 的员工信息。
修改编号是7784的员工的工资为5000。
查询员工表中的最高工资。
查询每个部门最低工资的员工信息。
写PL/SQL代码,接收一个雇员的编号,如果其工资>= 3000,则显示高工资,工资>= 2000,则显示中等工资,否则认为是低等工资。
编写一个存储过程,带有两个参数,要求,可以传入部门的编号,传出部门的平均工资操作。
1、关闭oracle数据库命令有:shutdown abort、shutdown transcational、()、()2、想要使INSERT,DELETE和UPDATE语句导致的数据库变化,执行事务取消()命令。
3、使用游标和 loop 循环来显示所有部门的的地理位置(用%notfound 属性)。
PL SQL语句为:(完成以下代码)Declarealoc dept.loc%rowtype;cursor cur_dept is select loc from dept;BeginOpen cur_dept;LoopFetch cur_dept into aloc;If ( ) then exit;else dbms_output.put_line(aloc);end if;End loop;Close cur_dept;End;4、游标的操作包括声明游标、打开游标、取得游标值、(关闭游标)。
5、oracle数据库启动步骤为nomount、( mount )、open。
oracle有关emp表的简单查询练习题.
SQL 练习训练一1、查询 dept 表的结构在命令窗口输入:desc dept;2、检索 dept 表中的所有列信息select * from dept3、检索 emp 表中的员工姓名、月收入及部门编号select ename "员工姓名 ",sal "月收入 ",empno "部门编号 " from emp 注意查询字段用分号隔开。
4、检索 emp 表中员工姓名、及雇佣时间日期数据的默认显示格式为“DD -MM-YY", 如果希望使用其他显示格式(YYYY-MM-DD,那么必须使用 TO_CHAR函数进行转换。
select ename "员工姓名 ", hiredate "雇用时间1",to_char(hiredate,'YYYY-MM-DD' "雇用时间 2" from emp注意:第一个时间是日期类型的, 在 Oracle 的查询界面它的旁边带有一个日历。
第二个时间是字符型的。
易错点:不要将 YYYY-MM-DD 使用双引号5、使用 distinct 去掉重复行。
检索 emp 表中的部门编号及工种,并去掉重复行。
select distinct deptno "部门编号 ",job "工种 " from emp order by deptno注意 distinct 放的位置为什么不放在 from 的前面?翻译成汉语就明白了应该是:选择不重复的部门编号和工种从 emp 表。
而不是:选择部门编号和工种不重复地从 emp 表。
这还是人话么???O(∩_∩O 哈哈 ~6、使用表达式来显示列检索 emp 表中的员工姓名及全年的月收入select ename "员工姓名 ", (sal+nvl(comm,0*12 "全年收入 " from emp 注意:防止提成 comm 为空的操作,使用 nvl 函数7、使用列别名用姓名显示员工姓名,用年收入显示全年月收入。
oracle_有关emp表的练习题
oracle_有关emp表的练习题oracle 有关emp表的练习题使用IML用户下的emp表和dept表完成下列练习,表的结构说明如下emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/comm佣金/deptno部门编号) dept部门表(deptno部门编号/dname部门名称/loc地点)工资=薪金+佣金CREATE TABLE DEPT(DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY, DNAME VARCHAR2(14) ,LOC VARCHAR2(13) ) ;CREATE TABLE EMP(EMPNO NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY, ENAME VARCHAR2(10),JOB V ARCHAR2(9),MGR NUMBER(4),HIREDATE DATE,SAL NUMBER(7,2),COMM NUMBER(7,2),DEPTNO NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT);INSERT INTO DEPT V ALUES(10,'ACCOUNTING','NEW YORK');INSERT INTO DEPT V ALUES (20,'RESEARCH','DALLAS');INSERT INTO DEPT V ALUES(30,'SALES','CHICAGO');INSERT INTO DEPT V ALUES(40,'OPERATIONS','BOSTON');INSERT INTO EMP V ALUES(7369,'SMITH','CLERK',7902,to_date('17-12-1980','dd-mm-yyyy'),800,NULL,20);INSERT INTO EMP V ALUES(7499,'ALLEN','SALESMAN',7698,to_date('20-2-1981','dd-mm-yyyy'),1600,300,30);INSERT INTO EMP V ALUES(7521,'WARD','SALESMAN',7698,to_date('22-2-1981','dd-mm-yyyy'),1250,500,30);INSERT INTO EMP V ALUES(7566,'JONES','MANAGER',7839,to_date('2-4-1981','dd-mm-yyyy'),2975,NULL,20);INSERT INTO EMP V ALUES(7654,'MARTIN','SALESMAN',7698,to_date('28-9-1981','dd-mm-yyyy'),1250,1400,30);INSERT INTO EMP V ALUES(7698,'BLAKE','MANAGER',7839,to_date('1-5-1981','dd-mm-yyyy'),2850,NULL,30);INSERT INTO EMP V ALUES(7782,'CLARK','MANAGER',7839,to_date('9-6-1981','dd-mm-yyyy'),2450,NULL,10); INSERT INTO EMP V ALUES(7788,'SCOTT','ANALYST',7566,to_date('13-JUL-87','dd-mm-rr')-85,3000,NULL,20); INSERT INTO EMP V ALUES(7839,'KING','PRESIDENT',NULL,to_date('17-11-1981','dd-mm-yyyy'),5000,NULL,10); INSERT INTO EMP V ALUES (7844,'TURNER','SALESMAN',7698,to_date('8-9-1981','dd-mm-yyyy'),1500,0,30);INSERT INTO EMP V ALUES(7876,'ADAMS','CLERK',7788,to_date('13-JUL-87', 'dd-mm-rr')-51,1100,NULL,20); INSERT INTO EMP V ALUES(7900,'JAMES','CLERK',7698,to_date('3-12-1981','dd-mm-yyyy'),950,NULL,30);INSERT INTO EMP V ALUES(7902,'FORD','ANALYST',7566,to_date('3-12-1981','dd-mm-yyyy'),3000,NULL,20);INSERT INTO EMP V ALUES(7934,'MILLER','CLERK',7782,to_date('23-1-1982','dd-mm-yyyy'),1300,NULL,10); CREATE TABLE BONUS(ENAME VARCHAR2(10) ,JOB V ARCHAR2(9) ,SAL NUMBER,COMM NUMBER) ;CREATE TABLE SALGRADE( GRADE NUMBER,LOSAL NUMBER,HISAL NUMBER );INSERT INTO SALGRADE VALUES (1,700,1200);INSERT INTO SALGRADE VALUES (2,1201,1400);INSERT INTO SALGRADE VALUES (3,1401,2000);INSERT INTO SALGRADE VALUES (4,2001,3000);INSERT INTO SALGRADE VALUES (5,3001,9999);COMMIT;1.列出至少有一个员工的所有部门。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
登录SQL练习训练一1、查询dept表的结构在命令窗口输入:desc dept;2、检索dept表中的所有列信息 select * from dept3、检索emp表中的员工姓名、月收入及部门编号select ename "员工姓名",sal "月收入",empno "部门编号" from emp 注意查询字段用分号隔开。
4、检索emp表中员工姓名、及雇佣时间日期数据的默认显示格式为“DD-MM-YY",如果希望使用其他显示格式(YYYY-MM-DD),那么必须使用TO_CHAR函数进行转换。
select ename "员工姓名", hiredate "雇用时间1",to_char(hiredate,'YYYY-MM-DD') "雇用时间2" from emp 注意:第一个时间是日期类型的,在Oracle的查询界面它的旁边带有一个日历。
第二个时间是字符型的。
易错点:不要将YYYY-MM-DD使用双引号5、使用distinct去掉重复行。
检索emp表中的部门编号及工种,并去掉重复行。
select distinct deptno "部门编号",job "工种" from emp order by deptno注意distinct放的位置为什么不放在from的前面?翻译成汉语就明白了应该是:选择不重复的部门编号和工种从emp表。
而不是:选择部门编号和工种不重复地从emp表。
这还是人话么???O(∩_∩)O哈哈~6、使用表达式来显示列检索emp表中的员工姓名及全年的月收入select ename "员工姓名", (sal+nvl(comm,0))*12 "全年收入" from emp 注意:防止提成comm为空的操作,使用nvl函数7、使用列别名用姓名显示员工姓名,用年收入显示全年月收入。
select ename "员工姓名",sal*12 "全年收入" from emp8、连接字符串在oracle中连接字符串用“||”操作符来完成的,当连接字符串时,如果在字符串要加入数字值那么在“||”后可以直接指定数字,如果在字符串加入字符和日期值,则必须要用单引号。
检索emp表,用is a 这个字符串来连接员工姓名和工种两个字段select ename||' is a '||job "他们各自的职位"from emp 注意:用的是单引号!!!9、使用WHERE子句检索月收入大于2000的员工姓名及月收入。
select ename "姓名" ,sal "月薪"from emp where sal>2000 检索月收入在1000元到2000元的员工姓名、月收入及雇佣时间。
select ename "姓名" ,sal "月薪",hiredate "雇佣时间" from emp where sal between 1000 and 200010、like的用法:检索以S开头的员工姓名及月收入。
select ename "员工姓名",sal "月收入" from emp where ename like 'S%' 检索员工姓名中的第三个字符是A的员工姓名及月收入。
select ename "员工姓名",sal "月收入" from emp where ename like '__A%' 注意这里A前面有两个通配符。
且注意like后面使用的是单引号11、在WHERE条件中使用IN操作符检索emp表中月收入是800的或是1250的员工姓名及部门编号select ename "姓名",deptno "部门编号",sal "工资" from emp where sal in(800,1250)注意:IN的意思是或者。
是800或者1250而不是表示范围12、在WHERE条件中使用逻辑操作符(AND、OR、NOT)显示在部门20中岗位CLERK的所有雇员信息select * from emp where deptno='20' and job='CLERK'显示工资高于2500或岗位为MANAGER的所有雇员信息select * from emp where sal>'2500' or job='MANAGER'注意:在where里面的条件都是使用的单引号13、查询表中是空值的数据检索emp表中有提成的员工姓名、月收入及提成。
select ename "姓名",comm "提成",sal "工资" from emp where comm is not null14、使用ORDER BY子句,进行排序。
检索emp表中部门编号是30的员工姓名、月收入及提成,并要求其结果按月收入升序、然后按提成降序显示。
select ename "姓名",comm "提成",sal "工资" from emp where deptno='30' order by sal asc,comm descSQL练习训练二1. 查询工资大于1200的员工姓名和工资select ename "姓名",sal "工资" from emp where sal>12002. 查询员工号为7934的员工的姓名和部门号select ename "姓名",deptno "部门编号" from emp where empno='7934'3. 选择工资不在5000到12000的员工的姓名和工资select ename "姓名",sal "工资" from emp where sal not between 5000 and 12000注意:不是 is not4. 选择雇用时间在1981-02-01到1981-05-01之间的员工姓名,职位(job)和雇用时间,按从早到晚排序.select ename "姓名",job "职位",hiredate "雇佣时间"from emp where hiredate between to_date('1981-02-01','YYYY-MM-DD') and to_date('1981-05-01','YYYY-MM-DD')order by hiredate asc总结:1,要转换为字符类型转换为日期类型!!!否则无法比较2,1981-05-01要用单引号引起来!!!否则报错——日期格式不够长这个例子很重要!!!!!!!!!!!!!!!!!!!!!!!!5. 选择在20或10号部门工作的员工姓名和部门号select ename "姓名",deptno "部门号" from emp where deptno in('20','10')select ename "姓名",deptno "部门号" from emp where deptno in (20,10) 加不加单引号都可以。
那么有什么区别呢???????????????????6. 选择在1987年雇用的员工的姓名和雇用时间select ename "姓名",hiredate "雇佣时间" from emp whereto_char(hiredate,'YYYY')='1987'取出雇用时间的年份且转换为字符形式;然后与'1987'比较select ename "姓名",hiredate "雇佣时间" from emp whereto_char(hiredate,'MM')='04'select ename "姓名",hiredate "雇佣时间" from emp whereto_char(hiredate,'MM')='4'前者是可以的,后者不可以??????????????????????????????这个例子也很重要!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!7. 选择公司中没有管理者的员工姓名及jobselect ename "姓名",job "工作" from emp where mgr is null8. 选择公司中有奖金 (COMM不为空,且不为0) 的员工姓名,工资和奖金比例,按工资逆排序,奖金比例逆排序.select ename "姓名",sal "工资",comm "奖金比例"from emp where comm is not null and comm !=0 order by sal desc,comm desc9. 选择员工姓名的第三个字母是a的员工姓名select ename "姓名"from emp where ename='__A'select ename "姓名"from emp where ename like '__A%'总结:1,前者是错的,这样定死了:一共只有三个字母,且最后一个是A2,后者正确。
表示A后的不限定这个例子也很重要,可以用于模糊查询!!!!!!!!!!!!!!oracle 有关emp表的简单查询练习题使用scott/tiger用户下的emp表和dept表完成下列练习,表的结构说明如下emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/comm佣金/deptno部门编号)dept部门表(depton部门编号/dname部门名称/loc地点)工资=薪金+佣金--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、显示姓名字段的任何位置,包含 "A" 的所有雇员的姓名--25、以年、月和日显示所有雇员的服务年限。