参照完整性(完整性约束)是数据库设计中的一个重要概念,CSDN Oracle技术论坛

  • 栏目:数据 时间:2020-04-15 22:35
<返回列表

问题来源:CSDN Oracle技术论坛

转自:

问题 :myepoch提出相同SQL因为检索的值,不同执行效率差别巨大。问题环境:Oracle 10g,tbnc_adminpowerscope表在adminaccount有B树索引,TBNC_ADMINPOWERSCOPE总记录数:33422行TBNC_CMSARTICLE总记录数:40782行结果 :已经解决,优化后的SQL执行时间,均小于0.032秒:select art.article_id, art.article_title,

  1. 什么是参照完整性?
    ——————–
    参照完整性(完整性约束)是数据库设计中的一个重要概念,当数据库中的一个表与一个或多个表进行关联时都会涉及到参照完整性。比如下面这个例子:
    文章分类表 -  categories
    category_id     name
    1            SQL Server
    2            Oracle
    3            PostgreSQL
    5            SQLite
    文章表 - articles
    article_id      category_id     title
    1            1            aa
    2            2            bb
    3            4            cc
    可见以上两个表之间是通过category_id,其中categories表有4条记录,articles表有3条记录。
    然而可能因为某种原因我们删掉了categories 表中category_id=4的记录,而articles表却还是有一条category_id=4的记录,很明显,category_id=4的这条记录不应该存在在articles表中,这样会很容易造成数据错乱。
    相反,外键关系(Foreign Key relationships)讨论的是父表(categories)与子表(articles)的关系,通过引入外键(Foreign Key)这个概念来保证参照完整性(Referential integrity),将使会数据库变的非常简单。比如,要要做到删除categories表中category_id=4记录的同时删除 articles 表中category_id=4的所有记录,如果没有引入外键的话,我们就必须执行2条SQL语句才行;如果有外键的话,可以很容易的用一条SQL语句就可以达到要求。
  2. 使用外键的条件
    —————–
    MySQL只在v3.23.34版本以后才引入外键的,所以在这之前的版本就别想了:),除此之外,还必须具备以下几个条件:
上一篇:一、创建新库 下一篇:本文章介绍一篇关于sql中IN与EXISTS,第一个查询使用 EXISTS 而第二个查询使用

更多阅读

本文章介绍一篇关于sql中IN与EXISTS,第一

数据 2020-04-15
本文章介绍一篇关于sql中IN与EXISTS,NOT IN与NOTEXISTS的详细介绍,有需要了解的同学可以参考一下...
查看全文

参照完整性(完整性约束)是数据库设计中

数据 2020-04-15
问题来源:CSDN Oracle技术论坛 转自: 问题: myepoch提出相同SQL因为检索的值,不同执行效率差...
查看全文

一、创建新库

数据 2020-04-15
sql server里连接远程服务器,并进行创建和删除新数据库教程 CREATE PROCEDURE [dbo].[p_CreateDB]   @D...
查看全文

友情链接: 网站地图

Copyright © 2015-2019 http://www.koi-bumi.com. 韦德体育有限公司 版权所有