主外键和索引唯一性约束

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

        第二步;发表文章

 

 

  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
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值