1.实行目的
理解和把握数据库 DDL 语言,能够熟练使用 SQL DDL 语句,并能够完成数据导入。
2.实行内容和要求
理解和把握 SQL DDL 语句的语法,特别是各种参数的详细含义和使用方法,使用 SQL语句创建、修改和删除基本表,把握 SQL 语句常见语法错误的调试方法,完成数据导入。
3.实行步骤
(1).使用菜单下令创建一个数据库 test。
(2).在数据库 test 上使用 SQL 语句按照所给表的顺序界说下列基本表
表 1 地区表(region)
字段名
| 中文含义
| 类型
| 约束
| regionkey
| 地区编号
| int
| 主键
| name
| 地区名称
| char(25)
| null
| comment
| 备注
| varchar(150)
| null
|
表 2 国家表(nation)
字段名
| 中文含义
| 类型
| 约束
| nationkey
| 国家编号
| int
| 主键
| name
| 国家名称
| char(25)
| null
| regionkey
| 地区编号
| int
| 外键,参照 region
表的 regionkey
| comment
| 备注
| varchar(150)
| null
|
表 3 供应商基本表(supplier)
字段名
| 中文含义
| 类型
| 约束
| suppkey
| 供应商编号
| int
| 主键
| name
| 供应商名称
| char(100)
| null
| address
| 供应商地址
| varchar(100)
| null
| nationkey
| 国家编号
| int
| 外键,参照 nation
表的 nationkey
| phone
| 供应商电话
| char(30)
| null
| acctbal
| 供应商帐户余
额
| decimal(12,2)
| null
| comment
| 备注
| varchar(100)
| null
|
表 4 零件基本表(part)
字段名
| 中文含义
| 类型
| 约束
| partkey
| 零件编号
| int
| 主键
| name
| 零件名称
| varchar(100)
| null
| mfgr
| 制造厂
| char(50)
| null
| brand
| 品牌
| char(50)
| null
| ptype
| 零件类型
| varchar(25)
| null
| size
| 尺寸
| int
| null
| container
| 包装
| char(10)
| null
| retailprice
| 零售代价
| decimal (8,2)
| null
| comment
| 备注
| varchar(20)
| null
|
表 5 零件供应接洽表(partsupp)
字段名
| 中文含义
| 类型
| 约束
| 备注
| partkey
| 零件编号
| int
| 外键, 参照
| partkey
|
|
|
| part 表 的
| 和
|
|
|
| partkey
| suppkey
| suppkey
| 供应商编号
| int
| 外键, 参照
| 联合作为
|
|
|
| supplier 表
| 主键
|
|
|
| 的 suppkey
|
| availqty
| 可用数量
| int
| null
|
| supplycost
| 供应代价
| decimal(10,2)
| null
|
| comment
| 备注
| varchar(200)
| null
|
|
表 6 顾客表(customer)
字段名
| 中文含义
| 类型
| 约束
| custkey
| 顾客编号
| int
| 主键
| name
| 姓名
| varchar(25)
| null
| address
| 地址
| varchar(40)
| null
| nationkey
| 国家编号
| int
| 外键,来自 nation
表的 nationkey
| phone
| 电话
| char(30)
| null
| acctbal
| 帐户余额
| decimal(12,2)
| null
| mktsegment
| 市场分区
| char(10)
| null
| comment
| 备注
| varchar(100)
| null
|
表 7 订单表(orders)
字段名
| 中文含义
| 类型
| 约束
| orderkey
| 订单编号
| int
| 主键
| custkey
| 顾客编号
| int
| 外 键 , 参 照 customer 表 的
Custkey
| orderstatus
| 订单状态
| char(1)
| null
| totalprice
| 订单金额
| decimal(10,2)
| null
| orderdate
| 订单日期
| date
| null
| orderpriority
| 订单优先级别
| char(15)
| null
| clerk
| 记帐员
| char(16)
| null
| shippriority
| 运输优先级别
| char(1)
| null
| comment
| 备注
| varchar(60)
| null
|
表 8 订单明细表(lineitem)
字段名
| 中文含义
| 类型
| 约束
| 备注
| orderkey
| 订单编号
| int
| 外 键 , 参 照 orders 表 的
orderkey
| orderkey 和 linenumber 联合作
为主键
| partkey
| 零件编号
| int
| 外 键 , 参 照 part 表 的
partkey
| partkey 和suppkey联合参照 partsupp表 的 partkey 和 suppkey
| suppkey
| 供应商编号
| int
| 外 键 , 参 照
supplier 表的 suppkey
| linenumber
| 订单明细编
号
| int
| null
|
| quantity
| 零件数量
| int
| null
|
| extendedprice
| 订单明细价
格
| decimal(8,2)
| null
|
| discount
| 折扣
| decimal(3,2)
| null
|
| tax
| 税率
| decimal(3,2)
| null
|
| returnflag
| 退货标志
| char(1)
| null
|
| linestatus
| 订单明细状
态
| char(1)
| null
|
| shipdate
| 装运日期
| date
| null
|
| commitdate
| 委托日期
| date
| null
|
| receiptdate
| 签收日期
| date
| null
|
| shipinstruct
| 装运阐明
| char(25)
| null
|
| shipmode
| 装运方式
| char(10)
| null
|
| comment
| 备注
| varchar(40)
| null
|
|
- create table region
- (
- regionkey int primary key,
- name char(25),
- comment varchar(150)
- );
- create table nation
- (
- nationkey int primary key,
- name char(25),
- regionkey int,
- comment varchar(150),
- foreign key(regionkey) references region(regionkey)
- )
- create table supplier
- (
- suppkey int primary key,
- name char(100),
- address varchar(100),
- nationkey int,
- phone char(30),
- acctbal decimal(12,2),
- comment varchar(100),
- foreign key(nationkey) references nation(nationkey)
- )
- create table part
- (
- partkey int primary key,
- name varchar(100),
- mfgr char(50),
- brand char(50),
- type varchar(25),
- size int,
- container char(10),
- retailprice decimal(8,2),
- comment varchar(20)
- )
- create table partsupp
- (
- partkey int,
- suppkey int,
- availqty int,
- supplycost decimal(10,2),
- comment varchar(200),
- primary key(partkey,suppkey),
- foreign key(partkey) references part(partkey),
- foreign key(suppkey) references supplier(suppkey)
- )
- create table customer
- (
- custkey int primary key,
- name varchar(25),
- address varchar(40),
- nationkey int,
- phone char(30),
- acctbal decimal(12,2),
- mktsegment char(10),
- comment varchar(100),
- foreign key(nationkey) references nation(nationkey)
- )
- create table orders
- (
- orderkey int primary key,
- custkey int,
- orderstatus char(1),
- totalprice decimal(10,2),
- orderdate date,
- orderpriority char(15),
- clerk char(16),
- shippriority char(1),
- comment varchar(60),
- foreign key(custkey) references customer(custkey)
- )
- create table lineitem
- (
- orderkey int,
- partkey int,
- suppkey int,
- linenumber int,
- quantity int,
- extendedprice decimal(8,2),
- discount decimal(3,2),
- tax decimal(3,2),
- returnflag char(1),
- linestatus char(1),
- shipdate date,
- commitdate date,
- receiptdate date,
- shipinstruct char(25),
- shipmode char(10),
- comment varchar(40),
- primary key(orderkey,linenumber),
- foreign key(orderkey) references orders(orderkey),
- foreign key(partkey) references part(partkey),
- foreign key(suppkey) references supplier(suppkey),
- foreign key(partkey,suppkey) references partsupp(partkey,suppkey)
- )
复制代码 (3).根据给的“数据导入教程.rar”,把每个表的数据(.csv 格式)导入到创建的表里,导入顺序按照建表的顺序。
导入文件链接:百度网盘 请输入提取码
提取码:6015
(4).用 SQL 语句给订单表(orders)创建一个索引(按订单日期降序),索引的名字是 Dindex。
- create index Dindex on orders (orderate desc);
复制代码 实行效果:
region表:
nation表:
supplier表:
part表:
partsupp表:
customer表:
orders表:
lineitem表:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |