日期:2014-05-16  浏览次数:20745 次

oracel的常用查询方法的例子!

?

?

--创建职员表

create table tbEmp

(

? ?eID number primary key, --职员编号

? ?eName varchar2(20) not null, --职员姓名

? ?eSex varchar2(2) not null --职员性别

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? check(esex in ('男','女')),

? ?eAge number not null check(eage>=18), --职员年龄

? ?eAddr varchar2(50) not null, --职员地址

? ?eTel varchar2(30) not null, --职员电话

? ?eEmail varchar2(30) null, --职员邮箱

? ?eJoinTime date not null --入职时间

);

insert into tbemp

(eID,ename,esex,eage,eaddr,etel,eemail,ejointime)

values

(1,'赵龙','男',25,'湖南省长沙市伍家岭江南苑9栋203号','0731-4230123','zl@163.net','5-10月-2005');

insert into tbemp

(eID,ename,esex,eage,eaddr,etel,eemail,ejointime)

values

(2,'李云','女',23,'湖南省长沙市东风路东风新村21栋502号','0731-4145268','ly@163.net','3-7月-2003');

insert into tbemp

(eID,ename,esex,eage,eaddr,etel,eemail,ejointime)

values

(3,'孙一成','男',24,'湖南省株洲市601厂宿舍15栋308号','0732-8342567','syc@163.net','2-11月-2002');

insert into tbemp

(eID,ename,esex,eage,eaddr,etel,eemail,ejointime)

values

(4,'林笑','男',27,'湖南省郴洲市人民医院20栋301号','0735-2245214','lx@163.net','5-1月-2006');

insert into tbemp

(eID,ename,esex,eage,eaddr,etel,eemail,ejointime)

values

(5,'卫晴','女',23,'湖南省长沙市望月湖12栋403号','0731-8325124','wq@163.net','5-3月-2007');

?

commit;

?

?

?

1. 查询所有职员的所有信息

select *from tbEmp

?

2. 查询所有职员的姓名,电话,地址

select ename,eaddr, etel from tbEmp;

?

3. 查询所有女职员的详细信息

select *from tbEmp where esex = '女';

?

4. 查询年龄在24到26岁之间的职员的姓名,性别

select ename, esex from tbEmp where eage > 24 and eage < 26;

?

5. 查询家住长沙的女职员的姓名,电话,地址

select ename,etel,eaddr from tbEmp where instr(eaddr,'长沙') >0 and esex = '女';

?

6. 查询李云,孙一成,林笑的电话,地址

select ename, eaddr,etel from tbEmp where ename in ('李云','孙一成','林笑');

?

7. 查询郴洲和株洲的职员的姓名,性别,年龄

select ename,esex,eage from tbEmp where instr(eaddr,'株洲') > 0 or instr(eaddr,'郴洲') > 0;

?

8. 查询家住长沙,年龄在25到28岁之间的男职员的姓名

select ename from tbEmp where (eage > 25 and eage < 28) and ?instr(eaddr,'长沙') >= 0 and esex = '男';

?

9. 查询邮件地址为空的职员

select *from tbEmp where eEmail is null;

?

10.查询入职时间超过两年的员

select *from tbEmp where months_between(sysdate,ejointime) > 12*2;

?

11.查出1月份入职的员工?

select *from tbEmp where extract(month from eJointime) = 1;

?

12.将所有email为163.net的邮箱改为126.com

select ?replace(eEmail,'163.net','126.com') ?from tbEmp;

?

13.找出年龄最小的两位长沙员工

select *from tbemp where instr(eaddr,'长沙') >0 and (rownum <=2 )order by eage;

?

14.--字段名:个人信息

--内容描述:'员工1,赵龙,今年25岁,家住湖南省长沙市伍家岭江南苑9栋203号'

select '员工'||rownum||ename ||',今年'|| eage ||