--创建职员表CREATETABLE tb_emp
(
ID number PRIMARYKEY,--职员编号
NAME VARCHAR2(20)NOTNULL,--职员姓名
Sex VARCHAR2(2)NOTNULLCHECK(sex IN('男','女')),--职员性别
Age number NOTNULLCHECK(age>=18),--职员年龄
Address VARCHAR2(50)NOTNULL,--职员地址
Tel VARCHAR2(30)NOTNULL,--职员电话
Email VARCHAR2(30)--职员邮箱);--插入数据INSERTINTO tb_emp
(ID,NAME,sex,age,address,tel)VALUES(1,'赵龙','男',25,'湖南省长沙市伍家岭江南苑9栋203号','0731-4230123');INSERTINTO tb_emp
(ID,NAME,sex,age,address,tel)VALUES(2,'李云','女',23,'湖南省长沙市东风路东风新村21栋502号','0731-4145268');INSERTINTO tb_emp
(ID,NAME,sex,age,address,tel)VALUES(3,'孙一成','男',24,'湖南省株洲市601厂宿舍15栋308号','0732-8342567');INSERTINTO tb_emp
(ID,NAME,sex,age,address,tel)VALUES(4,'林笑','男',27,'湖南省郴洲市人民医院20栋301号','0735-2245214');INSERTINTO tb_emp
(ID,NAME,sex,age,address,tel)VALUES(5,'卫晴','女',23,'湖南省长沙市望月湖12栋403号','0731-8325124');
--练习--1. 查询所有职员的所有信息SELECT*FROM tb_emp;--2. 查询所有职员的姓名,电话,地址select name,tel,address from tb_emp;--3. 查询所有女职员的详细信息select*from tb_emp where sex='女';--4. 查询年龄在24到26岁之间的职员的姓名,性别select name,sex from tb_emp where age between24and26;--5. 查询家住长沙的女职员的姓名,电话,地址select name,tel,address from tb_emp
where sex='女'and instr(address,'长沙')>0;--6. 查询李云,孙一成,林笑的电话,地址select tel,address from tb_emp
where name='李云'or name='孙一成'or name='林笑';--7. 查询郴洲和株洲的职员的姓名,性别,年龄select name,sex,age
from tb_emp
where instr(address,'郴洲')>0or instr(address,'株洲')>0;--8. 查询家住长沙,年龄在25到28岁之间的男职员的姓名select name from tb_emp
where instr(address,'长沙')>0and age between25and28and sex='男';--9. 查询邮件地址为空的职员select*from tb_emp where email isnull;--合计SELECT*FROM tb_emp;SELECT*FROM tb_sales;SELECT*FROM tb_prod;--1. 总共有多少个职员?selectcount(*)from tb_emp;--3. 年龄最小的女职员的年龄selectmin(age)from tb_emp where sex='女';--7. 按性别统计职员的最大年龄和最小年龄select sex,max(age),min(age)from tb_emp groupby sex;--4. 笔记本单笔销售价值最高的单笔销售价值selectmax(s.pamount) amount
from tb_sales s,tb_prod p
where s.pid=p.id and p.type='笔记本';--5. 熊猫电视机的平均销售价格select p.mark,sum(s.pamount)/sum(s.pqty)from tb_sales s,tb_prod p
where s.pid=p.id and p.mark='熊猫'groupby p.mark;--6. 紫光笔记本4月份的销售总额selectsum(s.pamount)from tb_sales s,tb_prod p
where s.pid=p.id and p.mark='紫光'and to_char(sdate,'mm')=4groupby p.mark;--分组与合计SELECT*FROM tb_emp;SELECT*FROM tb_sales;SELECT*FROM tb_prod;--1. 按类型,品牌统计商品的销售总数量,销售总数量,低于20的不统计select p.type,p.mark,sum(s.pqty)from tb_sales s,tb_prod p
where s.pid=p.id
groupby p.type,p.mark
havingsum(s.pqty)>20;--2. 按品牌,规格统计笔记本的平均销售价格,按销售价格从高到低的顺序显示select p.mark,p.spec,round(sum(s.pamount)/sum(s.pqty))from tb_sales s,tb_prod p
where s.pid=p.id
groupby p.mark,p.spec
orderbyround(sum(s.pamount)/sum(s.pqty))desc;--3. 按姓名统计男职员3月份的销售总额,销售总额低于80000的不统计select e.name,sum(s.pamount)from tb_emp e,tb_sales s
where s.eid=e.id and e.sex='男'and to_char(s.sdate,'mm')=3groupby e.name
havingsum(s.pamount)>80000;--4. 找出销售总额最高的职员的姓名select*from(select e.name,sum(s.pamount)from tb_emp e,tb_sales s
where s.eid=e.id
groupby e.name
orderbysum(s.pamount)desc)where rownum=1;--5. 按姓名统计每个职员一共完成了多少笔销售业务select e.name,count(s.eid)from tb_emp e,tb_sales s
where s.eid(+)=e.id
groupby e.name;--6. 找出完成销售业务笔数最少的职员的姓名和他完成的业务数select e.name,count(s.eid)from tb_emp e,tb_sales s
where s.eid(+)=e.id
groupby e.name
havingcount(s.eid)<=all(selectcount(s.eid)from tb_emp e,tb_sales s
where s.eid(+)=e.id
groupby e.name
);--多表查询SELECT*FROM tb_emp;SELECT*FROM tb_sales;SELECT*FROM tb_prod;--1. 所有职员,所有商品的销售情况,--包括:职员姓名,商品类别,商品品牌,商品规格,销售数量,销售价值,--销售时间,按销售时间从高到低排列select e.name,p.type,p.mark,p.spec,s.pqty,s.pamount,s.sdate
from tb_emp e,tb_sales s,tb_prod p
where e.id=s.eid and s.pid=p.id
orderby s.sdate desc;--2. 笔记本4月份的销售情况,--包括:商品编号,商品品牌,商品规格,销售数量,销售价值,按销售数量从低到高排列select s.pid,p.mark,p.spec,s.pqty,s.pamount,s.sdate
from tb_sales s,tb_prod p
where s.pid=p.id and to_char(sdate,'mm')=4and p.type='笔记本'orderby s.pqty asc;--3. 李云3月份的销售情况,包括:商品编号,商品品牌,商品规格,销售数量,销售价值--1.李云在tb_emp表,商品编号,商品品牌,商品规格在tb_prod表,--销售数量,销售价值在tb_sales表--三张表连接,--2.找关联条件--3.找筛选条件SELECT e.name,p.id,p.typeAS 商品规格,p.mark AS 商品品牌,s.pqty AS 销售数量,
s.pamount 销售价格
FROM tb_emp e,tb_prod p,tb_sales s
WHERE e.id = s.eid AND p.id = s.pid
AND e.name='李云'AND to_char(s.sdate,'mm')='03';--4. 长虹29英寸纯平艺术电视机的销售情况,包括:销售数量,销售价值,销售时间select s.pqty,s.pamount,s.sdate
from tb_prod p,tb_sales s
where p.id=s.pid
and p.type='电视机'and p.mark='长虹'and p.spec='29英寸纯平艺术';--5. 长沙男职员4月份的销售情况,包括:职员姓名,商品类别,商品品牌,--商品规格,销售数量,销售价值select e.name,p.type,p.mark,s.pqty,s.pamount
from tb_prod p,tb_sales s,tb_emp e
where p.id=s.pid and s.eid=e.id
and e.sex='男'and e.address like'%长沙%'and to_char(sdate,'mm')='04';