[数据库实验一]数据库和表

news2024/12/26 19:05:24

目录

一、实验目的与要求

二、实验内容

实验小结


一、实验目的与要求

1.掌握MySQL如何创建数据库和表的方法

2.熟练掌握MySQL的数据类型、主键实体完整性的设置

3.参照完整性的定义及应用

4.插入数据

5.数据库的备份操作

二、实验内容

1、创建名为fruitshop的数据库,并创建数据表fruits、customers(客户)、orderitems(订单详单)、suppliers(供货商)和orders(订单总表),表结构和约束条件如下:

注:

1.各表中的“字段说明”属性仅用于辅助说明该属性的含义,不用定义在表的结构中

2.表中没有明确指定外键,试分析找出各表中的外键并定义其外键约束、级联删除、级联更新操作;

表 1   fruits表结构

字段名

字段说明

数据类型

主键

外键

非空

唯一

自增

f_id

水果编号

char(10)

Y

N

Y

Y

N

s_id

供应商编号

INT

N

Y

Y

N

N

f_name

水果名

char(255)

N

N

Y

N

N

f_price

价格

decimal(8,2)

N

N

Y

N

N

表 2   customers表1结构

字段名

字段说明

数据类型

主键

外键

非空

唯一

自增

c_id

客户编号

int

Y

N

Y

Y

Y

c_name

客户名

char(50)

N

N

Y

N

N

c_address

客户地址

char(50)

N

N

N

N

N

c_city

城市

char(50)

N

N

N

N

N

c_zip

邮编

char(10)

N

N

N

N

N

c_contact

联系人

char(50)

N

N

N

N

N

c_email

电子邮箱

char(255)

N

N

N

N

N

表 3   orderitems表结构

字段名

字段说明

数据类型

主键

外键

非空

唯一

自增

o_num

订单号

int

Y

Y

Y

N

N

o_item

订单项

int

Y

N

Y

N

N

f_id

水果编号

char(10)

N

Y

Y

N

N

quantity

数量

int

N

N

Y

N

N

item_price

单价

decimal(8,2)

N

N

Y

N

N

注:orderitems表中o_num和o_item的组合构成主键。

表 4   suppliers表结构

字段名

字段说明

数据类型

主键

外键

非空

唯一

自增

s_id

供应商编号

int

Y

N

Y

Y

Y

s_name

供应商名

char(50)

N

N

Y

N

N

s_city

城市

char(50)

N

N

N

N

N

s_zip

邮编

char(10)

N

N

N

N

N

s_call

电话

char(50)

N

N

Y

N

N

表 5   orders表结构

字段名

字段说明

数据类型

主键

外键

非空

唯一

自增

o_num

订单号

int

Y

N

Y

Y

Y

o_date

订购日期

datetime

N

N

Y

N

N

c_id

客户编号

int

N

Y

Y

N

N

源码:

  1. 创建数据库fruitshop并开始对数据库进行操作

2.创建表格

(1)创建customers表格

(2)创建fruits表格

(3)创建orderitems表格

(4)创建orders表格

(5)创建suppliers表格

运行测试结果截图:

运行结果:通过show tables可以显示所有的表格

2、向数据表fruits、customers、orderitems和suppliers、orders中插入给定的如下数据

fruits表数据

customers表数据

orderitems表数据

suppliers表数据

orders表数据

3、向数据表fruits、customers、orderitems和suppliers、orders中插入给定的如下数据,要求如下:

