数据库——数据库与表

智能2112杨阳

一、目的与要求:

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

  • 熟练掌握MySQL的数据类型、主键实体完整性的设置
  • 参照完整性的定义及应用
  • 插入数据
  • 数据库的备份操作

二、内容:

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

注:

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

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

表 1   fruits表结构

字段名

字段说明

数据类型

主键

外键

非空

唯一

自增

f_id

水果编号

char(10)

Y

Y

Y

N

s_id

供应商编号

INT

N

Y

N

N

f_name

水果名

char(255)

N

Y

N

N

f_price

价格

decimal(8,2)

N

Y

N

N

表 2   customers表结构

字段名

字段说明

数据类型

主键

外键

非空

唯一

自增

c_id

客户编号

int

Y

Y

Y

Y

c_name

客户名

char(50)

N

Y

N

N

c_address

客户地址

char(50)

N

N

N

N

c_city

城市

char(50)

N

N

N

N

c_zip

邮编

char(10)

N

N

N

N

c_contact

联系人

char(50)

N

N

N

N

c_email

电子邮箱

char(255)

N

N

N

N

表 3   orderitems表结构

字段名

字段说明

数据类型

主键

外键

非空

唯一

自增

o_num

订单号

int

Y

Y

N

N

o_item

订单项

int

Y

Y

N

N

f_id

水果编号

char(10)

N

Y

N

N

quantity

数量

int

N

Y

N

N

item_price

单价

decimal(8,2)

N

Y

N

N

注:orderitems表中o_numo_item的组合构成主键。

表 4   suppliers表结构

字段名

字段说明

数据类型

主键

外键

非空

唯一

自增

s_id

供应商编号

int

Y

Y

Y

Y

s_name

供应商名

char(50)

N

Y

N

N

s_city

城市

char(50)

N

N

N

N

s_zip

邮编

char(10)

N

N

N

N

s_call

电话

char(50)

N

Y

N

N

表 5   orders表结构

字段名

字段说明

数据类型

主键

外键

非空

唯一

自增

o_num

订单号

int

Y

Y

Y

Y

o_date

订购日期

datetime

N

Y

N

N

c_id

客户编号

int

N

Y

N

N

源码:

1、create table fruits(

    ->  f_id char(10) primary key not null unique,

    ->  s_id int not null,

    ->  f_name char(255) not null,

    -> f_price decimal(8,2) not null);

2、create table customers(

    -> c_id int auto_increment primary key not null unique,

    -> c_name char(50),

    -> c_address char(50),

    -> c_city char(50),

    -> c_zip char(50),

    -> c_contact char(50),

    -> c_email char(50));

3、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));

4、create table suppliers(

    -> s_id int auto_increment primary key not null unique,

    -> s_name char(50) not null,

    -> s_city char(50),

    -> s_zip char(50),

    -> s_call char(50) not null);

5、create table orders(

    -> o_num int auto_increment primary key not null unique,

    -> o_date datetime not null,

-> c_id int not null);

外键:

1、alter table fruits  add constraint fk_fruits_suppliers foreign key(s_id)

references suppliers(s_id);

2alter table orders add constraint fk_orders_customers foreign key(c_id)

references customers(c_id);

3、alter table orderitems add constraint fk_orderitems_fruits foreign key(f_id)

references fruits(f_id)

4、alter table orderitems add constraint fk_orderitems_orders foreign key(o_num)

references orders(o_num);

运行测试结果截图:

1、fruits

2、customers

3、orderitems

4、suppliers

5、orders

外键:

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

fruits表数据

customers表数据

orderitems表数据

suppliers表数据

orders表数据

源码:

1、 fruits

INSERT INTO fruits VALUES ('a1',101,'apple',5.2);

INSERT INTO fruits VALUES ('a2',103,'apricot',2.2);

INSERT INTO fruits VALUES ('b1',101,'blackberry',10.2);

INSERT INTO fruits VALUES ('b2',104,'berry',7.6);

INSERT INTO fruits VALUES ('b3',104,'lemon',6.4);

INSERT INTO fruits VALUES ('b5',107,'pear',3.6);

INSERT INTO fruits VALUES ('bs1',102,'orange',11.2);

INSERT INTO fruits VALUES ('c0',101,'plum',3.2);

INSERT INTO fruits VALUES ('m1',106,'mango',15.6);

INSERT INTO fruits VALUES ('m2',105,'watermelon',2.6);

INSERT INTO fruits VALUES ('m3',105,'cherry',11.6);

