数据库实训供应表的创建

客户(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 订购表.产品编码=产品表.产品编码;

第一次写文章,以上代码如有错误请多多指教,谢谢。

上一篇:【SQL】实验二 SQL数据查询


下一篇:2021-07-12