首页 > 数据库 >sql 数据库完整性

sql 数据库完整性

时间:2022-12-05 18:00:46浏览次数:42  
标签:int 数据库 完整性 key sql table create id

完整性约束条件也称之为完整性规则,是数据库中的数据必须满足的语义约束条件。它表达了给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的真确、有效和相容。

1、实体完整性(primary key)

关系模型的实体完整性在create table 中用primary key 定义。对单属性构成的码有两种说明方法:一种是定义为列级约束条件,另一个是定义为表级约束条件。对多个属性构成的码只有一种说法,即定义为表级约束条件。

1》检查主码值是否唯一,如果不唯一则拒绝插入或修改。

2》检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改。从而保证了实体完整性。

例:将Websites表中的id定义为主键:

 create table Websites (
     id int(8) primary key,
     name varchar(30),
     url varchar(30),
     alexa int(8),
     country char(6)
 );

 create table Websites (
     id int(8),
     name varchar(30),
     url varchar(30),
     alexa int(8),
     country char(6),
     primary key (id)
 );

将 access_log 表中的 aid 和 site_id 定义为主键

create table access_log
  (aid int(4),
  site_id int(4),
  count int(8),
  date datetime,
  primary key (aid,site_id)
  );

2、参照完整性

参照完整性在 create table 中的 foreign key 短语定义哪些列为外码,用 references 短语指明这些外码参照哪些表的主码。

create table access_log
  (
  foreign key (aid) references access_log(aid),
  foreign key (site_id) references Websites(site_id)
  );

参照完整性将两个表中的相应元组联系起来。因此,对被参照表和参照表进行增、删、改操作时有可能破坏参照完整性,必须进行检查以保证这两个表的相容性。

标签:int,数据库,完整性,key,sql,table,create,id
From: https://www.cnblogs.com/counter/p/16953035.html

相关文章

  • MySQL窗口函数介绍详情
    一、窗口函数基本点(一)定义窗口的概念非常重要,它可以理解为记录集合,窗口函数也就是在满足某种条件的记录集合上执行的特殊函数。对于每条记录都要在此窗口内执行函数,窗口......
  • 1.1初始化配置MYSQL服务器
    /*初始配置服务器,需先根据操作系统下载MicrosoftAccess2010数据库引擎AccessDatabaseEngine_X64.exe(https://www.microsoft.com/zh-cn/download/confirmation.aspx?id......
  • 【转载】详解mysql插入数据后返回自增ID的七种方法_java
    引言mysql和oracle插入的时候有一个很大的区别是:oracle支持序列做id;mysql本身有一个列可以做自增长字段。mysql在插入一条数据后,如何能获得到这个自增id的......
  • go之操作数据库,数据库查询
    1.从上到下执行packagemain/*此文目的,查询多行1.创建数据库连接2.查询语句3.编写结构体用来接收4.打印------------------------------......
  • MySQL的零拷贝技术
    1.需要了解Buffer与cache的区别Bbuffer与Cache非常类似,因为它们都用于存储数据数据,被应用层读取字节数据。在很多场合它们有着相同的概念:首先从翻译上,Buffer应该翻译......
  • mysql8 postgresql 递归查询一条SQL支持帝国查询
    创建表点击查看代码createtabletb(idvarchar(3),pidvarchar(3),namevarchar(10));insertintotbvalues('002',0,'浙江省');insertintotbvalues......
  • mysql中游标的运用
    【背景】  最近项目中应对实际情况的需求,又修改了主业务,导致表结构设计不合理,之后又修改了表结构,但是表结构修改之后历史数据需要升级,来适应新的表结构的一系列增删改......
  • docker 安装mysql8
    1.环境准备1.centos7  2.安装包下载1.百度网盘下载链接:https://pan.baidu.com/s/1AfRUkiXD9Oee1hA5az9SXg提取码:gs7b 2.版本说明此安装包为dockermysql8......
  • sql创建自动备份数据库
    【背景】  前段时间需要建立一个sql数据库定时自动备份的任务,通过查询以及实践,将自己的经历过程记录在下面。【步骤】一、开启代理,维护计划中建立备份计划二、双......
  • 10个中级到高级的SQL概念
    随着数据量持续增长,对合格数据专业人员的需求也会增长。具体而言,对SQL流利的专业人士的需求日益增长,而不仅仅是在初级层面。因此,Stratascratch的创始人NathanRosidi以及我......