数据库

数据库,用的还很生,将就这看吧
create table Customer(
       Cusno varchar2(20) primary key,
       cusname varchar2(20) not null,
       address  varchar2(20),
       tel   varchar2(50) unique
);

create table product(
       prono varchar2(20) primary key,
       proname varchar2(20)  ,
       price  number(10,2) ,
       stocks int 
);
create table proOut(
       saledate date ,
       cusno  varchar2(20) ,
       prono varchar2(20) ,
       quantity int,
       foreign key (cusno) references Customer(cusno) ,
       foreign key(prono) references  Product(prono)
)
--插入数据
insert into customer values ('C001','杨婷','北京','010-5328953');
insert into customer values ('C002','李和平','上海','021-6235965');
insert into customer values ('C003','叶新','成都','024-3222781');
insert into customer values ('C004','冯辰诚','上海','021-8723596');
insert into customer values ('C005','张展','郑州','0371-8907654');

--插入值
insert into product values('p0001','液晶电视',5600.00,800);
insert into product values('p0002','空调',2390.00,460);
insert into product values('p0003','洗衣机',5600.00,600);
insert into product values('p0004','电热水器',3700.00,120);


insert into proOut values (to_date('2007-10-27','yyyy-mm-dd'),'C001','p0001',3 );
insert into proOut values (to_date('2007-11-06','yyyy-mm-dd'),'C004','p0003',40 );
insert into proOut values (to_date('2007-12-27','yyyy-mm-dd'),'C001','p0003',5 );
insert into proOut values (to_date('2008-3-15','yyyy-mm-dd'),'C002','p0002',12 );
insert into proOut values (to_date('2008-05-02','yyyy-mm-dd'),'C003','p0001',9);
insert into proOut values (to_date('2008-09-21','yyyy-mm-dd'),'C004','p0001',30 );
insert into proOut values (to_date('2008-11-21','yyyy-mm-dd'),'C004','p0001',73 );
--查询表
select * from customer;
select * from product;
select * from proout;



--3)  将产品“洗衣机”的单价加1000元。
update product set price=price+1000 where proname='洗衣机';
--4)  编号“P0005”的产品“电冰箱”,单价3000,库存1000,录入时遗漏,请编写SQL语句插入该记录。
insert into product values ('p0005','电冰箱',3000.00,'1000')
--删除这一行
select * from product
delete  from product  where proname='空调';
insert into product values ('p0005','电冰箱',3000.00,'1000');
--5)  查询购买了产品编号“P0002”的客户编号、客户名和电话,查询结果按客户名降序排列。

select c.cusno,c.cusname,c.tel from   proout p inner join customer  c on c.cusno = p.cusno 
where p.prono='p0002' ;
--6)  查询所有的客户编号和客户名以及它们所购买的产品编号和产品名。(包括没买产品的顾客)。
select c.cusno,c.cusname,p.prono,p.proname from customer c left join proout pr on 
 c.cusno=pr.cusno  left join product p
on p.prono= pr.prono
--7)  查询客户表中“姓张”的客户的姓名,地址,电话。
select c.cusname,c.address,c.tel from customer  c where  c.cusname like '张%'; 

--8)  查询产品表中产品名称中带有“电”字的产品编号、产品名称、单价。
select p.prono,p.proname,p.price from product p where p.proname like '%电%';
--9)  查询产品表中库存数量大于产品表中库存量的平均值的产品编号、产品名称、库存量
  select * from product  p where p.stocks>(select avg(p.stocks) from product p);
--10) 查询2008年液晶电视的销售总数量和销售总额(总额=销售总数量*单价)
select sum(p.quantity),sum(p.quantity*pr.price) from  proout p inner join product pr on p.prono=pr.prono 
 where to_char(p.saledate,'yyyy')=2008 and pr.proname='液晶电视';
--11) 查询出2008年销售给上海客户的客户名,商品名称,销售数量。
select distinct  c.cusname,pr. proname,p.quantity from customer c inner join proout p on p.cusno=p.cusno  inner join product pr on 
 pr.prono=p.prono       where to_char(p.saledate,'yyyy')=2008 and c.address='上海';

--12) 更新液晶电视的价格为8800元,库存数量为888。
update  product set price ='8800',stocks=888 where proname='液晶电视'; 
--13) 查询电话号码以021开头且最后一位不是5的客户姓名、客户电话、客户地址。
select  * from customer c where c.tel like '021%'and c.tel not like '%5';
--14) 查询在2007年内购订购过产品的客户编号,客户名以及产品名和单价。
select c.cusno,c.cusname,pr.proname,pr.price from customer c inner join proout p on c.cusno=p.cusno inner join
 product pr on pr.prono=p.prono where to_char(p.saledate,'yyyy')=2007;

--15) 查询定购过产品的客户编号、客户名和电话。查询结果按客户编号升序排列。
select c.cusno,c.cusname,c.tel from customer c order by c.cusno asc;
--16) 统计销售数量超过100的产品名。
select pr.proname from proout p left join product  pr on p.prono=pr.prono  where p.quantity>100
--17) 删除销售表中销售数量低于6的销售记录 。
delete from proout p where p.quantity<6 
--18) 更改地址为北京的用户姓名为杨婷婷。
update  customer set cusname='杨婷婷' where  address ='北京'

这里面几乎涵盖了目前所学的全部,用来练手真的不错
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值