表的增删改查 进阶(一)

                                     

  • 🎥 个人主页:Dikz12
  • 🔥个人专栏:MySql
  • 📕格言:那些在暗处执拗生长的花,终有一日会馥郁传香
  • 欢迎大家👍点赞✍评论⭐收藏

目录

数据库约束 

约束类型

NOT NUll 约束

UNIQUE 约束

DEFAULT 约束 

PRIMARY KEY:主键约束 

FOREIGN KEY 外键约束

 表的设计

一对多 

一对多 

多对多 


增删改其实没什么进阶的·,主要是查,是很复杂的。 

数据库约束 

数据库中的数据,有的时候是有一定要求的,有些数据是合法的,也有非方的数据;所以,数据库自动对数据的合法性进行校验检查的一系列机制称为约束。目的就是为了保证数据中能够被避免插入/修改一些非法的数据。

约束类型

  • NOT NULL - 指示某列不允许存储 NULL 值。 
  • UNIQUE - 保证某列的每行必须有唯一的值。
  • DEFAULT - 没有给列赋值时的默认值。
  • PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
  • FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
  • CHECK - 保证列中的值符合指定的条件。对于MySQL数据库,对CHECK子句进行分析,但是忽略CHECK子句。(了解)

NOT NUll 约束

  • NOT NULL - 指示某列不允许存储 NULL 值。 

 不加约束是可以添加null值的;

设置之后就不允许这列存储null值

UNIQUE 约束

  • UNIQUE - 保证某列的每行必须有唯一的值。  

unique 约束,会让后面 插入 / 修改的数据的时候,都会执行一次查询操作,通过这个查询,来确定当前这个数据是否已经存在。

DEFAULT 约束 

  •  DEFAULT - 没有给列赋值时的默认值。

 

PRIMARY KEY:主键约束 

  •  NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。

 

 一张表里只能有一个parmary key;

mysql会把带有unique 和 primary key的列自动生成索引,从而加快查询速度。

 如何保证主键唯一??

mysql本身就提供了一种"自增主键" 这样的机制;而且不用手动指定主键值,可以数据库服务器自己给你分配一个,从1开始,依次递增的分配主键的值。

FOREIGN KEY 外键约束

  • 保证一个表中的数据匹配另一个表中的值的参照完整性。 

 

 外键就是用来描述这样的约束过程的!

class表中的数据,约束了student表中的数据。

把class表 称为“主表/父表”; 约束别人的表。

把student 表,称为 “从表/子表”,被别人约束的表。

foreign key (列名) references 主表(列名);

 

在执行 插入操作,就会触发针对class表的查询。就会查询当前插入的记录是否在class中存在.

 针对父表进行 修改/删除 操作,如果当前被修改 / 删除的值,已经被子表引用了,这样的操作也会报错!

外键约束始终要保持,子表中的数据在对应的父表的列中,要存在,不然也会报错!

 表的设计

 根据实际的需求场景,明确当前要创建几个表,每个表什么样子,这些表之间是否存在一定联系。

一对多 

比如:一个人只能有一个身份证;

 

一对多 

比如:一个学生只能在一个班级中,一个班级可以有多个学生;

 

 

多对多 

比如:一个学生可以选择多个课程;一门课程也可以有多个学生。

就需要借助一个关联表,表示多对多 关系

 

 

 

 

相关推荐

  1. MySQL增删

    2024-01-17 22:48:02       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-17 22:48:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-17 22:48:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-17 22:48:02       87 阅读
  4. Python语言-面向对象

    2024-01-17 22:48:02       96 阅读

热门阅读

  1. 计算机考研408的准备

    2024-01-17 22:48:02       47 阅读
  2. C++ this 指针

    2024-01-17 22:48:02       49 阅读
  3. c++ STL总结

    2024-01-17 22:48:02       43 阅读
  4. 媒体捕捉-iOS中的人脸识别

    2024-01-17 22:48:02       52 阅读
  5. 工智能基础知识总结--词嵌入之Word2Vec

    2024-01-17 22:48:02       51 阅读
  6. word2vec中的CBOW和Skip-gram

    2024-01-17 22:48:02       55 阅读
  7. 深度解析 ThreadLocal 的多重应用场景

    2024-01-17 22:48:02       57 阅读
  8. C++ 并发编程 | 锁

    2024-01-17 22:48:02       47 阅读