/*************************************** * DDL: Create Database * ***************************************/ -- drop existing database if exists; DROP DATABASE IF EXISTS fitbit_new; -- create database; CREATE DATABASE fitbit_new; -- use database; USE fitbit_new; show tables; /*************************************** * DDL: Create Table * ***************************************/ /* product */ -- create table product; DROP TABLE IF EXISTS product, client, sales; describe sales; -- alter table; /* client */ -- create table client; describe client; /* sales */ -- create table sales; -- create foreign key seperately; alter table sales add constraint fk_client_id_wanmen foreign key (client_id) references client (client_id) on delete cascade; -- drop foreign key; alter table sales drop foreign key fk_client_id_wanmen; -- add update cascade; alter table sales drop foreign key fk_client_id; alter table sales drop foreign key fk_product_id; alter table sales add constraint fk_product_id foreign key (product_id) references product (product_id) on delete cascade on update cascade; alter table sales add constraint fk_client_id foreign key (client_id) references client (client_id) on delete cascade on update cascade; -- create view; /********************************************** * DML: Insert, Update, Delete * **********************************************/ INSERT INTO product VALUES (1,'E-ZIP','Zip','EVERYDAY','GREEN','Y',59.95), (2,'E-FLX','Flex','EVERYDAY','BLACK','N',99.95), (3,'A-BLZ','Blaze','ACTIVE','PURPLE','Y',199.95), (4,'P-SUG','Surge','PERFORMANCE','BLACK','Y',249.95); select * from product; -- update product; update product set product_id = 200 where product_id = 2; -- cascade delete delete from product where product_id = 200; INSERT INTO sales (tran_id, date, product_id, client_id, price, quantity) VALUES (1,'2016-6-1', 1, 1, 40, 10), (2,'2016-6-5', 1, 2, 30, 5), (3,'2016-6-8', 2, 1, 80, 8), (4,'2016-6-8', 2, 2, 70, 7), (5,'2016-6-13', 3, 2, 150, 5), (6,'2016-6-18', 3, 4, 150, 10), (7,'2016-6-20', 2, 4, 40, 15); select * from sales; -- update sales; update sales set date = '2016-06-21',price = 200 where date = '2016-06-20' and tran_id = 7; INSERT INTO client VALUES (1,'FITBIT','ONLINE'), (2,'AMAZON','ONLINE'), (3,'BESTBUY','OFFLINE'), (4,'WALMART','OFFLINE') ; select * from client; -- create table SHIPPING; DROP TABLE IF EXISTS shipping; create table if not exists shipping( shipping_id int not null auto_increment, tran_id int not null, tracking_no int, status enum('preparing', 'shipped', 'arrived'), arrive_date date, eta date, primary key (shipping_id), constraint fk_tran_id foreign key (tran_id) references sales (tran_id) on delete cascade on update cascade ); insert into shipping (tran_id, tracking_no, status, arrive_date, eta) values (3,103,'arrived','2016-06-02','2016-06-02'), (4,104,'arrived','2016-06-30','2016-06-25'), (5,105,'shipped',null,'2016-03-04'), (6,106,'preparing',null,null); select * from shipping;