任务描述:
- 关系模型
1、代理商(代理商编号、姓名、地址、邮政编码、提成金额、提成比例)
其中代理商编号为primary key(主码)
2、客户(客户编号、姓名、地址、邮政编码、收支差额、贷款限额、代理商编号)
其中客户编号为primary key(主码)
3.产品(产品编号、描述信息、库存量、类别、仓库的编号、价格)
其中产品的编号为primary key(主码)
4.订单(订单编号、订货日期、客户编号)
5.订货项目(订单编号、产品编号、订购数量、订购单价)
- 原始数据
1.对于代理商(代理商编号、姓名、地址、邮政编码、提成金额、提成比例)
01、联邦、东环路1号、541001、30000.00、40
02、惠普、东环路2号、541002、4000.00、10
03、三洋、东环路3号、541003、10000.00、30
04、联想、东环路4号、541004、100000.00、60
05、海尔、东环路5号、541005、200000.00、60
2.客户(客户编号、姓名、地址、邮政编码、收支差额、贷款限额、代理商编号)
100、张三、西环路1号、100001、10.00、100.00、02
200、李四、西环路2号、100001、-10.00、10.00、04
300、王五、西环路3号、100001、100.00、1000.00、02
400、赵六、西环路4号、100001、600.00、2000.00、01
500、洪七、西环路5号、100001、300.00、900.00、05
600、李明、西环路6号、100001、20.00、300.00、03
700、张进、西环路7号、100001、400.00、1000.00、03
3.产品(产品的编号、描述信息、库存量、类别、仓库的编号、价格)
0011、药物,单位(瓶)、1000、12、1001、40.00
0022、机器,单位(件)、300、3、1002、50000.00
0033、中药,单位(包)、800、12、1001、300.00
0044、软件,单位(套)、1500、10、1003、2000.00
0055、家具,单位(件)、6000、3、1002、1000.00
0066、小型机,单位(台)、10000、3、1002、200000.00
4.订单(订单编号、订货日期、客户编号)
111、2000-10-01、200
222、2000-09-01、200
333、2001-01-01、500
444、2002-02-02、300
555、2003-03-03、100
5.订货项目(订单编号、产品编号、订购数量、订购单价)
111、0033、200、280.00
222、0066、6000、150000.00
333、0033、100、280.00
444、0011、300、39.00
555、0055、5500、950.00
444、0044、1000、1900.00
- 相关知识
1、创建数据库
create database stuDB on primary -- 默认就属于primary文件组,可省略 ( /*--数据文件的具体描述--*/ name='stuDB_data', -- 主数据文件的逻辑名称 filename='D:stuDB_data.mdf', -- 主数据文件的物理名称 size=5mb, --主数据文件的初始大小 maxsize=100mb, -- 主数据文件增长的最大值 filegrowth=15%--主数据文件的增长率 ) log on ( /*--日志文件的具体描述,各参数含义同上--*/ name='stuDB_log', filename='D:stuDB_log.ldf', size=2mb, filegrowth=1mb )
2、删除数据库
use studentdb go if exists(select * from sysobjects where name='stuMarks') drop table stuMarks create table stuMarks ( ExamNo int identity(1,1) primary key, stuNo char(6) not null, writtenExam int not null, LabExam int not null ) Go
3、创建数据表
use studentdb go if exists(select * from sysobjects where name='stuMarks') drop table stuMarks create table stuMarks ( ExamNo int identity(1,1) primary key, stuNo char(6) not null, writtenExam int not null, LabExam int not null ) Go
4、删除数据表
/*--删除数据表--*/ use StuDB go if exists(select * from sysobjects where name='stuMarks') drop table stuMarks go /*--创建数据表--*/ create table stuMarks ( ExamNo int identity(1,1) primary key, stuNo char(6) not null, writtenExam int not null, LabExam int not null )
5、数据库备份
backup database studentdb to disk = 'D:mybackupdb.bak' go
6、数据库还原
restore database mybackup from disk= 'D:mybackupdb.bak' with move 'stuDB_data'-- 原数据库的主数据文件的逻辑名称 to 'D:stuDB_data_org.mdf', move 'stuDB_log' to 'D:stuDB_log_org.ldf' go
SQL订单数据库创建源码:
/***********注意:只是在适当的位置根据提示填写代码,请不要删除现有代码**********/ /***********BEGIN:删除现存订单数据库**********/ use master go if exists(select * from sysdatabases WHERE name = 'orderdb') drop database orderdb go /***********END:删除现存订单数据库**********/ /*****TODO: 请在下面创建名为orderdb的订单数据库*******************/ /* 该订单数据库的数据文件具体描述如下 name='orderdb_data', -- 主数据文件的逻辑名称 filename='/home/orderdb_data.mdf', -- 主数据文件的物理名称 size=5mb, --主数据文件的初始大小 maxsize=100mb, -- 主数据文件增长的最大值 filegrowth=15%--主数据文件的增长率 该订单数据库的日志文件具体描述为 name='orderdb_log', filename='/home/orderdb_log.ldf', size=2mb, filegrowth=1mb */ /*******************BEGIN:创建订单数据库**********************/ create database orderdb on primary ( name='orderdb_data', -- 主数据文件的逻辑名称 filename='D:代码数据库查询表SQL_DATAorderdb_data.mdf', -- 主数据文件的物理名称 size=5mb, --主数据文件的初始大小 maxsize=100mb, -- 主数据文件增长的最大值 filegrowth=15% --主数据文件的增长率 ) log on ( name='orderdb_log', filename='D:代码数据库查询表SQL_DATAorderdb_log.ldf', size=2mb, filegrowth=1mb ) /*********************END:订单数据库orderdb创建结束 *******************/ /******************** 支持中文 **********************/ ALTER DATABASE orderdb SET SINGLE_USER WITH ROLLBACK IMMEDIATE go ALTER DATABASE orderdb COLLATE Chinese_PRC_90_CI_AS go ALTER DATABASE orderdb SET MULTI_USER go /********使返回的结果中不包含有关受 Transact-SQL 语句影响的行数的信息*********/ SET NOCOUNT ON go /************************使用orderdb*********************/ USE orderdb go /***************TODO: 请在下面创建5张数据表************************/ /* 例子1:订单表 create table 订单 ( 订单编号 char(4) , 订货日期 smalldatetime , 客户编号 char(4), primary key(订单编号),--在表级定义实体完整性 foreign key(客户编号) references 客户(客户编号)--在表级定义参照完整性 ) go */ /**************BEGIN:创建数据表**************/ /*TODO:1、创建名为代理商的数据表*/ create table 代理商 ( 代理商编号 char(4), 姓名 nvarchar(10), 地址 nvarchar(20), 邮政编码 char(6), 提成金额 smallmoney, 提成比例 tinyint, primary key(代理商编号) ) go /*TODO:2、创建名为客户的数据表*/ create table 客户 ( 客户编号 char(4), 姓名 nvarchar(10), 地址 nvarchar(20), 邮政编码 char(6), 收支差额 smallmoney, 贷款限额 smallmoney, 代理商编号 char(4), primary key(客户编号), foreign key(代理商编号) references 代理商(代理商编号) ) go /*TODO:3、创建名为产品的数据表*/ create table 产品 ( 产品编号 char(4), 描述信息 nvarchar(20), 库存量 int, 类别 tinyint, 仓库编号 char(4), 价格 smallmoney, primary key(产品编号) ) go /*TODO:4、创建名为订单的数据表*/ create table 订单 ( 订单编号 char(4), 订货日期 smalldatetime, 客户编号 char(4), primary key(订单编号), foreign key(客户编号) references 客户(客户编号) ) go /*TODO:5、创建名为订货项目的数据表*/ create table 订货项目 ( 订单编号 char(4), 产品编号 char(4), 订购数量 smallint, 订购单价 smallmoney, primary key(订单编号,产品编号), foreign key(订单编号) references 订单(订单编号), foreign key(产品编号) references 产品(产品编号) ) go /************** END:创建数据表结束 ****************/ /***************TODO: 请在下面给表中插入数据************************/ /* 例子1,插入一条记录: insert into 订货项目 VALUES ('444','0044',1000,1900.00) go 例子2,插入多条记录: insert into 订货项目 VALUES ('555','0055',5500,950.00), ('444','0044',1000,1900.00) go */ /**************BEGIN:插入数据**************/ /*TODO:1、插入数据到名为代理商的数据表中*/ insert into 代理商 VALUES ('01','联邦','东环路1号','541001',30000.00,40), ('02','惠普','东环路2号','541002',4000.00,10), ('03','三洋','东环路3号','541003',10000.00,30), ('04','联想','东环路4号','541004',100000.00,60), ('05','海尔','东环路5号','541005',200000.00,60) go /*TODO:2、插入数据到名为客户的数据表中*/ insert into 客户 VALUES ('100','张三','西环路1号','100001',10.00,100.00,'02'), ('200','李四','西环路2号','100001',-10.00,10.00,'04'), ('300','王五','西环路3号','100001',100.00,1000.00,'02'), ('400','赵六','西环路4号','100001',600.00,2000.00,'01'), ('500','洪七','西环路5号','100001',300.00,900.00,'05'), ('600','李明','西环路6号','100001',20.00,300.00,'03'), ('700','张进','西环路7号','100001',400.00,1000.00,'03') go /*TODO:3、插入数据到名为产品的数据表中*/ insert into 产品 VALUES ('0011','药物,单位(瓶)',1000,12,'1001',40.00), ('0022','机器,单位(件)',300,3,'1002',50000.00), ('0033','中药,单位(包)',800,12,'1001',300.00), ('0044','软件,单位(套)',1500,10,'1003',2000.00), ('0055','家具,单位(件)',6000,3,'1002',1000.00), ('0066','小型机,单位(台)',10000,3,'1002',200000.00) go /*TODO:4、插入数据到名为订单的数据表中*/ insert into 订单 VALUES ('111','2000-10-01','200'), ('222','2000-09-01','200'), ('333','2001-01-01','500'), ('444','2002-02-02','300'), ('555','2003-03-03','100') go /*TODO:5、插入数据到名为订货项目的数据表中*/ insert into 订货项目 VALUES ('111','0033',200,280.00), ('222','0066',6000,150000.00), ('333','0033',100,280.00), ('444','0011',300,39.00), ('555','0055',5500,950.00), ('444','0044',1000,1900.00) go /****************END:插入数据结束**********************/ /****************TODO:请在下面写SQL语句备份orderdb数据库***********************/ backup database orderdb to disk = 'D:代码数据库查询表SQL_DATAmybackupdb.bak' go /****************END:完成订单数据库备份********************************/ /**************TODO:请在下面写SQL语句还原orderdb数据库为mybackup*************/ restore database mybackup from disk='D:代码数据库查询表SQL_DATAmybackupdb.bak' with move 'orderdb_data' to 'D:代码数据库查询表SQL_DATAorderdb_data_backup.mdf', move 'orderdb_log' to 'D:代码数据库查询表SQL_DATAorderdb_log_backup.ldf' go /****************END:完成还原数据库备份********************************/ /*************** 测试 ,请不要删除下面代码********/ SELECT name FROM sys.databases WHERE name='mybackup' go USE mybackup go select * from 代理商 go select * from 客户 go select * from 产品 go select * from 订单 go select * from 订货项目 go