客户(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是自定义文件名称*/
第一次写文章,以上代码或代码解释如有错误请多多指教,谢谢。