数据库(mysql)-新手笔记(主外键,视图)
主外键
主键(唯一性,非空性)
主键是数据库表中的一个或多个字段,其值唯一标识表中的每一行/记录。
唯一性: 主键字段中的每个值都必须是唯一的,不能有两个或更多的记录具有相同的主键值
非空性:主键字段不能包含NULL值。
外键(引用完整 防无效数据)
引用完整性:确保引用的数据存在。
防止无效数据:通过限制可以在外键字段中输入的值,可以防止无效数据的插入。
作用
如果想要删除含主键的表的话,需要解除外键否则是不允许删除的 ,提高了安全保密性
其次链接了主键的字段名的外键的字段名如果超出含主键字段名的数据的范围 ,可以控制用户不会乱输入,确保了表的规范性
如果主键不唯一的话,也不会让其插入(更新) ,防止了数据重复录入
模版
CREATE TABLE 表名(字段名 字段类型 NOT NULL PRIMARY KEY...);
//创建一个order创建一个表,因为order是关键字所以用反引号包裹
CREATE TABLE 表名(字段名 字段类型...,FOREIGN KEY (字段名) REFERENCES 引用的表(字段名有主键)
CREATE TABLE `order`(order_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,item VARCHAR(10));
//创建一个order创建一个表,因为order是关键字所以用反引号包裹
CREATE TABLE personnel(personnel_id INT NOT NULL PRIMARY KEY ,name VARCHAR(10));
//创建一个人员表
CREATE TABLE personnelNeeded(order_id INT NOT NULL ,personnel_id INT NOT NULL ,satisfaction INT,moneyAmount DOUBLE,FOREIGN KEY (order_id) REFERENCES `order`(order_id),FOREIGN KEY (personnel_id) REFERENCES personnel(personnel_id),PRIMARY KEY (order_id,personnel_id))
//外键连接order表中的order_id和personnel表中的personnel_id
需要注意的是可以使用 AUTO_INCREMENT来实现每插入一行,数据会自增一
插入
注意的是 PRIMARY KEY是唯一
如果是多个组合在一起的话,只要有一个 PRIMARY KEY就可以录入到含外键的表,
#插入单字字段名的数据(含主键)
INSERT INTO `order`(item) VALUES ('苹果'),('李子'),('香蕉'),('橙子'),('水蜜桃'),('牛油果');
SELECT * FROM `order`;
#插入多字字段名的数据(含主键)
INSERT INTO personnel VALUES (1,'张四'),(2,'张五'),(3,'张六'),(4,'张七'),(5,'张八');
SELECT * FROM personnel;
#插入多字字段名的数据(含外键)
INSERT INTO personnelNeeded VALUES (1,2,5,300),(1,3,5,500),(2,2,5,700),(3,2,5,400),(4,2,5,800),(5,4,3,300);
查询
通过外键查询主键其他的字段名下的数据
单主外键相连
关键字JOIN 含主键的表 (可以取别名) ON 含主键的表.字段名 (当前外键的表).字段名
SELECT (item) FROM personnelneeded
JOIN `order` o on o.order_id = personnelNeeded.order_id;
多主外键相连
变化的是SElECT 后的查询字段名 已经join后面在加一个含主键表的字段名
SELECT item,name FROM personnelneededJOIN `order` o on o.order_id = personnelNeeded.order_id
JOIN personnel p on personnelNeeded.personnel_id = p.personnel_id;
视图
作用
提高重用性:视图相当于一个虚拟表,它可以使复杂的SQL查询语句变得简单,减少复杂SQL语句的使用频次
数据库重构:当需要修改数据库结构时,通过使用视图,可以不修改脚本程序的功能。也就是说,对数据库进行重构,不会影响到基于视图的程序的运行
提高安全性:视图可以对不同的用户设定不同的权限,提供不同的数据视图 ,无法修改变结构
据清晰化:视图可以按需创建,只包含用户关心的数据,使得数据更加清晰,方便用户理解和使用。
这边我们使用一个视图将通过外键查询的字段名来创建一个虚拟的表
CREATE VIEW 视图名称 AS
SELECT 字段名
FROM 含外键的表
JOIN 含主键的表 (别名)on(别名).(主键字段名) =含外键的表.外键的字段名
CREATE VIEW orderView ASSELECT name,item FROM personnelNeeded
JOIN `order` o on o.order_id = personnelNeeded.order_id
JOIN personnel p on p.personnel_id = personnelNeeded.personnel_id;
巧学巧记
主键唯一标识 ,外键引用主键用 REFERENCES指向某含主键表
主键非空,外键调用主键时候必须符合主键已录入的数据
外键想要查询主键中的其他字段名下的数据 需要用主键字段名链接外键字段名
关键字 JOIN 主键表 (别名) ON 别名.主键字段名= 外键表名.主键字段名
视图可以限制用户权限,不会更改表结构
相关文章:

数据库(mysql)-新手笔记(主外键,视图)
主外键 主键(唯一性,非空性) 主键是数据库表中的一个或多个字段,其值唯一标识表中的每一行/记录。 唯一性: 主键字段中的每个值都必须是唯一的,不能有两个或更多的记录具有相同的主键值 非空性:主键字段不能包含NULL值。 外键(引用完整 …...

西门子PLC的交互界面怎样设计?
西门子PLC的交互界面设计集中于提供一个直观、多功能且用户友好的环境,旨在使工程师和技术人员能够有效地进行编程、监控和维护。下面是一些设计西门子PLC交互界面时的关键考虑因素: 1. **图形化编程环境**:设计时,重点在于提供直…...

备份 ChatGPT 的聊天纪录
备份 ChatGPT 的聊天纪录 ChatGPT 在前阵子发生了不少次对话纪录消失的情况,让许多用户觉得困扰不已,也担心自己想留存的聊天记录消失不见。 好消息是,OpenAI 在 2023 年 4 月 11 日推出了 ChatGPT 聊天记录备份功能,无论是免费…...

支持向量机 SVM | 线性可分:软间隔模型
目录 一. 软间隔模型1. 松弛因子的解释小节 2. SVM软间隔模型总结 线性可分SVM中,若想找到分类的超平面,数据必须是线性可分的;但在实际情况中,线性数据集存在少量的异常点,导致SVM无法对数据集线性划分 也就是说&…...

基于Java的生活废品回收系统(Vue.js+SpringBoot)
目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容三、界面展示3.1 登录注册3.2 资源类型&资源品类模块3.3 回收机构模块3.4 资源求购/出售/交易单模块3.5 客服咨询模块 四、免责说明 一、摘要 1.1 项目介绍 生活废品回收系统是可持续发展的解决方案,旨在鼓…...

Linux:好用的Linux指令
进程的Linux指令 1.查看进程信息 ps ajx | head -1 && ps ajx | grep 进程名创建一个进程后输入上述代码,会打印进程信息,当我们在code.exe中写入打印pid,ppid,这里也和进程信息一致。 while :; do ps ajx | he…...

Python Tkinter GUI 基本概念
归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言📝如果停止,就是低谷…...

Python实习生(自动化测试脚本开发) - 面经 - TCL新技术有限公司
JD: 招聘流程: 2024.1.3 Boss直聘 沟通 2024.1.4 约面 2024.1.6 上午面试 面试流程: 上来第一步,直接问Python基础语法,讲一下基础的数据类型 就记得元组和字典 分别具体说一下元组和字典 流程控制语句有哪些&…...

遥遥领先!基于transformer变体的时间序列预测新SOTA!
目前,以CNN、RNN和 Transformer 模型为代表的深度学习算法已经超越了传统机器学习算法,成为了时间序列预测领域一个新的研究趋向。这其中,基于Transformer架构的模型在时间序列预测中取得了丰硕的成果。 Transformer模型因其强大的序列建模能…...

Java实现从本地读取CSV文件数据
一、前言 最近项目中需要实现这样一个功能,就是从本地读取CSV文件,并以指定行作为标题行,指定行开始作为数据读取行,读取数据并返回给前端,下面具体说下是如何通过java实现。 二、如何实现? 1.引入相关mav…...

数据结构(一)——概述
一、绪论 1.1数据结构的基本概念 数据:用来描述客观事物的数、计算机中是字符及所有能输入并被程序识别和处理的符号的集合。 数据元素:数据的基本单位,一个数据元素可由若干数据项组成。 数据结构:指相互之间存在一种或多种特…...

昇腾芯片解析:华为自主研发的人工智能处理器全面分析
在当今科技发展的浪潮中,昇腾芯片作为一种新兴的处理器,正引起广泛的关注和讨论。升腾芯片究竟是由哪家公司生产的?这个问题一直困扰着许多人。下面小编将全面介绍、分析升腾芯片的生产商及各类参数、应用,以便读者对其有更全面的…...

新手做抖音小店怎么快速出体验分?教给大家一个方法!
大家好,我是电商糖果 新店怎么出体验分? 这是不是很多新店商家最苦恼事情? 因为没有体验分的店铺,平台不会给推流,开了精选联盟也没有办法带货。 总之就是运营的时候,比较受限。 那么抖音小店怎么快速出…...

Apollo决策规划 - EM planner
旨在对b站老王所讲的百度Apollo - EM planner算法做浓缩版总结 0 决策规划背景 基于图搜索 优点: 可以得到全局层面最优解,适用于比较低维数的规划问题 缺点: 规划问题维数较高时,面临指数爆炸问题 基于采样 优点:…...

Qt: 事件过滤器的更多用法
不懂事件循环怎么回事的可以看下面的文章 Qt事件循环完整流程 常规使用 定义一个窗口MainWindow ,之后在窗口里添加一个事件过滤函数eventFilter,将窗口的某一个或一些字控件安装上事件过滤器。 这种情况下MainWindow 就是pushButton11的时间过滤器&am…...

解决:ModuleNotFoundError: No module named ‘paddle‘
错误显示: 原因: 环境中没有‘paddle’的python模块,但是您在尝试导入 解决方法: 1.普通方式安装: pip install paddlepaddle #安装命令 2.镜像源安装 pip install paddlepaddle -i https://pypi.tuna.tsinghua.e…...

上海雷卯可以解决YPbPr/ YCbCr接口 ESD/EOS静电浪涌问题
YPbPr /YCbCr 接口传输的是视频信号,不传输音频信号。YPbPr 和 YCbCr 都是视频信号的颜色编码格式,多应用于机顶盒(Set-top box),TV电视,投影仪,游戏机和DVD播放器。 YPbPr:是一种模拟视频接口…...

【FPGA/IC】CRC电路的Verilog实现
前言 在通信过程中由于存在各种各样的干扰因素,可能会导致发送的信息与接收的信息不一致,比如发送数据为 1010_1010,传输过程中由于某些干扰,导致接收方接收的数据却成了0110_1010。为了保证数据传输的正确性,工程师们…...

go语言添加代理
LiteIDE 工具->管理 https://mirrors.aliyun.com/goproxy/或https://goproxy.cn,direct 命令行 go env -w GOPROXYhttps://goproxy.cn,direct...

kafka 可视化工具
kafka可视化工具 随着科技发展,中间件也百花齐放。平时我们用的redis,我就会通过redisInsight-v2 来查询数据,mysql就会使用goland-ide插件来查询,都挺方便。但是kafka可视化工具就找了半天,最后还是觉得redpandadata…...

安康杯安全知识竞赛上的讲话稿
各位领导、同志们: 经过近半个月时间的准备,南五十家子镇平泉首届安康杯安全生产知识竞赛初赛在今天圆满落下帏幕,经过紧张激烈的角逐, 代表队、 代表队和 代表队分别获得本次竞赛的第一、二、三名让我们以热烈的掌声表示祝…...

python 基础知识点(蓝桥杯python科目个人复习计划59)
今日复习内容:做题 例题1:建造房屋 问题描述: 小蓝和小桥是两位年轻的建筑师,他们正在设计一座新的城市。 在这个城市中,有N条街道,每条街道上有M个位置可以建造房屋(一个位置只能建造一个房…...

LCR 179. 查找总价格为目标值的两个商品 - 力扣
1. 题目 购物车内的商品价格按照升序记录于数组 price。请在购物车中找到两个商品的价格总和刚好是 target。若存在多种情况,返回任一结果即可。 2. 示例 3. 分析 题目有说明为递增数组,所以可以利用单调性双指针解决。跟611. 有效的三角形个数为一类题…...

《汇编语言》- 读书笔记 - 第16章-直接定址表
《汇编语言》- 读书笔记 - 第16章-直接定址表 16.1 描述了单元长度的标号(数据标号)检测点 16.1 16.2 在其他段中使用数据标号assume通过标号取地址检测点 16.2 16.3 直接定址表(Direct Addressing Table)例1分析代码效果 例2分析…...

ChatGPT 新增朗读功能,支持 37 种语言
3 月 5 日消息,OpenAI 为其广受欢迎的聊天机器人 ChatGPT 推出了名为「朗读」(Read Aloud) 的新功能。该功能可以让 ChatGPT 用五种不同的声音朗读其回复,旨在为用户提供更加便捷的交互体验。目前,「朗读」功能已上线 ChatGPT 的网页端、iOS …...

洛谷 P8816 [CSP-J 2022] 上升点列(T4)
目录 题目传送门 算法解析 最终代码 提交结果 尾声 题目传送门 [CSP-J 2022] 上升点列 - 洛谷https://www.luogu.com.cn/problem/P8816 算法解析 k 0 且 xi, yi 值域不大时,这题是非常简单的 DP,类似「数字三角形」。 记 dp(x,y) 为「以 (x,y) …...

python爬虫(2)
继上节 查看数组维数 可以使用数组的ndim属性 代码示例如下: import numpy as np c np.random.randint(1,9,5) print(c.ndim) 结果如下: 当然这些也可以结合前面的各种用法来使用 1、选取数组元素 (1)一维数组的元素…...

外包干了8天,技术退步明显。。。。。
先说一下自己的情况,本科生,19年通过校招进入杭州某软件公司,干了接近3年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…...

浅谈去耦电容的作用、选择、布局及其它电容的区别!
在一些文章资料中,去耦电容器被认为是旁路电容器。在其他资料中,去耦电容和旁路电容的区别在于:“旁路电容以输入信号中的干扰为滤波对象,而去耦电容以输出信号的干扰为滤波对象,防止干扰信号返回到输出端。”力量。”…...

抖音视频评论批量采集软件|视频下载工具
《轻松搞定!视频评论批量采集软件,助您高效工作》 在短视频这个充满活力和创意的平台上,了解用户评论是了解市场和观众心声的重要途径之一。为了帮助您快速获取大量视频评论数据,我们推出了一款操作便捷、功能强大的软件ÿ…...