返回顶部
首页 > 资讯 > 数据库 >MySQL数据库的多表操作
  • 645
分享到

MySQL数据库的多表操作

MySQL数据库MySQL多表操作 2022-11-13 14:11:46 645人浏览 安东尼
摘要

目录一、 数据库的多表操作二,操作一对一一对多一、 数据库的多表操作 数据库的多表关系: 一对一一对多多对一多对多 二,操作 一对一 建立数据表person和card,设置perso

一、 数据库的多表操作

数据库的多表关系:

  • 一对一
  • 一对多
  • 多对一
  • 多对多

二,操作

一对一

建立数据表personcard,设置person数据表id为主键且自增,设置cardid为外键

// 创建person表
CREATE TABLE person (
id INT PRIMARY KEY AUTO_INCREMENT, // 主键 自增
NAME VARCHAR(20)
);

// 创建card表
CREATE TABLE card (
	id INT PRIMARY KEY AUTO_INCREMENT, // 主键 自增
	number VARCHAR(20) UNIQUE NOT NULL,// 不能为null
	pid INT UNIQUE,// pid唯一
	CONSTRaiNT cp_fk1 FOREIGN KEY (pid) REFERENCES person(id) // 外键列
);

一对多

创建user数据表和orderlist数据表,这里不再设置uid为唯一值,因此是一对多的关系

// 创建user表
CREATE TABLE USER(
	id INT PRIMARY KEY AUTO_INCREMENT, // 主键 自增
	NAME VARCHAR(20)
);

// 添加数据
INSERT INTO USER VALUES (NULL, '张三'),(NULL, '李四');
//  创建orderlist表
CREATE TABLE orderlist(
	id INT PRIMARY KEY AUTO_INCREMENT,
	number VARCHAR(20),
	uid INT, // 这里没有再设置唯一值
	CONSTRAINT out_fk1 FOREIGN KEY (uid) REFERENCES USER(id) // 外键列

);
-- 添加数据
INSERT INTO orderlist VALUES (NULL, 'hm001', 1), (NULL, 'hm002', 1),(NULL, 'hm003', 2),(NULL, 'hm004', 2);
  • 多对多 创建student数据表,设置主键,再创建course数据表,创建中间表将两者关联起来
// 创建student表
CREATE TABLE student(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20)

);
// 创建course表
CREATE TABLE course (
	id INT PRIMARY KEY AUTO_INCREMENT,
	NAME VARCHAR(10)
);

//  创建中间表
CREATE TABLE stu_course(
	id INT PRIMARY KEY AUTO_INCREMENT,
	sid INT,
	cid INT,
	CONSTRAINT sc_fk1 FOREIGN KEY (sid) REFERENCES student(id),// 设置外键
	CONSTRAINT sc_fk2 FOREIGN KEY (cid) REFERENCES course(id)// 设置外键
);

多表查询-内链查询:

通过规定语法,进行内链查询

// 标准语法: SELECT 列名 FROM 表名1 [INNER] JOIN 表名2 ON 关联条件;
-- 查询用户信息和对应的订单信息
SELECT * FROM USER INNER JOIN orderlist ON orderlist.uid = user.id;
// 设置别名进行查询
SELECT u.name, u.age, o.number FROM USER u INNER JOIN orderlist o ON o.uid = u.id;

多表查询-隐式内连接:

// 标准语法: SELECT 列名 FROM 表名1,表名2 WHERE 关联条件;
// 查询用户姓名,年龄。和订单编号
SELECT u.name, u.age, o.number FROM USER u, orderlist o WHERE o.uid = uid;

多表查询-左外连接:

标准语法: SELECT 列名 FROM 表名1 LEFT [OUTER] JOIN 表名2 ON 条件;

// 查询所有用户信息,以及用户对应的订单信息

SELECT u.* o.number FROM USER u LEFT OUTER JOIN orderlist o ON o.uid = u.id;

多表查询-右外连接:

标准语法: SELECT 列名 FROM 表名1 RIGHT [OUTER] JOIN 表名2 ON 条件;
//  查询所有订单信息,以及订单所属的用户信息
SELECT o.*, u.name FROM USER u RIGHT OUTER JOIN orderlist o ON o.uid = u.id;

多表查询-子查询:

// 结果是单行单列的
// 标准语法: SELECT 列名 FROM 表名 WHERE 列名=(SELECT 列名 FROM 表名 [WHERE 条件]);

// 查询年龄最高的用户姓名
SELECT NAME,age FROM USER WHERE age=(SELECT MAX(age) FROM USER);

// 结果是多行单列的
// 标准语法:SELECT 列名 FROM 表名 WHERE 列名 [NOT] IN (SELECT 列名 FROM 表名 [WHERE 条件]); 

// 查询张三和李四的订单信息
SELECT * FROM orderlist WHERE uid IN (SELECT id FROM USER WHERE NAME IN ('张三','李四'));

// 结果是多行多列的
// 标准语法: SELECT 列名 FROM 表名 [别名],(SELECT 列名 FROM 表名 [WHERE 条件]) [别名] [WHERE 条件];

// 查询订单表中id大于4的订单信息和所属用户信息
SELECT u.name, o.number FROM USER u, (SELECT * FROM orderlist WHERE id > 4) o WHERE o.uid=u.id;

到此这篇关于Mysql数据库的多表操作的文章就介绍到这了,更多相关mysql表操作内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL数据库的多表操作

