当前位置:首页 > 开发 > 数据库 > 正文

主外键和索引唯一性约束

发表于: 2014-09-23   作者:百合不是茶   来源:转载   浏览:
摘要: 目标;第一步;创建两张表 用户表和文章表         第二步;发表文章       1,建表; ---用户表 BlogUsers --userID唯一的 --userName --pwd --sex create

目标;第一步;创建两张表 用户表和文章表

        第二步;发表文章

 

 

  1,建表;

    ---用户表 BlogUsers
    --userID唯一的
    --userName
    --pwd
    --sex
        

    create table BlogUsers(
        userID number(10)  primary key not null,
        userName varchar2(20),
        pwd varchar2(20)
    
    )
    

---文章表  Article
    --articleID唯一
    --articleTittle
    --articleContent
    --UpTime  时间
    --userID    发表文章的用户ID
      
   create table Article(
        articleID number(10)  primary key not null,
        articleTittle varchar2(40),
       articleContent varchar2(4000),
       UpTime Date,
        userID  number(10)  
    );

 

 2,      建立索引;索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息

 

        --建立索引 
     根据blogusers中的表创建索引,以便快速的根据username字段快速的查找

   create unique index CUS_uniquel on BLOGUSERS (username);

 

 

3,联机删除;

 cascade : 删除子表中所有的相关记录  

set null : 将所有相关记录的外部码字段值设置为
 no action: 不做任何操作

 

4,     设置主外键和联机删除(由于在建表时就已经设置了主键,现在只需要设置外键即可);

   

               文章表的userid就是用户表中的userid只用主外键关联起来,文章表示属于某个用户的,发表文章前需要指定用户的存在

    

        主键;唯一标示

       外键;外键中的数据就是主键中的数据

    

        alter table ARTICLE
  add constraint CUS_FOREIGN foreign key (USERID)
  references BLOGUSERS (USERID) on delete cascade;

 

 

        

5,插入数据;

 

insert into article values(2,'我在这里','是否会存在这样的事情呢?',to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') ,1182);

    此时会提示找不到父级

 

   原因是没有创建用户

    创建用户

insert into blogusers values(1181,'王辉','wanghui');

 再执行发表文章

 

insert into article values(1,'我在这里','是否会存在这样的事情呢?',to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') ,1181);

 

查询插入的数据;

 select * from blogusers;
 
     USERID USERNAME             PWD
----------- -------------------- --------------------
       1181 王辉                wanghui   

 

 

 select * from article;
 
  ARTICLEID ARTICLETITTLE                            ARTICLECONTENT                                                                   UPTIME           USERID
----------- ---------------------------------------- -------------------------------------------------------------------------------- ----------- -----------
          1 我在这里                                 是否会存在这样的事情呢?                                                          2005/1/1 13        1181

 

 

 

 

 

 

主外键和索引唯一性约束

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
主键约束 表通常具有包含唯一标识表中每一行的值的一列或一组列。 这样的一列或多列称为表的主键 (P
原文: 索引键的唯一性(2/4):唯一与非唯一聚集索引 在上一篇文章里,我们讨论了堆表上唯一/非唯一
在上一篇文章里,我们讨论了堆表上唯一/非唯一非聚集索引。在SQL Server里没有聚集索引定义的叫堆表
一、范式 1.第一范式:略 2.第二范式:不存在部分依赖 关键字为“组合关键字”时,不能有非关键字属
数据库中有三种主外键关系图: (1) 一对一关系: (2) 一对多关系(两种): 总图: 注意:在数据库中如
原文: 索引键的唯一性(1/4):堆表上的唯一与非唯一非聚集索引的区别 在这篇文章里,我想详细介绍下
原文: 索引键的唯一性(3/4):唯一聚集索引上的唯一和非唯一非聚集索引 在上篇文章里,我讨论了唯一
在这篇文章里,我想详细介绍下SQL Server里唯一与非唯一非聚集索引的区别。看这个文章前,希望你已
在上篇文章里,我讨论了唯一和非唯一聚集索引的区别。我们已经知道,SQL Server内部使用4 bytes的un
一、外键: 1、什么是外键 2、外键语法 3、外键的条件 4、添加外键 5、删除外键 1、什么是外键: 主
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号