• 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);
    
  • 相关阅读:
    VLC通过RTSP地址向IPC取流播放不了问题排查
    linux opt分区扩容操作案例
    win10远程桌面报错"出现身份验证错误"
    linux通过expect实现脚本自动交互
    oracle通过触发器记录登陆主机ip
    linux root密码忘记重置
    linux双网卡配置
    Tomcat报错合集
    UFT(QTP)中的Object Repository
    利用JAVA反射机制设计通用的DAO
  • 原文地址:https://www.cnblogs.com/liangfc/p/14448858.html
Copyright © 2020-2023  润新知