MySQL 创建多对多和一对一关系方法
作者:江下下啊 发布时间:2024-01-29 07:52:37
标签:MySQL,创建,多对多,一对一
一、创建多对多
1.学生表
create table students (
id int not null primary key auto_increment,
name varchar(45) not null
)engine=innodb default charset=utf8;
2.课程表
create table courses (
id int not null primary key auto_increment,
name varchar(45) not null
)engine=innodb default charset=utf8;
3.中间表
create table stu_cour (
id int not null primary key auto_increment
course_id int not null,
stu_id int not null,
constraint cour foreign key(course_id) references courses(id),
constraint stu foreign key(stu_id) references students(id)
)engine=innodb default charset=utf8;
4.插入数据
insert into students values (0,"小王");
insert into students values (0,"小宋");
insert into students values (0,"小李");
insert into courses values (0,"语文");
insert into courses values (0,"数学");
insert into courses values (0,"英语");
insert into stu_cour values (0,1,1);
insert into stu_cour values (0,1,2);
insert into stu_cour values (0,1,3);
insert into stu_cour values (0,2,1);
insert into stu_cour values (0,2,3);
insert into stu_cour values (0,3,2);
insert into stu_cour values (0,3,3);
5.查询学生1选了哪些科目
SELECT courses.id,courses.name FROM courses
INNER JOIN stu_cour ON stu_cour.course_id=courses.id
INNER JOIN students ON students.id= 1
and students.id = stu_cour.stu_id;
6.查询id=2数学被谁选了
SELECT students.name FROM students
INNER JOIN stu_cour ON stu_cour.stu_id =students.id
INNER JOIN courses ON courses.id= 2
and stu_cour.course_id = courses.id;
二、MySQL 创建一对一关系
1.一对一
创建用户表:
CREATE TABLE users (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
用户信息表:
CREATE TABLE users_info (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
age int NOT NULL,
phone varchar(11) NOT NULL,
user_id int not null,
constraint user_info foreign key(user_id) references users(id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
2.插入数据
insert into users values (0,"小王");
insert into users values (0,"小宋");
insert into users_info values (0,12,'13812345678',1);
insert into users_info values (0,14,'13812345679',2);
查询人的全部信息:
select * from users inner join users_info on
users_info.user_id =users.id;
来源:https://blog.51cto.com/u_15173612/5102580
0
投稿
猜你喜欢
- 上周用了一周的时间学习了Python和Scrapy,实现了从0到1完整的网页爬虫实现。研究的时候很痛苦,但是很享受,做技术的嘛。首先,安装P
- 今天学习到python的读取文件部分。还是以一段代码为例:filename='programming.txt'with op
- 本文为大家分享了python操作excel的包,供大家参考,具体内容如下现在支持python操作excel的包有下列这些官网上最推荐的是op
- 重装了笔记本上的oracle,安装完成后,可以正常使用OEM控制台,但是注销后重新登录或者重启系统后登录,或者笔记本使用网络环境发生了变化,
- 斜角导航条看上去立体感比较强,但实现起来比较麻烦;这是前几天写的一个测试代码,实现时,本来想用简单的图片加负数来实现;但GIF图片对半透明的
- mysql查询字段为null的数据navicat查询数据为null的数据varchar字段 默认为(null)所以查询的语句是se
- 引言:关于数据库优化,网上有不少资料和方法,但是不少质量参差不齐,有些总结的不够到位,内容冗杂。偶尔发现了这篇文章,总结得很经典,文章流量也
- 一、什么是Python类?python中的类是创建特定对象的蓝图。它使您可以以特定方式构建软件。问题来了,怎么办?类允许我们以一种易于重用的
- 本文实例讲述了Python中函数及默认参数的定义与调用操作。分享给大家供大家参考,具体如下:#coding=utf8''
- 本章的前面讨论如何使用SQL向一个表中插入数据。但是,如果你需要向一个表中添加许多条记录,使用SQL语句输入数据是很不方便的。幸运的是,My
- MySQL 提供了一个很有意思的Engine:Federated!如果你了解Linux下面的Link的话,就应该很好理解这个Federate
- 在读取中文的情况下,通常会遇到一些编码的问题,但是首先需要了解目前的编码方式是什么,然后再用decode或者encode去编码和解码,下面是
- 1. 从字典创建DataFrame>>> import pandas>>> dict_a = {'
- 我们都知道因为操作系统的不同,很多游戏区分为安卓和苹果两个版本。那么之前学会python模拟点击的小伙伴开始担心,如果手机是ios版本那还能
- 一、argparse简介argparse 是 python 自带的命令行参数解析包,可以用来方便的服务命令行参数,使用之前需要先导入包 im
- HTML被直接硬编码在 Python 代码之中。def current_datetime(request): now = dat
- mysql创建存储过程的官方语法为:START TRANSACTION | BEGIN [WORK]COMMIT [WORK] [AND [
- 如下所示:import numpy as npa = np.array([[1,2,3],[4,5,6],[7,8,9]])b = np.a
- #!/usr/bin/env python# -*- coding: utf-8 -*-import os, base64ico
- 在项目中,我们会在每个接口验证客户端传过来的参数类型,如果验证不通过,返回给客户端“参数错误”错误码。这样做不但便于调试,而且增加健壮性。因