47-网上商城数据库-订单数据操作
项目描述
在电子商务兴起的大环境下,建立利用互联网开拓销售渠道,帮助企业及时调整商品结构,协助经销商打开货源的信息门户成为解决信息流通不畅的有效方案,电子商务有利于企业转换经营机制,建立现代企业制度,提高企业的销售水平和竞争力,实现了在网上直接浏览商品、购买商品、创建订单、查看各类新品、特价商品、热销商品等,留言、客户管理、商品管理、商品资料搜索、订单管理、商品分类管理、公告/反馈管理等一系列的网上购物服务,本项目就是实现订单信息表Orders、商品信息表goods、顾客信息表Customs的操作。
网上商城系统数据库操作要求如下:
1)数据库EshopDB。
2)订单信息表Orders,表结构如表J2-48-1所示。
表J2-47-1 Orders表
字段名 | 字段说明 | 数据类型 | 允许为空 | 备注 |
---|---|---|---|---|
O_ID | ID | 整型 | 否 | 主键,自增(增量为1) |
Goods_ID | 商品ID | 整型 | 否 | 外键 |
B_Num | 购买数量 | 整型 | 否 | |
CustomsID | 顾客ID | 整型 | 否 | 外键 |
3)商品信息表Goods,表结构如表J2-47-2所示。
表J2-47-2 Goods表
字段名 | 字段说明 | 数据类型 | 允许为空 | 备注 |
---|---|---|---|---|
ID | 商品ID | 整型 | 否 | 主键,自增(增量1) |
GoodsName | 商品名称 | 字符(100) | 否 | |
Price | 价格 | 货币(money) | 否 | |
BoughtNum | 已购数量 | 整型 | 否 |
4)顾客信息表Customs,表结构如表J2-47-3所示。
表J2-47-3 Customs表
字段名 | 字段说明 | 数据类型 | 允许为空 | 备注 |
---|---|---|---|---|
C_ID | 顾客ID | 整型 | 否 | 主键,自增(增量1) |
C_Name | 收货人姓名 | 字符(20) | 否 | |
C_Address | 地址 | 字符(100) | 否 | |
C_Phone | 固定电话 | 字符(50) | 是 | |
C_Tel | 手机号码 | 字符(20) | 否 | |
C_EMail | 电子邮箱 | 字符(100) | 是 |
5)在信息表之间建立关联,Orders表的Goods_ID与Goods表的ID关联;Orders表的CustomsID与Customs的C_ID关联。
6)表Goods 基础数据如表J2-47-4所示。
表J2-47-4 Goods表基础数据
ID | GoodsName | Price | BoughtNum |
---|---|---|---|
1 | lenovo | 799.00 | 10 |
2 | Vivo | 1299.00 | 50 |
3 | HTC | 1589.00 | 20 |
4 | nokia | 1899.00 | 30 |
(1)任务描述
任务1:用SQL语言创建网上商城系统数据库EshopDB
1)主数据库文件初始值10MB,最大20MB,按5MB进行递增。
2)日志文件初始值为5MB,最大为10MB,按10%进行递增。
IF DB_ID('EshopDB') IS NOT NULL DROP DATABASE EshopDB
GO
CREATE DATABASE EshopDB
ON PRIMARY
(
NAME=EshopDB,
FILENAME='D:\xxxx\EshopDB.mdf',
SIZE=10MB,
MAXSIZE=20MB,
FILEGROWTH=5MB
)
LOG ON
(
NAME=EshopDB_log,
FILENAME='D:\xxxx\EshopDB_log.ldf',
SIZE=5MB,
MAXSIZE=10MB,
FILEGROWTH=10%
)
任务2:用SQL语言创建订单信息表Orders、商品信息表goods、顾客信息表Customs
1)按照提供的表J2-47-1、J2-47-2、J2-47-2结构创建数据库表,并设主键、外键。
CREATE TABLE Goods
(
ID INT NOT NULL PRIMARY KEY IDENTITY(1,1),
GoodsName NVARCHAR(100) NOT NULL,
Price MONEY NOT NULL,
BoughtNum INT NOT NULL,
)
CREATE TABLE Customs
(
C_ID INT NOT NULL PRIMARY KEY IDENTITY(1,1),
C_Name NVARCHAR(20) NOT NULL,
C_Address NVARCHAR(100) NOT NULL,
C_Phone NVARCHAR(50),
C_Tel NVARCHAR(20) NOT NULL,
C_EMail NVARCHAR(100),
)
CREATE TABLE Orders
(
O_ID INT NOT NULL PRIMARY KEY IDENTITY(1,1),
Goods_ID INT NOT NULL,
B_Num INT NOT NULL,
CustomsID INT NOT NULL,
FOREIGN KEY(Goods_ID) REFERENCES Goods(ID),
FOREIGN KEY(CustomsID) REFERENCES Customs(C_ID),
)
任务3:用SQL语言对订单信息表Orders、商品信息表goods、顾客信息表Customs进行操作
1)查找出“lenovo”购买的用户姓名。
2)删除“HTC”的购买记录。
3)统计出有多少用户购买手机。
INSERT INTO goods VALUES('lenovo',799.00,10),
('Vivo',1299.00,50),
('HTC',1589.00,20),
('nokia',1899.00,30)
SELECT C_Name FROM Customs WHERE C_ID IN (SELECT CustomsID FROM Orders WHERE Goods_ID=(SELECT ID FROM Goods WHERE GoodsName='lenovo'))
DELETE FROM Orders WHERE Goods_ID=(SELECT ID FROM Goods WHERE GoodsName='HTC')
SELECT COUNT(DISTINCT(CustomsID)) FROM Orders