【转】SQL_Server2000示例数据库NorthWind的分析
表名:Categories(食品类别表)
表结构:
字段名称 | 数据类型 | 长度 | 允许为空 |
CategoryID(主键) | int | 4 | 否 |
CategoryName | nvarchar | 15 | 否 |
Description | ntext | | 是 |
Picture | image | | 是 |
主键:CategoryID
主键约束名称:PK_Categories
关系说明:该表主要用来保存食品种类信息的数据。
表名:CustomerCustomerDemo(消费者表)
表结构:
字段名称 | 数据类型 | 长度 | 允许为空 |
CustomerID(主键) | nchar | 5 | 否 |
CustomerTypeID(主键) | nchar | 10 | 否 |
组合主键:CustomerID、CustomerTypeID
主键约束名称:PK_CustomerCustomerDemo
外键:
1.列 CustomerTypeID引用表CustomerDemographics(CustomerTypeID)
2.列 CustomerID引用表Customers(CustomerID)
外键约束名称:
FK_CustomerCustomerDemo和FK_CustomerCustomerDemo_Customers
关系说明:该表主要用来保存消费者ID和消费者类别ID信息的数据。
表名:CustomerDemographics(消费者类别说明表)
表结构:
字段名称 | 数据类型 | 长度 | 允许为空 |
CustomerTypeID(主键) | nchar | 10 | 否 |
CustomerDesc | ntext | 16 | 是 |
主键:CustomerTypeID
主键约束名称:PK_CustomerDemographics
关系说明:该表主要用来存储消费者类别说明信息。
表名:Customers(消费者信息表)
表结构:
字段名称 | 数据类型 | 长度 | 允许为空 |
CustomerID(主键) | nchar | 5 | 否 |
CompanyName | nvarchar | 40 | 否 |
ContactName | nvarchar | 30 | 是 |
ContactTitle | nvarchar | 30 | 是 |
Address | nvarchar | 60 | 是 |
City | nvarchar | 15 | 是 |
Region | nvarchar | 15 | 是 |
PostalCode | nvarchar | 10 | 是 |
Country | nvarchar | 15 | 是 |
Phone | nvarchar | 24 | 是 |
Fax | nvarchar | 24 | 是 |
主键:CustomerID
主键约束名称:PK_Customers
关系说明:该表主要用来存储消费者详细信息的数据表。
表名:Employees(雇员信息表)
表结构:
字段名称 | 数据类型 | 长度 | 允许为空 |
EmployeeID(主键) | int | 4 | 否 |
LastName | nvarchar | 20 | 否 |
FirstName | nvarchar | 10 | 否 |
Title | nvarchar | 30 | 是 |
TitleOfCourtesy | nvarchar | 25 | 是 |
BirthDate | datetime | 8 | 是 |
HireDate | datetime | 8 | 是 |
Address | nvarchar | 60 | 是 |
City | nvarchar | 15 | 是 |
Region | nvarchar | 15 | 是 |
PostalCode | nvarchar | 10 | 是 |
Country | nvarchar | 15 | 是 |
HomePhone | nvarchar | 24 | 是 |
Extension | nvarchar | 4 | 是 |
Photo | image | 16 | 是 |
Notes | ntext | 16 | 是 |
ReportsTo | int | 4 | 是 |
PhotoPath | nvarchar | 255 | 是 |
主键:EmployeeID
主键约束名称:PK_Employees
外键:
1.列 ReportsTo引用表Employees(EmployeeID)
外键约束名称
FK_Employees_Employees
关系说明:该表主要用来存储雇员的详细信息数据表。
表名:EmployeeTerritories(雇员销售区域表)
表结构:
字段名称 | 数据类型 | 长度 | 允许为空 |
EmployeeID(主键) | int | 4 | 否 |
TerritoryID(主键) | nvarchar | 20 | 否 |
主键:EmployeeID、TerritoryID
主键约束名称:PK_EmployeeTerritories
外键:
1.列 EmployeeID引用表Employees(EmployeeID)
2.列 TerritoryID引用表Territories (TerritoryID)
外键约束名称:
FK_EmployeeTerritories_Employees和FK_EmployeeTerritories_Territories
关系说明:该表主要用来存储雇员ID和其对应的销售区域ID。
表名:Order Details(订单价格表)
表结构:
字段名称 | 数据类型 | 长度 | 允许为空 |
OrderID(主键) | int | 4 | 否 |
ProductID(主键) | int | 4 | 否 |
UnitPrice | money | 8 | 否 |
Quantity | samllint | 2 | 否 |
Discount | real | 4 | 否 |
主键:OrderID、ProductID
主键约束名称:PK_Order_Details
外键:
1.列 OrderID引用表Orders(OrderID)
2.列 ProductID引用表Products(ProductID)
外键约束名称:
FK_Order_Details_Orders和FK_Order_Details_Products
关系说明:该表主要用来存储订单价格信息的数据表
1
2
3
4
5
表级别的 CHECK 约束被定义为 (Discount >= 0 和 Discount < = 1)。
表名:Orders(订单表)
表结构:
字段名称 | 数据类型 | 长度 | 允许为空 |
OrderID(主键) | int | 4 | 否 |
CustomerID | nchar | 5 | 是 |
EmployeeID | int | 4 | 是 |
OrderDate | datetime | 8 | 是 |
RequiredDate | datetime | 8 | 是 |
ShippedDate | datetime | 8 | 是 |
ShipVia | int | 4 | 是 |
Freight | money | 8 | 是 |
ShipName | nvarchar | 40 | 是 |
ShipAddress | nvarchar | 60 | 是 |
ShipCity | nvarchar | 15 | 是 |
ShipRegion | nvarchar | 15 | 是 |
ShipPostalCode | nvarchar | 10 | 是 |
ShipCountry | nvarchar | 15 | 是 |
主键:OrderID
主键约束名称:PK_Orders
外键:
1.列 CustomerID引用表Customers(CustomerID)
2.列 EmployeeID引用表Employees(EmployeeID)
3. .列 ShipVia引用表Shippers(ShipperID)
外键约束名称
FK_Orders_Customers,FK_Orders_Employees和FK_Orders_Shippers
关系说明:该表主要用来存储订单详细信息的数据
2
3
表名:Products(产品信息表)
表结构:
字段名称 | 数据类型 | 长度 | 允许为空 |
ProductID(主键) | int | 4 | 否 |
ProductName | nvarchar | 40 | 否 |
SupplierID | int | 4 | 是 |
CategoryID | int | 4 | 是 |
QuantityPerUnit | nvarchar | 20 | 是 |
UnitPrice | money | 8 | 是 |
UnitsInStock | samllint | 2 | 是 |
UnitsOnOrder | samllint | 2 | 是 |
ReorderLevel | samllint | 2 | 是 |
Discontinued | bit | 1 | 否 |
主键:ProductID
主键约束名称:PK_Products
外键:
1.列 CategoryID引用表Categories(CategoryID)
2.列 SupplierID引用表Suppliers(SupplierID)
外键约束名称
FK_Products_Categories和FK_Products_Suppliers
关系说明:该表主要用来存储产品详细信息的数据表。
1
2
3
4
5
6
表名:Region(区域表)
表结构:
字段名称 | 数据类型 | 长度 | 允许为空 |
RegionID(主键) | int | 4 | 否 |
RegionDescription | nchar | 50 | 否 |
主键:RegionID
主键约束名称:PK_Region
关系说明:该表主要用来存储区域信息数据。
表名:Shippers(托运信息表)
表结构:
字段名称 | 数据类型 | 长度 | 允许为空 |
ShipperID(主键) | int | 4 | 否 |
CompanyName | nvarchar | 40 | 否 |
Phone | nvarchar | 24 | 是 |
主键:ShipperID
主键约束名称:PK_Shippers
关系说明:该表主要用来存储托运公司的详细信息数据。
表名:Suppliers(供应商信息表)
表结构:
字段名称 | 数据类型 | 长度 | 允许为空 |
SupplierID(主键) | int | 4 | 否 |
CompanyName | nvarchar | 40 | 否 |
ContactName | nvarchar | 30 | 是 |
ContactTitle | nvarchar | 30 | 是 |
Address | nvarchar | 60 | 是 |
City | nvarchar | 15 | 是 |
Region | nvarchar | 15 | 是 |
PostalCode | nvarchar | 10 | 是 |
Country | nvarchar | 15 | 是 |
Phone | nvarchar | 24 | 是 |
Fax | nvarchar | 24 | 是 |
HomePage | ntext | 16 | 是 |
主键:SupplierID
主键约束名称:PK_Suppliers
关系说明:该表主要用来存储供应商详细信息数据。
表名:Territories(销售区域信息表)
表结构:
字段名称 | 数据类型 | 长度 | 允许为空 |
TerritoryID(主键) | nvarchar | 20 | 否 |
TerritoryDescription | nchar | 50 | 否 |
RegionID | int | 4 | 否 |
主键:TerritoryID
主键约束名称:PK_Territories
外键:
1.列 RegionID引用表Region(RegionID)
外键约束名称
FK_Territories_Region
关系说明:该表用来存储销售区域详细说明信息的数据。
存储过程分析:
1.CustOrderHist
参数:消费者编号
作用:用来显示指定消费者购买各种商品的总数。
2.CustOrdersDetail
参数:订单编号
作用:用来显示指定订单编号的销售信息。
3.CustOrdersOrders
参数:消费者编号
作用:用来显示指定消费者所有订单销售期限情况。
4.Employee Sales by Country
参数:起始时间、结束时间
作用:用来显示在起始时间和结束时间之间的需要发货订单的负责人信息和订单的详细信息。
6.SalesByCategory
视图分析:
1.Alphabetical list of products未过期食品的详细信息及其所属的类别。
2.Category Sales for 1997显示种类食品在1997年的实际销售部。
3.Current Product List显示未过期食品的信息。
4.Customer and Suppliers by City所有消费者和供货商的信息。
5.Invoices 按照订单发货的详细信息。
6.Order Details Extended订单明细的详细信息。
7.Order Subtotals
8.Orders Qry
9.Product Sales for 1997 每种食品在1997实际销售额以及食品的详细信息
10.Products Above Average Price单位售价大于所有食品平均售价的食品清单。
11.Products by Category
12.Quarterly Orders
13.Sales by Category
14.Sales Totals by Amount
15.Summary of Sales by Quarter1997年已发货订单的发货时间
16.Summary of Sales by Year