zoukankan      html  css  js  c++  java
  • MySQL外键操作

    MySQL外键操作

    返回首页

    外键就是将两张或多张表,关联起来,使其一张表的某行数据与另一张表的某行数据关联起来。

    使表1的外键与表2的主键关联,这样就可以通过表1的外键,找到表2的主键所在行的数据。

    create table userinfo(

      uid bigint auto_increment primary key,

      name varchar(255),

      department_id int,

      constraint fk_userinfo_department foreing key (department_id) references department (id)

      )engine = innodb default charset=utf8;

    constraint是约束,fk_userinfo_department是外键的名称。

    foreing key开始指定外键为department_id,references设置外键关联到表名department。

    最后设置外键需要关联到的department表的字段,id字段。

    create table department(

      id bigint auto_increment primary key,

      title varchar(255)

      )engine = innodb default charset=utf8;

    这样就使userinfo表中department_id成为了外键。和department表中的id关联了。 

    多个约束外键就是在UserInfo表中再多些一行constraint。

    样例:

    create table userinfo(

      uid bigint auto_increment primary key,

      name varchar(255),

      department_id int,

      xx_id int,

      constraint fk_userinfo_department foreing key (department_id) references department (id),

      constraint fk_xx_class foreing key (xx_id) references class (cid) #外键名为fk_xx_class,主表字段是xx_id,关联表为class,被关联字段为cid。

      )engine = innodb default charset=utf8;

    扩展:

    一张表只能有一个主键,但是一个主键可以是多列。多列可以合起来做一个主键,只要多列合起来唯一就可以。

    样例:

    create table t1(

      nid int(11) not null auto_increment ,

      pid int(11) not null,

      num int(11) default null,

      primary key (nid,pid)     #这样是创建了一个由nid和pid组合的一个主键。

      )engine = innodb default charset=utf8;

    create table t2(

      id int auto_increment primary key,

      name varchar(255),

      id1 int,

      id2 int,

      constraint fk_t2_t1 foreing key (id1,id2) references t1 (nid,pid),

      )engine = innodb default charset=utf8;

    ------ END ------

  • 相关阅读:
    临时表的问题
    List集合和Set集合互转
    mysql数据库事件
    mysql存储过程事务
    N皇后问题
    递归实现字符数组的全排列及组合
    判断一个序列是否为某二叉搜索树的后续遍历结果
    递归实现两个有序链表的合并
    递归实现字符串反转
    根据字节数截取字符串
  • 原文地址:https://www.cnblogs.com/george92/p/7299781.html
Copyright © 2011-2022 走看看