客户(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 订购表.产品编码=产品表.产品编码;
第一次写文章,以上代码如有错误请多多指教,谢谢。