DROP TABLE order3;
DROP TABLE customer;
DROP TABLE agent;
DROP TABLE product;
CREATE TABLE customer (
cid CHAR(5) PRIMARY KEY,
cname VARCHAR(32) NOT NULL,
city VARCHAR(32),
discnt REAL NOT NULL CHECK( discnt >= 0.00 AND discnt <= 20.00 ) );
INSERT INTO customer VALUES( 'c001', 'TipTop', 'Duluth', 10.00 );
INSERT INTO customer VALUES( 'c002', 'Basics', 'Dallas', 12.00 );
INSERT INTO customer VALUES( 'c003', 'Allied', 'Dallas', 12.00 );
INSERT INTO customer VALUES( 'c004', 'ACME', 'Duluth', 12.00 );
INSERT INTO customer VALUES( 'c006', 'ACME', 'Kyoto', 0.00 );
CREATE TABLE agent (
aid CHAR(5) PRIMARY KEY,
aname VARCHAR(32) NOT NULL,
city VARCHAR(32),
percent INTEGER NOT NULL CHECK( percent >= 0 ) );
INSERT INTO agent VALUES( 'a01', 'Smith', 'New York', 6 );
INSERT INTO agent VALUES( 'a02', 'Jones', 'Newark', 6 );
INSERT INTO agent VALUES( 'a03', 'Brown', 'Tokyo', 7 );
INSERT INTO agent VALUES( 'a04', 'Gray', 'New York', 6 );
INSERT INTO agent VALUES( 'a05', 'Otasi', 'Duluth', 5 );
INSERT INTO agent VALUES( 'a06', 'Smith', 'Dallas', 5 );
CREATE TABLE product (
pid CHAR(5) PRIMARY KEY,
pname VARCHAR(32) NOT NULL,
city VARCHAR(32),
quantity INTEGER NOT NULL CHECK( quantity >= 0 ),
price REAL NOT NULL CHECK( price >= 0.0 ) );
INSERT INTO product VALUES( 'p01', 'comb', 'Dallas', 111400, 0.50 );
INSERT INTO product VALUES( 'p02', 'comb', 'Newark', 203000, 0.50 );
INSERT INTO product VALUES( 'p03', 'comb', 'Duluth', 150600, 1.00 );
INSERT INTO product VALUES( 'p04', 'comb', 'Duluth', 125300, 1.00 );
INSERT INTO product VALUES( 'p05', 'comb', 'Dallas', 221400, 1.00 );
INSERT INTO product VALUES( 'p06', 'comb', 'Dallas', 123100, 2.00 );
INSERT INTO product VALUES( 'p07', 'comb', 'Newark', 100500, 1.00 );
-- order is a SQL reserved word.
CREATE TABLE order3 (
orderno INTEGER PRIMARY KEY,
month CHAR(5),
cid CHAR(5) NOT NULL,
aid CHAR(5) NOT NULL,
pid CHAR(5) NOT NULL,
qty INTEGER NOT NULL CHECK( qty >= 0 ),
dollar REAL NOT NULL CHECK( dollar >= 0.0 ),
FOREIGN KEY ( cid ) REFERENCES customer( cid ) ON DELETE CASCADE,
FOREIGN KEY ( aid ) REFERENCES agent ( aid ) ON DELETE CASCADE,
FOREIGN KEY ( pid ) REFERENCES product ( pid ) ON DELETE CASCADE );
INSERT INTO order3 VALUES( 1011, 'jan', 'c001', 'a01', 'p01', 1000, 450.00 );
INSERT INTO order3 VALUES( 1012, 'jan', 'c001', 'a01', 'p01', 1000, 450.00 );
INSERT INTO order3 VALUES( 1019, 'feb', 'c001', 'a02', 'p02', 400, 180.00 );
INSERT INTO order3 VALUES( 1017, 'feb', 'c001', 'a06', 'p03', 600, 540.00 );
INSERT INTO order3 VALUES( 1018, 'feb', 'c001', 'a03', 'p04', 600, 540.00 );
INSERT INTO order3 VALUES( 1023, 'mar', 'c001', 'a04', 'p05', 500, 450.00 );
INSERT INTO order3 VALUES( 1022, 'mar', 'c001', 'a05', 'p06', 400, 720.00 );
INSERT INTO order3 VALUES( 1025, 'apr', 'c001', 'a05', 'p07', 800, 720.00 );
INSERT INTO order3 VALUES( 1013, 'jan', 'c002', 'a03', 'p03', 1000, 880.00 );
INSERT INTO order3 VALUES( 1026, 'may', 'c002', 'a05', 'p03', 800, 704.00 );
INSERT INTO order3 VALUES( 1015, 'jan', 'c003', 'a03', 'p05', 1200, 1104.00 );
INSERT INTO order3 VALUES( 1014, 'jan', 'c003', 'a03', 'p05', 1200, 1104.00 );
INSERT INTO order3 VALUES( 1021, 'feb', 'c004', 'a06', 'p01', 1000, 460.00 );
INSERT INTO order3 VALUES( 1016, 'jan', 'c006', 'a01', 'p01', 1000, 500.00 );
INSERT INTO order3 VALUES( 1020, 'feb', 'c006', 'a03', 'p07', 600, 600.00 );
INSERT INTO order3 VALUES( 1024, 'mar', 'c006', 'a06', 'p01', 800, 400.00 );
|