drop table PRODUCT cascade constraints;
create table PRODUCT
(
id NUMBER not null, --主键
pcode VARCHAR2(20) not null, --商品编号
pname VARCHAR2(20), --商品名称
inprice NUMBER(7,2), --进价
outprice NUMBER(7,2), --售价
toma VARCHAR2(20), --管理员名称
lastcou NUMBER, --剩余库存数量
ptype VARCHAR2(5), --商品类型
mark NUMBER, --有效标志
createtime DATE --生产日期
);
alter table PRODUCT
ADD CONSTRAINT pk_product primary key (ID);
insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
values (1, \'f-qq45\', \'香蕉\', 2.8, 4, \'张三\', 12, \'a\', 1, to_date(\'05-06-2017\', \'dd-mm-yyyy\'));
insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
values (2, \'f-56tt\', \'苹果\', 3.4, 5, \'张三\', 33, \'a\', 1, to_date(\'16-06-2016\', \'dd-mm-yyyy\'));
insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
values (3, \'f-332\', \'梨\', 2.7, 4, \'张三\', 76, \'a\', 1, to_date(\'23-09-2016\', \'dd-mm-yyyy\'));
insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
values (4, \'f-20\', \'猪肉\', 14, 16, \'张三\', 56, \'b\', 1, to_date(\'31-12-2013\', \'dd-mm-yyyy\'));
insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
values (5, \'f-qq46\', \'圆珠笔\', 3, 5, \'王五\', 55, \'e\', 1, to_date(\'14-09-2016\', \'dd-mm-yyyy\'));
insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
values (6, \'f-57tt\', \'樱桃\', 8, null, \'王五\', 12, \'a\', 1, to_date(\'22-05-2006\', \'dd-mm-yyyy\'));
insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
values (7, \'f-292\', \'三文鱼\', 5, 8, \'王五\', 23, \'b\', 1, to_date(\'31-07-2001\', \'dd-mm-yyyy\'));
insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
values (8, \'f-604\', \'螺丝刀\', 12, 15, \'王五\', 72, \'c\', 1, to_date(\'24-02-2013\', \'dd-mm-yyyy\'));
insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
values (9, \'f-qq47\', \'扳手\', 14, 19, \'王五\', 90, \'c\', 1, to_date(\'14-05-2015\', \'dd-mm-yyyy\'));
insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
values (10, \'f-58tt\', \'钳子\', 10, 13, \'张三\', 97, \'c\', 1, to_date(\'28-03-2012\', \'dd-mm-yyyy\'));
insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
values (11, \'f-916\', \'矿泉水\', 2.5, 3, \'李四\', 44, \'d\', 1, to_date(\'21-07-2012\', \'dd-mm-yyyy\'));
insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
values (12, \'f-1228\', \'杏仁露\', 4, 5, \'李四\', 38, \'d\', 1, to_date(\'22-02-2013\', \'dd-mm-yyyy\'));
insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
values (13, \'f-59tt\', \'钢笔\', null, 43, \'李四\', 22, \'e\', 1, to_date(\'30-09-2013\', \'dd-mm-yyyy\'));
insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
values (14, \'f-1540\', \'铅笔\', .5, .8, \'赵六\', 72, \'e\', 1, to_date(\'14-05-2018\', \'dd-mm-yyyy\'));
insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
values (15, \'f-1852\', \'大马哈鱼\', 1.5, 2, \'赵六\', 76, \'b\', 1, to_date(\'17-05-2012\', \'dd-mm-yyyy\'));
insert into PRODUCT (id, pcode, pname, inprice, outprice, toma, lastcou, ptype, mark, createtime)
values (16, \'f-2164\', \'鸡蛋\', 2.7, 4, \'赵六\', 56, \'b\', 1, to_date(\'14-09-2010\', \'dd-mm-yyyy\'));
commit;
-- 使用insert into任意添加三条数据(数据信息自定)加到这个表中
-- 删除\'猪肉\'的那条记录
-- 将扳手和钳子的商品名称分别改为\'16号扳手\'和\'小号钳子\', 并将这两个商品的管理人员都改为\'赵六\'
-- 查询商品类型为\'a\'的所有商品
-- 查询王五负责的c类商品
-- 查询剩余数量小于50的所有商品
-- 查询剩余数量在60-80之间的
-- 查询商品名称带\'笔\'的和带\'鱼\'的记录
-- 查询商品编号中带\'tt\'的记录
-- 查询商品类型为a, d, c的所有商品
-- 查询所有\'e\'类型商品, 并按照剩余库存数量排序
-- 查询管理商品数少于4的管理员名称和管理的商品数量
-- 查询所有的管理员名称和其手上所管理的所有商品数量
-- 查询所有的管理员名称和其手上所管理的所有\'a\'类商品名称的数量
-- 查询所有商品中剩余数量最少的一个
-- 查询生产日期在2015/5/31之前的数据
-- 假设所有商品的有效期是一年, 以当前系统时间为标准, 查询所有商品的信息, 并且加一列标注是否过期
-- 查询每个管理员所管理的商品的平均进价价格和售价价格
-- 查询每个管理员手上的商品的利润的平均值
-- 查询假设每个管理员把所有商品售完后各自的利润总和
答案:
--SELECT * FROM product
/*INSERT INTO product
VALUES(50,\'qqwweerr\',\'豆腐\',2.5, 3, \'张三\', 30, \'b\', 1, SYSDATE);
COMMIT;*/
/*DELETE product p WHERE p.pname=\'猪肉\';
COMMIT;*/
/*UPDATE product p SET p.pname=\'16号扳手\', p.toma=\'赵六\'
WHERE p.pname=\'扳手\';
UPDATE product p SET p.pname=\'小号钳子\', p.toma=\'赵六\'
WHERE p.pname=\'钳子\';
COMMIT;*/
--SELECT * FROM product p WHERE p.ptype=\'a\';
--SELECT * FROM product p WHERE p.ptype=\'c\' AND p.toma=\'王五\';
--SELECT * FROM product p WHERE p.lastcou<50;
--SELECT * FROM product p WHERE p.lastcou <80 AND p.lastcou > 60;
--SELECT * FROM product p WHERE p.lastcou BETWEEN 60 AND 80;
/*SELECT * FROM product p
WHERE p.pname LIKE \'%笔%\' OR p.pname LIKE \'%鱼%\';*/
--SELECT * FROM product p WHERE p.pcode LIKE \'%tt%\';
/*SELECT * FROM product p WHERE p.ptype IN (\'a\',\'c\',\'d\');
SELECT * FROM product p WHERE p.ptype = \'a\'
OR p.ptype = \'c\'
OR p.ptype = \'d\'*/
--SELECT * FROM product p
--WHERE p.ptype=\'e\' ORDER BY p.lastcou ASC或者desc
/*SELECT p.toma, COUNT(p.pname) 管理的商品数
FROM product p GROUP BY p.toma
HAVING COUNT(p.pname) < 4*/
/*SELECT p.toma, COUNT(p.pname) 管理的商品数
FROM product p GROUP BY p.toma*/
/*SELECT p.toma, SUM(DECODE(p.ptype, \'a\', 1, 0))
FROM product p GROUP BY p.toma
SELECT p.toma, COUNT(p.ptype) FROM product p
WHERE p.ptype=\'a\' GROUP BY p.toma*/
/*SELECT * FROM product p
WHERE p.lastcou<=ALL(SELECT lastcou FROM product)*/
/*SELECT * FROM product p
WHERE p.lastcou=(SELECT MIN(lastcou) FROM product)*/
/*SELECT * FROM product p
WHERE p.createtime < to_date(\'20150531\',\'yyyymmdd\')*/
/*SELECT p.pname, CASE WHEN (SYSDATE-p.createtime) > 365
THEN \'过期\' ELSE \'正常\' END 是否过期
FROM product p*/
/*SELECT p.toma, AVG(p.inprice), round(AVG(p.outprice), 2)
FROM product p
GROUP BY p.toma*/
/*SELECT p.toma, AVG(p.outprice-p.inprice)
FROM product p GROUP BY p.toma*/
SELECT p.toma, SUM((p.outprice-p.inprice)* p.lastcou) 利润总和
FROM product p GROUP BY p.toma