# Create table commands This section shows the sql comamnd to create the tables. ## Create customer ``` CREATE TABLE customer( id int, name varchar(25), address varchar(40), nation_id int, phone char(15), acct_bal decimal(10,2), market_segment char(10), comment varchar(117) ); ``` ## Create nation ``` CREATE TABLE nation( id int, name varchar(25), region_id int, comment varchar(152) ); ``` ## Create supplier ``` CREATE TABLE supplier( id int, name char(25), address varchar(40), nation_id int, phone char(15), acct_bal decimal(10,2), comment varchar(101) ); ``` ## Create region ``` CREATE TABLE region( id int, name char(25), comment varchar(152) ); ``` ## Create orders ``` CREATE TABLE orders( id int, customer_id int, order_status char(1), total_price decimal(10,2), order_date date, order_priority char(15), clerk char(15), ship_priority int, comment varchar(79) ); ``` ## Create lineitem ``` CREATE TABLE lineitem( orders_id int, part_id int, supplier_id int, id int, qty decimal(10,2), extended_price decimal(10,2), discount decimal(10,2), tax decimal(10,2), return_flag char(1), status char(1), ship_date date, commit_date date, receipt_date date, ship_instruct char(25), ship_mode char(10), comment varchar(44) ); ``` ## Create part ``` CREATE TABLE part( id int, name varchar(55), mfgr char(25), brand char(10), type varchar(25), size int, container char(10), retail_price decimal(10,2), comment varchar(23) ); ``` ## Create part_has_supplier ``` CREATE TABLE part_has_supplier( part_id int, supplier_id int, avail_qty int, supply_cost decimal(10,2), comment varchar(199) ); ``` # Loading of test data There are multiple ways to load test data. We will discuss using the psql way. psql is a command line tool for interacting with a postgresql server. It is the same as mysql cli for interacting with mysql server. ## Connect to your postgresql server ``` psql -h <dbhost> -p <port> -d <dbname> -U <dbusername> ``` Key in your password if prompted. ## Loading the data in Once you are in the psql terminal, run the below commands to load the individual table data. ### Load customer ``` \COPY customer(id, name, address, nation_id, phone, acct_bal, market_segment, comment) FROM '<path to files>/files/customer.csv' DELIMITER '|' CSV; ``` ### Load nation ``` \COPY nation(id, name, region_id, comment) FROM '<path to files>/files/nation.csv' DELIMITER '|' CSV; ``` ### Load region ``` \COPY region(id, name, comment) FROM '<path to files>/files/region.csv' DELIMITER '|' CSV; ``` ### Load supplier ``` \COPY supplier(id, name, address, nation_id, phone, acct_bal, comment) FROM '<path to files>/files/supplier.csv' DELIMITER '|' CSV; ``` ### Load orders ``` \COPY orders(id, customer_id, order_status, total_price, order_date, order_priority, clerk, ship_priority, comment) FROM '<path to files>/files/orders.csv' DELIMITER '|' CSV; ``` ### Load lineitem(may take awhile) ``` \COPY lineitem(orders_id, part_id, supplier_id, id, qty, extended_price, discount, tax, return_flag, status, ship_date, commit_date, receipt_date, ship_instruct, ship_mode, comment) FROM '<path to files>/files/lineitem.csv' DELIMITER '|' CSV; ``` ### Load part ``` \COPY part(id, name, mfgr, brand, type, size, container, retail_price, comment) FROM '<path to files>/files/part.csv' DELIMITER '|' CSV; ``` ### Load part_has_supplier ``` \COPY part_has_supplier(part_id, supplier_id, avail_qty, supply_cost, comment) FROM '<path to files>/files/partsupp.csv' DELIMITER '|' CSV; ```