目录
1.设计任务
1.1系统开发的背景
1.2系统开发的意义
1.3系统所应用的模块
2.需求分析
2.1功能分析
2.2数据流图
2.3数据字典
3.概念结构设计
4.逻辑结构设计
5.物理结构设计
5.1基本表
5.2视图
6.数据库实施
6.1 建立数据库表
6.2建立视图
7.数据库操作
目录
1.1系统开发的背景
1.2系统开发的意义
1.3系统所应用的模块
2.需求分析
2.1功能分析
2.2数据流图
2.3数据字典
3.概念结构设计
4.逻辑结构设计
5.物理结构设计
5.1基本表
5.2视图
6.数据库实施
6.1 建立数据库表
6.2建立视图
7.数据库操作
7.1建立数据库和数据表
7.2数据库操作
7.2.1 INSERT、DELETE和UPDATE语句
7.2.2 SELECT语句
7.2.3创建视图
7.2.4存储过程
7.2.5触发器
8.总结与体会
参考文献
7.1建立数据库和数据表
7.2数据库操作
7.2.1 INSERT、DELETE和UPDATE语句
7.2.2 SELECT语句
7.2.3创建视图
7.2.4存储过程
7.2.5触发器
8.总结与体会
1.设计任务
1.1系统开发的背景
随着社会的不断进步,汽车销售行业的竞争也愈来愈激烈,要想在竞争中取得优势,必须在经营管理、产品服务等方面提高管理意识。如何利用先进的管理手段,提高销售信息的管理水平,是每一个汽车销售4S店管理者所面临的重大问题。传统手工的销售管理记录,管理过于繁琐而复杂,执行效率低,并且易于出错。通过汽车销售管理系统,我们可以做到信息的规范管理和快速查询,实现了销售汽车信息管理的系统化、规范化和自动化,这样不仅减少了管理工作量,还提高了管理效率,降低了管理成本。
1.2系统开发的意义
汽车销售管理系统是汽车4S店经营管理中不可缺少的部分,使用计算机作为管理的核心,能有效的提高管理效率,具有手工操作无法比拟的性能,查询方便、对汽车销售的情况一目了然、对客户信息能够长期的保存。这些优点正是开发本系统的意义所在,因此它的内容对于经营的决策者和管理者来说都至关重要。
1.3系统所应用的模块
综合应用数据库系统相关知识设计该数据库,主要模块内容包括:
(1)需求分析,分析该系统需要完成的功能模块以及系统所涉及的全部数据实体,每个数据实体的属性名一览表以及数据实体间的联系等,该阶段要求使用数据流图、数据字典;
(2)概念结构设计,对用户需求进一步抽象、归纳,使用E-R模型来描述;
(3)逻辑结构设计,将概念结构转化为DBMS支持的数据模型,并进行优化,要求满足第三范式;
(4)物理结构设计,为逻辑数据模型选取一个最适合应用环境的物理结构,选择数据库产品,确定数据库实体属性(字段)、数据类型、长度、精度确定;
(5)数据库实施,建立数据库结构,创建数据库表、视图等,创建数据表时需要包含主码、外码、唯一性约束、非空约束、检查约束、默认值约束等完整性约束的定义;
(6)数据库操作。
2.需求分析
2.1功能分析
(1)基础信息管理
厂商信息的管理:查询、增、删、改;车型信息的管理:查询、增、删、改;客户信息的管理:查询、增、删、改。
(2)进货管理
车辆采购信息的管理:查询、增、删、改;车辆入库信息的管理:查询、增、删、改。
(3)销售管理
车辆销售:客户可以根据自己的需求,选择不同型号和颜色的车型;收益统计:厂商按照所出售的车辆数量及价格进行统计。
(4)仓库管理
库存车辆:员工对已有车辆进行详细管理;仓库明细:库存各种类型车辆的详细信息;进销存统计:员工对车辆的出售与进货进行统计。
(5)系统维护
数据安全管理,系统管理员对该数据库出现的问题进行管理;维护管理:根据车辆销售情况及时更改数据库;权限管理:规定该数据库访问的权限。
2.2数据流图
订货系统流程图如图2.1所示:
图2.1 订货系统流程图
查询订单数据流程图如图2.2所示:
图2.2 查询订单数据流程图
订单处理数据流程图如图2.3所示:
图2.3 订单处理数据流程图
开订单数据流程图如图2.4所示:
图2.4 开订单数据流程图
2.3数据字典
表2.1 数据项
编号 | 数据项名称 | 说明部分 | 编号 | 数据项名称 | 说明部分 |
1 | 客户姓名 | 文本类型 长度为20字符串 | 2 | 客户编号 | 文本类型 长度为10字符串 |
3 | 客户性别 | 字符串类型 男、女 | 4 | 客户电话 | 整数类型 |
5 | 客户年龄 | 整数类型 | 6 | 客户地址 | 文本类型 长度为20字符串 |
7 | 车辆编号 | 文本类型 长度为10字符串 | 8 | 厂商编号 | 文本类型 长度为10字符串 |
9 | 车辆名称 | 文本类型 长度为20字符串 | 10 | 车辆类型 | 文本类型 长度为10字符串 |
11 | 车辆颜色 | 文本类型 长度为10字符串 | 12 | 座位数 | 整数类型 1——10 |
13 | 价格 | 整数类型 | 14 | 厂商名称 | 文本类型 长度为20字符串 |
15 | 厂商编号 | 文本类型 长度为10字符串 | 16 | 厂商电话 | 整数类型 |
17 | 厂商地址 | 文本类型 长度为20字符串 | 18 | 生产车辆总数 | 整数类型 |
19 | 订单号 | 整数类型 | 20 | 订货日期 | 时间类型 |
21 | 交货日期 | 时间类型 ****/**/** | 22 | 订单地址 | 文本类型 长度为20字符串 |
23 | 仓库地址 | 文本类型 长度为20字符串 | 24 | 仓库编号 | 文本类型 长度为10字符串 |
25 | 进货车辆总数 | 整数类型 | 26 | 出货车辆总数 | 整数类型 |
27 | 库存车辆总数 | 整数类型 | 28 | 车辆总成本 | 浮点类型 |
29 | 利润 | 浮点类型 | 30 | 保修期限 | 时间类型 |
31 | 出售车俩总数 | 整数类型 | 32 | 获取总金额 | 浮点类型 |
表2.2 数据结构
编号 | 数据结构名称 | 属性 |
1 | 客户 | 客户姓名,编号,性别,年龄,电话,地址 |
2 | 车辆 | 车辆编号,名称,类型,颜色,座位数,价格,厂商名 |
3 | 厂商 | 厂商名称,厂商编号,地址,电话,生产车辆数 |
4 | 订单 | 订单号,客户编号,订货日期,交货日期,地址,订单状态 |
5 | 仓库 | 仓库编号,地址,进货车辆总数,出货车辆总数,库存车辆总数 |
6 | 车辆销售 | 车辆编号,厂商号,出售车辆总数,车辆总成本,利润 |
7 | 订货 | 客户编号,厂商编号,车辆编号,买车时间,保修期限 |
表2.3 数据流
编号 | 数据流名 | 输入 | 输出 |
1 | 变更客户 | 变更信息 | 客户信息 |
2 | 查询客户 | 客户编号 | 客户信息 |
3 | 变更厂商 | 变更信息 | 厂商信息 |
4 | 查询厂商 | 厂商编号 | 厂商信息 |
5 | 变更车辆 | 变更信息 | 车辆信息 |
6 | 查询车辆 | 车辆编号 | 车辆信息 |
7 | 变更订单 | 变更信息 | 订单信息 |
8 | 查询订单 | 订单号 | 订单信息 |
9 | 变更仓库 | 变更信息 | 仓库信息 |
10 | 查询仓库 | 仓库编号 | 仓库信息 |
11 | 变更车辆销售 | 变更信息 | 车辆销售信息 |
12 | 查询车辆销售 | 车辆销售总数 | 利润 |
13 | 结账 | 车辆编号 | 购买信息 |
14 | 提交订货请求 | 客户编号,车辆编号,价格,厂商编号 | 车辆信息 |
15 | 获得订货请求 | 订货信息 | 车辆编号,厂商编号,客户编号 |
16 | 提交订单信息 | 车辆编号,厂商编号 | 订单信息 |
17 | 预定车辆 | 车辆编号 | 车辆信息 |
18 | 付款 | 车辆编号 | 车辆信息,厂商信息 |
表2.4 数据存储
数据存储名 | 输入数据流 | 输出信息流 |
客户信息 | 变更客户 | 查询客户 提交订货请求 |
车辆信息 | 变更车辆 | 查询车辆 获得订货请求 |
厂商信息 | 变更厂商 | 查询厂商 提交订货请求 |
车辆销售信息 | 变更车辆销售 | 查询厂商,提交订货请求,提交订货信息,提交订单信息 |
订单信息 | 变更订单 | 结账,提交订货请求 |
订货信息 | 提交订货请求,提交订单信息 | 结账,获得订单请求 |
表2.5 处理过程
处理过程名 | 输入数据流 | 输出信息流 |
客户登记 | 终端 | 变更车辆、变更厂商 |
订货 | 终端 | 提交订货请求 获得订货请求 |
订货 | 提交订货请求 | 提交订货信息 |
订单 | 提交订货信息 | 提交订单信息 |
客户结账 | 结账 |
3.概念结构设计
使用概念结构设计对用户需求进一步抽象、归纳。
其总E-R模型如图3.1所示:
图3.1 概念结构设计总E-R图
4.逻辑结构设计
系统中的实体有:客户,车辆,仓库,厂商;
关系模式如下:
客户(客户编号,客户姓名,客户电话,客户地址,客户性别,客户年龄)
车辆(车辆编号,车辆名称,厂商编号,价格)
厂商(厂商编号,厂商名称,厂商地址,生产车辆总数,进货价格)
仓库(仓库编号,厂商编号,进货车辆数,出货车辆数,库存车辆数)
5.物理结构设计
5.1基本表
表5.1 客户基本表K
属性名称 | 属性名 | 类型 | 长度 | 说明 |
客户编号 | K_NO | CHAR | 20 | 主码:公司统一编号,具有唯一性 |
客户姓名 | K_NAME | CHAR | 20 | 客户名称 |
客户性别 | K_SEX | CHAR | 2 | 客户性别 |
客户年龄 | K_AGE | INT | 18–100 | |
客户电话 | K_TEL | INT | ||
客户地址 | K_ADD | CHAR | 20 | 客户所在地址 |
表5.2 车辆基本表CAR
属性中文名称 | 属性名 | 类型 | 长度 | 说明 |
车辆编号 | CAR_NO | CHAR | 10 | 主码:厂商统一编号,具有唯一性 |
车辆名称 | CAR_NAME | CHAR | 20 | 车辆名称 |
厂商编号 | CS_NO | CHAR | 10 | 文本类型、有唯一性 |
价格 | PRICE | FLOAT |
表5.3 厂商基本表CS
属性中文名称 | 属性名 | 类型 | 长度 | 说明 |
厂商编号 | CS_NO | CHAR | 10 | 主码:厂商统一编号,具有唯一性 |
厂商名称 | CS_NAME | CHAR | 20 | 文本类型、有唯一性 |
厂商地址 | CS_ADD | CHAR | 10 | |
生产车辆总数 | CAR_AMOUNT | INT | ||
进货价格 | INT_PRICE | FLOAT |
表5.4 仓库基本表CK
属性中文名称 | 属性名 | 类型 | 长度 | 说明 |
仓库编号 | CK_NO | CHAR | 10 | 主码:厂商统一编号,具有唯一性 |
厂商编号 | CS_NO | CHAR | 10 | |
进货车辆数 | INT_AMOUNT | INT | 仓库开始进车辆数量 | |
出货车辆数 | OUT_AMOUNT | INT | 仓库已卖出车辆数量 | |
库存车辆总数 | REMAIN_AMOUNT | INT | 仓库现存有车辆数量 |
表5.5 车辆销售基本表CX
属性中文名称 | 属性名 | 类型 | 长度 | 说明 |
车辆编号 | CAR_NO | CHAR | 10 | 外码:参照车辆表的车型号 |
厂商编号 | CS_NO | CHAR | 10 | 外码:依照厂商表的厂商编号 |
出售车辆数 | SALE_AMOUNT | INT | ||
车辆总成本 | CAR_MONEY | FLOAT | 车辆进货的成本 | |
获取总金额 | H_MONEY | FLOAT |
表5.6 订单表D
属性中文名称 | 属性名 | 类型 | 长度 | 说明 |
订单号 | D_NO | CHAR | 10 | 订单所属的类别 |
客户编号 | K_NO | CHAR | 20 | 外码:参照客户表的客户编号 |
厂商编号 | CS_NO | CHAR | 10 | 外码:依据厂商表中的厂商编号 |
订货日期 | D_DATA | DATE | 订货时间 | |
交货日期 | H_DATA | DATE | 交货期限 | |
订单地址 | D_ADD | CHAR | 10 |
5.2视图
(1)厂商(厂商号,厂商名)
从厂商基本表导出
(2)进销存统计(仓库号,进货车辆数,出货车辆数)
从仓库基本表导出
(3)所有车辆销售信息(车型号,厂商号)
从车辆和厂商基本表导出
(4)付款(车型号,厂商号,车辆名,价格)
从车辆表、厂商表导出
(5)订单生成视图,订单(订单号,客户号,订货日期,交货日期,地址)
从订单表、客户表导出
(6)收益统计信息(车型号,出售车辆数,车辆总成本,获取总金额,利润)
从车辆表、车辆销售表导出
6.数据库实施
将汽车管理系统的数据库名称设为QCXS,数据库只有一个数据文件和一个日志文件,保存在默认路径下。
创建数据库命令为
CREATE DATABASE QCXS
为数据库中基本表建立的索引如下所述。
(1)基本表K ,CAR ,CS ,CK ,D的主码分别是K_NO,CAR_NO,CS_NO,CK_NO , D_NO的值唯一,且经常出现在连接、查询条件和操作中出现,建立唯一性索引。
(2)车辆销售基本表CX和订单表D 的属性CAR_NAME和D_NO 经常在查询条件中出现,考虑建立索引。
6.1 建立数据库表
(1)客户信息登记表的建立
CREATE TABLE K
(K_NO CHAR(20)PRIMARY KEY,
K_NAME CHAR(20),
K_SEX CHAR(2),
K_AGE TINYINT,
K_TEL CHAR(11),
K_ADD CHAR(20))
(2)车辆信息表的建立
CREATE TABLE CAR
(CAR_NO CHAR(10)PRIMARY KEY,
CAR_NAME CHAR(20),
CS_NO CHAR(10),
PRICE FLOAT)
(3)厂商信息表的建立
CREATE TABLE CS
(CS_NO CHAR(10)PRIMARY KEY,
CS_NAME CHAR(20),
CS_ADD CHAR(10),
CAR_AMOUNT INT)
(4)仓库信息表的建立
CREATE TABLE CK
(CK_NO CHAR(10)PRIMARY KEY,
CS_NO CHAR(10),
INT_AMOUNT INT,
OUT_AMOUNT INT,
REMAIN_AMOUNT INT)
(5)车辆销售表的建立
CREATE TABLE CX
(CAR_NO CHAR(10),
CS_NO CHAR(10),
SALE_AMOUNT INT,
CAR_MONEY FLOAT,
H_MONEY FLOAT)
(6)订单信息记录表的建立
CREATE TABLE D
(D_NO CHAR(10)PRIMARY KEY,
K_NO CHAR(20),
CS_NO CHAR(10),
D_DATA DATE,
H_DATA DATE,
D_ADD CHAR(10))
6.2建立视图
(1)客户基本信息视图
用于查询客户基本信息的视图定义如下:
CREATE VIEW 客户基本视图
AS
SELECT K_NO,K_NAME,K_SEX,K_AGE,K_TEL,K_ADD
FROM K
WITH CHECK OPTION
GO
(2)车辆基本信息视图
用于查询车辆基本信息的视图定义如下:
CREATE VIEW 车辆基本视图
AS
SELECT CAR_NO,CAR_NAME,CS_NO,PRICE
FROM CAR
WHERE CAR_NO=’BMW001′
WITH CHECK OPTION
GO
(3)订单基本信息视图
用于查询订单基本信息的视图定义如下
CREATE VIEW DView(订单号,客户编号,厂商编号,订货日期,交货日期,订单地址)
AS
SELECT D_NO, K_NO, CS_NO, D_DATA, H_DATA, D_ADD
FROM D
(4)车辆销售基本信息视图
CREATE VIEW 车辆销售视图
AS
SELECT CAR_NO,COUNT(H_MONEY)符合条件的编号
FROM CX
WHERE H_MONEY>10000000
GROUP BY CAR_NO
WITH CHECK OPTION
GO
(5)仓库基本信息试视图
CREATE VIEW 仓库基本视图
AS
SELECT CK_NO,CS_NO,INT_AMOUNT,OUT_AMOUNT,REMAIN_AMOUNT
FROM CK
WHERE CK_NO=’CK1′
WITH CHECK OPTION
GO
(6)厂商基本信息视图
CREATE VIEW 厂商基本视图
AS
SELECT CS_NO,CS_NAME,CS_ADD,CAR_AMOUNT,INT_PRICE
FROM CS
WHERE CS_NO=’C1′
WITH CHECK OPTION
GO
7.数据库操作
7.1建立数据库和数据表
create database QCXS
on
(name=QCXS,
filename=’D:\sql\QCXS.mdf’,
size=10MB,
maxsize=30MB,
filegrowth=5MB)
log on
(name=xxgl_log,
filename=’D:\sql\QCXS_log.ldf’,
size=4MB,
maxsize=10MB,
filegrowth=2MB)
USE QCXS
GO
CREATE TABLE K
(K_NO CHAR(20)PRIMARY KEY,
K_NAME CHAR(20),
K_SEX CHAR(2),
K_AGE TINYINT,
K_TEL CHAR(11),
K_ADD CHAR(20)
)
CREATE TABLE CAR
(CAR_NO CHAR(10)PRIMARY KEY,
CAR_NAME CHAR(20),
CS_NO CHAR(10),
PRICE FLOAT
)
CREATE TABLE CS
(CS_NO CHAR(10)PRIMARY KEY,
CS_NAME CHAR(20),
CS_ADD CHAR(10),
CAR_AMOUNT INT,
INT_PRICE FLOAT
)
CREATE TABLE CK
(CK_NO CHAR(10)PRIMARY KEY,
CS_NO CHAR(10),
INT_AMOUNT INT,
OUT_AMOUNT INT,
REMAIN_AMOUNT INT
)
CREATE TABLE CX
(CAR_NO CHAR(10),
CS_NO CHAR(10),
SALE_AMOUNT INT,
CAR_MONEY FLOAT,
H_MONEY FLOAT
)
CREATE TABLE D
(D_NO CHAR(10)PRIMARY KEY,
K_NO CHAR(20),
CS_NO CHAR(10),
D_DATA DATE,
H_DATA DATE,
D_ADD CHAR(10)
)
7.2数据库操作
7.2.1 INSERT、DELETE和UPDATE语句
(1)INSERT 插入数据
INSERT INTO K VALUES
(‘K1′,’吴刚’,’男’,’53’,’13400000001′,’深圳市’),
(‘K2′,’杨维’,’女’,’35’,’13400000002′,’上海市’),
(‘K3′,’刘桂’,’男’,’44’,’13400000003′,’商丘市’),
(‘K4′,’程勇’,’男’,’48’,’13400000004′,’郑州市’),
(‘K5′,’马飞’,’男’,’39’,’13400000005′,’苏州市’),
(‘K6′,’冷星’,’女’,’42’,’13400000006′,’吉林市’),
(‘K7′,’TINA’,’女’,’38’,’13400000007′,’开封市’),
(‘K8′,’TOM’,’男’,’41’,’13400000008′,’信阳市’),
(‘K9′,’陆贵山’,’男’,’46’,’13400000009′,’南阳市’),
(‘K10′,’徐洪水’,’男’,’29’,’13400000010′,’濮阳市’)
INSERT INTO CAR VALUES
(‘BMW001′,’宝马z4′,’C1′,’488800’),
(‘BMW002′,’宝马x6′,’C2′,’766900’),
(‘BMW003′,’宝马x7′,’C3′,’1000000’),
(‘BMW004′,’宝马i4′,’C4′,’449900’),
(‘BMW005′,’宝马3系’,’C5′,’293900′),
(‘BMW006′,’宝马i3′,’C6′,’349900’),
(‘BMW007′,’宝马m3′,’C7′,’849900’),
(‘BMW008′,’宝马m4′,’C8′,’879900’),
(‘BMW009′,’宝马6系GT’,’C9′,’583900′),
(‘BMW010′,’宝马5系’,’C10′,’428900′)
INSERT INTO CS VALUES
(‘C1′,’宝马1厂’,’苏州市’,’80’,’400000′),
(‘C2′,’宝马2厂’,’扬州市’,’100′,’700000′),
(‘C3′,’宝马3厂’,’吉林市’,’54’,’800000′),
(‘C4′,’宝马4厂’,’南京市’,’120′,’350000′),
(‘C5′,’宝马5厂’,’武汉市’,’58’,’200000′),
(‘C6′,’宝马6厂’,’郑州市’,’46’,’290000′),
(‘C7′,’宝马7厂’,’北京市’,’150′,’750000′),
(‘C8′,’宝马8厂’,’开封市’,’101′,’800000′),
(‘C9′,’宝马9厂’,’上海市’,’65’,’500000′),
(‘C10′,’宝马10厂’,’商丘市’,’85’,’350000′)
INSERT INTO CK VALUES
(‘CK1′,’C1′,’51’,’30’,’21’),
(‘CK2′,’C2′,’60’,’40’,’20’),
(‘CK3′,’C3′,’40’,’25’,’15’),
(‘CK4′,’C4′,’80’,’55’,’25’),
(‘CK5′,’C5′,’40’,’22’,’18’),
(‘CK6′,’C6′,’20’,’12’,’8′),
(‘CK7′,’C7′,’55’,’32’,’23’),
(‘CK8′,’C8′,’63’,’43’,’20’),
(‘CK9′,’C9′,’41’,’23’,’18’),
(‘CK10′,’C10′,’30’,’22’,’8′)
INSERT INTO CX VALUES
(‘BMW001′,’C1′,’30’,’12000000′,’14664000′),
(‘BMW002′,’C2′,’40’,’28000000′,’30676000′),
(‘BMW003′,’C3′,’15’,’12000000′,’15000000′),
(‘BMW004′,’C4′,’12’,’4200000′,’6748500′),
(‘BMW005′,’C5′,’22’,’4400000′,’6465800′),
(‘BMW006′,’C6′,’10’,’2900000′,’3499000′),
(‘BMW007′,’C7′,’22’,’16500000′,’18697800′),
(‘BMW008′,’C8′,’18’,’14400000′,’15838200′),
(‘BMW009′,’C9′,’16’,’8000000′,’9342400′),
(‘BMW010′,’C10′,’30’,’10500000′,’12867000′)
INSERT INTO D VALUES
(‘DD0001′,’K7′,’C2′,’2022.2.2′,’2022.4.20′,’开封市’),
(‘DD0002′,’K1′,’C4′,’2021.4.20′,’2022.6.18′,’深圳市’),
(‘DD0003′,’K3′,’C5′,’2021.5.20′,’2021.10.1′,’商丘市’),
(‘DD0004′,’K2′,’C9′,’2021.9.18′,’2021.12.10′,’上海市’),
(‘DD0005′,’K10′,’C7′,’2021.5.30′,’2021.6.30′,’濮阳市’),
(‘DD0006′,’K4′,’C6′,’2022.1.12′,’2022.4.20′,’郑州市’),
(‘DD0007′,’K5′,’C1′,’2022.2.18′,’2022.5.2′,’苏州市’),
(‘DD0008′,’K8′,’C3′,’2022.1.25′,’2022.3.3′,’信阳市’),
(‘DD0009′,’K9′,’C10′,’2022.3.18′,’2022.4.20′,’南阳市’),
(‘DD0010′,’K6′,’C8′,’2022.3.14′,’2022.5.1′,’吉林市’)
(2)DELETE 删除数据
–删除客户基本表K中客户编号为K1的客户信息
DELETE FROM K
WHERE K_NO=’K1′
–删除客户基本表K中指定客户姓名的客户信息
DELETE FROM K
WHERE K_NAME=’马飞’
–删除客户基本表K中指定客户电话的客户信息
DELETE FROM K
WHERE K_TEL=’13400000006′
(3)UPDATE 更新数据
–更新客户基本表K中的客户电话信息
UPDATE K
SET K_TEL=’13400000000′
WHERE K_NAME=’马飞’
–更新客户基本表K中的客户地址信息
UPDATE K
SET K_ADD=’江苏省’
WHERE K_NO=’K2′
7.2.2 SELECT语句
(1)基本查询
–查询车辆基本表CAR中的车辆编号,车辆名称,厂商编号
SELECT CAR_NO,CAR_NAME,CS_NO
FROM CAR
–查询车辆基本表CAR中所有信息
SELECT * FROM CAR
–查询厂商基本表CS所有信息
SELECT * FROM CS
(2)多表查询
–查询生产车辆名称为宝马z4的厂商地址
SELECT CS_ADD
FROM CAR INNER JOIN CS
ON CS.CS_NO=CAR.CS_NO
WHERE CAR_NAME=’宝马z4′
–查询厂商名称为宝马4厂的出货车辆数
SELECT OUT_AMOUNT
FROM CS INNER JOIN CK
ON CS.CS_NO=CK.CS_NO
WHERE CS_NAME=’宝马4厂’
7.2.3创建视图
(1)创建视图
–创建客户的基本视图
CREATE VIEW 客户基本视图
AS
SELECT K_NO,K_NAME,K_SEX,K_AGE,K_TEL,K_ADD
FROM K
WITH CHECK OPTION
GO
–创建车辆编号为BMW001的基本视图
CREATE VIEW 车辆基本视图
AS
SELECT CAR_NO,CAR_NAME,CS_NO,PRICE
FROM CAR
WHERE CAR_NO=’BMW001′
WITH CHECK OPTION
GO
–创建厂商编号为C1的基本视图
CREATE VIEW 厂商基本视图
AS
SELECT CS_NO,CS_NAME,CS_ADD,CAR_AMOUNT,INT_PRICE
FROM CS
WHERE CS_NO=’C1′
WITH CHECK OPTION
GO
–创建仓库编号为CK1的基本视图
CREATE VIEW 仓库基本视图
AS
SELECT CK_NO,CS_NO,INT_AMOUNT,OUT_AMOUNT,REMAIN_AMOUNT
FROM CK
WHERE CK_NO=’CK1′
WITH CHECK OPTION
GO
–创建获取总金额大于10000000的基本视图
CREATE VIEW 车辆销售视图
AS
SELECT CAR_NO,COUNT(H_MONEY)符合条件的编号
FROM CX
WHERE H_MONEY>10000000
GROUP BY CAR_NO
WITH CHECK OPTION
GO
(2)修改视图
–修改视图“客户基本视图”,插入一条数据
INSERT INTO 客户基本视图
VALUES(‘K11′,’吴伍’,’男’,’53’,’13400000011′,’深圳市’)
SELECT * FROM 客户基本视图
–修改视图“客户基本视图”,修改指定信息
UPDATE 客户基本视图
SET K_AGE=’50’
WHERE K_NO=’K8′
SELECT * FROM 客户基本视图
–修改视图“客户基本视图”,删除指定信息
DELETE
FROM 客户基本视图
WHERE K_NO=’K6′
SELECT * FROM 客户基本视图
7.2.4存储过程
(1)创建存储过程
CREATE PROCEDURE CSSS
@CS_NO CHAR(10)
AS
SELECT *
FROM CS
WHERE CS_NO=’C2′
GO
(2)修改存储过程
ALTER PROC CSSS
@CS_NO CHAR(20)
AS
SELECT *
FROM CS
WHERE CS_NO=’C2′
GO
(3)查看存储过程
–查看存储过程一般信息
SP_HELP CSSS
–查看存储过程文本信息
SP_HELPTEXT CSSS
(4)删除存储过程
DROP PROCEDURE CSSS
7.2.5触发器
(1)创建触发器
CREATE TRIGGER CHELIANGCFQ
ON CAR
FOR
INSERT,UPDATE
AS
PRINT ‘对车辆表进行数据的插入或修改’
(2)查看触发器
–查看触发器一般信息
SP_HELPTEXT CHELIANGCFQ
–查看触发器文本信息
SP_HELP CHELIANGCFQ
(3)修改触发器
ALTER TRIGGER CHELIANGCFQ
ON CAR
FOR
INSERT,UPDATE
AS
PRINT ‘你执行的添加或修改操作无效!’
(4)删除触发器
DROP TRIGGER CHELIANGCFQ
8.总结与体会
时光飞逝,一转眼,一个学期又进尾声了,本学期的能力拓展强化训练也完成了。
俗话说“好的开始是成功的一半”。说起课程设计,该小组最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。最后,要重视数据库的模块化,修改的方便,也要注重程序的调试,掌握其方法。
当然,这其中也有很多问题,第一、不够细心比如由于粗心大意,由于对课本理论的不熟悉导致编程出现错误。第二,是在学习态度上,这次课程设计是对我的学习态度的一次检验。对于这次课程设计,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。该小组这次课程设计所遇到的多半问题多数都是由于他们不够严谨。
从开始得到老师给定课题时的一脸茫然到老师讲解后内容的初步了解再到他们通过查资料、与同学共同探讨、经过老师指导后,自己设计并写出这份课程报告,心中充满了成就感。通过课程设计还拓宽了知识面,学到了很多课本上没有的知识,报告只有自己去做能加深对知识的理解,任何困难只有自己通过努力去克服才能收获成功的喜悦。本次课程设计还让同学们明白了理论联系实际的重要性,只有通过实际的动手才能加深对于理论知识的理解。在做课程设计的过程中让同学们发现他们对课本知识的理解不够深刻,掌握的不太牢靠,以后需要努力地温习以前的知识。
参考文献
[1]刘金岭,冯万利.数据库系统及应用教程——SQL Server 2008[M].北京: 清华大学出版社,2019.
[2]刘卫国,奎晓燕.数据库技术与应用——SQL Server 2008 [M].北京:人民邮电出版社,2019.
[3]熊光华.计算机数据库系统在企业管理中的应用[J].计算机产品与流通,2020(05):14.
[4]谌林,郑泓楠.分布式数据库查询处理和优化算法[J].中外企业家,2020(15):145.
[5]王福超,牛长春.基于加密数据库的快速查询方法研究[J].网络安全技术与应用,2020(04):40-42.
[6]冯小洁.以体系结构为中心的数据库设计方法及应用[J].中国教育信息化,2020(05):89-93.
[7]丁红艳.基于计算机软件工程的数据库编程技术[J].科学技术创新,2020(06):90-91.
[8]毛义华,水悦瑶,方燕翎,李书明.新型研发机构发展脉络及发展趋势研究——基于Citespace的可视化分析[J].经营与管理,2020(05):10-17.
[9]谌林,郑泓楠.分布式数据库查询处理和优化算法[J].中外企业家,2020(15):145.
[10]薛建中.多类型数据库存储与访问的实现[J].电脑编程技巧与维护,2020(03):103-105.
[11]姜亮,王晓龙,金鑫,刘强.计算机软件开发与数据库管理中的问题与应对策略[J].计算机产品与流 通,2020(03):19.
[12]胡强.MySQL数据库常见问题分析与研究[J].电脑编程技巧与维护,2019(12):91-92.
[13]翁平.Oracle数据库性能及优化分析[J].信息与电脑(理论版),2019(03):163-164
[14]王冬雪,韩灏,李鸿鹄.基于Access数据库的SQL注入攻击研究[J].计算机与网络,2018,44(19):68-71.
附主要代码如下:
create database QCXSon (name=QCXS,filename='D:\sql\QCXS.mdf',size=10MB,maxsize=30MB,filegrowth=5MB)log on(name=xxgl_log,filename='D:\sql\QCXS_log.ldf',size=4MB,maxsize=10MB,filegrowth=2MB)USE QCXSGOCREATE TABLE K(K_NO CHAR(20)PRIMARY KEY,K_NAME CHAR(20),K_SEX CHAR(2),K_AGE TINYINT,K_TEL CHAR(11),K_ADD CHAR(20))CREATE TABLE CAR(CAR_NO CHAR(10)PRIMARY KEY,CAR_NAME CHAR(20),CS_NO CHAR(10),PRICE FLOAT)CREATE TABLE CS(CS_NO CHAR(10)PRIMARY KEY,CS_NAME CHAR(20),CS_ADD CHAR(10),CAR_AMOUNT INT,INT_PRICE FLOAT)CREATE TABLE CK(CK_NO CHAR(10)PRIMARY KEY,CS_NO CHAR(10),INT_AMOUNT INT,OUT_AMOUNT INT,REMAIN_AMOUNT INT)CREATE TABLE CX(CAR_NO CHAR(10),CS_NO CHAR(10),SALE_AMOUNT INT,CAR_MONEY FLOAT,H_MONEY FLOAT)CREATE TABLE D(D_NO CHAR(10)PRIMARY KEY,K_NO CHAR(20),CS_NO CHAR(10),D_DATA DATE,H_DATA DATE,D_ADD CHAR(10))INSERT INTO K VALUES('K1','吴刚','男','53','13400000001','深圳市'),('K2','杨维','女','35','13400000002','上海市'),('K3','刘桂','男','44','13400000003','商丘市'),('K4','程勇','男','48','13400000004','郑州市'),('K5','马飞','男','39','13400000005','苏州市'),('K6','冷星','女','42','13400000006','吉林市'),('K7','TINA','女','38','13400000007','开封市'),('K8','TOM','男','41','13400000008','信阳市'),('K9','陆贵山','男','46','13400000009','南阳市'),('K10','徐洪水','男','29','13400000010','濮阳市')INSERT INTO CAR VALUES('BMW001','宝马z4','C1','488800'),('BMW002','宝马x6','C2','766900'),('BMW003','宝马x7','C3','1000000'),('BMW004','宝马i4','C4','449900'),('BMW005','宝马3系','C5','293900'),('BMW006','宝马i3','C6','349900'),('BMW007','宝马m3','C7','849900'),('BMW008','宝马m4','C8','879900'),('BMW009','宝马6系GT','C9','583900'),('BMW010','宝马5系','C10','428900')INSERT INTO CS VALUES('C1','宝马1厂','苏州市','80','400000'),('C2','宝马2厂','扬州市','100','700000'),('C3','宝马3厂','吉林市','54','800000'),('C4','宝马4厂','南京市','120','350000'),('C5','宝马5厂','武汉市','58','200000'),('C6','宝马6厂','郑州市','46','290000'),('C7','宝马7厂','北京市','150','750000'),('C8','宝马8厂','开封市','101','800000'),('C9','宝马9厂','上海市','65','500000'),('C10','宝马10厂','商丘市','85','350000')INSERT INTO CK VALUES('CK1','C1','51','30','21'),('CK2','C2','60','40','20'),('CK3','C3','40','25','15'),('CK4','C4','80','55','25'),('CK5','C5','40','22','18'),('CK6','C6','20','12','8'),('CK7','C7','55','32','23'),('CK8','C8','63','43','20'),('CK9','C9','41','23','18'),('CK10','C10','30','22','8')INSERT INTO CX VALUES('BMW001','C1','30','12000000','14664000'),('BMW002','C2','40','28000000','30676000'),('BMW003','C3','15','12000000','15000000'),('BMW004','C4','12','4200000','6748500'),('BMW005','C5','22','4400000','6465800'),('BMW006','C6','10','2900000','3499000'),('BMW007','C7','22','16500000','18697800'),('BMW008','C8','18','14400000','15838200'),('BMW009','C9','16','8000000','9342400'),('BMW010','C10','30','10500000','12867000')INSERT INTO D VALUES('DD0001','K7','C2','2022.2.2','2022.4.20','开封市'),('DD0002','K1','C4','2021.4.20','2022.6.18','深圳市'),('DD0003','K3','C5','2021.5.20','2021.10.1','商丘市'),('DD0004','K2','C9','2021.9.18','2021.12.10','上海市'),('DD0005','K10','C7','2021.5.30','2021.6.30','濮阳市'),('DD0006','K4','C6','2022.1.12','2022.4.20','郑州市'),('DD0007','K5','C1','2022.2.18','2022.5.2','苏州市'),('DD0008','K8','C3','2022.1.25','2022.3.3','信阳市'),('DD0009','K9','C10','2022.3.18','2022.4.20','南阳市'),('DD0010','K6','C8','2022.3.14','2022.5.1','吉林市')--删除客户基本表K中客户编号为K1的客户信息DELETE FROM KWHERE K_NO='K1'SELECT * FROM K--删除客户基本表K中指定客户姓名的客户信息DELETE FROM KWHERE K_NAME='马飞'SELECT * FROM K--删除客户基本表K中指定客户电话的客户信息DELETE FROM KWHERE K_TEL='13400000006'SELECT * FROM K--重新添加客户基本表K中的新用户INSERT INTO K VALUES('K1','吴刚','男','53','13400000001','深圳市'),('K13','马东','男','39','13400000005','苏州市'),('K6','冷星','女','42','13400000006','吉林市')SELECT * FROM K--更新客户基本表K中的客户电话信息UPDATE KSET K_TEL='13400000000'WHERE K_NAME='马东'SELECT * FROM K--更新客户基本表K中的客户地址信息UPDATE KSET K_ADD='江苏省'WHERE K_NO='K2'SELECT * FROM K--查询车辆基本表CAR中的车辆编号,车辆名称,厂商编号SELECT CAR_NO,CAR_NAME,CS_NOFROM CAR--查询车辆基本表CAR中所有信息SELECT * FROM CAR--查询厂商基本表CS所有信息SELECT * FROM CS--查询生产车辆名称为宝马z4的厂商地址SELECT CS_ADDFROM CAR INNER JOIN CSON CS.CS_NO=CAR.CS_NOWHERE CAR_NAME='宝马z4'--查询厂商名称为宝马4厂的出货车辆数SELECT OUT_AMOUNTFROM CS INNER JOIN CKON CS.CS_NO=CK.CS_NOWHERE CS_NAME='宝马4厂'--创建客户的基本视图CREATE VIEW 客户基本视图ASSELECT K_NO,K_NAME,K_SEX,K_AGE,K_TEL,K_ADDFROM KWITH CHECK OPTIONGOSELECT * FROM 客户基本视图--创建车辆编号为BMW001的基本视图CREATE VIEW 车辆基本视图ASSELECT CAR_NO,CAR_NAME,CS_NO,PRICEFROM CARWHERE CAR_NO='BMW001'WITH CHECK OPTIONGOSELECT * FROM 车辆基本视图--创建厂商编号为C1的基本视图CREATE VIEW 厂商基本视图ASSELECT CS_NO,CS_NAME,CS_ADD,CAR_AMOUNT,INT_PRICEFROM CSWHERE CS_NO='C1'WITH CHECK OPTIONGOSELECT * FROM 厂商基本视图--创建仓库编号为CK1的基本视图CREATE VIEW 仓库基本视图ASSELECT CK_NO,CS_NO,INT_AMOUNT,OUT_AMOUNT,REMAIN_AMOUNTFROM CKWHERE CK_NO='CK1'WITH CHECK OPTIONGOSELECT * FROM 仓库基本视图--创建获取总金额大于10000000的基本视图CREATE VIEW 车辆销售视图ASSELECT CAR_NO,COUNT(H_MONEY)符合条件的编号FROM CXWHERE H_MONEY>10000000GROUP BY CAR_NOWITH CHECK OPTIONGOSELECT * FROM 车辆销售视图--修改视图“客户基本视图”,插入一条数据INSERT INTO 客户基本视图VALUES('K11','吴伍','男','53','13400000011','深圳市')SELECT * FROM 客户基本视图--修改视图“客户基本视图”,修改指定信息UPDATE 客户基本视图SET K_AGE='50'WHERE K_NO='K8'SELECT * FROM 客户基本视图--修改视图“客户基本视图”,删除指定信息DELETE FROM 客户基本视图WHERE K_NO='K6'SELECT * FROM 客户基本视图--创建存储过程CREATE PROCEDURE CSSS@CS_NO CHAR(10)ASSELECT *FROM CSWHERE CS_NO='C2'GO--修改存储过程ALTER PROC CSSS@CS_NO CHAR(20)ASSELECT *FROM CSWHERE CS_NO='C2'GO--查看存储过程一般信息SP_HELP CSSS--查看存储过程文本信息SP_HELPTEXT CSSS--删除存储过程DROP PROCEDURE CSSS--创建触发器CREATE TRIGGER CHELIANGCFQON CARFORINSERT,UPDATEASPRINT '对车辆表进行数据的插入或修改'--查看触发器一般信息SP_HELPTEXT CHELIANGCFQ--查看触发器文本信息SP_HELP CHELIANGCFQ--修改触发器ALTER TRIGGER CHELIANGCFQON CARFORINSERT,UPDATEASPRINT '你执行的添加或修改操作无效!'--删除触发器DROP TRIGGER CHELIANGCFQ