任務描述:
- 關系模型
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_DATA\orderdb_data.mdf', -- 主數據文件的物理名稱 size=5mb, --主數據文件的初始大小 maxsize=100mb, -- 主數據文件增長的最大值 filegrowth=15% --主數據文件的增長率 ) log on ( name='orderdb_log', filename='D:\代碼\數據庫查詢表\SQL_DATA\orderdb_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_DATA\mybackupdb.bak' go /****************END:完成訂單數據庫備份********************************/ /**************TODO:請在下面寫SQL語句還原orderdb數據庫為mybackup*************/ restore database mybackup from disk='D:\代碼\數據庫查詢表\SQL_DATA\mybackupdb.bak' with move 'orderdb_data' to 'D:\代碼\數據庫查詢表\SQL_DATA\orderdb_data_backup.mdf', move 'orderdb_log' to 'D:\代碼\數據庫查詢表\SQL_DATA\orderdb_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