提交 e58c9eb7 创建 作者: 王晓庆's avatar 王晓庆

2

上级 ae14494f
IF db_id('TPCH') IS NULL
CREATE DATABASE TPCH
USE TPCH
IF OBJECT_ID('region', 'U') IS NULL
CREATE TABLE region (
regionkey INTEGER PRIMARY KEY,
name char(25),
comment varchar(152)
)
IF OBJECT_ID('nation', 'U') IS NULL
CREATE TABLE nation (
nationkey INTEGER PRIMARY KEY,
name CHAR(25),
regionkey INTEGER REFERENCES Region(regionkey),
comment VARCHAR(152)
)
IF OBJECT_ID('supplier', 'U') IS NULL
CREATE TABLE supplier (
suppkey INTEGER PRIMARY KEY,
name CHAR(25),
address VARCHAR(40),
nationkey INTEGER REFERENCES Nation(nationkey),
phone CHAR(15),
acctbal REAL,
comment VARCHAR(152)
)
IF OBJECT_ID('part', 'U') IS NULL
CREATE TABLE part (
partkey INTEGER PRIMARY KEY,
name VARCHAR(55),
mfgr CHAR(25),
brand CHAR(10),
type VARCHAR(25),
size INTEGER,
container CHAR(10),
retailprice REAL,
comment VARCHAR(23)
)
IF OBJECT_ID('partsupp', 'U') IS NULL
CREATE TABLE partsupp (
partkey INTEGER REFERENCES Part(partkey),
suppkey INTEGER REFERENCES Supplier(suppkey),
availqty INTEGER,
supplycost REAL,
comment VARCHAR(199),
PRIMARY KEY(partkey,suppkey)
)
IF OBJECT_ID('customer', 'U') IS NULL
CREATE TABLE customer (
custkey INTEGER PRIMARY KEY,
name VARCHAR(25),
address VARCHAR(40),
nationkey INTEGER REFERENCES Nation(nationkey),
phone CHAR(15),
acctbal REAL,
mktsegment CHAR(10),
comment VARCHAR(17)
)
IF OBJECT_ID('orders', 'U') IS NULL
CREATE TABLE orders (
orderkey INTEGER PRIMARY KEY,
custkey INTEGER REFERENCES Customer(custkey),
orderstatus CHAR(1),
totalprice REAL,
orderdate DATE,
orderpriority CHAR(15),
clert CHAR(15),
shippriority INTEGER,
comment VARCHAR(79) /* totalprice = SUM(Lineitem.extendedprice*(1-Lineitem.discount)*(1+Lineitem.tax)) */
)
IF OBJECT_ID('lineitem', 'U') IS NULL
CREATE TABLE lineitem (
orderkey INTEGER REFERENCES Orders(orderkey),
partkey INTEGER REFERENCES Part(partkey),
suppkey INTEGER REFERENCES Supplier(suppkey),
linenumber INTEGER,
quantity REAL,
extendedprice REAL,
discount REAL,
tax REAL,
returnflag CHAR(1),
linestatus CHAR(1),
shipdate DATE,
commitdate DATE,
receipdate DATE,
shipinstruct CHAR(25),
shipmodel CHAR(10),
comment VARCHAR(44),
PRIMARY KEY(orderkey,linenumber),
FOREIGN KEY(partkey,suppkey) REFERENCES PartSupp(partkey,suppkey) /* extendedprice = quantity*Part.retailprice */
)
-- region
-- regionkey, name, comment
INSERT INTO region VALUES ('1', '亚洲', '亚洲地区')
INSERT INTO region VALUES ('2', '欧洲', '欧洲地区')
INSERT INTO region VALUES ('3', '北美洲', '北美洲地区')
-- nation
-- nationkey,name,regionkey,comment
INSERT INTO nation VALUES ('1', '中国', '1', '中华人民共和国')
INSERT INTO nation VALUES ('2', '英国', '2', '大不列颠及北爱尔兰联合王国')
INSERT INTO nation VALUES ('3', '美国', '3', '美利坚合众国')
-- supplier
-- suppkey,name,address,nationkey,phone,acctbal,comment
INSERT INTO supplier VALUES ('1', '奇瑞', '中国芜湖', '1', '132-112233', '25000', '中国自主')
INSERT INTO supplier VALUES ('2', '特斯拉', '美国加州', '3', '444-223313', '15000', '新能源')
INSERT INTO supplier VALUES ('3', '劳斯莱斯', '英国', '2', '555-223331112', '30000', '顶级豪车')
-- part
-- partkey,name,mfgr,brand,type,size,container,retailprice,comment
INSERT INTO part VALUES ('1', '发动机', '中国奇瑞', '奇瑞', 'atpx-1184', '86', '简装', '100', '质量可以')
INSERT INTO part VALUES ('2', '轮胎', '上海特斯拉', '特斯拉', 'model-3', '50', '精装', '40', '质量不错')
INSERT INTO part VALUES ('3', '电池包', '上海特斯拉', '特斯拉', 'model-3x', '45', '简装', '60', '品质升级')
INSERT INTO part VALUES ('4', '轮胎', '英国劳斯莱斯', '劳斯莱斯', 'rsls-223', '78', '豪装', '70', '豪华包装')
INSERT INTO part VALUES ('5', '座椅', '英国劳斯莱斯', '劳斯莱斯', 'chair-12', '99', '简装', '99', '质量可以')
-- partsupp
-- partkey,suppkey,availqty,supplycost,comment
INSERT INTO partsupp VALUES ('1', '1', '500', '50', '奇瑞供应的发送机-共500可用-价格50')
INSERT INTO partsupp VALUES ('3', '2', '200', '60', '特斯拉供应的电池包-共200可用-价格60')
INSERT INTO partsupp VALUES ('4', '3', '100', '20', '劳斯莱斯供应的轮胎-共100可用-价格20')
-- customer
-- custkey,name,address,nationkey,phone,acctbal,mktsegment,comment
INSERT INTO customer VALUES ('1', '乔峰', '杏子林', '1', '010-1122033', '10000000', '亚洲大区', '降龙十八掌')
INSERT INTO customer VALUES ('2', '兰博', '亚马逊', '3', '555-1234567', '210000000', '北美地区', '无限火力')
INSERT INTO customer VALUES ('3', '邦德', '伦敦', '2', '444-7654321', '150000000', '欧洲地区', '技巧')
-- orders
-- orderkey,custkey,orderstatus,totalprice,orderdate,orderpriority,clert,shippriority,comment
INSERT INTO orders VALUES ('1', '3', '0', '5000', '2020-1-1', '优先', '张无忌', '1', '邦德的订单')
INSERT INTO orders VALUES ('2', '1', '1', '7000', '2020-7-1', '最优先', '周芷若', '2', '乔峰的订单')
INSERT INTO orders VALUES ('3', '2', '2', '3000', '2020-4-7', '低优先', '赵敏', '3', '兰博的订单')
-- lineitem
-- orderkey,partkey,suppkey,linenumber,quantity,extendedprice,discount,tax,returnflag,linestatus,shipdate,commitdate,receipdate,shipinstruct,shipmodel,comment
INSERT INTO lineitem VALUES ('1', '1', '1', '10001', '50', '15000', '0.1', '0.2', '0', '1', '2020-1-2', '2020-1-2', '2020-1-2', '谢逊', '空运', '奇瑞供应给乔峰的发动机订单')
INSERT INTO lineitem VALUES ('2', '3', '2', '10002', '60', '25000', '0.2', '0.25', '1', '1', '2020-7-2', '2020-7-2', '2020-7-2', '韦一笑', '陆运', '特斯拉供应的轮胎订单')
INSERT INTO lineitem VALUES ('3', '4', '3', '10003', '70', '35000', '0.11', '0.23', '0', '0', '2020-4-8', '2020-4-8', '2020-4-8', '殷天正', '海运', '劳斯莱斯供应的座椅订单')
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论