9. 导入数据到MonetDB中,使用MonetDB提供的copy into table 命令:
执行如下:
sql>COPY 5 records INTO region FROM '/home/zjx/Download/tpc_h/region.tbl' using DELIMITERS '|';
5 affected rows
Sql>
5 affected rows
Sql>
注意上边的‘|’是字段之间的分隔符。
采用同样的方法,将其余的7个表格数据导入。
COPY INTO region FROM '/home/zjx/Download/tpc_h/region.tbl' DELIMITERS '|' ;
COPY INTO nation FROM '/home/zjx/Download/tpc_h/nation.tbl' DELIMITERS '|' ;
COPY INTO part FROM '/home/zjx/Download/tpc_h/part.tbl' DELIMITERS '|' ;
COPY INTO supplier FROM '/home/zjx/Download/tpc_h/supplier.tbl' DELIMITERS '|' ;
COPY INTO customer FROM '/home/zjx/Download/tpc_h/customer.tbl' DELIMITERS '|' ;
COPY INTO partsupp FROM '/home/zjx/Download/tpc_h/partsupp.tbl' DELIMITERS '|' ;
COPY INTO orders FROM '/home/zjx/Download/tpc_h/orders.tbl' DELIMITERS '|' ;
COPY INTO lineitem FROM '/home/zjx/Download/tpc_h/lineitem.tbl' DELIMITERS '|' ;
COPY INTO nation FROM '/home/zjx/Download/tpc_h/nation.tbl' DELIMITERS '|' ;
COPY INTO part FROM '/home/zjx/Download/tpc_h/part.tbl' DELIMITERS '|' ;
COPY INTO supplier FROM '/home/zjx/Download/tpc_h/supplier.tbl' DELIMITERS '|' ;
COPY INTO customer FROM '/home/zjx/Download/tpc_h/customer.tbl' DELIMITERS '|' ;
COPY INTO partsupp FROM '/home/zjx/Download/tpc_h/partsupp.tbl' DELIMITERS '|' ;
COPY INTO orders FROM '/home/zjx/Download/tpc_h/orders.tbl' DELIMITERS '|' ;
COPY INTO lineitem FROM '/home/zjx/Download/tpc_h/lineitem.tbl' DELIMITERS '|' ;
10. 为各个表添加主键。
-- For table REGION
ALTER TABLE REGION ADD PRIMARY KEY (R_REGIONKEY);
-- For table NATION
ALTER TABLE NATION ADD PRIMARY KEY (N_NATIONKEY);
-- For table PART
ALTER TABLE PART ADD PRIMARY KEY (P_PARTKEY);
-- For table SUPPLIER
ALTER TABLE SUPPLIER ADD PRIMARY KEY (S_SUPPKEY);
-- For table PARTSUPP
ALTER TABLE PARTSUPP ADD PRIMARY KEY (PS_PARTKEY,PS_SUPPKEY);
-- For table CUSTOMER
ALTER TABLE CUSTOMER ADD PRIMARY KEY (C_CUSTKEY);
-- For table LINEITEM
ALTER TABLE LINEITEM ADD PRIMARY KEY (L_ORDERKEY,L_LINENUMBER);
-- For table ORDERS
ALTER TABLE ORDERS ADD PRIMARY KEY (O_ORDERKEY);
ALTER TABLE REGION ADD PRIMARY KEY (R_REGIONKEY);
-- For table NATION
ALTER TABLE NATION ADD PRIMARY KEY (N_NATIONKEY);
-- For table PART
ALTER TABLE PART ADD PRIMARY KEY (P_PARTKEY);
-- For table SUPPLIER
ALTER TABLE SUPPLIER ADD PRIMARY KEY (S_SUPPKEY);
-- For table PARTSUPP
ALTER TABLE PARTSUPP ADD PRIMARY KEY (PS_PARTKEY,PS_SUPPKEY);
-- For table CUSTOMER
ALTER TABLE CUSTOMER ADD PRIMARY KEY (C_CUSTKEY);
-- For table LINEITEM
ALTER TABLE LINEITEM ADD PRIMARY KEY (L_ORDERKEY,L_LINENUMBER);
-- For table ORDERS
ALTER TABLE ORDERS ADD PRIMARY KEY (O_ORDERKEY);
11. 为各个表添加外键。
ALTER TABLE NATION ADD FOREIGN KEY (N_REGIONKEY) references REGION(R_REGIONKEY);
ALTER TABLE SUPPLIER ADD FOREIGN KEY (S_NATIONKEY) references NATION(N_NATIONKEY);
ALTER TABLE CUSTOMER ADD FOREIGN KEY (C_NATIONKEY) references NATION(N_NATIONKEY);
-- For table PARTSUPP
ALTER TABLE PARTSUPP ADD FOREIGN KEY (PS_SUPPKEY) references SUPPLIER(S_SUPPKEY);
ALTER TABLE PARTSUPP ADD FOREIGN KEY (PS_PARTKEY) references PART(P_PARTKEY);
-- For table ORDERS
ALTER TABLE ORDERS ADD FOREIGN KEY (O_CUSTKEY) references CUSTOMER(C_CUSTKEY);
-- For table LINEITEM
ALTER TABLE LINEITEM ADD FOREIGN KEY (L_ORDERKEY) references ORDERS(O_ORDERKEY);
ALTER TABLE LINEITEM ADD FOREIGN KEY (L_PARTKEY,L_SUPPKEY) references PARTSUPP(PS_PARTKEY, PS_SUPPKEY);
ALTER TABLE SUPPLIER ADD FOREIGN KEY (S_NATIONKEY) references NATION(N_NATIONKEY);
ALTER TABLE CUSTOMER ADD FOREIGN KEY (C_NATIONKEY) references NATION(N_NATIONKEY);
-- For table PARTSUPP
ALTER TABLE PARTSUPP ADD FOREIGN KEY (PS_SUPPKEY) references SUPPLIER(S_SUPPKEY);
ALTER TABLE PARTSUPP ADD FOREIGN KEY (PS_PARTKEY) references PART(P_PARTKEY);
-- For table ORDERS
ALTER TABLE ORDERS ADD FOREIGN KEY (O_CUSTKEY) references CUSTOMER(C_CUSTKEY);
-- For table LINEITEM
ALTER TABLE LINEITEM ADD FOREIGN KEY (L_ORDERKEY) references ORDERS(O_ORDERKEY);
ALTER TABLE LINEITEM ADD FOREIGN KEY (L_PARTKEY,L_SUPPKEY) references PARTSUPP(PS_PARTKEY, PS_SUPPKEY);