mysql主键,外键,非空,唯一,默认约束及创建表的方法

MySQL是一种非常流行的关系型数据库,主键、外键、非空、唯一和默认值是MySQL中常用的约束,以保证数据的准确性和完整性。下面将对这些约束及创建表的方法进行详细讲解。

MySQL主键

在MySQL中,主键是一种用于唯一标识表中每一条记录的字段或一组字段。每一张表都必须有一个主键,主键可以是单个字段或多个字段的组合。主键的值必须唯一,不允许为空。我们一般可以使用PRIMARY KEY来创建主键,例如下面的SQL语句:

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

以上示例中,我们定义了一个名为“student”的表,其中id字段是主键,可以标识该表中的每一条记录。

MySQL外键

在MySQL中,外键是用于建立两张表之间关联的一种机制。外键表示一个表中的字段,该字段的值是另一张表中特定字段的值。外键可以用来保证表之间的数据一致性,避免数据冗余。我们可以使用FOREIGN KEY来定义一个外键。

例如,在student表中,我们可以定义一个外键来关联class表中的class_id字段:

CREATE TABLE class (
   class_id INT NOT NULL,
   class_name VARCHAR(30),
   PRIMARY KEY (class_id)
);

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

以上示例中,我们定义了一个名为“class”的表和一个名为“student”的表,其中在student表中有一个外键class_id,它引用了class表中的主键class_id

MySQL非空约束

在MySQL中,非空约束指定某个字段值必须填写,不允许为空。我们可以在创建表时使用NOT NULL来添加非空约束。

例如,在创建student表时,我们可以对name字段添加非空约束:

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

以上示例中,我们定义了一个名为“student”的表,其中name字段添加了非空约束。

MySQL唯一约束

在MySQL中,唯一约束用于确保某个字段中的值在表中是唯一的。我们可以在创建表时使用UNIQUE来添加唯一约束。

例如,我们可以在创建student表时,对name字段添加唯一约束:

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

以上示例中,我们定义了一个名为“student”的表,其中name字段添加了唯一约束。

MySQL默认约束

在MySQL中,默认约束是指当插入新记录时,如果该字段没有填写值,就会默认使用一个预设的值。我们可以在创建表时使用DEFAULT来添加默认约束。

例如,在创建student表时,我们可以对age字段添加默认约束:

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

以上示例中,我们定义了一个名为“student”的表,其中age字段添加了默认约束,默认值为18。

MySQL创建表的方法

在MySQL中,创建表可以使用CREATE TABLE语句。使用该语句时,必须指定表名,以及每个字段的名称、数据类型、约束等信息。

例如,以下是一个创建一个名为“user”的表的示例:

CREATE TABLE user (
   id INT NOT NULL,
   name VARCHAR(20) NOT NULL,
   age INT DEFAULT 18,
   PRIMARY KEY (id),
   UNIQUE (name)
);

以上示例中,我们定义了一个名为“user”的表,其中包含了idnameage三个字段,其中id字段为主键,name字段添加了非空和唯一约束,age字段添加了默认约束。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mysql主键,外键,非空,唯一,默认约束及创建表的方法 - Python技术站

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

相关文章

  • Mysql中行转列和列转行

    一、行转列 即将原本同一列下多行的不同内容作为多个字段,输出对应内容。 建表语句 DROP TABLE IF EXISTS tb_score; CREATE TABLE tb_score(    id INT(11) NOT NULL auto_increment,    userid VARCHAR(20) NOT NULL COMMENT ‘用户id’,…

    MySQL 2023年4月13日
    00
  • 详解Mysql中的视图

    现在我来为您详细讲解“详解Mysql中的视图”的完整攻略。 什么是Mysql视图 在Mysql中,视图(View)就是一种虚拟的表,是由 SELECT 语句所定义的,其作用是为了简化操作,实现复杂查询。 使用视图,可以将多个表或多个表中的数据筛选出来,组合成一个虚拟的表,方便数据的操作和管理。 如何创建Mysql视图 创建视图的语法为: CREATE [OR…

    database 2023年5月22日
    00
  • MSSQL2005数据附加失败报错3456解决办法

    MSSQL2005数据附加失败报错3456解决办法 问题描述 在将MSSQL2005数据库附加到SQL Server中时,可能会遇到以下错误信息: Msg 3456, Level 16, State 1, Line 1 Could not redo log record (X:Y:Z), for transaction ID (U:V), on page (…

    database 2023年5月18日
    00
  • Oracle数据库产重启服务和监听程序命令介绍

    让我为您详细讲解一下“Oracle数据库产重启服务和监听程序命令介绍”的完整攻略。 Oracle数据库重启服务 Oracle数据库服务器在启动并运行过程中,可能会遇到各种问题导致服务停止工作,这时候需要重启服务。以下是Oracle数据库重启服务步骤: 步骤一:关闭Oracle服务 在命令行中执行以下命令,关闭Oracle服务。其中,oracle_servic…

    database 2023年5月22日
    00
  • 人人都能看懂的 6 种限流实现方案(纯干货)

    人人都能看懂的 6 种限流实现方案(纯干货) 为什么要限流 限流是指对系统中的请求进行控制,限制流量到达一定的阈值,从而保护系统的可用性、稳定性和安全性。在高并发场景、恶意攻击、突发事件等情况下,未实现限流可能导致服务器崩溃、数据库宕机、带宽溢出等问题。因此,限流是保障系统稳定可靠的重要手段。 6 种限流实现方案 1. 固定窗口计数器算法 这是最基本的实现方…

    database 2023年5月22日
    00
  • Redis持久化机制实现原理和流程

    Redis持久化机制实现原理和流程 Redis是一种高性能的键值存储数据库,在实际应用中,数据的持久化是非常重要的。为了防止数据丢失,在Redis中提供了两种持久化机制来保证数据的持久化,它们分别是:RDB快照和AOF日志。 RDB快照 RDB是Redis的一种快照持久化机制,通过将内存中的数据快照存储到硬盘上,实现数据的持久化。当然,这种持久化机制会根据用…

    database 2023年5月22日
    00
  • Docker批量容器编排的实现

    我将为您详细讲解“Docker批量容器编排的实现”的完整攻略,包含以下主要步骤: 使用Docker Compose编写相关的配置文件 对编写好的配置文件进行解析和解释 启动多个容器实例进行编排 监控和管理多个容器实例 下面将逐一详细解释这些步骤。 1. Docker Compose配置文件编写 Docker Compose是Docker官方提供的一个编排工具…

    database 2023年5月22日
    00
  • vue实现下拉框二级联动效果的实例代码

    下面是详细讲解「Vue实现下拉框二级联动效果的实例代码」的完整攻略。本攻略分为以下四个部分: 前置知识 实现思路 示范代码 总结 1. 前置知识 在学习本攻略之前,你需要知道以下知识: Vue.js框架的基础使用 Vue组件和父子组件之间的通信 Vue的computed属性 如果对上述知识不熟悉,可以先去学习相关的知识。 2. 实现思路 下拉框的二级联动效果…

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