精华内容
下载资源
问答
  • Mysql与表之间关系

    千次阅读 2021-01-28 06:55:02
    一、前言研究表与表之间关系前,先要知道将所有数据存放在一张表中的弊端:1.结构不清晰 ---> 不致命2.浪费空间 ---> 不致命3.可扩展性极差 ---> 不可忽视的弊端就i好比将所有的代码存放在一个文件中,强...

    一、前言

    研究表与表之间的关系前,先要知道将所有数据存放在一张表中的弊端:

    1.结构不清晰 ---> 不致命

    2.浪费空间 ---> 不致命

    3.可扩展性极差 ---> 不可忽视的弊端

    就i好比将所有的代码存放在一个文件中,强耦合到了一起,而我们需要做的就是 ----> 解耦合 ----> 拆分表

    拆分表解决以上问题.

    需要给两张表之间,建立一种强有力的关系, 使用 “外键”。

    foreign key(外键): 用来建立两张表之间的关系

    一对多

    多对多

    一对一

    foreign key(外键)语法:

    foreign key(当前表中建立关系的外键字段) references 被关联表名(id)

    二、表与表之间的关系

    (一) 一对多

    一对多(左边表的多条记录对应右边表的唯一一条记录)

    注意:必须先建立被关联表,再建立关联表

    例如:定义一张员工部门表

    id,name,gender,dep_name

    注意: 要确定两张表之间的关系,必须站在两个位置去思考:是否是单向多对一还是双向多对一,还是一一对应的关系。

    站在员工表的位置:多个员工能否对应一个部门?(能)

    员工与部门:多对一(员工表单向 多对一 部门表)

    站在部门表的位置:多个部门能否对应一个员工?(不能)

    总结:凡是单向 多对一的表关系,称之为 一对多 的外键关系,如下图所示

    93e267caf4dbfc7871bc309ac522d0ef.png

    创建两张表:

    #被关联表:

    dep:

    create table dep(

    id int primary key auto_increment,

    dep_name varchar(16),

    dep_desc varchar(255));

    #关联表:

    emp:

    create table emp(

    id int primary key auto_increment,

    name varchar(6),

    age int,

    gender enum('male','female'),

    dep_id int not null,

    foreign key(dep_id) references dep(id));

    #插入数据:必须先插入被关联表(dep)的数据,再插入关联表(emp)的数据。

    #插入dep的数据:

    insert into dep(dep_name,dep_desc) values(

    'nb_外交部', '国际形象大使部门'),

    ('sb_教学部', '造程序员部门!!!!'),

    ('技术部', '技术有限部门');

    #插入emp的数据:

    insert into emp(name, age, gender, dep_id)

    values('tank', 17, 'male', 1),

    ('jason', 70, 'male', 2),

    ('sean', 50, 'male', 2),

    ('egon', 88, 'male', 2),

    ('owen', 95, 'female', 3);

    # 报错

    insert into emp(name, age, gender, dep_id) values(

    'baohan', 18, 'others', 999);

    更新数据:

    update emp set dep_id=100 where id=2; #报错

    update dep set id=100 where id=1; #报错

    # 要先删除已关联的dep_id字段,才能修改dep表中的关联id字段。

    delete from emp where id=1;

    update dep set id=100 where id=1;

    mysql> select * from emp;

    +----+-------+------+--------+--------+

    | id | name | age | gender | dep_id |

    +----+-------+------+--------+--------+

    | 2 | jason | 70 | male | 2 |

    | 3 | sean | 50 | male | 2 |

    | 4 | egon | 88 | male | 2 |

    | 5 | owen | 95 | female | 3 |

    +----+-------+------+--------+--------+

    mysql> select * from dep;

    +-----+--------------+--------------------------+

    | id | dep_name | dep_desc |

    +-----+--------------+--------------------------+

    | 2 | sb_教学部 | 造程序员部门!!!! |

    | 3 | 技术部 | 技术有限部门 |

    | 100 | nb_外交部 | 国际形象大使部门 |

    +-----+--------------+--------------------------+

    删除:先删除关联表中的记录,再删除被关联表中的记录

    #先删除emp表中的dep_id为2的记录

    delete from emp where dep_id=2;

    #再删除dep表中id为2的记录

    delete from dep where id=2;

    mysql> select * from emp;

    +----+------+------+--------+--------+

    | id | name | age | gender | dep_id |

    +----+------+------+--------+--------+

    | 5 | owen | 95 | female | 3 |

    +----+------+------+--------+--------+

    mysql> select * from dep;

    +-----+--------------+--------------------------+

    | id | dep_name | dep_desc |

    +-----+--------------+--------------------------+

    | 3 | 技术部 | 技术有限部门 |

    | 100 | nb_外交部 | 国际形象大使部门 |

    +-----+--------------+--------------------------+

    2035cd0bec18c60e5251ad16d6461970.png

    0a1ded4a503595337bb5e4f84c93a03d.png

    级联更新与级联删除

    on update cascade 级联更新

    on delete cascade 级联删除

    意思是 当更新或删除主键表时,那么外键表也会跟随一起更新或删除

    再以上述例子为例:

    创建两张表:

    #被关联表:

    dep:

    create table dep(

    id int primary key auto_increment,

    dep_name varchar(16),

    dep_desc varchar(255));

    #关联表:

    emp:

    create table emp(

    id int primary key auto_increment,

    name varchar(6),

    age int,

    gender enum('male', 'female'),

    dep_id int not null,

    foreign key(dep_id) references dep(id)

    on update cascade

    on delete cascade

    );

    #插入数据:必须先插入被关联表(dep)的数据,再插入关联表(emp)的数据。

    #插入dep的数据:

    insert into dep(dep_name,dep_desc) values(

    'nb_外交部', '国际形象大使部门'),

    ('sb_教学部', '造程序员部门!!!!'),

    ('技术部', '技术有限部门');

    #插入emp的数据:

    insert into emp(name, age, gender, dep_id)

    values('tank', 17, 'male', 1),

    ('jason', 70, 'male', 2),

    ('sean', 50, 'male', 2),

    ('egon', 88, 'male', 2),

    ('owen', 95, 'female', 3);

    更新数据或删除数据:

    #更新记录:

    update dep set id=200 where id=1;

    mysql> select * from dep;

    +-----+--------------+--------------------------+

    | id | dep_name | dep_desc |

    +-----+--------------+--------------------------+

    | 2 | sb_教学部 | 造程序员部门!!!! |

    | 3 | 技术部 | 技术有限部门 |

    | 200 | nb_外交部 | 国际形象大使部门 |

    +-----+--------------+--------------------------+

    #删除记录

    delete from dep where id=200;

    mysql> select * from dep;

    +----+--------------+------------------------+

    | id | dep_name | dep_desc |

    +----+--------------+------------------------+

    | 2 | sb_教学部 | 造程序员部门!!!! |

    | 3 | 技术部 | 技术有限部门 |

    +----+--------------+------------------------+

    (二) 一对一

    一对一:两张之间的关系 一一对应,将一张数据量比较大的表,拆分成两张表。

    例如:数据量比较大的用户表

    用户表:多个用户 能否 对应 一个用户详情信息? 不能

    用户详情表:多个用户详情信息 能否 对应 一个用户? 不能

    两张表之间都没有多对一的关系,就是“一对一”的外键关系。

    总表:user_info

    id, name, age, gender, hobby, id_card

    分表:user:

    id , name, age, detail_id(外键)

    分表:detail:

    id, gender, hobby, id_card

    注意:1、user与detail表建立了 一对一的外键 关系。

    2、foreign key 应该建在 使用频率较高的一方。

    aaa6efcfdfe72059df7f8869ff1d72ce.png

    创建表:

    #被关联表

    detail

    create table detail(

    id int primary key auto_increment,

    gender enum('male', 'female'),

    hobby varchar(32),

    id_card char(18)

    );

    #关联表

    user

    create table user(

    id int primary key auto_increment,

    name varchar(6),

    age int,

    detail_id int unique,

    foreign key(detail_id) references detail(id)

    on update cascade

    on delete cascade

    );

    #插入数据

    insert into detail(gender, hobby,id_card) values

    ('male','play ball',9527),

    ('female','rap',909),

    ('female','吃鸡',101),

    ('female','被吃鸡',404),

    ('female','HSNM',500

    );

    insert into user(name,age,detail_id) values

    ('tank', 17,3),

    ('egon', 77,5),

    ('jason', 87,1),

    ('sean', 97,2),

    ('owen', 107,4);

    # 报错,一对一,关系必须 一一对应

    insert into user(name,age,detail_id) values ('baohan',19,3);

    mysql> select * from user;

    +----+-------+------+-----------+

    | id | name | age | detail_id |

    +----+-------+------+-----------+

    | 1 | tank | 17 | 3 |

    | 2 | egon | 77 | 5 |

    | 3 | jason | 87 | 1 |

    | 4 | sean | 97 | 2 |

    | 5 | owen | 107 | 4 |

    +----+-------+------+-----------+

    mysql> select * from detail;

    +----+--------+-----------+---------+

    | id | gender | hobby | id_card |

    +----+--------+-----------+---------+

    | 1 | male | play ball | 9527 |

    | 2 | female | rap | 909 |

    | 3 | female | 吃鸡 | 101 |

    | 4 | female | 被吃鸡 | 404 |

    | 5 | female | HSNM | 500 |

    +----+--------+-----------+---------+

    (三) 多对多

    多对多:一个作者可以写多本书,一本书也可以有多个作者,双向的一对多,即 多对多的外键关系

    关联方式:foreign key + 一张新的表

    要把book_id和author_id设置成唯一

    6e01aca6d7206f5100099cf9744e1caf.png

    - 多对多:

    也必须站在两张表的位置去思考;

    - 错误示范:

    - 创建book表

    create table book(

    id int primary key auto_increment,

    title varchar(20),

    price int,

    book_content varchar(255),

    author_id int,

    foreign key(author_id) references author(id)

    on update cascade

    on delete cascade

    );

    - 创建author表

    create table author(

    id int primary key auto_increment,

    name varchar(16),

    age int,

    book_id int,

    foreign key(book_id) references book(id)

    on update cascade

    on delete cascade

    );

    - 问题: 无法知道哪张表是被关联表

    b798c3552ea59661834121a4f498fa05.png

    正确示范:

    - 利用第三张表,为两张表建立“多对多外键关系”。

    book:

    create table book(

    id int primary key auto_increment,

    title varchar(20),

    price int,

    book_content varchar(255));

    author:

    create table author(

    id int primary key auto_increment,

    name varchar(16),

    age int);

    book2author:

    create table book2author(

    id int primary key auto_increment,

    book_id int,

    author_id int,

    foreign key(book_id) references book(id)

    on update cascade

    on delete cascade,

    foreign key(author_id) references author(id)

    on update cascade

    on delete cascade

    );

    #插入数据

    - book

    insert into book(title, price, book_content) values

    ('金瓶mei', 199, '讲述朦胧时光的小故事'),

    ('python从入门到断气', 2000, '学习如何一夜秃头'),

    ('三体', 200, '跟着大佬进入宇宙奇幻世界');

    - author

    insert into author(name, age) values

    ('egon', 68),

    ('jason', 88);

    - book2author:

    insert into book2author(book_id, author_id) values

    (1, 1),

    (1, 2),

    (2, 2),

    (3, 1);

    # 报错, 插入的数据,book_id, author_id必须存在

    insert into book2author(book_id, author_id) values (4, 4);

    # 更新或删除

    # 更新

    - update book set price=6666 where id=1;

    - update book set id=4 where id=1;

    # 删除

    - delete from book where id=4;

    展开全文
  • 精选30+云产品,助力企业轻松上云!>>> 表与表...

    精选30+云产品,助力企业轻松上云!>>> hot3.png

    表与表之间的关系

    1.表关系的概念

    在现实生活中,实体与实体之间肯定是有关系的。比如:员工和部门,老师和学生等。那么我们在设计表的时候,就应该体现出表与表之间的这种关系。

    表关系描述
    一对一相对使用比较少。如:员工表,简历表,护照表。
    一对多最常用的表关系。如:部门和员工。
    多对多学生选课表 和 学生表,一门课程可以有多个学生选择,一个学生可以选择多个课程。

    2. 一对一

    一对一(1:1) :在实际的开发中应用不多,因为一对一可以创建成一张表。

    • 两种建表原则:
    一对一的建表原则描述
    外键唯一主表的主键和从表的外键(唯一),形成主外键关系,外键唯一unique
    外键是主键主表的主键和从表的主键,形成主外键关系

    3. 一对多

    一对多(1:n) 例如:班级和学生,部门和员工,客户和订单,分类和商品

    • 建表原则:

    在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键

    3.1 一对多关系案例

    3.1.1 需求:一个旅游线路分类中有多个旅游线路

    • 界面:

    • 表与表的关系:

    3.1.2 具体操作

    -- 创建旅游线路分类表 tab_category
    -- cid 旅游线路分类主键,自动增长
    -- cname 旅游线路分类名称非空,唯一,字符串 100
    create table tab_category (
      cid int primary key auto_increment,
      cname varchar(100) not null unique
    )
    -- 添加旅游线路分类数据:
    insert into tab_category (cname) values ('周边游'), ('出境游'), ('国内游'), ('港澳游');
    select * from tab_category;
    -- 创建旅游线路表 tab_route
    /*
    rid 旅游线路主键,自动增长
    rname 旅游线路名称非空,唯一,字符串 100
    price 价格
    rdate 上架时间,日期类型
    cid 外键,所属分类
    */
    create table tab_route(
      rid int primary key auto_increment,
      rname varchar(100) not null unique,
      price double,
      rdate date,
      cid int,
      foreign key (cid) references tab_category(cid)
    )
    -- 添加旅游线路数据
    INSERT INTO tab_route VALUES(NULL, '【厦门+鼓浪屿+南普陀寺+曾厝垵 高铁 3 天 惠贵团】尝味友鸭面线 住 1 晚鼓浪屿', 1499,'2018-01-27', 1),
    (NULL, '【浪漫桂林 阳朔西街高铁 3 天纯玩 高级团】城徽象鼻山 兴坪漓江 西山公园', 699, '2018-02-22', 3),
    (NULL, '【爆款¥1699 秒杀】泰国 曼谷 芭堤雅 金沙岛 杜拉拉水上市场 双飞六天【含送签费 泰风情 广州往返 特价团】', 1699, '2018-01-27', 2),
    (NULL, '【经典•狮航 ¥2399 秒杀】巴厘岛双飞五天 抵玩【广州往返 特价团】', 2399, '2017-12-23',2),
    (NULL, '香港迪士尼乐园自由行 2 天【永东跨境巴士广东至迪士尼去程交通+迪士尼一日门票+香港如心海景酒店暨会议中心标准房 1 晚住宿】', 799, '2018-04-10', 4);
    
    select * from tab_route;
    

    4. 多对多

    多对多(m:n) 例如:老师和学生,学生和课程,用户和角色

    • 建表原则:

    多对多关系建表原则: 需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向各自一方的主键。

    4.1 多对多关系案例

    4.1.1 需求:一个用户收藏多个线路,一个线路被多个用户收藏

    • 界面:

    • 表与表的关系:

    对于多对多的关系我们需要增加一张中间表来维护他们之间的关系

    4.1.2 具体操作:

    /*
    创建用户表 tab_user
    uid 用户主键,自增长
    username 用户名长度 100,唯一,非空
    password 密码长度 30,非空
    name 真实姓名长度 100
    birthday 生日
    sex 性别,定长字符串 1
    telephone 手机号,字符串 11
    email 邮箱,字符串长度 100
    */
    create table tab_user (
      uid int primary key auto_increment,
      username varchar(100) unique not null,
      password varchar(30) not null,
      name varchar(100),
      birthday date,
      sex char(1) default '男',
      telephone varchar(11),
      email varchar(100)
    )
    -- 添加用户数据
    INSERT INTO tab_user VALUES
    (NULL, 'cz110', 123456, '老王', '1977-07-07', '男', '13888888888', '66666@qq.com'),
    (NULL, 'cz119', 654321, '小王', '1999-09-09', '男', '13999999999', '99999@qq.com');
    
    select * from tab_user;
    /*
    创建收藏表 tab_favorite
    rid 旅游线路 id,外键
    date 收藏时间
    uid 用户 id,外键
    rid 和 uid 不能重复,设置复合主键,同一个用户不能收藏同一个线路两次
    */
    create table tab_favorite (
      rid int,
      date datetime,
      uid int,
      -- 创建复合主键
      primary key(rid,uid),
      foreign key (rid) references tab_route(rid),
      foreign key(uid) references tab_user(uid)
    )
    -- 增加收藏表数据
    INSERT INTO tab_favorite VALUES
    (1, '2018-01-01', 1), -- 老王选择厦门
    (2, '2018-02-11', 1), -- 老王选择桂林
    (3, '2018-03-21', 1), -- 老王选择泰国
    (2, '2018-04-21', 2), -- 小王选择桂林
    (3, '2018-05-08', 2), -- 小王选择泰国
    (5, '2018-06-02', 2); -- 小王选择迪士尼
    
    select * from tab_favorite;
    

    5. 表与表之间的关系小结

    表与表的关系关系的维护
    一对一1) 特殊一对多,从表中的外键设置为唯一。2)从表中的主键,也是外键
    一对多主外键的关系
    多对多中间表,两个一对多

    OK,这篇就到这里

    展开全文
  • MySQL数据库表与表之间关系

    千次阅读 2019-09-06 21:52:54
    用户user和 订单orders 一个用户可以对应多个订单 ------ 用户和订单是一对多的关系 多个订单可同时对应一个用户 ------ 订单和用户是多对一的关系 通过创建外键约束的方式使两个关联起来,外键创建在多的...

    一对多(多对一)

    用户和订单
    用户表user和 订单表orders
    在这里插入图片描述在这里插入图片描述

    一个用户可以对应多个订单 ------ 用户和订单是一对多的关系
    多个订单可同时对应一个用户 ------ 订单和用户是多对一的关系

    通过创建外键约束的方式使两个表关联起来,外键创建在多的一方

    创建外键的方式

    • 在创建表的时候直接创建出外键约束:foreign key(uid) references user(uid)
    create table user(
    	uid int(4) primary key,
    	uname varchar(6)
    );
    create table orders(
    	oid int(4) primary key,
    	price double(6,2),
    	uid int(4),
    	foreign key(uid) references user(uid)
    );
    
    • 如果已经创建好了表,想要添加外键约束
    ##constraint 关联约束
    ##forrign key 外键
    ##references  参考参照
    alter table orders add constraint foreign key(uid) references user(uid);
    

    一对一

    人和身份证号码
    一个人只能有一个身份证号码;一个身份证号码也只代表一个人
    person表和IDcard表
    在这里插入图片描述
    在这里插入图片描述

    • pid和cid都代表的是身份证号编号
    • 这里person表中pid为主键,IDcard表中cid为主键,cid作为person表的外键,这样就形成的关联关系:副表中要么没有主表中对应数据,要么只会有一条

    多对多

    学生和课程
    一个学生可以学习多门课程,一门课程也可以被多个人学习
    这时要借助中间表建立学生表与课程表之间的关系
    在这里插入图片描述 在这里插入图片描述
    在这里插入图片描述

    展开全文
  • MySql数据库之表与表关系

    千次阅读 2018-03-23 20:44:59
    关系一:一对一 例如:QQ表与QQDetail,我们首先要找到主从关系,从而确定外键约束。在这两张中,QQ有两个属性(qqidpassword);另一张为QQDetail有三个属性(qqid,nameaddress)。我们可以认为,...

    关系一:一对一

        例如:QQ表与QQDetail表,我们首先要找到主从关系,从而确定外键约束。在这两张表中,QQ表有两个属性(qqid与password);另一张表为QQDetail表有三个属性(qqid,name与address)。我们可以认为,一个QQ号只能对应一份含具体信息的表格。这两个表中,QQ表的qqid和QQDetail表的qqid都设为主键约束(数据唯一且不能不为null)。

       Table Data:

                                                                                     

        代码如下:

        

    CREATE TABLE QQ(
    	qqid INT PRIMARY KEY,
    	PASSWORD VARCHAR(50) 
    );
    
    CREATE TABLE QQDetail(
    	qqid INT PRIMARY KEY,
    	NAME VARCHAR(50),
    	address VARCHAR(50) 
    );
    
    ALTER TABLE QQDetail ADD CONSTRAINT fk_QQ_QQDetail FOREIGN KEY(qqid) REFERENCES QQ(qqid);
    

        对应视图如下:

        

    关系二:一对多(多对一)

        最为常见的就是一对多!一对多和多对一,要看你从哪个角度出发。stu1为学生表,score1为成绩表。stu1和score1的关系,从stu1来看就是一对多,而从score1的角度来看就是多对一!这种情况都是在多方创建外键(此案例中score1创建外键)!

        Table Data:

                                                                                       

        代码如下:

        

    CREATE TABLE stu1(
             sid VARCHAR(10) PRIMARY KEY,
             sname VARCHAR(50) NOT NULL
    );
    	
    CREATE TABLE score1(
    	sid VARCHAR(10),
    	score DOUBLE,
    	courseid INT	
    );
    	
    ALTER TABLE score1 ADD CONSTRAINT fk_stu1_score1 FOREIGN KEY (sid) REFERENCES stu1(sid);
    

    视图如下:


    关系三:多对多

        例如:stu2和teacher表,即一个学生可以有多个老师,而一个老师也可以有多个学生。这种情况通常需要创建中间表来处理多对多关系。例如再创建一张表tea_stu2_real表,给出两个外键,一个相对stu2表的外键,另一个相对teacher表的外键。

        代码如下:

    CREATE TABLE teacher (
            tid INT PRIMARY KEY,
        	tname VARCHAR(20)
    );
    
    CREATE TABLE stu2(
            sid INT PRIMARY KEY,
            sname VARCHAR(20)
    );
    
    CREATE TABLE tea_stu2_real(
            tid INT,
            sid INT
    );
    	
    ALTER TABLE tea_stu2_real ADD CONSTRAINT fk_tid FOREIGN KEY(tid) REFERENCES teacher(tid);
    	
    ALTER TABLE tea_stu2_real ADD CONSTRAINT fk_sid FOREIGN KEY(sid) REFERENCES stu2(sid);
    

        视图如下:

        

    展开全文
  • mysql表关系

    千次阅读 2021-01-19 23:33:19
    与表之间关系"""把所有数据都存放于一张表的弊端1.组织结构不清晰2.浪费硬盘空间3.扩展性极差"""#上述的弊端产生原因类似于把代码全部写在一个py文件中,你应该怎么做?>>>解耦合!将上述一张表拆成...
  • MySQL Workbench查看表之间关系

    千次阅读 2021-03-09 15:30:45
    一 新建Model 二 增加一个图表 三 点击反向引擎 四 按照connection Options等提示继续下列操作 结果 综上所述即可查看表与表之间关系
  • **语法:**alter table 从 add [constraint] [外键名称] foreign key (从外键字段名) references 主 (主的主键); [外键名称] 用于删除外键约束的,一般建议“_fk”结尾 alter table 从 drop foreign ...
  • 查看MySQL数据库表与表关系

    千次阅读 2020-06-03 07:26:00
    使用SQLyog连接数据库;注意不要填写"数据/库",否则报错1049 登录后:点击架构设计器,软后拖拽到设计器中 使用Navicat连接数据库;点击查看--ER图表 ...
  • 先看结果,默认是展开的,我手动把折叠了 那么如何实现呢 先点击这里 然后通过向导来创建即可,一直到finish就行了 转载于:https://www.cnblogs.com/jnhs/p/11439554.html...
  • mysql 数据库关系图怎么查看?

    千次阅读 2021-01-18 19:57:59
    展开全部mysql数据库间的关系图可以通过navicat查看:第一步:下载navicat打开;第二步:点击navicat界面最右下角标注的按钮即可62616964757a686964616fe78988e69d8331333365646263查看关系图。最新的MySQL ...
  • mysql学习(5):多表之间关系

    千次阅读 2016-12-31 17:29:53
    mysql相互关联的表之间存在一对一,一对多(多对一),多对多的关系。 1,一对一的关系 这种关系即多个具有相同的主键,实际中用的并不多,因为完全可以将这种关系的合并为同一张。 2,一对多(多对一)的关系 ...
  • 2.1 多表之间关系 1、一对一(了解): 如,人和身份证; 2、一对多(多对一): 如,部门和员工,一个部门有多个员工,一个员工只能对应一个部门; 3、多对多: 如,学生和课程,一门课程可以被多个学生...
  • 画数据库表之间关系

    千次阅读 2021-01-19 04:28:43
    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云...提供数据库优化方面专业建议,在业务高峰期用户共同保障数据库系统平...
  • 与表之间一般存在三种关系,即一对一,一对多,多对多关系。 下面分别就三种关系讲解数据库相关设计的思路和思考过程。 一、一对一关系 例如,下面的一张表,保存了人的相关信息,有男有女,要求查处所有的...
  • mysql与表之间关系

    千次阅读 2021-04-13 20:04:34
    当你写表的时候有没有出现过一条数据要打很多行,而且有很多重复的,看起来也极其不舒服,而且也不方便。 如: 张三 计算机成绩100分,如果再多加几科成绩,会是什么样子呢? 根据表图就能发现,除了...表与表之间
  • 与表之间关系(1)一对一:一对一关系就如球队与球队所在地址之间关系,一支球队仅有一个地址,而一个地址区也仅有一支球队。这种情况需要找出主从关系,即谁是主表,谁是从表。有了球队才有球队地址区,所以...
  • MySQL表与

    千次阅读 2021-01-18 18:00:08
    通过上一篇随笔,笔者了解到,实体...主表与若同一个数据库中,B的外键A的主键相对应,则A为主,B为从。假设学生(学号,姓名,性别,专业号),专业(专业号,专业名称),则学生中的专业号...
  • mysql城市 包含省,市,区,城镇,包括相互之间关系,可直接导入数据库使用
  • 有没有人知道在mysql数据库中怎么查看mysql数据库里面各表之间关系图?
  • 本文尝试用实际开发中常见的电商场景来厘清其背后需要的数据库中表与表之间关系,目的在于能够分析出常见购物网站的中实体间的关系,并能创建出对应的表。 文章目录1.实体间常见关系2.数据库实现(一对多)2.1一对...
  • MySQL临时表与内存

    千次阅读 2019-01-13 12:03:18
    MySQL中有三种虚拟:临时、内存、视图。下面简单介绍一下临时和内存的使用。 1、临时 MySQL临时在我们需要保存一些临时数据时是非常有用的。临时MySQL 3.23版本中添加。临时只在当前连接...
  • 在数据库中,如果两个之间关系为,多对多的关系,如:“学生和课程”,一个学生的可以选多门课,一门课也可以被多门学习选;根据数据库的设计原则,应当形成第三张关联步骤1:创建三张数据Student ,...
  • ER图和关系模型到MySQL数据库

    千次阅读 2020-03-02 21:01:12
    本篇主要介绍了MySQL数据库从ER图到关系模型,再到数据库的创建过程及其结构的修改。通过本篇的学习,可以掌握以下内容: ● 应用ER图和关系模型创建数据库 ● 数据库结构的修改 1、mooc数据库的ER...
  • 一对一关系一对一的表关系: 例如:qq和qq的详尽信息建立外键的时候 如果明确主从关系? 被引用的是主,外键在从中建立 关联主实现代码如下: CREATE TABLE qq( qqid int PRIMARY KEY, password varchar(100)...
  • MySQL表设计

    千次阅读 2019-03-08 19:07:10
    2. 结构设计 3.主键 4.选择数据类型 更小的通常更好 简单就好 尽量避免NULL 数据类型尽量用数字型,数字型的比较比字符型的快很多 (1).整数类型 (2). 实数类型 (3).字符串类型 (4). BLOB和TEXT类型 (5)...
  • 有没有人知道在mysql图形化界面怎么看表之间关系模型图,就是各表之间关系,用图展示出来?
  • mysql与表之间创建外键关系

    千次阅读 2011-04-21 23:44:00
    ##右连接(上面相反) SELECT DISTINCT * FROM user_info RIGHT JOIN user_card ON user_info.user_id=user_card.user_id ##内连接(ON等同于where) SELECT DISTINCT * FROM user_info INNER JOIN user_card ON...
  • 数据库服务器:MySQL安装后,会成为一个windows服务,这个windows服务可以看做是数据库服务器。用CMD登录MySQL,此时CMD就是一个客户端。 所谓安装数据库服务器,只是在机器上装了一个数据库管理程序,这个管理程序...
  • MySQL联合查询

    千次阅读 2021-02-08 06:01:09
    MySQL这方面的资料比较少,手边的项目用到了多的联合查询,干脆备忘下来。select a.*,b.*,c.* from aINNER JOIN b ON a.cid=b.cidINNER JOIN c ON c.cid=a.cid where a.cid=2 and a.id =3SELECT e_link.link_id, e...
  • MySQL页跟索引的关系

    千次阅读 2019-08-09 18:11:16
    innodb咋存储数据时,数据会存储在页中,每页是16kb 页:存放了很多数据,它是innodb最小单元的存储空间 没有索引时查询 带索引时查询

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 256,266
精华内容 102,506
关键字:

mysql表与表之间的关系

mysql 订阅