INSERT INTO fruits VALUES ('o2',103,'coconut',9.2);

INSERT INTO fruits VALUES ('t1',102,'banana',10.3);

INSERT INTO fruits VALUES ('t2',102,'grape',5.3);

INSERT INTO fruits VALUES ('t4',107,'peanut',3.6);

2、customers

INSERT INTO customers VALUES (10001,'RedHook','200 Street','Tianjin','300000','LiMing','LMing@163.com');

INSERT INTO customers VALUES (10002,'Stars','333 Fromage Lane','Dalian','116000','Zhangbo','Jerry@hotmail.com');

INSERT INTO customers VALUES (10003,'Nethood','1 Sunny Place','Qingdao','266000','LuoCong',NULL);

INSERT INTO customers VALUES (10004,'JoTo','829 Riverside Driver','Haikou','570000','YangShan','sam@hotmail.com');

3、orderitems

INSERT INTO orderitems VALUES(30001,1,'a1',10,5.2);

INSERT INTO orderitems VALUES(30001,2,'b2',3,7.6);

INSERT INTO orderitems VALUES(30001,3,'bs1',5,11.2);

INSERT INTO orderitems VALUES(30001,4,'bs2',15,9.2);

INSERT INTO orderitems VALUES(30002,1,'b3',2,20);

INSERT INTO orderitems VALUES(30003,1,'c0',100,10);

INSERT INTO orderitems VALUES(30004,1,'o2',50,2.5);

INSERT INTO orderitems VALUES(30005,1,'c0',5,10);

INSERT INTO orderitems VALUES(30005,2,'b1',10,8.99);

INSERT INTO orderitems VALUES(30005,3,'a2',10,2.2);

INSERT INTO orderitems VALUES(30005,4,'m1',5,14.99);

4、suppliers

INSERT INTO suppliers VALUES (101,'FastFruit Inc.','Tianjin','300000','48075');

INSERT INTO suppliers VALUES (102,'LT Supplies','Chongqing','400000','44333');

INSERT INTO suppliers VALUES (103,'ACME','Shanghai','200000','90046');

INSERT INTO suppliers VALUES (104,'FNK Inc.','Zhongshan','528437','11111');

INSERT INTO suppliers VALUES (105,'Good Set','Taiyuan','030000','22222');

INSERT INTO suppliers VALUES (106,'Just Eat Ours','Beijing','010','45678');

INSERT INTO suppliers VALUES (107,'DK Inc.','Zhengzhou','450000','33332');

5、orders

INSERT INTO orders VALUES (30001,'2018-09-01 00:00:00',10001);

INSERT INTO orders VALUES (30002,'2018-09-12 00:00:00',10003);

INSERT INTO orders VALUES (30003,'2018-09-30 00:00:00',10004);

INSERT INTO orders VALUES (30004,'2018-10-03 00:00:00',10002);

INSERT INTO orders VALUES (30005,'2018-10-08 00:00:00',10001);

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

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

源码:

customers:

INSERT INTO customers VALUES (10000,'yy','5.4.519','Xianmen','555555','Yangyang','yy@163.com');

suppliers:

INSERT INTO suppliers VALUES (100,'JMU','Xiamen','555555','12345');

orders:

INSERT INTO orders VALUES (50001,'2023-03-15 00:00:00',10000);

INSERT INTO orders VALUES (50002,'2023-03-17 00:00:00',10000);

fruits:

INSERT INTO fruits VALUES ('y1',100,'avocate',6.7);

INSERT INTO fruits VALUES ('y2',100,'peach',4.5);

INSERT INTO fruits VALUES ('z1',100,'pineapple',5.7);

INSERT INTO fruits VALUES ('z2',100,'raspberry',9.7);

INSERT INTO fruits VALUES ('n2',100,'cranberry',8.7);

orderitems:

INSERT INTO orderitems VALUES(30002,2,'b2',6,6.7);

INSERT INTO orderitems VALUES(30002,3,'bs1',7,7.5);

INSERT INTO orderitems VALUES(30002,4,'bs2',8,9.3);

INSERT INTO orderitems VALUES(30003,2,'c1',4,5.7);

INSERT INTO orderitems VALUES(30003,3,'c3',2,3.8);

运行测试结果截图:

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

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

源码:

mysqldump -uroot -p123456 fruitshop>fruitshop.sql

运行测试结果截图:

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

源码:

mysql -uroot -p123456 fruitshop<fruitshop.sql

