iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >数据库中sql完整性约束的示例分析
  • 777
分享到

数据库中sql完整性约束的示例分析

2024-04-02 19:04:59 777人浏览 泡泡鱼
摘要

小编给大家分享一下数据库中sql完整性约束的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!完整性约束  完整性约束是为了

小编给大家分享一下数据库sql完整性约束的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

完整性约束

  完整性约束是为了表的数据的正确性!如果数据不正确,那么一开始就不能添加到表中。

1 主键

当某一列添加了主键约束后,那么这一列的数据就不能重复出现。这样每行记录中其主键列的值就是这一行的唯一标识。例如学生的学号可以用来做唯一标识,而学生的姓名是不能做唯一标识的,因为学生姓名有可能同名。
主键列的值不能为NULL,也不能重复!

  指定主键约束使用PRIMARY KEY关键字

创建表:定义列时指定主键:

CREATE TABLE stu(
         sid    CHAR(6) PRIMARY KEY,
         sname   VARCHAR(20),
         age      INT,
         gender  VARCHAR(10)
);

创建表:定义列之后独立指定主键:

CREATE TABLE stu(
         sid    CHAR(6),
         sname   VARCHAR(20),
         age      INT,
         gender  VARCHAR(10),
         PRIMARY KEY(sid)
);

修改表时指定主键:

ALTER TABLE stu
ADD PRIMARY KEY(sid);

删除主键(只是删除主键约束,而不会删除主键列):

ALTER TABLE stu DROP PRIMARY KEY;

2 主键自增长

Mysql提供了主键自动增长的功能!当主键设置为自动增长后,在没有给出主键值时,主键的值会自动生成,而且是最大主键值+1,也就不会出现重复主键的可能了。

创建表时设置主键自增长(主键必须是整型才可以自增长):

CREATE TABLE stu(
         sid INT PRIMARY KEY AUTO_INCREMENT,
         sname   VARCHAR(20),
         age      INT,
         gender  VARCHAR(10)
);

修改表时设置主键自增长:

ALTER TABLE stu CHANGE sid sid INT AUTO_INCREMENT;

修改表时删除主键自增长:

ALTER TABLE stu CHANGE sid sid INT;

3 非空

指定非空约束的列不能没有值,也就是说在插入记录时,对添加了非空约束的列一定要给值;在修改记录时,不能把非空列的值设置为NULL。

指定非空约束:

CREATE TABLE stu(
         sid INT PRIMARY KEY AUTO_INCREMENT,
         sname VARCHAR(10) NOT NULL,
         age      INT,
         gender  VARCHAR(10)
);

当为sname字段指定为非空后,在向stu表中插入记录时,必须给sname字段指定值,否则会报错:

INSERT INTO stu(sid) VALUES(1);

  插入的记录中sname没有指定值,所以会报错!

4 唯一

还可以为字段指定唯一约束!当为字段指定唯一约束后,那么字段的值必须是唯一的。这一点与主键相似!例如给stu表的sname字段指定唯一约束:

CREATE TABLE tab_ab(
     sid INT PRIMARY KEY AUTO_INCREMENT,
     sname VARCHAR(10) UNIQUE
);
 
  INSERT INTO sname(sid, sname) VALUES(1001, 'zs');
INSERT INTO sname(sid, sname) VALUES(1002, 'zs');

  当两次插入相同的名字时,mysql会报错!

5 外键

主外键是构成表与表关联的唯一途径!

外键是另一张表的主键!例如员工表与部门表之间就存在关联关系,其中员工表中的部门编号字段就是外键,是相对部门表的外键。

例如在t_section表中sid为1的记录说明有一个分类叫java,版主是t_user表中uid为1的用户,即zs!

例如在t_topic表中tid为2的记录是名字为“Java是咖啡”的帖子,它是java版块的帖子,它的作者是ww。

外键就是用来约束这一列的值必须是另一张表的主键值!!!

创建t_user表,指定uid为主键列:

CREATE TABLE t_user(
     uid  INT PRIMARY KEY AUTO_INCREMENT,
     uname  VARCHAR(20) UNIQUE NOT NULL
);

创建t_section表,指定sid为主键列,u_id为相对t_user表的uid列的外键:

CREATE TABLE t_section(
         sid  INT PRIMARY KEY AUTO_INCREMENT,
         sname   VARCHAR(30),
         u_id INT,
         CONSTRaiNT fk_t_user FOREIGN KEY(u_id) REFERENCES t_user(uid)
);

修改t_section表,指定u_id为相对t_user表的uid列的外键:

ALTER TABLE t_section
ADD CONSTRAINT fk_t_user
FOREIGN KEY(u_id)
REFERENCES t_user(uid);

修改t_section表,删除u_id的外键约束:

ALTER TABLE t_section
DROP FOREIGN KEY fk_t_user;

6 表与表之间的关系

  • 一对一:例如t_person表和t_card表,即人和身份证。这种情况需要找出主从关系,即谁是主表,谁是从表。人可以没有身份证,但身份证必须要有人才行,所以人是主表,而身份证是从表。设计从表可以有两种方案:

  • 在t_card表中添加外键列(相对t_user表),并且给外键添加唯一约束;

  • 给t_card表的主键添加外键约束(相对t_user表),即t_card表的主键也是外键。

  • 一对多(多对一):最为常见的就是一对多!一对多和多对一,这是从哪个角度去看得出来的。t_user和t_section的关系,从t_user来看就是一对多,而从t_section的角度来看就是多对一!这种情况都是在多方创建外键!

  • 多对多:例如t_stu和t_teacher表,即一个学生可以有多个老师,而一个老师也可以有多个学生。这种情况通常需要创建中间表来处理多对多关系。例如再创建一张表t_stu_tea表,给出两个外键,一个相对t_stu表的外键,另一个相对t_teacher表的外键。

