当前位置: 首页 > news >正文

【MySQL】进阶知识详解

目录

    • 引言
    • 一、约束:数据完整性的守护者
      • 1.1 约束的作用与分类
      • 1.2 约束的语法详解
        • 非空约束
        • 唯一约束
        • 主键约束
        • 外键约束
      • 1.3 约束实战案例
    • 二、数据库设计:表关系的艺术
      • 2.1 三种核心表关系
        • 一对多(部门-员工)
        • 多对多(学生-课程)
        • 一对一(用户-详情)
    • 三、多表查询:数据关联的桥梁
      • 3.1 连接查询
        • 内连接(INNER JOIN)
        • 外连接
      • 3.2 子查询的三种形式
    • 四、事务:数据安全的保障
      • 4.1 事务的ACID特性
      • 4.2 事务控制语句
      • 4.3 转账案例演示
    • 结语

引言

在掌握了MySQL基础操作后,进阶知识的学习能帮助我们更好地设计数据库结构、保证数据完整性,以及处理复杂的数据查询需求。本文将深入讲解MySQL的约束机制、表关系设计原则、多表查询技巧和事务管理,助您提升数据库管理能力。


一、约束:数据完整性的守护者

1.1 约束的作用与分类

约束是作用于表中列的规则,用于限制无效数据的插入,主要分为六类:

约束类型关键字作用描述
非空约束NOT NULL保证列值不为NULL
唯一约束UNIQUE保证列值唯一
主键约束PRIMARY KEY唯一标识记录,非空且唯一
检查约束CHECK保证列值满足条件(MySQL不支持)
默认约束DEFAULT未指定值时使用默认值
外键约束FOREIGN KEY建立表间关联,保证数据一致性

1.2 约束的语法详解

非空约束
-- 创建表时添加
CREATE TABLE users(id INT NOT NULL,name VARCHAR(20) NOT NULL
);-- 修改表添加
ALTER TABLE users MODIFY name VARCHAR(20) NOT NULL;
唯一约束
-- 创建表时添加
CREATE TABLE employees(emp_id INT UNIQUE,email VARCHAR(50) UNIQUE
);-- 修改表添加
ALTER TABLE employees ADD UNIQUE(email);
主键约束
-- 自增主键示例
CREATE TABLE orders(order_id INT PRIMARY KEY AUTO_INCREMENT,product_name VARCHAR(50)
);
外键约束
CREATE TABLE orders(order_id INT PRIMARY KEY,user_id INT,
http://www.xdnf.cn/news/347941.html

相关文章:

  • 全球异硬脂酸及其衍生物市场:绿色化学浪潮下的技术迭代与区域增长新逻辑
  • Codeforces Round 1012 (Div. 2)
  • MybatisPlus 发布 3.5.12 版本啦
  • 过曝区域信息补全
  • Python从入门到高手8.3节-元组的常用操作方法
  • 【战略合作】开封大学_阀门产业学院+智橙PLM
  • maven 依赖冲突异常分析
  • 17.thinkphp的分页功能
  • 开发者如何应对浏览器中的身份关联与反追踪问题?
  • 主成分分析(PCA)是什么?简易理解版
  • 使用Compose编排工具搭建Ghost博客系统
  • goner/otel 在Gone框架接入OpenTelemetry
  • [python] 函数1-函数基础
  • 软考职称政策再加码!已有多地发布通知!
  • SiC MOSFET同步Buck DC-DC变换器的宽频混合EMI滤波器设计
  • 【嵌入式开发-UART】
  • docker 安装 sqlserver2022 和注意点
  • 模拟散列表(算法题)
  • Vue3中emits和emit
  • Qwen3中的MoE是如何平衡专家负载的?
  • 跨线程和跨进程通信还有多种方式对比
  • JS 下载data:image/png;base64, 图片
  • 告别手动输入密码:基于SSHPass的自动化文件传输实践告别手动输入密码:基于SSHPass的自动化文件传输实践
  • Marin说PCB之器件的3D数模匹配失效案例
  • 在微程序控制器中,各概念之间的详细关系
  • IEEE出版|2025年物联网、数据科学与先进计算国际学术会议(IDSAC2025)
  • MyBatis 动态 SQL 完整笔记
  • 深泽多层电路在PCB行业中属于什么水平
  • laravel 使用异步队列,context带的上下文造成反序列化出问题
  • sql server限制用户只能访问特定表