数据库综合实训产品供应表的创建

客户(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)。

写出实体关系

客户(客户编码(cno)、客户名称(cname)、所属行业(trades)、客户地址(caddress)、客户联系人(clinkman)客户电话(ctelephone))

产品(手机型号(pno)、车名称(pname)、规格(spec)、单位(unit)、单价(unitprice))

厂家(厂家编码(fno)、厂家名称(fname)、厂家地址(faddress)、销售经理(salesmanager)、厂家电话(ftelephone))

订购(客户编码(cno)手机号(pno)、订购数量(amount)、订购日期(date)

供应(车编号(pno)厂家编码(fno)供应日期(sdate )、供应数量(samount))

画出E-R图(E-R图自行画)

创建库 

CREATE DATABASE ICAN/*ICAN是数据库名*/

开始创建表

CHAR和VARCHAR是字符型,INT是整型。CHAR和VARCHAR区别不大,一般情况下都可以使用,CHAR长度是固定的而VARCHAR是不固定长度。比如CHAR(6)存进’ab‘,那么长度是2,但后面有4个空格来填满这个CHAR值,CHAR的长度依旧是6。VARCHAR(6)存进了’ab‘但它的长度仅是2,但CHAR读取时也比VARCHAR快一些。CHAR存储类型,一个英文字符占一个字节,一个汉字占两个字节。VARCHAR存储类型一个英文字符占用两个字节,一个汉字也占用两个字节。输入数值大小取决于你输入多长字节。

USE ICAN GO /*使用这个数据库开始创建表。
/*CHAR和VARCHAR括号里的值请自行输入,订购的Pno和Cno要跟客户表和产品表的Pno和Cno值一样
同理供应表的Pno和Fno也是一样的道理。
CHAR:定长,效率高,偏占空间,
VARCHAR:不定长,效率偏低,
建议用CHAR存储客户编码。*/
CREATE TABLE CLIENT      
      ( Cno   int PRIMARY KEY ,/*列级完整性约束,cno为主码*/
        Cname CHAR() ,
        Trades  CHAR(),
        Caddress  CHAR(),
        Clinkman  CHAR(),
        Ctelephone CHAR(),
      );

USE ICAN GO
CREATE TABLE CAR
        (Pno   int PRIMARY KEY,
         Pname CHAR(),            
         Spec  int,              	                      
         Unit  CHAR(),
		 Unitprice int,
          ); 

USE ICAN GO
CREATE TABLE FACTORY
          (Fno  int PRIMARY KEY,
		   Fname  VARCHAR(),
		   Fadderss  VARCHAR() , 
           Salesmanager  VARCHAR(),  
           Ftelephon CHAR(),
           ); 
		    

USE ICAN GO	    
CREATE TABLE ORDERS/*订购表*/
          (Dates CHAR(),                     
           Cno   int,
           Pno   int,
           Amount int,       
           PRIMARY KEY (Cno,Pno),
           FOREIGN KEY (Cno) REFERENCES client(Cno),/*外键和引用*/
           FOREIGN KEY (Pno)REFERENCES product(Pno),
            );  
 
USE ICAN GO
CREATE TABLE SUPPLY
          (Sdate CHAR(),                    
           Pno   int,
           Fno   int,
           Samount int,     
           PRIMARY KEY (Pno,Fno),
/* 主码由两个属性构成,必须作为表级完整性进行定义*/
           FOREIGN KEY (Pno) REFERENCES product(Pno),
/* 表级完整性约束条件,pno是外码,被参照表是porduct */
           FOREIGN KEY (Fno) REFERENCES Factory(Fno)
/* 表级完整性约束条件, Fno是外码,被参照表是Factory*/
            ); 

接下来开始插入数据,插入数据应按照所创建表内的排序进行插入。

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 CAR 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),

/*可以发现没有''单引号的数值都是整型。如果插入数据查不到,那应该是存错表了。*/

建立关系图

首先创建登录名login01

CREATE LOGIN login007 WITH PASSWORD='123456', DEFAULT_DATABASE=ICAN;/
/*login007是登录名,‘123456是登陆密码’, ‘DEFAULT_DATABASE=ICAN’的意思是指定登陆默认数据库*/

创建用户名user01

CREATE USER user006 FOR LOGIN login007 WITH DEFAULT_SCHEMA=dbo;
/*创建‘user006’至‘login007’里*/

如何创建一个非聚集索引?

/*创建关于客户联系人的非聚集索引*/
CREATE INDEX Clinkman/*客户联系人*/
ON Client(Clinkman);/*Clinkman在哪张表就ON那张表*/

如何创建包含“Trades,Cname和Pname”视图?

CREATE VIEW  sg/*sg是自命名视图名称*/
AS
SELECT Trades,Cname,Pname
FROM 客户表 JOIN 产品表
ON 客户表.客户编码=产品表.产品编号

备份自己的数据库

BACKUP DATABASE ICAN/*ICAN就是你自己所要备份数据库的名称*/
TO
DISK='+and-'/*此处DISK是自定义文件名称*/

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

  • 7
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值