MySQL六种约束的示例详解(全网最全)

yizhihongxing

第一步,先介绍约束的概念以及常见的六种约束:

在MySQL中,约束是对表中数据的限制,可以在创建表的过程中定义或者在表创建完成之后添加。六种常见数据库约束包括:

  1. PRIMARY KEY (主键)
  2. FOREIGN KEY(外键)
  3. UNIQUE(唯一)
  4. NOT NULL(非空)
  5. CHECK(检查)
  6. DEFAULT(默认)

主键的作用是唯一标识每张表内每一行数据,一个表只能有一个主键。外键是用来建立表之间关联的,从一张表中创建一个对应另一张表中主键的列即可。唯一约束是保证表中的某个列的值是唯一的,不与其他行重复。非空约束是保证表中某个列不为空。检查约束是保证表中某个列的值符合一定的条件。默认约束是当表中某个列的值未指定时,默认给这一列赋值。

第二步,分别对六种约束进行一一讲解:

主键约束的示例:可以创建一个students表,然后给这个表创建一个id列,然后使用PRIMARY KEY关键词将这个列设置为主键。示例代码:

CREATE TABLE students (
  id INT NOT NULL AUTO_INCREMENT,
  name varchar(255) NOT NULL,
  age INT DEFAULT NULL,
  PRIMARY KEY (id)
);

外键约束的示例:可以创建一个students和一个grades表来演示外键的示例。students表中的id列作为主键,grades表中有一个student_id列来与students表中的id列建立关联关系。示例代码:

CREATE TABLE students (
  id INT NOT NULL AUTO_INCREMENT,
  name varchar(255) NOT NULL,
  age INT DEFAULT NULL,
  PRIMARY KEY (id)
);

CREATE TABLE grades (
  id INT NOT NULL AUTO_INCREMENT,
  class varchar(255) NOT NULL,
  grade INT DEFAULT NULL,
  student_id INT NOT NULL,
  PRIMARY KEY (id),
  FOREIGN KEY (student_id) REFERENCES students(id)
);

唯一约束的示例:可以为students表添加一个unique索引,保证name列的值唯一。示例代码:

CREATE UNIQUE INDEX idx_unique_name ON students (name);

非空约束的示例:在students表中,可以让name列不允许为空。示例代码:

CREATE TABLE students (
  id INT NOT NULL AUTO_INCREMENT,
  name varchar(255) NOT NULL,
  age INT DEFAULT NULL,
  PRIMARY KEY (id)
);

检查约束的示例:在students表中,可以设置age列的值只允许为正整数。示例代码:

CREATE TABLE students (
  id INT NOT NULL AUTO_INCREMENT,
  name varchar(255) NOT NULL,
  age INT DEFAULT NULL,
  CHECK (age > 0),
  PRIMARY KEY (id)
);

默认约束的示例:在students表中,如果不指定age列的值,则将age列的值设置为20。示例代码:

CREATE TABLE students (
  id INT NOT NULL AUTO_INCREMENT,
  name varchar(255) NOT NULL,
  age INT DEFAULT 20,
  PRIMARY KEY (id)
);

第三步,总结:

MySQL的六种约束各有不同的作用和应用场景,这些约束可以保证表中的数据存储的合法性和有效性,也可以使得表与表之间的关系更加紧密。实际开发中,我们根据需求选择合适的约束,并将其应用在相应的列上,以达到更好的数据约束和存储效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL六种约束的示例详解(全网最全) - Python技术站

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

相关文章

  • Oracle SQL tuning 数据库优化步骤分享(图文教程)

    Oracle SQL tuning 数据库优化步骤分享(图文教程) 优化 SQL 查询是提高 Oracle 数据库性能的关键。本文将介绍一些常用的 SQL 优化步骤,帮助优化 SQL 查询,提高数据库的性能。 步骤 1:诊断 SQL 查询 在进行 SQL 优化之前,首先需要诊断 SQL 查询,确定查询的瓶颈所在。通常,可以使用 Oracle 自带的诊断工具,…

    database 2023年5月19日
    00
  • iBatis习惯用的16条SQL语句

    iBatis是一个基于Java的持久化框架,它提供了一种简单且优秀的方式来映射Java对象到数据库表中。在iBatis中,SQL语句具有极大的重要性,因为其是实现持久化功能的基础。下面将详细讲解iBatis习惯用的16条SQL语句的完整攻略。 1. SELECT Select语句用于从表中检索数据记录。 SELECT * FROM user; 上述语句将从表…

    database 2023年5月21日
    00
  • MySQL出现this is incompatible with sql_mode=only_full_group_by错误的解决办法

    当使用MySQL的时候,我们可能会遇到以下错误提示: Expression #N of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘xxx’ which is not functionally dependent on columns in GROUP BY…

    database 2023年5月18日
    00
  • Redhat 6.2 下 oracle 11g R2的安装详解第1/2页

    为了提高可读性,我将分为两部分进行讲解。 Redhat 6.2 下 oracle 11g R2的安装详解第1/2页(上) 1. 确认系统参数 在进行oracle 11g R2的安装前,需要确认系统的参数设置是否符合要求,这里需要特别关注以下参数: 1.1 内存和交换分区 oracle 11g R2对于系统内存和交换分区的要求非常高,建议开启至少2G的内存以及…

    database 2023年5月22日
    00
  • 如何利用PowerShell监控Win-Server性能详解

    如下是“如何利用PowerShell监控Win-Server性能详解”的完整攻略: 一、初步了解 在开始使用PowerShell监控Windows Server的性能之前,我们需要掌握一些基本知识,包括: 性能计数器(Performance Counter):Windows Server提供了很多性能计数器,可用于监控操作系统和应用程序的资源使用情况。 Po…

    database 2023年5月22日
    00
  • MySQL表字段时间设置默认值

    下面是详细的MySQL表字段时间设置默认值的攻略: 1. 概述 在MySQL中,我们可以为表字段设置默认值。表字段设置默认值的作用是当插入新数据时,如果该字段没有传值,那么就会使用它的默认值。 对于时间类型的字段,我们可以设置默认值为当前时间或者特定的时间值。下面我们就来看看如何设置时间类型字段的默认值。 2. 设置当前时间为默认值 如果我们想要将当前时间作…

    database 2023年5月22日
    00
  • ubuntu下安装Java 8的步骤教程

    以下是ubuntu下安装Java 8的步骤教程的完整攻略。 1. 更新本地软件包索引 在安装Java 8之前,我们需要更新本地软件包索引,确保我们获取的是最新的软件包信息。在终端中执行以下命令: sudo apt update 2. 安装Java 8 2.1. 在默认存储库中安装Java 在Ubuntu默认存储库中,我们可以找到Java 8的安装包。但是,默…

    database 2023年5月22日
    00
  • 详细聊聊关于sql注入的一些零散知识点

    详细聊聊关于SQL注入的一些零散知识点 SQL注入(SQL Injection)是指攻击者通过注入恶意的SQL代码来篡改原有的SQL语句以达到攻击目的。SQL注入是一种最常见的Web安全漏洞之一,现在仍然是黑客攻击网站的重要手段之一。此文将会介绍一些关于SQL注入的零碎知识点。 如何判断是否存在SQL注入漏洞 判断是否存在SQL注入漏洞通常可以通过在参数值中…

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