数据库和表的基础练习之水果商店

本文档详细介绍了如何在MySQL中创建数据库和表,包括数据类型、主键设置、外键约束以及级联操作。实验内容涉及创建fruitshop数据库及其相关表fruits、customers、orderitems、suppliers和orders,以及数据插入和备份操作。通过Navicat工具进行了可视化操作,同时对比了两种备份方法的异同。实验中强调了外键在表间关系中的作用,以及在数据库管理中的重要性。
摘要由CSDN通过智能技术生成

实验目的

1、掌握MySQL中如何创建数据库和表的方法(要求在交互式命令提示符下完成,
截图)
2、熟练掌握MySQL的数据类型、主键实体完整性的设置
3、参照完整性的定义及应用(Navicat可视化操作,熟悉代码)
4、插入数据(Navicat完成)
5、数据库的备份操作

实验内容

1、创建名为fruitshop的数据库,并创建数据表fruits、customers(客户)、orderitems(订单详单)、suppliers(供货商)和orders(订单总表),表结构和约束条件如下:
注:
2.各表中的“字段说明”属性仅用于辅助说明 该属性的含义,不用定义在表的结构中
3.表中没有明确指定外键,试分析找出各表中的外键并定义其外键约束、级联删除、级联更新操作;
4、向数据表fruits、customers、orderitems和suppliers、orders中插入给定的如下数据,要求如下:
向数据表customers和suppliers中分别插入一条记录,新记录customers的C_ID属性值统一为10000,在suppliers的S_ID属性值统一为100,S_NAME数据为JMU,其余属性值为本人的真实信息;向数据表fruits、orderitems、orders表中插入分别插入五条与本人相关(即在对应表中的C_ID属性为10000,S_ID属性为100)的新记录

在这里插入图片描述
在这里插入图片描述

源码(建数据库和表)

创建表和包含的属性
create table if not exists fruit(
  f_id char(10) primary key,
  s_id int not null,
  f_name char(255) not null ,
  f_price decimal(8,2)not null
);

create table if not exists orderitems(
    c_id int primary key auto_increment,
    c_name char(50) not null,
    c_address char(50),
    c_city char(50),
    c_zip char(10),
    c_contact char(50),
    c_email char(255)
);

create table if not exists orderitems(
    o_num int,
    o_item int,
    f_id char(10) not null,
    quantity int,
    item_price decimal(8,2),
    primary key (o_num,o_item),
    foreign key(f_id) references fruit(f_id)
);

create table if not exists suppliers(
  s_id int primary key auto_increment,
  s_name char(50)not null ,
  s_city char(50),
  s_zip char(10),
  s_call char(50)not null

);

alter table fruit change c_id s_id int;#fruit表中列命名错误,修改列名

create table if not exists orders(
    o_num int primary key auto_increment,
    o_date datetime not null ,
    c_id int not null ,
    constraint foreign key (o_num) references orderitems(o_num),
    constraint fk_c_id foreign key (c_id) references customers(c_id)
);

#查询表中数据
desc fruit;
desc customers;
desc orderitems;
desc orders;
desc suppliers;

insert into customers(c_id,c_name,c_address,c_city,c_zip,c_contact,c_email)
 values (10000,'林杰圣','龙文','漳州','350603','10086','666');
insert into suppliers(s_id,s_name,s_city,s_zip,s_call)
 values (100,'龙文','漳州','350603','10086');
insert into fruit(f_id, s_id, f_name, f_price)
 values ('1001',100,'果子','55');
insert into orderitems(o_num,o_item,f_id,quantity)
 values (20,15,'1001',1);
insert into orders(o_num, o_date, c_id)
 values (20,'2022-03-18 12:00:00',10000);

select * from orders;
select * from orderitems ;
select * from customers;
select * from fruit;
select * from suppliers;

3、完成本次实验数据库的备份操作:
方法一:Mysql -uroot -p123456 数据库名 >目的地址及文件名.sql
方法一:Navicate Premium转储为.sql
比较上述两种方法的异同:
在这里插入图片描述
在这里插入图片描述
方法一备份结果在文件开头定义数据库的字符集,方法二在每个字段后定义字符集。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值