客户(client)的属性有:客户编码(cno)、客户名称(cname)、所属行业(trades)、客户地址(caddress)、客户联系人(clinkman)、客户电话(ctelephone) ;产品(product)的属性有:产品编号(pno)、产品名称(pname)、规格(spec)、单位(unit)、单价(unitprice);厂家(factory)的属性有:厂家编码(fno)、厂家名称(fname)、厂家地址(faddress)、销售经理(salesmanager)、厂家电话(ftelephone)。
在客户订购(order)产品中,一个客户可以订购多种产品,一种产品也可以被多个客户订购,客户订购产品时须标明订购的订购数量(amount)和订购日期(date);在厂家供应(supply)产品中,一种产品可以由多个厂家供应,一个厂家也可供应多种产品,厂家供应产品时须标明供应日期(sdate )和供应数量(samount)。
先画出e-r图(E-R图自行画)
然后再写出实体关系
客户(客户编码(cno)、客户名称(cname)、所属行业(trades)、客户地址(caddress)、客户联系人(clinkman)客户电话(ctelephone))
产品(产品编号(pno)、产品名称(pname)、规格(spec)、单位(unit)、单价(unitprice))
厂家(厂家编码(fno)、厂家名称(fname)、厂家地址(faddress)、销售经理(salesmanager)、厂家电话(ftelephone))
订购(客户编码(cno)、产品编号(pno)、订购数量(amount)、订购日期(date))
供应(产品编号(pno)、厂家编码(fno)、供应日期(sdate )、供应数量(samount))
首先创建库
CREATE DATABASE 库名
建立关系模式
开始创表
CHAR是字符型,int是整型。CHAR值可以随意添加,看你自己想输入多长,一个中文符号或者字都占两个字符型,英文只占一个字符型。
USE 库名 GO /*使用这个数据库开始创建表*/
/*CHAR括号里的值请自行输入,订购的Pno和Cno要跟客户表和产品表的Pno和Cno值一样
同理供应表的Pno和Fno也是一样的道理*/
CREATE TABLE CLIENT
( Cno CHAR() PRIMARY KEY ,
Cname CHAR() ,
Trades CHAR(),
Caddress CHAR(),
Clinkman CHAR(),
Ctelephone CHAR(),
);
USE 库名 GO
CREATE TABLE PRODUCT
(Pno CHAR() PRIMARY KEY,
Pname CHAR(),
Spec CHAR(), /*可以写int值*/
Unit CHAR(),
Unitprice int,
);
USE 库名 GO
CREATE TABLE FACTORY
(Fno CHAR() PRIMARY KEY,
Fname VARCHAR(),
Fadderss VARCHAR (),
Salesmanager VARCHAR(),
Ftelephon CHAR(11),
);
USE 库名 GO
CREATE TABLE ORDERS/*订购表*/
(Dates CHAR(),
Cno CHAR(),
Pno CHAR(),
Amount int,
PRIMARY KEY (Cno,Pno),/*主键*/
FOREIGN KEY (Cno) REFERENCES client(Cno),/*外键和引用*/
FOREIGN KEY (Pno)REFERENCES product(Pno),
);
USE 库名 GO
CREATE TABLE SUPPLY
(Sdate CHAR(),
Pno CHAR(),
Fno CHAR(),
Samount int,
PRIMARY KEY (Pno,Fno),
FOREIGN KEY (Pno) REFERENCES product(Pno),
FOREIGN KEY (Fno) REFERENCES Factory(Fno)
);
接下来开始插入数据
INSERT INTO CLIENT VALUES /*插入5~10个客户数据,最后一个数据不需要在末尾加上逗号*/
('Cno','Cname','Trades','Caddress','Clinkman','Ctelephone'),
('Cno','Cname','Trades','Caddress','Clinkman','Ctelephone'),
('Cno','Cname','Trades','Caddress','Clinkman','Ctelephone')
INSERT INTO PRODUCT VALUES/*产品插入5~10个*/
('Pno', 'Pname', 'Spec', 'Unit',Unitprice),
('Pno', 'Pname', 'Spec', 'Unit',Unitprice)
INSERT INTO FACTORY VALUES/*厂家插入10个*/
('Fno', 'Fname','Fadderss','Salesmanager','Ftelephon'),
INSERT INTO ORDERS VALUES/*订购 插入10个*/
('Dates','Cno','Pno',Amount),
INSERT INTO SUPPLY VALUES/*供应 插入10个*/
('Sdate','Pno','Fno',Amount),
/*可以发现没有''单引号的数值都是整型*/
创建一个非聚集索引
CREATE INDEX Trades/*客户的所属行业*/
ON Client(trades)
最后创建
CREATE VIEW St/*创建一个包含trades,cname,pname的视图*/
AS
SELECT Trades,Cname,Pname
FROM 客户表 JOIN 订购表
ON 客户表.客户编号=订购.客户编号
JOIN 产品
ON 订购表.产品编码=产品表.产品编码;
第一次写文章,以上代码如有错误请多多指教,谢谢。