moxu 发表于 2013-2-5 08:44:38

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

 
 
--创建职员表
create table tbEmp
(
   eIDnumberprimary key,--职员编号
   eNamevarchar2(20)not null,--职员姓名
   eSexvarchar2(2)not null --职员性别
                                check(esex in ('男','女')),
   eAgenumbernot null check(eage>=18),--职员年龄
   eAddrvarchar2(50)not null,--职员地址
   eTelvarchar2(30)not null,--职员电话
   eEmailvarchar2(30)null,--职员邮箱
   eJoinTimedatenot 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 ||' ,家住'||eaddr as  个人信息 from tbemp; 
 
select sum(eage) from tbemp;
16.分别求男,女员工年龄总和
select esex,sum(eage) ename from tbemp group by esex;
页: [1]
查看完整版本: oracel的常用查询方法的例子!