运行测试结果截图:

三、小结

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

问题:

1、联合主键设置失败

2、外键的概念不清晰

3、自增和唯一的设置不了解

解决过程:

1、查询联合主键的语法规则

2、了解外键的概念及语法规则

3、了解自增和唯一的语法规则

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

错误:

1、orderitems表语法错误,建立失败

2、外键的设置失败

原因分析:

1、不了解联合主键的语法规则

    2、不了解外键的语法规则

   

3.体会和收获。

    体会和收获:本次实验让我对数据库及表有了更深刻的理解和认识,通过建立数据库及表,主键、联合主键、外键等语法规则的了解让我对数据库的使用更加得心应手。我们学到了很多东西,包括建表导入数据,查询,插入,并用电脑进行实践,加强巩固知识的积累。总的来说收获满满。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用静态HTTP提供动态内容

在Web开发中&#xff0c;静态HTTP和动态HTTP常被视作两种截然不同的技术。静态HTTP主要用于传输不变的内容&#xff0c;如HTML、CSS和JavaScript文件&#xff0c;而动态HTTP则能处理用户交互、实时数据等动态需求。但鲜为人知的是&#xff0c;我们其实可以通过一些技巧&#xf…

【数据分析实战】酒店行业华住集团门店分布与评分多维度分析

文章目录 1. 写在前面2. 数据集展示3. 多维度分析3.1 门店档次多元化&#xff1a;集团投资战略观察3.1.1 代码实现3.1.2 本人浅薄理解 3.2 门店分布&#xff1a;各省市分布概览3.2.1 代码实现3.2.2 本人浅薄理解 3.3 门店分级评分&#xff1a;服务水平的多维度观察3.3.1 代码实…

Amazon CodeWhisperer 开箱初体验

文章作者&#xff1a;Coder9527 科技的进步日新月异&#xff0c;正当人工智能发展如火如荼的时候&#xff0c;各大厂商在“解放”码农的道路上不断创造出各种 Coding 利器&#xff0c;今天在下就带大家开箱体验一个 Coding 利器&#xff1a; Amazon CodeWhisperer。 亚马逊云科…

SCI一区级 | Matlab实现GWO-CNN-BiLSTM-selfAttention多变量多步时间序列预测

SCI一区级 | Matlab实现GWO-CNN-BiLSTM-selfAttention多变量多步时间序列预测 目录 SCI一区级 | Matlab实现GWO-CNN-BiLSTM-selfAttention多变量多步时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现GWO-CNN-BiLSTM-selfAttention灰狼算法优化卷…

JWT介绍及演示

JWT 介绍 cookie(放在浏览器) cookie 是一个非常具体的东西&#xff0c;指的就是浏览器里面能永久存储的一种数据&#xff0c;仅仅是浏览器实现的一种数据存储功能。 cookie由服务器生成&#xff0c;发送给浏览器&#xff0c;浏览器把cookie以kv形式保存到某个目录下的文本…

【iOS】数据持久化(三)之SQLite3数据库

目录 数据库简介什么是SQLite&#xff1f;在Xcode引入SQLite APISQL语句的种类存储字段类型 SQLite的使用创建数据库创建表和删表数据表操作增&#xff08;插入数据INSERT&#xff09;删&#xff08;删除数据DELETE&#xff09;改&#xff08;更新数据UPDATE&#xff09;查&…

QT打包部署程序时候程序无法启动

当在Qt打包部署程序后&#xff08;用windeployqt打包好qt依赖库后&#xff09;&#xff0c;在本机可以运行&#xff0c;在其他电脑上显示程序无法启动&#xff0c;如下图所示。可能是在复制dll时候将System32中的dll复制到了应用程序中&#xff0c;应该改用SysWOW64中的dll&…

通过kubeadm方式安装k8s

虚拟机最少是 2 core&#xff0c;master内存最小3G&#xff0c;node内存最小2G. 要求的Docker版本是18.03&#xff0c;如果不是安装的docker ce&#xff0c;版本是过旧的&#xff0c;可以选择删除后重新安装&#xff1b; 也可以重新创建一个虚拟机执行以下命令。 简单方法&am…

LeetCode Hot100 17.电话号码的字母组合

题目&#xff1a; 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 方法&#xff1a;灵神 子集型回溯 class Solution {p…

npm私有源构建项目下载依赖报错

Jenkins构建项目报错&#xff0c;依赖找不到 Error: Couldnt find any versions for "babel/helper-module-imports" that matches "^7.22.15"at MessageError.ExtendableBuiltin (/data1/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/…

