MySQL: 创建两个关联的表,用联表sql创建一个新表

devtools/2025/3/29 14:00:36/

MySQL: 创建两个关联的表

建表思路

  • USERS 表:包含用户的基本信息,像 IDNAMEEMAIL 等。
  • v_card 表:存有虚拟卡的相关信息,如 type 和 amount
  • 关联字段USERS 表的 V_CARD 字段和 v_card 表的 v_card 字段用于建立关联。

建表 SQL 语句

以下是创建这两个表的 SQL 语句,以 MySQL 为例:

sql

-- 创建 USERS 表
CREATE TABLE IF NOT EXISTS USERS (ID INT AUTO_INCREMENT PRIMARY KEY,NAME VARCHAR(255) NOT NULL,EMAIL VARCHAR(255) UNIQUE NOT NULL,ID_CARD VARCHAR(18) UNIQUE NOT NULL,V_CARD VARCHAR(50),ADDRESS VARCHAR(255)
);-- 创建 v_card 表
CREATE TABLE IF NOT EXISTS v_card (v_card VARCHAR(50) PRIMARY KEY,type VARCHAR(50),amount DECIMAL(10, 2)
);

代码解释

  1. USERS 表

    • ID:这是自增的主键,用于唯一标识每个用户。
    • NAME:用户的姓名,为非空字段。
    • EMAIL:用户的邮箱,要求唯一且非空。
    • ID_CARD:用户的身份证号,同样要求唯一且非空。
    • V_CARD:用于关联 v_card 表的字段。
    • ADDRESS:用户的地址。
  2. v_card 表

    • v_card:作为主键,用于唯一标识每张虚拟卡。
    • type:虚拟卡的类型。
    • amount:虚拟卡的金额,使用 DECIMAL(10, 2) 类型,能够精确到小数点后两位。

MySQL联表创建一个新表

在 MySQL 中,你可以使用 CREATE TABLE ... AS 语句来根据查询结果创建新表,示例如下:

sql

CREATE TABLE new_table AS
SELECT USERS.ID,USERS.NAME,USERS.EMAIL,USERS.ID_CARD,USERS.V_CARD,USERS.ADDRESS,v_card.type,v_card.amount
FROM USERS
JOIN v_card ON USERS.V_CARD = v_card.v_card;

上述代码中,new_table 是你要创建的新表的名称,CREATE TABLE ... AS 会将查询结果的列结构和数据复制到新表中。

执行结果:


http://www.ppmy.cn/devtools/171427.html

相关文章

【MySQL】索引

目录 基本概念索引操作单列索引普通索引创建普通索引创建表时指定索引创建表后创建索引修改表结构添加索引 查看索引查看数据库中所有索引查看表中所有索引 删除索引 唯一索引创建唯一索引删除索引 主键索引 组合索引创建组合索引 全文索引概述创建全文索引使用全文索引 空间索…

C 语言中, scanf 函数在哪些情况下会结束输入读取:

在 C 语言中, scanf 函数在以下几种情况下会结束输入读取: : 1. 遇到指定格式匹配失败: scanf 按照格式字符串要求读取输入。当输入数据格式与格式字符串不匹配时,就会结束读取。例如 scanf(“%d”, &num) 要求输…

Spring6:6 单元测试-JUnit

6、单元测试:JUnit 在之前的测试方法中,几乎都能看到以下的两行代码: ApplicationContext context new ClassPathXmlApplicationContext("xxx.xml"); Xxxx xxx context.getBean(Xxxx.class);这两行代码的作用是创建Spring容器&…

本地基于Ollama部署的DeepSeek详细接口文档说明

前文,我们已经在本地基于Ollama部署好了DeepSeek大模型,并且已经告知过如何查看本地的API。为了避免网络安全问题,我们希望已经在本地调优的模型,能够嵌入到在本地的其他应用程序中,发挥本地DeepSeek的作用。因此需要知…

更改 vscode ! + table 默认生成的 html 初始化模板

vscode ! 快速成的 html 代码默认为&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>D…

STM32八股【3】------RAM和片上FLASH

1、RAM和FLASH构成 1.RAM ┌──────────────────────────┐ │ 栈区 (Stack) │ ← 从RAM顶端向下扩展&#xff08;存储局部变量、函数调用信息&#xff09; │--------------------------│ │ 堆区 (Heap) │ ← …

Java 基于微信小程序的美食推荐系统(附源码,文档)

博主介绍&#xff1a;✌Java徐师兄、7年大厂程序员经历。全网粉丝13w、csdn博客专家、掘金/华为云等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3fb; 不…

Node.js 包管理配置文件详解:package.json、npmrc、package-lock.json 全面解析

目录 Node.js 包管理配置文件详解 1. package.json&#xff1a;Node.js 项目的核心配置文件 示例&#xff1a;完整的 package.json 配置 关键字段解析 2. package-lock.json&#xff1a;锁定依赖版本 示例&#xff1a;部分 package-lock.json 作用 如果 package-lock.j…