MySQL数据库-实验一 数据库定义及数据导入

1.实验目的

理解和掌握数据库 DDL 语言,能够熟练使用SQL,DDL 语句,并能够完成数据导入。

2.实验内容和实验要求

理解和掌握 SQL DDL 语句的语法,特别是各种参数的具体含义和使用方法,使用SQL语句创建、修改和删除基本表,掌握 SQL语句常见语法错误的调试方法,完成数据导入。

3.实验步骤

  1. 使用菜单命令创建一个数据库test。

  1. 在数据库 test 上使用 SQL 语句按照所给表的顺序定义下列基本表。

表 1 地区表(region):

create table region
(
    regionkey int     primary key     comment '地区编号',
    name      char(25)      comment '地区名称',
    comment   varchar(150)  comment '备注'
)
    comment '地区表';

表 2 国家表(nation

create table nation

(

nationkey int    primary key                comment '国家编号',

name      char(25)                              comment '国家名称',

regionkey int   references region(regionkey) ,  #comment '地区编号',

comment   varchar(150)                             comment '备注'

)

    comment '国家表';

表 3 供应商基本表(supplier

create table nation

(

nationkey int    primary key                comment '国家编号',

name      char(25)                              comment '国家名称',

regionkey int   references region(regionkey) ,  #comment '地区编号',

comment   varchar(150)                             comment '备注'

)

    comment '国家表';

表 4 零件基本表(part

create table part

(

    partkey     int   primary key        comment '零件编号',

    name        varchar(100)  null comment '零件名称',

    mfgr        char(50)    null   comment '制造厂',

    brand       char(50)    null   comment '品牌',

    ptype       varchar(25)  null  comment '零件类型',

    size        int         null  comment '尺寸',

    container   char(10)     null  comment '包装',

    retailprice decimal(8, 2) null comment '零售价格',

    comment     varchar(20)   null

)

    comment '零件基本表';

表 5 零件供应联系表(partsupp

create table partsupp

(

    partkey    int  not null  references part(partkey)   ,   

    suppkey    int  not null  references supplier(suppkey)  ,     

    availqty   int       null      comment '可用数量',

    supplycost decimal(10, 2) null comment '供应价格',

    comment    varchar(200)   null,

    primary key (partkey,suppkey)

)

    comment '零件供应联系表';

表 6 顾客表(customer

create table customer

(

    custkey    int    primary key         comment '顾客编号',

    name       varchar(25)   null  comment '姓名',

    address    varchar(40)  null   comment '地址',

    nationkey  int        references nation(nationkey)   ,
    phone      char(30)     null   comment '电话',

    acctbal    decimal(12, 2) null   comment '账户余额',

    mktsegment char(10)      null  comment '市场分区',

    comment    varchar(100)   null

)

    comment '顾客表';

表 7 订单表(orders

create table customer

(

    custkey    int    primary key         comment '顾客编号',

    name       varchar(25)   null  comment '姓名',

    address    varchar(40)  null   comment '地址',

    nationkey  int        references nation(nationkey)   ,
    phone      char(30)     null   comment '电话',

    acctbal    decimal(12, 2) null   comment '账户余额',

    mktsegment char(10)      null  comment '市场分区',

    comment    varchar(100)   null

)

    comment '顾客表';

表 8 订单明细表(lineitem

create table lineitem

(

    orderkey      int   not null  references orders(orderkey), 

    partkey       int   not null  references part(partkey),  
  suppkey       int   not null  references supplier(suppkey)  ,
    linenumber    int   not  null    comment '订单明细编号',

    quantity      int        null    comment '零件数量',

    extendedprice decimal(8, 2) null comment '订单明细价格',

    discount      decimal(3, 2) null comment '折扣',

    tax           decimal(3, 2) null comment '税率',

    returnflag    char          null comment '退货标记',

    linestatus    char          null comment '订单明细状态',

    shipdate      date          null comment '装运日期',

    commitdate    date          null comment '委托日期',

    receiptdate   date          null comment '签收日期',

    shipinstruct  char(25)      null comment '装运说明',

    shipmode      char(10)      null comment '装运方式',

    comment       varchar(40)   null ,

    primary key (orderkey,linenumber)

)

    comment '订单明细表';

(3)根据给的“数据导入教程.rar”,把每个表的数据(.csv 格式)导入到建立的表

里,导入顺序按照建表的顺序。

(4)用 SQL 语句给订单表(orders)创建一个索引(按订单日期降序),索引的名字是

Dindex

create index Dindex on orders(orderdate desc);

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值