互联网技术学院周测机试题(一)
一 需求分析
为进一步完善连锁超市经营管理,提高管理效率,减少管理成本,决定开发一套商品管理系统,用于日常的管理。本系统分为商品管理、员工管理、店铺管理,库存管理等功能模块。本次开发,主要针对商品管理功能,具备添加商品,修改商品信息等功能,具体数据库设计如下,请你根据需求完成数据库的设计与相应功能。
二 数据字典
表1:商品信息表(goods)
序号 | 字段名 | 说明 | 数据类型 | 约束 | 备注 |
1 | goodsid | 商品编号 | Int | 主键,自动增长 |
|
2 | goodsname | 商品名称 | Varchar | 长度20,非空 |
|
3 | Price | 商品价格 | Decimal | 长度6,小数2 |
|
4 | Goodstype | 商品类型 | Int | 外键,引用商品类型表的主键 |
|
5 | Place | 商品产地 | Varchar | 长度50 |
|
CREATE TABLE goods(
goodsid int PRIMARY KEY auto_increment,
goodsname VARCHAR(20) NOT NULL,
price DECIMAL(6,2),
goodstype int,
place VARCHAR(50),
CONSTRAINT id_fk FOREIGN KEY(goodstype) REFERENCES goodstype(Typeid)
);
表2:商品类型表(goodstype)
序号 | 字段名 | 说明 | 数据类型 | 约束 | 备注 |
1 | Typeid | 类型编号 | Int | 主键,自动增长 |
|
2 | Typename | 类型名称 | Varchar | 长度20,非空 |
|
3 | Content | 备注 | Varchar | 长度50 |
|
CREATE TABLE goodstype(
Typeid int PRIMARY KEY auto_increment,
typename VARCHAR(20) NOT NULL,
content VARCHAR(50)
);
1、测试数据
Goods 表:
goodsid | goodsname | Price | Goodstype | Place |
1 | 飞利浦SP100净化器 | 2500.00 | 1 | 武汉 |
2 | 山东红富士苹果(一级果) | 12.50 | 3 | 山东 |
3 | 康师傅桶装方便面(红烧牛肉面) | 4.50 | 2 | 杭州 |
4 | 格力NS-8823变频空调 | 2350.00 | 1 | 珠海 |
5 | 泰国山竹特级 | 25.00 | 3 | 泰国 |
INSERT INTO `goods` VALUES (1, '飞利浦SP100净化器', 2500.00, 1, '武汉');
INSERT INTO `goods` VALUES (2, '山东红富士苹果(一级果)', 12.50, 3, '山东');
INSERT INTO `goods` VALUES (3, '康师傅桶装方便面(红烧牛肉面)', 4.50, 2, '杭州');
INSERT INTO `goods` VALUES (4, '格力NS-8823变频空调', 2350.00, 1, '珠海');
INSERT INTO `goods` VALUES (5, '泰国山竹特级', 25.00, 3, '泰国');
goodsType 表:
Typeid | Typename | Content |
1 | 家用电器 | 电器类商品为高价值商品,重点维护 |
2 | 食品饮料 | 注意加强检查 |
3 | 水果生鲜 |
|
INSERT INTO `goodstype` VALUES (1, '家用电器', '电器类商品为高价值商品,重点维护');
INSERT INTO `goodstype` VALUES (2, '食品饮料', '注意加强检查');
INSERT INTO `goodstype` VALUES (3, '水果生鲜', '');
2、功能实现
1、实现商品进货,商品名称“光明发酵酸奶500ml”,商品价格8.50元,商品类型食品饮料,产地为内蒙古。
INSERT INTO goods VALUES(6,'光明发酵酸奶500ml',8.5,2,'蒙古');
2、显示所有商品的信息,按照价格的降序排列。
SELECT * FROM goods ORDER BY price desc
3、统计各类商品的平均单价,显示商品的类型和平均单价。
SELECT goodstype 商品类型,AVG(price) 商品平均单价 FROM goods GROUP BY goodstype
4、超市进行商品促销,现对所有商品进行8.5折销售,显示商品名称和折扣后价格,四舍五入保留两位小数。
SELECT goodsname,ROUND(price*0.85,2) FROM goods
5、修改“泰国山竹特级”的价格为23元。
UPDATE goods SET price=23 WHERE goodsname='泰国山竹特级'
数据库完整导入代码:
-- ----------------------------
-- Table structure for goods
-- ----------------------------
DROP TABLE IF EXISTS `goods`;
CREATE TABLE `goods` (
`goodsid` int(11) NOT NULL AUTO_INCREMENT,
`goodsname` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`price` decimal(6, 2) NULL DEFAULT NULL,
`goodstype` int(11) NULL DEFAULT NULL,
`place` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`goodsid`) USING BTREE,
INDEX `id_fk`(`goodstype`) USING BTREE,
CONSTRAINT `id_fk` FOREIGN KEY (`goodstype`) REFERENCES `goodstype` (`typeid`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of goods
-- ----------------------------
INSERT INTO `goods` VALUES (1, '飞利浦SP100净化器', 2500.00, 1, '武汉');
INSERT INTO `goods` VALUES (2, '山东红富士苹果(一级果)', 12.50, 3, '山东');
INSERT INTO `goods` VALUES (3, '康师傅桶装方便面(红烧牛肉面)', 4.50, 2, '杭州');
INSERT INTO `goods` VALUES (4, '格力NS-8823变频空调', 2350.00, 1, '珠海');
INSERT INTO `goods` VALUES (5, '泰国山竹特级', 25.00, 3, '泰国');
-- ----------------------------
-- Table structure for goodstype
-- ----------------------------
DROP TABLE IF EXISTS `goodstype`;
CREATE TABLE `goodstype` (
`Typeid` int(11) NOT NULL AUTO_INCREMENT,
`typename` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`content` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`Ttpeid`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of goodstype
-- ----------------------------
INSERT INTO `goodstype` VALUES (1, '家用电器', '电器类商品为高价值商品,重点维护');
INSERT INTO `goodstype` VALUES (2, '食品饮料', '注意加强检查');
INSERT INTO `goodstype` VALUES (3, '水果生鲜', '');