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 ------

  • 相关阅读:
    asp.net 汉字转拼音类
    NET分页实现及代码
    Web.config配置文件详解(新手必看) (转载)
    偶开通博客啦
    转帖不会乱码的,powershell网络蜘蛛
    ConvertFrom-String 命令研究
    powershell玩转xml之20问
    powershell 判断操作系统版本 命令
    powershell加win的dns服务器,解决网站负载均衡问题
    PowerShell并发控制-命令行参数之四问
  • 原文地址:https://www.cnblogs.com/george92/p/7299781.html
Copyright © 2011-2022 走看看