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);
    
  • 相关阅读:
    20151104内置对象
    20151102adonet2
    20151029adonet1
    20151028c#4
    20151027c#3
    20151026c#2
    20151021c#1
    20151020sql2
    20151019sql1
    Codeforces Round #261 (Div. 2) C. Pashmak and Buses(思维+构造)
  • 原文地址:https://www.cnblogs.com/liangfc/p/14448858.html
Copyright © 2011-2022 走看看