关系数据库标准语言SQL (1)
进销存管理系统数据库设计 (3)
1. 码表 (3)
2. 基本信息表 (4)
3. 单据表 (5)
4. 账表 (9)
SQL 语句建表示例1 (13)
SQL 语句建表示例2 (15)
利用SQL语句实现采购管理 (23)
利用触发器实现进销存管理 (27)
关系数据库标准语言SQL
关系模型定义三类完整性约束:实体完整性、参照完整性、用户定义的完整性
SQL语言的动词
SQL 功能动词
数据定义CREATE,DROP,ALTER
数据查询SELECT
数据操纵INSERT,UPDATE,DELETE
数据控制GRANT,REVOKE
操作语句
定义基本表CREATE TABLE <表名>
(<列名> <数据类型>[列级完整性约束条件]
[,<列名> <数据类型>[列级完整性约束条件]]…
[, <列级完整性约束条件>]);
修改基本表ALERT TABLE <表名>
[ADD<新列名> <数据类型>[完整性约束]]
[DROP [完整性约束名]]
[MODIFY<列名> <数据类型>];
删除基本表DROP TABLE <表名>
建立索引CREATE [UNIQUE] [CLUSTER] INDEX <索引名>
ON <表名> (<列名>[<次序>][, (<列名>[<次序>]] …);
删除索引DROP INDEX <索引名>
ON <表名> (<列名>[<次序>][, (<列名>[<次序>]]…);
查询操作SELECT [ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]…
FROM <表名或视图名>[,<表名或视图名>]…
[WHERE <条件表达式>]
[GROUP BY <列名1>[HA VING<条件表达式>]]
[ORDER BY <列名2>[ASC|DSC]];
集函数,包括:
COUNT ([DISTINCT|ALL] *) 统计元组个数
COUNT ([DISTINCT|ALL] <列名>) 统计一列中值的个数
SUM ([DISTINCT|ALL] <列名>) 计算一列值的总和(必须是数值型)A VG ([DISTINCT|ALL] <列名>) 求一列值的平均值(必须是数值型)MAX ([DISTINCT|ALL] <列名>) 求一列值中的最大值
MIN ([DISTINCT|ALL] <列名>) 求一列值中的最小值
插入操作INSERT INTO <表名>[(<属性列1>[, <属性列2>…)] V ALUES (<常量1>[, <常量2>]…);
INSERT INTO <表名>[(<属性列1>[, <属性列2>…)] 子查询;
修改操作UPDA TE <表名>
SET <列名>=<表达式>[, <列名>= <表达式>]…
[WHERE <条件>];
删除操作DELETE FROM <表名>
[WHERE <条件>];
建立视图CREATE VIEW <视图名>[(列名>[, <列名>…) ] AS <子查询>
[WITH CHECK OPTION];
删除视图DROP VIEW <视图名>;
用户授权操作权限GRANT <权限>[, <权限>]…
[ON<对象类型> <对象名>]
TO <用户>[, <用户>]…
[ WITH GRANT OPTION];
对象对象类型操作权限
属性列TABLE
SELECT, INAERT, UPDAT, DELETE, ALL
PRIVILEGES
视图TABLE 同上
基本表TABLE 同上+ALERT, INDEX
数据库DA TABASE CREATTAB
收回权限REVOKE <权限>[, <权限>]…
[ON<对象类型> <对象名>]
FROM <用户>[, <用户>]…;
进销存管理系统数据库设计
系统表分为码表、基本信息表、单据表和账表。其中码表共五张,包括往来单位码表、商品种类码表、商品计量单位码表、部门码表、商品产地码表。
基本信息表共两张,包括操作员表、商品信息表。
单据表共九张,包括采购单主项与采购单明细项、销售单主项与销售单明细项、报损单主项与报损单明细项、付款单、收款单、商品盘存表。
账表共八张,包括库存初始化库存表、初始化应付账表、初始化应收账表、商品库存表、流水账表、应付账表、应收账表、进销存数量报表。
1. 码表
(1)码表中文名称:商品种类码表,见表1。
表名:C_SORT
关键字:SORT _CODE
备注:确定系统所涉及的商品种类。
i
(2)码表中文名称:商品计量单位码表,见表2。
表名:C_UNIT
关键字:UNIT _CODE
备注:确定系统所应用的商品计量单位。
(3)码表中文名称:商品产地码表,见表3。
表名:C_AERO
关键字:AERO _CODE
备注:定义系统所涉及的商品产地。
(4)码表中文名称:往来单位码表,见表4。
表名:C_SUPP
关键字:SUPP _CODE
备注:设定提供商品的供货单位。
(5)码表中文名称:部门码表,见表5。
表名:C_DEPT
关键字:DEPT_CODE
备注:设定企业内部的部门。
2. 基本信息表
(1)码表中文名称:操作员表,见表6。
表名:C_OPERATOR
关键字:OPER_CODE
备注:记录系统的操作员信息,包括编码、姓名、密码、权限等。
(2)码表中文名称:商品信息表,表7。
表名:C_GOODS
关键字:GOODS _CODE
备注:系统的所有商品信息。
3. 单据表
(1)单据表中文名称:采购单主项,见表8。
表名:SHEET_CG_MAIN
关键字:SHEETID
备注:采购单由主项及明细项组成。
(2)单据表中文名称:采购单明细项,见表9。
表名:SHEET_CG_ITEM
关键字:SHEETID + ITEMNO
备注:采购单由主项及明细项组成。
(3)单据表中文名称:销售单主项,见表10。
表名:SHEET_XS_MAIN
关键字:SHEETID
备注:销售单由主项及明细项组成。
(4)单据表中文名称:销售单明细项,见表11。
表名:SHEET_XS_ITEM
关键字:SHEETID + ITEMNO
备注:销售单由主项及明细项组成。
(5)单据表中文名称:报损单主项,见表12。
表名:SHEET_BS_MAIN
关键字:SHEETID
备注:报损单由主项及明细项组成。
(6)单据表中文名称:报损单明细项,见表13。
表名:SHEET_BS_ITEM
关键字:SHEETID + ITEMNO
备注:报损单由主项及明细项组成。
(7)单据表中文名称:商品盘存表,见表14。
表名:TABLE_GOODS_PC
关键字:DATE_PC + GOODS_CODE
备注:定期进行商品盘存处理。获得商品的盈亏数量,并通过盘存,及时调整商品的账面数量。
(8)单据表中文名称:收款单,见表15。
表名:SHEET_SK
关键字:SHEETID
备注:针对销售单据号进行收款处理。
(9)单据表中文名称:付款单,见表16。
表名:SHEET_FK
关键字:SHEETID
备注:针对供应商进行付款处理。
4. 账表
(1)账表中文名称:初始化库存表,见表17。
表名:INI_GOODS_AMOUNT
关键字:GOODS_CODE
备注:通过初始化库存,系统可以将初始数据自动转入商品库存表、进销存数量报表。
(2)账表中文名称:初始化应付账表,见表18。
表名:INI_REPORT_YF_MONE
关键字:SUPP_CODE
备注:本系统针对供应商挂应付账。通过初始化应付账表,系统可以将初始数据将自动转入应付账表。
(3)账表中文名称:初始化应收账表,见表19。
表名:INI_REPORT_YS_MONE
关键字:SHEETID_XS
备注:本系统针对销售单据号挂应收账。通过初始化应收账表,系统可以将初始数据将自动转入应收账表。
(4)账表中文名称:商品库存表,见表20。
表名:GOODS_AMOUNT
关键字:GOODS_CODE
备注:商品当前的库存数量。
(5)账表中文名称:流水账表,见表21。
表名:GOODS_RECORD
关键字:SHEETDATE + GOODS_CODE + ITEMNO
备注:详细记录每一笔采购、销售、报损、盘存等业务处理的数据情况。
(6)账表中文名称:进销存数量报表,见表22。
表名:REPORT_AMOUNT
关键字:REPORTDATE_QS + GOODS_CODE
备注:在某一时间段内根据已记账的采购单、销售单、报损单、商品盘存表进行的期初库存数量、采购数量、销售数量、报损数量、期末库存账面数量、盈亏数量、期末实盘数量计算结果。
(7)账表中文名称:应付账表,见表23。
表名:REPORT_YF_MONE
关键字:SUPP_CODE + ITEMNO
备注:按供应商进行挂账的应付及付款明细。
(8)账表中文名称:应收账表,见表24。
表名:REPORT_YS_MONE
关键字:SHEETID_XS + ITEMNO
备注:按销售单据进行挂账的应收及收款明细。
SQL 语句建表示例1
drop table C_SUPP;
drop table C_SORT;
drop table C_UNIT;
drop table C_AERO;
drop table C_GOODS;
create table C_AERO
(
AERO_CODE char(10) not null,
AERO_NAME char(100) not null,
primary key (AERO_CODE)
);
create table C_UNIT
(
UNIT_CODE char(2) not null,
UNIT_NAME char(10) not null,
primary key (UNIT_CODE)
);
create table C_SORT
(
SORT_CODE char(2) not null,
SORT_NAME char(50) not null,
primary key (SORT_CODE)
);
create table C_SUPP
(
SUPP_CODE char(10) not null,
SUPP_NAME char(100) not null,
ZIP char(6) ,
ADDR char(100) , TEL char(20) ,
FAX char(20) ,
EMAIL char(100) ,
WEB char(100) ,
ACCOUNT char(30) ,
BANK char(100) ,
primary key (SUPP_CODE)
);
create table C_GOODS
(
GOODS_CODE char(13) not null,
GOODS_NAME char(60) ,
SORT_CODE char(2) ,
MODEL char(50) ,
UNIT_CODE char(2) ,
PRICE_RETAIL decimal(8,2) ,
PRICE_PLAN decimal(8,2) ,
AERO_CODE char(10) ,
SUPP_CODE char(10) ,
NOTE varchar(200) ,
PHOTOFILE char(100) ,
primary key (GOODS_CODE)
);
alter table C_GOODS
add foreign key FK_C_GOODS_REF_C_SORT (SORT_CODE)
references C_SORT (SORT_CODE) on update restrict on delete restrict;
alter table C_GOODS
add foreign key FK_C_GOODS_REF_C_UNIT (UNIT_CODE)
references C_UNIT (UNIT_CODE) on update restrict on delete restrict;
alter table C_GOODS
add foreign key FK_C_GOODS_REF_C_AERO (AERO_CODE) references C_AERO (AERO_CODE) on update restrict on delete restrict;
alter table C_GOODS
add foreign key FK_C_GOODS_REF_C_SUPP (SUPP_CODE)
references C_SUPP (SUPP_CODE) on update restrict on delete restrict;
SQL 语句建表示例2