必须会的SQL语句(八) 数据库的完整性约束

数据库的完整性约束可以保证数据库中数据的有效性和一致性,防止数据出现错误和不一致情况。SQL语句可以设置多种类型的完整性约束,下面将介绍常见的完整性约束及其用法。

主键约束

主键是唯一标识一条记录的字段,不允许重复和为空。可以通过PRIMARY KEY关键字实现主键约束。

示例代码:

CREATE TABLE student (
  id INT PRIMARY KEY,
  name VARCHAR(50) NOT NULL,
  age INT
);

外键约束

外键约束用于保证两个表之间的数据一致性。在一个表中定义对另一个表主键的引用时,就建立了外键。外键约束规定如果一个表的外键值引用另一个表的主键,那么在被引用的表中必须存在一条与之对应的记录。可以通过FOREIGN KEY关键字实现外键约束。

示例代码:

CREATE TABLE class (
  id INT PRIMARY KEY,
  name VARCHAR(50) NOT NULL
);

CREATE TABLE student (
  id INT PRIMARY KEY,
  name VARCHAR(50) NOT NULL,
  age INT,
  class_id INT,
  FOREIGN KEY (class_id) REFERENCES class(id)
);

检查约束

检查约束用于限制插入或更新的数据必须符合一定的条件。可以通过CHECK关键字实现检查约束。

示例代码:

CREATE TABLE employee (
  id INT PRIMARY KEY,
  name VARCHAR(50) NOT NULL,
  age INT,
  salary DECIMAL CHECK (salary >= 0),
  join_date DATE CHECK (join_date <= CURDATE())
);

唯一约束

唯一约束用于保证某个字段的值在表中只出现一次。可以通过UNIQUE关键字实现唯一约束。

示例代码:

CREATE TABLE user (
  id INT PRIMARY KEY,
  name VARCHAR(50) NOT NULL,
  email VARCHAR(50) UNIQUE,
  password VARCHAR(50) NOT NULL
);

以上是一些常见的数据库完整性约束类型及其实现方式,根据实际情况选择合适的方式保证数据的完整性和一致性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:必须会的SQL语句(八) 数据库的完整性约束 - Python技术站

(0)
上一篇 2023年5月21日
下一篇 2023年5月21日

相关文章

  • springboot后端配置多个数据源、Mysql数据库的便捷方法

    下面我为大家详细介绍“Spring Boot后端配置多个数据源、MySQL数据库的便捷方法”攻略。 一、引入相关依赖 在pom.xml文件中,引入MyBatis和多数据源依赖: <!–MyBatis依赖–> <dependency> <groupId>org.mybatis.spring.boot</groupI…

    database 2023年5月18日
    00
  • MySql_十六进制值

    十六进制值 MySQL支持十六进制值。在数字上下文中,十六进制数如同整数(64位精度)。在字符串上下文,如同二进制字符串,每对十六进制数字被转换为一个字符: mysql> SELECT x’4D7953514C’; -> ‘MySQL’ mysql> SELECT 0xa+0; -> 10 mysql> SELECT 0x506…

    MySQL 2023年4月13日
    00
  • SQL Server 2012降级至2008R2的方法

    下面是SQL Server 2012降级至2008R2的方法的完整攻略,包含步骤和示例。 步骤 备份SQL Server 2012数据库 在降级之前需要备份SQL Server 2012数据库,以便在后续数据还原时使用。 卸载SQL Server 2012 打开控制面板,选择“程序”,找到SQL Server 2012,并卸载它。 下载并安装Microsof…

    database 2023年5月18日
    00
  • 网络安全及防御之SQL注入原理介绍

    网络安全及防御之SQL注入原理介绍 SQL注入的定义 SQL注入(SQL Injection)是一种利用SQL漏洞引发的网络安全漏洞攻击方式,通过在web表单或者URL参数注入恶意的SQL代码,进而实现攻击者执行任意操作的目的。 SQL注入的攻击原理 SQL注入的攻击原理是将SQL(Structured Query Language)指令插入到已有的SQL指…

    database 2023年5月21日
    00
  • 9、redis.exceptions.AuthenticationError: Client sent AUTH, but no password is set

    注册模块连接redis遇到的问题 1、遇到的问题 redis.exceptions.AuthenticationError: Client sent AUTH, but no password is set   2、解决办法 首先打开redis.windows.service.conf(或redis.windows.service)    –>  双…

    Redis 2023年4月13日
    00
  • MySQL数据库分组查询group by语句详解

    MySQL数据库分组查询是一种非常重要的查询手段,它可以根据指定的一个或多个列的值对结果进行分组,通常与聚合函数一起使用。 1. GROUP BY语句的基本用法 GROUP BY语句用于对结果集根据指定的字段进行分组。基本语法如下: SELECT column1, column2, … FROM table_name GROUP BY column1, …

    database 2023年5月22日
    00
  • Wampserver2.5配置虚拟主机出现403 Forbidden的处理方案

    标题:Wampserver2.5配置虚拟主机出现403 Forbidden的处理方案 在Wampserver2.5中配置虚拟主机(Virtual Host)时,可能会出现403 Forbidden错误,这是因为默认情况下Wampserver禁止了访问虚拟主机的文件夹权限。下面是解决该问题的步骤。 步骤一:打开httpd-vhosts.conf文件 首先打开W…

    database 2023年5月22日
    00
  • MySQL5.7更改密码时出现ERROR 1054 (42S22)的解决方法

    当我们在MySQL5.7版本下更改密码时,有时会遇到ERROR 1054 (42S22)的情况。如果出现这种错误,我们需要采取以下步骤进行解决: 问题背景: 在MySQL5.7版本下更改密码时,会执行下列语句: mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘new_password’; 但是在执…

    database 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部