向数据表customers和suppliers中分别插入一条记录,新记录customers的C_ID属性值统一为10000,在suppliers的S_ID属性值统一为100,S_NAME数据为JMU,其余属性值为本人的真实信息;向orders表中插入编号为“50001”和“50002”,客户编号为“10000”(本人)的两条记录;向数据表fruits、orderitems表中插入分别插入五条本人相关(即在对应表中的C_ID属性为10000,S_ID属性为100的新记录;

源码:

1.插入题目要求的原数据

(1)插入数据到customers表格中

(2)插入数据到orders表格中

(3)插入数据到suppliers表格中

(4)插入数据到fruits表格中

(5)插入数据到orderitems表格中

2.新插入自己的数据

(1)在customers表格中插入自己的数据

(2)在suppliers表格中插入自己的数据

(3)插入数据到orders表格中

(4)插入五条数据到fruits表格中

(5)插入五条数据到orderitems表格中

运行测试结果截图:

(1)显示customers表格数据

(2)显示suppliers表格数据

(3)显示orders表格数据

(4)显示fruits表格数据

(5)显示orderitems表格数据

3.完成本次实验数据库的备份及还原操作:

(1)备份:mysqldump -uroot -p123456 数据库名 >目的地址及文件名.sql

运行测试结果截图:

SQL文件已备份

(2)还原备份数据 source  源地址及文件名.sql

  • 实验小

1.实验中遇到的问题及解决过程

问题1:在创建数据库后直接开始建立表格

解决方案:需要输入命令use fruitshop (表示使用数据库)后才能开始对这个数据库进行操作。

问题2:在使用MySQL语言时不符合标准要求,例如,1忘记加逗号、分号,2在属性为char类型时,添加数据忘记加引号等等导致无法正确进行下一步

解决方案:编码时需符合标准要求

问题3:插入数据时没有正确引用外码

解决方案:通过select 先确定好需要引用的外码的值

2.实验中产生的错误及原因分析

错误1:在创建表格时,起初按照题目要求,先建立fruit表格,但是无法建立该表格

原因分析:创建表格时没有对应逻辑关系,fruit表格中的属性‘s_id’作为外键需要引用suppliers表格中的‘s_id’,因此,在创建fruit表格前需要先创建suppliers表格才能引用。

3.实验体会和收获

本次实验首次体验了在命令行使用MySQL语言进行对数据库和表的基本操作。实验难度较为简单,但是在实验过程中需要重复进行多次相关操作,需要我们细心以及有耐心完成任务。同时,由于对语言规范性不了解,有时会忘记进行相关的操作。本次实验结合课本知识,我掌握了对数据库、表的创建及插入、更新、删除等操作,以及对数据库的备份和还原操作。通过实验学到了许多课堂上未涉及的知识。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2168527.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CleanMyMac X 评价、介绍、使用教学|Mac系统最推荐的系统优化和清理软件工具!

本篇文章要带大家看一款知名的Mac系统优化、清理工具– CleanMyMac X ,并且也会附上详细的介绍和使用教学。 链接: https://pan.baidu.com/s/1_TFnrIVH1NGsZPsA3lpwAA 提取码: dpjw CleanMyMac X-安装包:https://souurl.cn/QUYb57 为什么Mac电脑需要装系…

Cilium + ebpf 系列文章-什么是ebpf?(一)

前言: 这篇非常非常干,很有可能读不懂。 这里非常非常推荐,建议使用Cilium官网的lab来辅助学习!!!Resources Library - IsovalentExplore Isovalents Resource Library, your one-stop destination for ins…

FocSAM

Dynamic Window简写为Dwin 辅助信息 不建议复现

TCN-Transformer+GRU多变量时间序列预测(Matlab)

超强来袭!双路创新!TCN-TransformerGRU多变量时间序列预测(Matlab) 目录 超强来袭!双路创新!TCN-TransformerGRU多变量时间序列预测(Matlab)效果一览基本介绍程序设计参考资料 效果一…

智慧农业的引擎:高标准农田灌区信息化的探索与实践

在现代农业的广阔图景中,智慧农业作为一股革新力量,正逐步重塑着传统农业的面貌。其中,高标准农田灌区的信息化建设不仅是智慧农业的重要引擎,更是实现农业可持续发展、提高资源利用效率的关键路径。 高标准农田灌区信息化的内涵…

Linux下的基本指令/命令(二)

热键 Tab: 连点两次 对命令进补齐 或者 显式 以目前所需字母 开头的指令。 也可以进行路径补齐 或者 显示所写的文件所处路径上的所有文件。 如果什么也没写,直接按Tab会显示所有命令 Ctrl C: 一旦出现失控的状态,或者任何无法…

刷题计划 day10 栈与队列上【用栈实现队列】【用队列实现栈】【有效的括号】【删除字符串中的所有相邻重复项】

⚡刷题计划day10栈与队列继续,可以点个免费的赞哦~ 往期可看专栏,关注不迷路, 您的支持是我的最大动力🌹~ 目录 ⚡刷题计划day10继续,可以点个免费的赞哦~ 往期可看专栏,关注不迷路, 您的…

Linux云计算 |【第四阶段】NOSQL-DAY2

主要内容: Redis集群概述、部署Redis集群(配置manage管理集群主机、创建集群、访问集群、添加节点、移除节点) 一、Redis集群概述 1、集群概述 所谓集群,就是通过添加服务器的数量,提供相同的服务,从而让…

CSDN文章导出md并迁移至博客园

一、获取所有文章地址 1.进csdn首页,点击自己的头像 2.在个人主页界面,按F12打开控制台,并找到network,找到get-business开头的请求,右键copy他的url 3.选择console,输入一下代码,其中fetch里面的url是你刚…

62.【C语言】浮点数的存储

目录 1.浮点数的类型 2.浮点数表示的范围 3.浮点数的特性 《计算机科学导论》的叙述 4.浮点数在内存中的存储 答案速查 分析 前置知识:浮点数的存储规则 推导单精度浮点数5.5在内存中的存储 验证 浮点数取出的分析 1.一般情况:E不全为0或不全为1 2.特殊情况:E全为0…

P335_0334韩顺平Java_零钱通介绍

目录 P335_0334韩顺平Java_零钱通介绍代码过程编程OOP(Object-Oriented Project) 参考资料 P335_0334韩顺平Java_零钱通介绍 先完成显示菜单,并可以选择。完成零钱通明细。完成收益入账。消费。退出。 PS:判断时尽量用不正确的条…

BEV学习---LSS4-模型训练

主要借鉴如下链接: https://blog.csdn.net/m0_51579041/article/details/140746160 测试命令如下,均已跑通: # 验证集iou计算: python main.py eval_model_iou mini -bsz1 --nworkers0 --gpuid0 --modelf./model/model525000.pt…

【CSS/HTML】圣杯布局和双飞翼布局实现两侧宽度固定,中间宽度自适应及其他扩展实现

前沿简介 圣杯布局和双飞翼布局是前端重要的布局方式。两者的功能相同,都是为了实现一个两侧宽度固定,中间宽度自适应的三栏布局。 圣杯布局来源于文章In Search of the Holy Grail,双飞翼布局来源于淘宝UED。 两者的实现方式有差异,但是都…

Java文件上传同时传入JSON参数

前言 此篇文章用于解决一个接口内同时完成文件的上传及JSON参数的传入(生产环境已验证); 1.准备接口 import cn.cdjs.vo.UserVO; import cn.hutool.json.JSONUtil; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFi…

黑马头条day4 自媒体文章自动审核

阿里云内容安全调用 其实这个接口调用不是很难 但是需要花钱 就没买 我开了按量计费 但是还是不行 所以就没测试 于是尝试自己写返回成功值 效果不好 后来发现不如直接在函数里边取消调用文字和图片审核 这样更简单 远程调用与降级处理 这里有个bug调试了好久 第一个就是总…

C++面试题第一弹

TCP、UDP区别及使用场景 从TCP和UDP的特点来看,连接性,可靠性,以及面向字节流还是数据报来说。 区别: 连接性:TCP面向连接,而UDP无连接。对TCP来说,在数据传输之前,通信双发需要…

gradle镜像配置

当我们在Android Studio中新建项目或者打开已有项目时,会下载gradle文件,当使用官方的下载源时很慢,经常会下载失败,国内我们可以使用腾讯或者阿里的镜像,一般下载速度很快。 一、gradle下载地址 官网地址&#xff1…

02——springboot2——热部署

什么是热部署 简单说就是你程序代码修改了,现在要重新启动服务器才能加载刚刚新写的代码,如果每次修改代码都要重新启动服务器,这样就真的太麻烦了(运行一些稍微较大的项目,运行时间是很长的,所以每次修改…

docker - 镜像操作(拉取、查看、删除)

文章目录 1、docker search --help(用于显示 Docker 搜索命令的帮助信息)2、docker pull(拉取镜像)3、docker images (查看镜像)3.1、docker images --help(用于显示 Docker 镜像管理相关命令的帮助信息)3.…

【C++】——vector深度剖析模拟实现

低头赶路,敬事如仪 目录 1、模拟vector 1.1底层结构 1.2构造析构 1.3尾插扩容 1.4迭代器 1.5增删查改 1.6模拟中的注意事项 2、vector模拟补充 2.1迭代器区间构造问题 2.2memcpy深浅拷贝问题 2.3动态二维数组的模拟及遍历 1、模拟vector 想要模拟实现自…