zoukankan      html  css  js  c++  java
  • MySQL之表的关系

    MySQL之表的关系

    表的关系:

    一对一:1:1

    eg:一个人只有一个身份证

    注:通过添加关键字段的方式来实现  一对一 关键字段加哪个都可以

    -- 方法一
    CREATE TABLE t_Person(
    id INT PRIMARY KEY AUTO_INCREMENT,
    uname VARCHAR(10)
    );
    
    CREATE TABLE t_card(
    id INT PRIMARY KEY AUTO_INCREMENT,
    start_time DATE,
    end_time DATE,
    pid INT UNIQUE, //关键字段 这个字段是惟一的
    FOREIGN KEY (pid) REFERENCES t_Person(id) //创外键保证数据的完整性和合法性  
    );
     -- 方法二
    CREATE TABLE t_card2(
    card_id INT PRIMARY KEY AUTO_INCREMENT,
    start_time DATE,
    end_time DATE,
    FOREIGN KEY (card_id) REFERENCES t_Person(id)
    );

    一对多:1:n

    eg:一个学生有多门成绩

    注:通过添加关键字段的方式来实现  一对多 关键字段要加在多的那个上面

    -- 一对多
    -- 一个学生有多门成绩
    CREATE TABLE t_student(
    id INT PRIMARY KEY AUTO_INCREMENT,
    uname VARCHAR(10)
    );
    
    CREATE TABLE t_scores(
    id INT PRIMARY KEY AUTO_INCREMENT,
    num INT,
    stu_id INT, //关键字段
    FOREIGN KEY (stu_id) REFERENCES t_student(id)
    );

    多对多:n:n

     eg:多个老师教多个学生

    注:通过添加关键字段的方式来实现  多对多 需要新建一个表  把两个关键字段都添加进去

    -- 多对多
    
    CREATE TABLE t_teacher(
    id INT PRIMARY KEY AUTO_INCREMENT,
    tname VARCHAR(10)
    );
    
    CREATE TABLE t_student(
    id INT PRIMARY KEY AUTO_INCREMENT,
    sname VARCHAR(10)
    );
    
    CREATE TABLE t_stu_tea(
    id INT PRIMARY KEY AUTO_INCREMENT,
    stuid INT, //关键字段
    teaid INT, //关键字段
    FOREIGN KEY (stuid) REFERENCES t_student(id),
    FOREIGN KEY (teaid) REFERENCES t_teacher(id)
    );
  • 相关阅读:
    codevs 1993草地排水
    欧拉筛板子
    约数和问题 (codevs2606 && 洛谷2424)
    排列组合
    Picture poj1177
    楼房 洛谷1382 && codevs2995
    洛谷P1027 Car的旅行路线
    codevs1020 孪生蜘蛛
    HDU1269 迷宫城堡
    洛谷P1078 文化之旅
  • 原文地址:https://www.cnblogs.com/whm1012/p/8494921.html
Copyright © 2011-2022 走看看