zoukankan      html  css  js  c++  java
  • 9.MYSQL-外键约束(废弃)

    外键

    1.是表的特殊字段,经常与主键约束一起使用。对于两个具有关联关系的表而言,关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)。
    2.外键用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两表中的数据一致性和完整性。
    3.主表删除某条记录时,从表中与之对应的记录也必须有相应的改变。一个表可以有一个或多个外键,外键可以为空值,若不为空值,则每一个外键的值必须等于主表中主键的某个值。

    定义规则

    1.主表必须已经存在于数据库中,或者是当前正在创建的表。如果是后一种情况,则主表与从表是同一个表,这样的表称为自参照表,这种结构称为自参照完整性。
    2.必须为主表定义主键。
    3.主键不能包含空值,但允许在外键中出现空值。也就是说,只要外键的每个非空值出现在指定的主键中,这个外键的内容就是正确的。
    4.在主表的表名后面指定列名或列名的组合。这个列或列的组合必须是主表的主键或候选键。
    5.外键中列的数目必须和主表的主键中列的数目相同。
    6.外键中列的数据类型必须和主表主键中对应列的数据类型相同。

    1.创建表时添加外键约束

    CREATE TABLE class(
        c_no INT primary key ,
        c_name VARBINARY(50),
        room VARBINARY(50)
    );
    CREATE TABLE student (
        s_no INT,
        s_name VARBINARY(50),
        s_age INT,
        c_no INT,
        CONSTRAINT fk_c_no_class FOREIGN KEY (c_no) REFERENCES class(c_no)
    );
    //以上语句执行成功之后,在表 student 上添加了名称为 fk_c_no_class 的外键约束,外键名称为 c_no,其依赖于表 class 的主键 c_no
        INSERT INTO class VALUES (1,'高一一班','冲刺班');
        INSERT INTO student VALUES (1001,'李大国',18,1);
    
  • 相关阅读:
    洛谷 1339 最短路
    洛谷 1330 封锁阳光大学 图论 二分图染色
    洛谷 1262 间谍网络 Tarjan 图论
    洛谷 1373 dp 小a和uim之大逃离 良心题解
    洛谷 1972 莫队
    洛谷 2158 数论 打表 欧拉函数
    洛谷 1414 数论 分解因数 水题
    蒟蒻的省选复习(不如说是noip普及组复习)————连载中
    关于筛法
    关于整数划分的几类问题
  • 原文地址:https://www.cnblogs.com/liangfc/p/14448858.html
Copyright © 2011-2022 走看看