本文链接: https://lsjlt.com/news/171581.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL数据库的多表操作
    目录一、 数据库的多表操作二,操作一对一一对多一、 数据库的多表操作 数据库的多表关系: 一对一一对多多对一多对多 二,操作 一对一 建立数据表person和card,设置perso...
    99+
    2022-11-13
    MySQL数据库 MySQL多表操作
  • 【MySQL】数据库——表操作
    文章目录 1. 创建表2. 查看表3. 修改表修改表名add ——增加modify——修改drop——删除修改列名称 4. 删除表 1. 创建表 语法: create table ...
    99+
    2023-10-26
    数据库 mysql
  • MySQL 操作数据库、数据表
      通过mysql-client连接到mysql-server,sql语句要以分号结尾,这样按Enter才会执行sql语句。 mysql关键字不区分大小写 字符串、时间日期类型的值要引起来     数据库操作 show data...
    99+
    2016-11-30
    MySQL 操作数据库 数据表
  • 【数据库_03】MySQL-多表操作与事务
    二、子查询 1. 子查询的位置 ① 什么是子查询 * select 嵌套查询 * 示例 select ename,(select ename from emp ...
    99+
    2018-04-16
    【数据库_03】MySQL-多表操作与事务
  • 【MySQL】数据库和表的操作
    数据库和表的操作 一、数据库的操作1. 创建数据库2. 字符集和校验规则(1)查看系统默认字符集以及校验规则(2)查看数据库支持的字符集(3)查看数据库支持的字符集校验规则(4)校验规则对数据库的影响 3. 操纵数据库(1)查...
    99+
    2023-12-22
    数据库 mysql oracle linux centos
  • MySQL 数据库和表操作
    -- 创建数据库 -- 创建 classroom 数据库 create database 数据库名 default character set 字符编码 collate 排序规则;   ...
    99+
    2024-04-02
  • MySQL数据库之数据表操作
    目录一、创建数据表1、基本语法2、创建方式一3、创建方式二4、表选项5、复制已有表结构二、显示数据表三、显示表结构四、显示表创建语句五、设置表属性六、修改表结构1、修改表名2、新增字...
    99+
    2024-04-02
  • MySQL数据库(四)数据库和表操作
    4.1 连接 在最初安装MySQL,可能会要求你输入一个管理登录(通常为root)和一个口令(密码)。 连接MySQL需要以下信息: 主机名(计算机名)——如果连接到本地MySQL服务器,为localhost; 端口(如果使用默...
    99+
    2018-05-11
    MySQL数据库(四)数据库和表操作
  • python操作mysql数据库(百库百表)
    问题描述:     今天下午跑某项目db需求,百库百表清脏数据,然后自己写了个python脚本,跑完之后通知项目,然后项目给玩家发奖励了,结果悲催了,所有的mysql...
    99+
    2024-04-02
  • MySQL数据库中表的操作详解
    目录1.mysql中的数据类型2.创建数据表3.删除表4.插入数据5.更新数据6.删除数据7.快速复制表8.快速删除表数据1.Mysql中的数据类型 varchar 动态字符串类型(最长255位),可以根据实际长度来动态...
    99+
    2022-08-18
    MySQL数据库 表操作 MySQL 表 操作 MySQL数据库 表
  • MySQL数据库和表的基本操作
    文章目录 一、数据库的基础知识背景知识数据库的基本操作 二、数据类型字符串类型数值类型日期类型 三、表的基本操作创建表查看表结构查看所有表删除表 一、数据库的基础知识 背景知...
    99+
    2023-09-08
    数据库 mysql 服务器
  • 【MySQL】数据库的操作
    目录 前言 创建数据库 编码集和校验集 不同校验集的区别 删除数据库 确认当前数据库 查看数据库属性 修改数据库属性 备份与还原 数据库和表的备份 还原 创建表 查看列结构 查看表属性 修改表的列 修改表名称  修改列名称 删除表 前言...
    99+
    2023-09-14
    数据库 mysql
  • mysql-数据库的操作
    系统数据库执行如下命令,查看系统所有的数据库mysql> show databases;+--------------------+| Database           |+---...
    99+
    2023-01-30
    操作 数据库 mysql
  • MYSQL对数据库和表的基本操作
    CREATE DATABASE testdb CHARSET=UTF8 创建一个数据库 名字叫做testdb USE testdb; 选择数据库 CREATE TABLE testTable1( -> id i...
    99+
    2020-05-25
    MYSQL对数据库和表的基本操作
  • 操作mysql数据库表的基本方法
    下面一起来了解下操作mysql数据库表的基本方法,相信大家看完肯定会受益匪浅,文字在精不在多,希望操作mysql数据库表的基本方法这篇短内容是你想要的。表的操作表示数据库存储数据的基本单位,由若干个字段组成...
    99+
    2024-04-02
  • 【MySQL】数据库——库操作
    文章目录 1. 创建数据库[IF NOT EXISTS] 的使用 2. 删除库3. 数据库的编码问题查看系统默认支持的字符集查看系统默认支持的校验集只查看 database的校验集指定编码...
    99+
    2023-10-20
    数据库 mysql
  • django操作多数据库
    1、    添加数据库路由分配文件 在项目文件夹里创建‘database_router’文件。将下面的代码复制到该文件里。 from django.conf import settings DATABASE_MAPPING =...
    99+
    2023-01-30
    操作 django
  • 数据库和表操作
    -- 创建数据库 -- 创建 classroom 数据库 create database 数据库名 default character set 字符编码 collate 排序规则;   ...
    99+
    2024-04-02
  • MySql数据库操作
    MySql数据库操作 –登录MySql:——–Windows环境进入cmd后输入mysql –h localhost –u root –p,再输入密码就可以启动mysql;其中localhost是...
    99+
    2024-04-02
  • 操作MySQL数据库
    SQL是什么    SQL是结构化查询语言,这是一种计算机语言,用于存储,操纵和检索存储在关系数据库中的数据。    SQL是关系数据库系统的标准语言。所有关系型数据...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作