69 lines
2.3 KiB
Transact-SQL
69 lines
2.3 KiB
Transact-SQL
/********************************************************************************/
|
|
/* */
|
|
/* Kroenke, Auer, Vandenberg and Yoder */
|
|
/* Database Processing (15th Edition) Chapter 02 */
|
|
/* */
|
|
/* Marcia's Dry Cleaning [MDC_CH02] Database Create Tables */
|
|
/* */
|
|
/* These are the Microsoft SQL Server 2016/2017 SQL code solutions */
|
|
/* */
|
|
/********************************************************************************/
|
|
/* */
|
|
/* NOTE: These SQL Statements use the following surrogate keys: */
|
|
/* */
|
|
/* CUSTOMER: Start at 1, Increment by 1 - IDENTITY (1, 1) */
|
|
/* INVOICE: Start at 2018001, Increment by 1 - IDENTITY (2018001, 1) */
|
|
/* */
|
|
/********************************************************************************/
|
|
|
|
USE MDC_CH02
|
|
GO
|
|
|
|
CREATE TABLE CUSTOMER(
|
|
CustomerID Int NOT NULL IDENTITY (1, 1),
|
|
FirstName Char(25) NOT NULL,
|
|
LastName Char(25) NOT NULL,
|
|
Phone Char(12) NOT NULL,
|
|
EmailAddress Varchar(100) NULL,
|
|
ReferredBy Int NULL,
|
|
CONSTRAINT CustomerPK PRIMARY KEY(CustomerID),
|
|
CONSTRAINT ReferredBy_Cust_FK FOREIGN KEY(ReferredBy)
|
|
REFERENCES CUSTOMER(CustomerID)
|
|
ON UPDATE NO ACTION
|
|
ON DELETE NO ACTION
|
|
);
|
|
|
|
|
|
CREATE TABLE INVOICE(
|
|
InvoiceNumber Int NOT NULL IDENTITY (2018001, 1),
|
|
CustomerID Int NOT NULL,
|
|
DateIn Date NOT NULL,
|
|
DateOut Date NULL,
|
|
TotalAmount Numeric(8,2) NULL,
|
|
CONSTRAINT InvoicePK PRIMARY KEY (InvoiceNumber),
|
|
CONSTRAINT Invoice_Cust_FK FOREIGN KEY(CustomerID)
|
|
REFERENCES CUSTOMER(CustomerID)
|
|
ON UPDATE NO ACTION
|
|
ON DELETE NO ACTION
|
|
);
|
|
|
|
CREATE TABLE INVOICE_ITEM(
|
|
InvoiceNumber Int NOT NULL,
|
|
ItemNumber Int NOT NULL,
|
|
Item Char(50) NOT NULL,
|
|
Quantity Int NOT NULL DEFAULT 1,
|
|
UnitPrice Numeric(8,2) NULL,
|
|
CONSTRAINT Invoice_ItemPK PRIMARY KEY(InvoiceNumber, ItemNumber),
|
|
CONSTRAINT Item_Invoice_FK FOREIGN KEY(InvoiceNumber)
|
|
REFERENCES INVOICE(InvoiceNumber)
|
|
ON UPDATE CASCADE
|
|
ON DELETE CASCADE,
|
|
);
|
|
|
|
/********************************************************************************/
|
|
|
|
|
|
|
|
|
|
|