以上是“数据库中sql完整性约束的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: 数据库中sql完整性约束的示例分析

本文链接: https://www.lsjlt.com/news/57295.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 数据库中sql完整性约束的示例分析
    小编给大家分享一下数据库中sql完整性约束的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!完整性约束  完整性约束是为了...
    99+
    2024-04-02
  • MySQL数据库中数据约束的示例分析
    这篇文章主要介绍了MySQL数据库中数据约束的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。为了防止不符合规范的数据进入数据库,在用...
    99+
    2024-04-02
  • SQL server数据库中数据完整性的分析
    小编给大家分享一下SQL server数据库中数据完整性的分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!存储在数据库中的所有...
    99+
    2024-04-02
  • 三种数据库完整性约束介绍
    今天小编给大家分享的是三种数据库完整性约束介绍,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。数据库的三种完整性约束:1、实体完整性,对关系中的记录唯...
    99+
    2024-04-02
  • oracle中数据完整性的示例分析
    小编给大家分享一下oracle中数据完整性的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1.  数据的完整性简介    ...
    99+
    2024-04-02
  • sql中参照完整性的示例分析
    这篇文章主要为大家展示了“sql中参照完整性的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“sql中参照完整性的示例分析”这篇文章吧。一、参照完整性参照...
    99+
    2024-04-02
  • MySQL数据完整性的示例分析
    这篇文章主要介绍MySQL数据完整性的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!数据完整性分为:实体完整性,域完整性,参考完整性。参考完整性:参照完整性指的就是多表之间的...
    99+
    2024-04-02
  • 关系数据库的完整性约束:实体完整性、参照完整性、用户自定义完整性
    关系模型的三种完整性约束是实体完整性、参照完整性和用户定义完整性。 文章目录 关系模型的三种完整性约束是实体完整性、参照完整性和用户定义完整性。实体完整性参照完整性用户自定义完整性 ...
    99+
    2023-10-03
    mysql sql
  • 数据库设计的完整性约束表现有哪些
    这篇文章主要介绍“数据库设计的完整性约束表现有哪些”,在日常操作中,相信很多人在数据库设计的完整性约束表现有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”数据库设计的完整...
    99+
    2024-04-02
  • 如何理解数据库设计的完整性约束表现
    这篇文章将为大家详细讲解有关如何理解数据库设计的完整性约束表现,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。数据完整性是指数据的正确性、完备性和一致性,是衡...
    99+
    2024-04-02
  • 数据库字段约束详解:确保数据准确性和完整性
    1. 主键约束 主键约束用于确保表中每一行的唯一性,它可以是单列或多列的组合。主键约束的优点是: 确保表中每一行的唯一性,防止出现重复数据。 可以加快数据检索的速度,因为主键通常被用作索引键。 可以帮助维护数据的一致性,因为主键通常用...
    99+
    2024-02-14
    数据库 约束 主键 外键 非空 唯一 默认值 检查
  • MySQL中唯一性约束与NULL的示例分析
    这篇文章给大家分享的是有关MySQL中唯一性约束与NULL的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言之前做的一个需求,简化描述下就是接受其他组的 MQ 的消息,...
    99+
    2024-04-02
  • MySQL完整性约束的定义与实例教程
    目录完整性约束完整性约束的定义完整性约束的分类主键约束(primary key)单个主键和联合主键的区别主键字段的挑选原则删除主键约束主键自增(auto_increment)主键自增...
    99+
    2024-04-02
  • MySQL数据库约束及表的设计实例分析
    这篇“MySQL数据库约束及表的设计实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL数据库约束及表的设计实例...
    99+
    2023-07-02
  • MySQL约束类型的示例分析
    这篇文章主要介绍MySQL约束类型的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!约束 约束保证数据的完整性和一致性约束分为表级约束和列级约束约束类型包括:NOT ...
    99+
    2024-04-02
  • 如何使用SQL语句在MySQL中进行数据校验和完整性约束?
    如何使用SQL语句在MySQL中进行数据校验和完整性约束?数据校验和完整性约束是数据库管理系统中常用的方法,用于确保数据的正确性和完整性。在MySQL中,我们可以通过使用SQL语句来实现这些约束。本文将介绍如何使用SQL语句在MySQL中进...
    99+
    2023-12-18
    MySQL SQL语句 数据校验
  • 数据库中sql注入的示例分析
    这篇文章将为大家详细讲解有关数据库中sql注入的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。首先可能大家都会问什么是sqlSql是数据库的一种类型,是用来存储网...
    99+
    2024-04-02
  • MySQL数据库约束操作示例讲解
    目录一、约束是什么二、约束的具体操作Not NULLUNIQUE约束的组合使用PRIMARY KEYDEFAULTFOREIGN KEY一、约束是什么 约束就是,在创建表的时候,对表设置一些规则,只有满足这些规则,才可以...
    99+
    2022-11-15
    MySQL数据库约束 MySQL约束
  • MySQL数据库的约束使用实例
    目录1. NULL约束2. UNIQUE(唯一约束)3. DEFAULT(默认值约束)4. PRIMARY KEY(主键约束)5. FOREIGN KEY(外键约束)数据库的约束就是关系型数据库给我们提供的一种"...
    99+
    2022-12-03
    MySQL数据库的约束 MySQL数据库约束语句
  • SQL Server数据库分区分表的示例分析
    这篇文章主要介绍SQL Server数据库分区分表的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、 需求说明将数据库Demo中的表按照日期字段进行水平分区分表。要求数据文件按一年一个文件存储,且...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作