数据库--汽车销售管理系统【课程设计】

article/2025/6/23 7:11:15

目录

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 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)
)
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 K
WHERE K_NO='K1'
SELECT * FROM K--删除客户基本表K中指定客户姓名的客户信息
DELETE FROM K
WHERE K_NAME='马飞'
SELECT * FROM K--删除客户基本表K中指定客户电话的客户信息
DELETE FROM K
WHERE 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 K
SET K_TEL='13400000000'
WHERE K_NAME='马东'
SELECT * FROM K--更新客户基本表K中的客户地址信息
UPDATE K
SET K_ADD='江苏省'
WHERE K_NO='K2'
SELECT * FROM K--查询车辆基本表CAR中的车辆编号,车辆名称,厂商编号
SELECT CAR_NO,CAR_NAME,CS_NO
FROM CAR
--查询车辆基本表CAR中所有信息
SELECT * FROM CAR
--查询厂商基本表CS所有信息
SELECT * FROM CS--查询生产车辆名称为宝马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厂'--创建客户的基本视图
CREATE VIEW 客户基本视图
AS
SELECT K_NO,K_NAME,K_SEX,K_AGE,K_TEL,K_ADD
FROM K
WITH CHECK OPTION
GO
SELECT * FROM 客户基本视图--创建车辆编号为BMW001的基本视图
CREATE VIEW 车辆基本视图
AS
SELECT CAR_NO,CAR_NAME,CS_NO,PRICE
FROM CAR
WHERE CAR_NO='BMW001'
WITH CHECK OPTION
GO
SELECT * FROM 车辆基本视图--创建厂商编号为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
SELECT * FROM 厂商基本视图--创建仓库编号为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
SELECT * FROM 仓库基本视图--创建获取总金额大于10000000的基本视图
CREATE VIEW 车辆销售视图
AS
SELECT CAR_NO,COUNT(H_MONEY)符合条件的编号
FROM CX
WHERE H_MONEY>10000000
GROUP BY CAR_NO
WITH CHECK OPTION
GO
SELECT * 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)
AS
SELECT *
FROM CS
WHERE CS_NO='C2'
GO
--修改存储过程
ALTER PROC CSSS
@CS_NO CHAR(20)
AS
SELECT *
FROM CS
WHERE CS_NO='C2'
GO--查看存储过程一般信息
SP_HELP CSSS--查看存储过程文本信息
SP_HELPTEXT CSSS--删除存储过程
DROP PROCEDURE CSSS--创建触发器
CREATE TRIGGER CHELIANGCFQ
ON CAR
FOR
INSERT,UPDATE
AS
PRINT '对车辆表进行数据的插入或修改'--查看触发器一般信息
SP_HELPTEXT CHELIANGCFQ
--查看触发器文本信息
SP_HELP CHELIANGCFQ--修改触发器
ALTER TRIGGER CHELIANGCFQ
ON CAR
FOR
INSERT,UPDATE
AS
PRINT '你执行的添加或修改操作无效!'
--删除触发器
DROP TRIGGER CHELIANGCFQ


http://chatgpt.dhexx.cn/article/8N3OjiO1.shtml

相关文章

汽车租赁管理系统/汽车租赁网站/汽车管理系统

摘 要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存…

C#windows车库信息管理系统

中文摘要 为了提高车辆信息的管理效率,本课题使用C#语言和SQL Server数据库系统开发了一个WinForm类型的车库管理系统对车辆信息进行高效管理,以提升管理质量。本系统包含管理员登录注册、管理员信息修改模块、添加车辆信息模块、删除车辆信息模块、查找…

asp.net 汽车信息管理系统VS编程sqlserver数据库c#开发

一、源码特点 asp.net 汽车信息管理系统 是一套完善的WEB设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 下载地址:下载 https://download.csdn.net/download/qq_41221322/21516579 视频播放: …

基于Java+SQL的汽车销售管理系统

文章目录 1.前言系统概要附1: 建表语句附2: 项目整体结构附3: view包结构附4: utils包结构 2.基本功能介绍:2.1 登陆与注册2.2 主界面2.3 修改密码2.4 相应的操作数据界面2.5 增、删、查、改示例2.5.1 添加数据2.5.2 删除数据2.5.3 修改数据2.5.4 查询数据 3.食用该…

python判断闰年(leap year)

python判断闰年(leap year) 闰年的计算方法是“四年一闰,百年不闰,四百年再闰”,这就造成了在一些特殊年份,会出现八年一闰的现象。例如1896年为闰年,四年之后的1900年并不是闰年,直到再过四年之后的1904年才是闰年。也就是一般情况下年份能被4整除即为闰年,而整百年的…