屏幕分辨率修改工具SwitchResX mac功能特点

SwitchResX mac是可用于修改和管理显示器的分辨率和刷新率。 SwitchResX mac功能和特点 支持多种分辨率和刷新率&#xff1a;SwitchResX可以添加和管理多种分辨率和刷新率&#xff0c;包括自定义分辨率和刷新率。 自动切换分辨率&#xff1a;SwitchResX可以根据应用程序和窗口…

如何提高大模型在超长上下文的表现?Claude实验表明加一句prompt立即提升效果~

本文来自DataLearnerAI官方网站&#xff1a;如何提高大模型在超长上下文的表现&#xff1f;Claude实验表明加一句prompt立即提升效果~ | 数据学习者官方网站(Datalearner)https://www.datalearner.com/blog/1051701947131881 Claude 2.1版本的模型上下文长度最高拓展到200K&am…

时间序列预测 — VMD-LSTM实现单变量多步光伏预测(Tensorflow):单变量转为多变量

目录 1 数据处理 1.1 导入库文件 1.2 导入数据集 1.3 缺失值分析 2 VMD经验模态分解 3 构造训练数据 4 LSTM模型训练 5 预测 1 数据处理 1.1 导入库文件 import time import datetime import pandas as pd import numpy as np import matplotlib.pyplot as plt f…

windows系统和虚拟机上ubuntu系统通过虚拟串口进行通信

本文的目的是实现windows系统和虚拟机上安装的ubuntu通过串口进行通信。为了直观观测串口收发数据的内容&#xff0c;需要在windows系统和ubuntu系统使用串口助手来进行监听。windows系统端用的监听工具是串口助手SSCOM&#xff0c;ubuntu系统端使用的串口助手是CuteCom。 ubu…

电子眼+无人机构建平安城市视频防控监控方案

电子眼&#xff08;也称为监控摄像机&#xff09;可以通过安装在城市的不同角落&#xff0c;实时监控城市的各个地方。它们可以用于监测交通违法行为、监控公共场所的安全以及实时监测特定区域的活动情况。通过电子眼的应用&#xff0c;可以帮助警方及时发现并响应各类安全事件…

『Redis』在Docker中快速部署Redis并进行数据持久化挂载

&#x1f4e3;读完这篇文章里你能收获到 在Docke中快速部署Redis如何将Redis的数据进行持久化 文章目录 一、拉取镜像二、创建挂载目录1 宿主机与容器挂载映射2 挂载命令执行 三、创建容器—运行Redis四、查看运行情况 一、拉取镜像 版本号根据需要自己选择&#xff0c;这里以…

PPT插件-好用的插件-图形缩放-大珩助手

图形缩放 包括适合屏幕、适合宽度、适合高度、水平翻转、垂直翻转、指定角度&#xff0c;可同时对多个形状进行操作 适合屏幕 一键设置图像、文本、形状的长宽尺寸与当前幻灯片一致 适合宽度 一键设置图像、文本、形状的宽度尺寸与当前幻灯片一致 适合高度 一键设置图像…

鸿蒙方舟开发框架ArkUI简介

语雀知识库地址&#xff1a;语雀HarmonyOS知识库 飞书知识库地址&#xff1a;飞书HarmonyOS知识库 嗨&#xff0c;各位别来无恙呐&#xff0c;我是小白 众所周知&#xff0c;华为在今年推出了 HarmonyOS 4.0 版本&#xff0c;而在此之前的版本中&#xff0c;HarmonyOS 应用的 …

第17章:随堂复习与企业真题(反射机制)

第17章&#xff1a;随堂复习与企业真题&#xff08;反射机制&#xff09; 一、随堂复习 1. 反射的概述&#xff08;熟悉&#xff09; Java给我们提供了一套API&#xff0c;使用这套API我们可以在运行时动态的获取指定对象所属的类&#xff0c;创建运行时类的对象&#xff0c;…

web漏洞原理与防御策略,web漏洞怎么挖掘

目录 Web安全的重要性 ​编辑常见的Web漏洞类型及其原理&#xff1a; 1、跨站脚本攻击&#xff08;XSS&#xff09;: 2、SQL注入: 3、跨站请求伪造&#xff08;CSRF&#xff09;: 4、远程文件包含&#xff08;RFI&#xff09;和本地文件包含&#xff08;LFI&#xff09;:…
最新文章