Mysql数据库---约束类型

本文详细介绍了Mysql数据库中的五种约束类型:主键约束、外键约束、非空约束、唯一性约束及默认约束。包括每种约束的定义、作用及具体的使用语法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Mysql数据库的约束类型有:主键约束(Primary Key),外键约束(Foreign Key),非空约束(Not Null),唯一性约束(Unique),默认约束(Default)。

一.主键约束(Primary Key)

    主键约束要求主键列的数据唯一,并且不能为空。主键分为两种类型:单字段主键和多字段联合主键。

1.单字段主键

在定义列的同时指定主键,语法规则:字段名 数据类型 Primary Key [默认值]


在定义完成所有列之后指定主键,语法规则:[Constraint<约束名>] Primary Key [字段名]


一般在建表时我们会选择将主键放在所有列后。

2.多字段联合主键

主键由多个字段联合组成。语法规则:Primary Key[字段1,字段2,....,字段n]


二.外键约束(Foreign Key)

      外键用来在两个表的数据之间建立连接,它可以是一列或者多列。一个表可以有一个或者多个外键。一个表的外键可以为空,若不为空,则每一个外键值必须等于另一个表中主键的某个值。

      外键的作用:保证数据应用的完整性。

      主表(父表):对于两个具有关联关系的表而言,相关联字段中的主键所在的那个表即是主表。

      从表(子表):对于两个具有关联关系的表而言,相关联字段中的外键所在的那个表即是从表。

     创建外表的语法规则:[Constraint<外键名>]Foreign Key 字段名1[,字段名2,....] References<主表名> 主键列1 [,主键列2,....] 

创建一个表test_1


定义数据表test_2,让它的主键deptId作为外键关联到的test_1的主键id,


在表test_2上添加了名称为test_deptId的外键约束,外键名称为deptId,其依赖于表test_2的主键id.

三.使用非空约束(Not Null)

     非空约束指字段的值不能为空。

     非空约束 语法规则:字段名 数据类型 not null

四.唯一性约束(Unique)

   唯一性约束要求该列唯一,允许为空,但是只能出现一个空值。唯一约束可以保证一列或者几列不出现重复值。

   非空约束的语法规则

   1.在定义完列之后直接指定唯一约束 

    字段名 数据类型 unique

   2.在定义完所有列之后指定唯一约束

     [Constraint<约束名>] Unique(<字段名>)

声明:Unique在表中可以有一个或者多个字段声明,而Primary Key,只能有一个。

五.默认约束(Default)(最简单)

    默认约束指定某列的默认值。

    语法规则: 字段名 数据类型 Dfault 默认值


所有的知识点均来自《Mysql5.5从零开始学》 刘增杰 张少军 编著

MySQL是一种流行的关系型数据库管理系统(RDBMS),常用于网站和应用程序的数据存储。当你开始使用MySQL添加数据表并设置常见约束时,可以采取以下步骤: 1. **创建数据库**: 首先,你需要连接到MySQL服务器并创建一个新的数据库。例如,使用`CREATE DATABASE mydatabase;`命令创建名为`mydatabase`的新数据库2. **选择数据库**: 使用`USE mydatabase;`命令切换到刚创建的数据库。 3. **创建表**: 创建数据表时,你可以指定列名、数据类型以及约束条件。例如,创建用户信息表 `users` 可能包含`id INT AUTO_INCREMENT PRIMARY KEY`, `username VARCHAR(50) NOT NULL UNIQUE`, `email VARCHAR(100)` 等字段。 ```sql CREATE TABLE users ( id INT AUTO_INCREMENT, username VARCHAR(50) NOT NULL, email VARCHAR(100), password VARCHAR(100) NOT NULL ENCRYPTION(AES_256_CBC), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, constraint uc_username UNIQUE (username), constraint uc_email UNIQUE (email) ); ``` 这里有几个常用的约束- `NOT NULL`:表示该字段不能为空。 - `UNIQUE`:确保每条记录的某个字段值在整个表中唯一。 - `PRIMARY KEY`:标识每行的主键,通常是一个自动递增的整数,不允许有重复。 - `ENCRYPTION`:对于密码等敏感信息,使用加密手段保护。 4. **约束类型**: - `FOREIGN KEY`:用于关联两个表之间的数据关系,如外键约束 (`FOREIGN KEY (fk_column_name) REFERENCES other_table(primary_key_column_name);`)- `CHECK`:限制特定列的取值范围或表达式结果 (`CHECK (column_name > 0);`). - `DEFAULT`:给字段提供默认值 (`created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP;`).
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值