文章目录
前言
大二的数据库实验了,无情的搬运工呜啦啦
一、实验目的与要求:
1、掌握MySQL中如何创建数据库和表的方法
2、掌握navicat中创建数据库、表,导入及导出表结构及数据。
3、熟练掌握MySQL的数据类型、主键、实体完整性的设置。
二、实验内容:
1.1、创建名为fruitshop的数据库,并创建数据表fruits、customers(客户)、orderitems(订单详单)、suppliers(供货商)和orders(订单总表),表结构和约束条件如下:
表 1 fruits表结构
表 2 customers表结构
表 3 orderitems表结构
表 4 suppliers表结构
表 5 orders表结构
代码如下:
创建数据库:
CREATE DATABASE fruitshop;
创建fruits表
USE fruitshop;
CREATE TABLE fruits
(f_id CHAR(10)NOT NULL UNIQUE,
s_id INT NOT NULL,
f_name CHAR(255) NOT NULL,
f_price DECIMAL(8,2) NOT NULL,
PRIMARY KEY (f_id,s_id)
);
创建customers表:
CREATE TABLE customers
(c_id INT NOT NULL UNIQUE,
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),
PRIMARY KEY (c_id)
);
创建orderitems表:
CREATE TABLE orderitems
(
o_num INT NOT NULL,
o_item INT NOT NULL,
f_id CHAR(10) NOT NULL,
quantity INT NOT NULL,
item_price DECIMAL(8,2) NOT NULL,
PRIMARY KEY (o_num,o_item)
);
创建suppliers表:
CREATE TABLE suppliers
(
s_id INT NOT NULL UNIQUE AUTO_INCREMENT,
s_name CHAR(50) NOT NULL,
s_city CHAR(50),
s_zip CHAR(10),
s_call CHAR(50) NOT NULL,
PRIMARY KEY (s_id)
);
创建orders表:
CREATE TABLE orders
(
o_num INT NOT NULL UNIQUE AUTO_INCREMENT,
o_date DATETIME NOT NULL,
c_id INT NOT NULL,
PRIMARY KEY (o_num)
);
1.2运行测试结果截图:
1.创建数据库和表:
五个表:
2、向数据表fruits、customers、orderitems和suppliers、orders中插入给定的如下数据
fruits表数据
customers表数据
orderitems表数据
suppliers表数据
orders表数据
3. 向数据表customers和suppliers中分别插入两条记录,新记录customers的C_ID属性值统一为10000,在suppliers的S_ID属性值统一为100,S_NAME数据为JMU,其余属性值为本人的真实信息;向数据表fruits、orderitems、orders表中插入分别插入五条与本人相关的新记录
第2题和第3题的源码:
第二题:
为节约时间就示例一条,其他直接用可视化添加:
INSERT
INTO fruits (f_id,s_id,f_name,f_price)
VALUES (‘a1’,101,‘apple’,5.2);
运行测试结果截图:
第二题截图:
第三题截图:
三、实验小结
1.实验中遇到的问题及解决过程
刚开始在理解题意上有个问题,就是插入自己相关数据那里,后来问了同学,决定都统一用自己的信息,如果后面不行的话再修改
2.实验中产生的错误及原因分析
暂时还没有
3.实验体会和收获。
确实是一个不难的建表和建库的一个实验,难的点可能在于数据量好大,
但是其实也大不到哪里去,可能是一开始在限制时间里写,然后就觉得很有紧迫感,但是讲道理后面发现自己也真的能在那个时间段写完,全身灌入的做完实验就觉得还蛮开心的,不然按照我的拖拖拉拉的性格可能会慢悠悠写,然后今晚再教。
原本供应商的第三题供应表里的供应商以为是自己的名字,改成JMU了。
还需要改进的地方有两个,一个是输入数据那个其实也可以勤快点全部用代码,二就是感觉整个我复制代码的格式还可以再改进改进,做个表啥的,就会更美观。