实验目的
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
比较上述两种方法的异同:
方法一备份结果在文件开头定义数据库的字符集,方法二在每个字段后定义字符集。