python判断闰年程序_python实现闰年

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 30个常用python实现:1、冒泡排序 ? 2、计算x的n次方的方法? 3、计算a*a + b*b + c*c + ...? 4、计算阶乘 n! ?5、列出当前目录下的所有文件和目录名? 6、…

python实现判断闰年

先来看条件: 如果我们要判断的年份是整百年,我们不能去除以4,而应该除以400。如1900年,因为这个年份是整百年,所以要除以400,1900/4004……300,不是400的倍数,所以1900年不是闰年&a…

python判断闰年

4.1 python 判断闰年 代码 yearint(input("请输入年份:")) if(year%40 and year%100 !0):print("是闰年!") elif(year%4000):print("是闰年!") else:print("不是闰年!")运行结果截图&…

chatgpt赋能python:Python闰年的判断方法

Python闰年的判断方法 在Python编程中,经常需要判断某个年份是否是闰年。闰年是指能被4整除但不能被100整除的年份,或者能被400整除的年份。 闰年的判断方法在编程中非常常见,也非常简单。下面将介绍Python中三种实现闰年判断的方法。 方法…

Lingo 11安装教程

Lingo 11(32/64)位下载地址: 链接:http://pan.baidu.com/s/1pLFk5xL 密码:bt95 软件介绍: LINGO是Linear Interactive and General Optimizer的缩写,即“交互式的线性和通用优化求解器”&…

LINGO 11.0安装教程

文章目录 1. 安装步骤2. 下载地址 1. 安装步骤 解压压缩包,然后双击Lingo11.exe以运行它 单击No以禁用自动更新 开始使用 2. 下载地址 参考:Lingo多版本下载地址和安装教程

最优化问题求解及Lingo教程

介绍 Lingo是一款求解最优化问题的软件,可以用于求解非线性规划,也可以用于一些线性和非线性方程组的求解等,功能十分强大,是求解优化模型的最佳选择。 最优化问题 首先介绍一下什么是最优化问题。 最优化问题,即在…

lingo入门教程之三 --- 文件数据处理

有时候我们想输入的数据是在一个Excel表格或者其他什么形式中,或者说这里数据是实时变化的并不利于直接在程序中输入,耳而应该在程序之外将数据存储,实现数据与程序的分离存储,这个时候就涉及到程序与数据之间的传递 下面简要介绍…

lingo入门教程之一 初识lingo

lingo对于一些线性或者非线性的规划,优化问题非常有效 首先介绍一下,在lingo中运行程序时出现的页面(在工具栏点击类似靶子一样的图标便可运行) Solver status:求解器(求解程序)状态框 Model Class:当前模型的类型:LP,…

lingo3d_基于官方教程的分析

lingo3d可以允许web内使用3d元素,其定位是web端游戏引擎。跟随官方教程我完成了一个简单的demo,即控制小人在三维空间穿行,并且可以显示相应物品信息 官方使用vitereact,故我们跟随其搭建 1.搭建主场景 这里与一般react项目出入不…

Lingo软件安装包分享(附安装教程)

目录 一、软件简介 二、软件下载 一、软件简介 Lingo是一款专门为解决线性和非线性优化问题而设计的专业软件,广泛应用于运筹学、工程管理、交通管理、生产调度、物流管理等领域。它提供了一个易于使用的界面和灵活的求解器,能够高效地求解大规模的线性…

数学建模学习(25):一夜整理的Lingo入门教程,助力建模国赛!

文章目录 前言使用教程基本语法影子价格敏感性分析以上总结变量约束与函数全局最优解(最值)局部最优解(极值)总结前言 在上一篇文章我用到了lingo,但我盲猜一下大家可能不会用lingo做数学计算,因此我在这里做一个教程。 使用教程 下载地址:微信软件管家。 假设已经写…

java调用lingo实例_LINGO使用教程(一)

LINGO是用来求解线性和非线性优化问题的简易工具。LINGO内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果。 1.LINGO快速入门 当你在windows下开始运行LINGO系统时,会得到类似下面的一个窗口: 外层是主框架窗口,包含了…

c语言程序框图示范,C语言程序框图courseware.ppt

第3章控制结构;目录; ●基本要求: 1)熟悉C语言程序结构框图; 2)熟悉C语言的两分支结构,多分支结构和循环结构; 3)熟悉结构化程序设计方法. ●学习要点: 1)流程图,NS图,循环结构; 2)结构化程序设…

C语言经典100例-9

c语言经典100例 题目:要求输出国际象棋棋盘。 程序分析:国际象棋棋盘由64个黑白相间的格子组成,分为8行*8列。用i控制行,j来控制列,根据ij的和的变化来控制输出黑方格,还是白方格。 如果出现乱码情况请参…