Mysql中表的常用约束

ops/2024/10/18 8:35:25/

在MySQL表中常用的约束有以下几种:

1. 主键约束(Primary Key Constraint):用于标识表中的唯一记录。一个表只能有一个主键,主键列不能有重复值,也不能为NULL。

2. 唯一约束(Unique Constraint):用于保证表中某一列或一组列的取值唯一。唯一约束列可以有NULL值,但是一个表可以有多个唯一约束。

3. 外键约束(Foreign Key Constraint):用于确保表之间的关系。外键约束可以将一个表的列与另一个表的主键或唯一约束关联起来,保证数据的一致性。

4. 非空约束(Not Null Constraint):用于确保表中某一列不为NULL值。

5. 默认约束(Default Constraint):用于为表中某一列设置默认值。当插入新记录时,如果未指定该列的值,则将使用默认值。

6. 检查约束(Check Constraint):用于限制表中某一列的取值范围。可以使用SQL的逻辑表达式定义检查约束条件。

1.创建表时设置主键约束:CREATE TABLE table_name (column1 datatype PRIMARY KEY,column2 datatype,...
);2.创建表时设置唯一约束:CREATE TABLE table_name (column1 datatype,column2 datatype,...,UNIQUE (column1, column2, ...)
);3.创建表时设置外键约束:CREATE TABLE table_name1 (column1 datatype PRIMARY KEY,...
);CREATE TABLE table_name2 (column1 datatype,column2 datatype,...,FOREIGN KEY (column1) REFERENCES table_name1(column1)
);4.创建表时设置非空约束:CREATE TABLE table_name (column1 datatype NOT NULL,column2 datatype,...
);5.创建表时设置默认约束:CREATE TABLE table_name (column1 datatype DEFAULT default_value,column2 datatype,...
);6.创建表时设置检查约束:CREATE TABLE table_name (column1 datatype,column2 datatype CHECK (condition),...
);


http://www.ppmy.cn/ops/48020.html

相关文章

Django与MySQL:配置数据库的详细步骤

文章目录 Django-MySQL 配置配置完执行数据迁移,如果报错: Error loading MySQLdb module, Django-MySQL 配置 # settings.pyDATABASES {# 默认配置sqlite3数据库# default: {# ENGINE: django.db.backends.sqlite3,# NAME: BASE_DIR / db.sqli…

Python | Leetcode Python题解之第135题分发糖果

题目: 题解: class Solution:def candy(self, ratings: List[int]) -> int:n len(ratings)ret 1inc, dec, pre 1, 0, 1for i in range(1, n):if ratings[i] > ratings[i - 1]:dec 0pre (1 if ratings[i] ratings[i - 1] else pre 1)ret p…

springboot接收byte[]字节

在Spring Boot中,可以使用RequestBody注解来接收字节流。以下是一个简单的示例: 1. 首先,创建一个控制器类,如ByteController: java import org.springframework.web.bind.annotation.PostMapping; import org.sprin…

DeepSpeed Mixture-of-Quantization (MoQ)

属于QAT (Quantization-Aware Training)的一种,训练阶段用量化。 特点是: 1. 从16-bit INT开始训练,逐渐减1bit,训练一些steps就减1bit,直至减至8bit INT; 2. (可选,不一定非用&a…

Golang | Leetcode Golang题解之第138题随机链表的复制

题目: 题解: func copyRandomList(head *Node) *Node {if head nil {return nil}for node : head; node ! nil; node node.Next.Next {node.Next &Node{Val: node.Val, Next: node.Next}}for node : head; node ! nil; node node.Next.Next {if…

【Android面试八股文】volatile和synchronize有什么区别?

volatile和synchronize有什么区别? 在 Java 多线程编程中,volatile 和 synchronized 是两个重要的关键字,它们分别用于处理并发访问共享变量的问题。尽管它们都可以用于确保多线程环境下的数据一致性,但在实际应用中却有着明显的区别和适用场景。 作用范围: volatile 只能…

Linux “ 软件管理 “

软件管理 widows 安装 方法一: 双击exe安装包,就可以安装。 用exe安装的软件会破记录到注册表中。 注册会记录安装位置,软件名称。 方法二: 用绿色方式进行安装。 不用写到注册表中,因此无法在开始菜单里面查看和卸…

【Linux】信号(一)

信号我们将从信号产生,信号的保存,信号处理分别进行讲解~ 至少大思路是这样。开始之前还要进行一些基础知识的铺垫。 目录 从生活中提炼一些结论:信号概念的一些储备:信号产生:一、kill指令:二、键盘组合键…