多表-DDL以及DQL

news/2024/11/29 19:53:31/

多表DDL

在这里插入图片描述
个表之间也可能存在关系
存在在一对多和多对多和一对多的关系

一对多(外键)

在这里插入图片描述
在子表建一哥字段(列)和对应父表关联

父表是一,对应子表的多(一个部门对应多个员工,但一个员工只能归属一个部门)
正常建表,但是这里没加外键约束!!!

# 新建个数据库(db03)来储存
create  database if not exists db03 ;
use db03;
-- 部门表
create table tb_dept (id int unsigned primary key auto_increment comment 'ID',name varchar(10) not null unique comment '部门名称',create_time datetime not null comment '创建时间',update_time datetime not null comment '修改时间'
) comment '部门表';
-- 员工表
create table tb_emp (id int unsigned primary key auto_increment comment 'ID',username varchar(20) not null unique comment '用户名',password varchar(32) default '123456' comment '密码',name varchar(10) not null comment '姓名',gender tinyint unsigned not null comment '性别, 说明: 1 男, 2 女',image varchar(300) comment '图像',job tinyint unsigned comment '职位, 说明: 1 班主任,2 讲师, 3 学工主管, 4 教研主管',entrydate date comment '入职时间',dept_id int unsigned comment '归属的部门ID',create_time datetime not null comment '创建时间',update_time datetime not null comment '修改时间'
) comment '员工表';

不加外键约束的话其实相当于两个表的数据没有连接起来
就算你把部门表其中一个部门删了,员工表属于那个部门的还是存在

外键定义

注意:子表 添加外键到 父表
那个外键名称其实可以不写
在这里插入图片描述
更建议用图形化
在这里插入图片描述
这时删除1号部门删不掉(因为有属于1的员工)
可以删掉没有员工关联的五号部门

白雪外键

现在已经不用这个低能技术了
都在业务层逻辑中实现一套逻辑,代替外键的作用
在这里插入图片描述

一对一

在这里插入图片描述
一对一场景
对用户信息查询的多,而对身份信息查询的少就分成两张表
可以提高查重效率
在这里插入图片描述

一对多


http://www.ppmy.cn/news/676272.html

相关文章

U盘被写保护?我来教你高级格式化

很多人都遇到过U盘被写保护了,造成原因有很多,一般是热插热拔,未弹出U盘就将U盘拔出等操作不当原因造成。 我也是经历过这样的情况。 1.首先,U盘被写保护但是可以把U盘里面的东西拷贝出来,以做备份。(因为格…

高级格式化与低级格式化

概念: 格式化是指对磁盘或磁盘中的分区(partition)进行初始化的一种操作,这种操作通常会导致现有的磁盘或分区中所有的文件被清除。格式化通常分为低级格式化和高级格式化。如果没有特别指明,对硬盘的格式化通常是指高…

C++ - std::string字符串格式化方法总结

文章目录 1 C std::string字符串格式化1.1 C语言中的字符串格式化1.2 C使用std::stringstream进行字符串格式化1.3 开源的C单个头文件的字符串格式化工具1.3.1 format1.3.2 sformat 1.4 自定义的C字符串格式化函数1.5 C20的字符串标准库函数std::format 1 C std::string字符串格…

ultraEdit格式化代码

以C语言为例: 高级->配置工具: 命令行为: "D:\Program Files\UltraEdit\GNU\astyle.exe" --styleansi "%f" java代码的话把ansi改为java linux文件改为linux 其中前面为你的ultraEdit的安装目录中的GNU\astyle.ex…

Python格式化输出

Python格式化输出主要有三种方式,1、%-formatting;2、str.format();3、f-Strings %-formatting 字符串对象具有实用%运算符的内置操作,您可以使用它来格式化字符串。 以下是部分字符串格式符号: 符号说明%s字符串%c字符%i整数…

linux bios格式化磁盘,BIOS设置与磁盘分区、格式化.doc

项目2 BIOS设置与磁盘分区、格式化 教学目标 终极目标:能熟悉各种BIOS设置方法和步骤;能独立完成装机常用的BIOS设置;能熟练使用多种工具进行磁盘分区;能熟练使用工具进行磁盘的低级和高级格式化。 促成教学目标: 1. 能熟悉各种BIOS设置的方法和操作步骤 2. 能独立完成装机…

如何在windows下格式化linux,Linux、Windows/DO格式化怎么做?

格式化是什麽意思? 格式化(format)是指对磁盘或磁盘中的分区(partition)进行初始化的一种操作,这种操作通常会导致现有的磁盘或分区中所有的文件被清除。格式化通常分为低级格式化和高级格式化。如果没有特别指明,对硬盘的格式化通常是指高级格式化,而对软盘的格式化则通常…

java格式化到毫秒_java时间格式化到毫秒

(3)Java 日期时间及其格式化 可以用 System 类的静态方法 publ... java的时间处理续计算java时间)_计算机软件及应用_IT/计算机_专业资料。1. java 计算时间依靠 1970 年 1 月 1 日开始的毫秒数. 2. date 类的构造函数 date(...... 每个类方法返回一个以缺省格式化方式初始化的…