精华内容
下载资源
问答
  • 对主表和相关表建立关系
    千次阅读
    2021-01-19 07:46:43

    alter table stu5 add constraint 编号 foreign key (bh) references stu2 (bh) on delete restrict on update restrict;

    说明:

    stu2和stu5是两张表,“编号”为字段bh的约束名(是stu5表中的一个属性),bh是stu2表中的主键,而bh并不是stu5的主键,那么则称stu2为主表,stu5为从表。

    注意:

    1.新建外键,子表外键字段列值必须是父表引用列值的子集【值都不能包含怎么做引用列?】。2.引用列字段必须是索引或主键或联合主键(索引值或联合主键值可重复,唯一主键不能重复)【不做索引怎么关联?】

    2.删除和更新有四种设置方式

    (1)cascade:级联,当父表更新、删除,子表所有同值记录会同步更新和删除【修改子表,必须保证修改后B表外键字段的值依然能在A表中找到,否则会报错。】(2)set null:置空,当父表更新、删除的时候,字表会把外键字段变为null,所以这个时候设计表的时候该字段要允许为null,否则会出错

    (3)restrict:父表在删除和更新记录的时候,要在子表中检查是否有有关该父表要更新和删除的记录,如果有,则不允许删除个更改

    (4)no action:和restrict一样

    (5)SET DEFAULT指定如果试图删除某一行,而该行的键被其他表的现有行中的外键所引用,则组成被引用行中的外键的所有值将被设置为它们的默认值。目标表的所有外键列必须具有默认值定义,此约束才可执行。如果某个列可为空值,并且未设置显式的默认值,则会使用 NULL 作为该列的隐式默认值。因 ON DELETE SET DEFAULT 而设置的任何非空值在主表中必须有对应的值,才能维护外键约束的有效性。

    ————————————————

    版权声明:本文为CSDN博主「瘦不下来的吴彦祖」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

    原文链接:https://blog.csdn.net/zzy296753977/article/details/80848613

    在MySQL中,如果两个表存在主外关系,则有五种引用操作,分别是 cascade、no action、restrict、set null和set default,有很多人对no action的restrict区别搞不清楚,其实在MySQL中是一样的,原因如下:restrict是在修改或者删除之前去检查从表中是否有对应的数据,如果有,拒绝操作,而no action是来源标准的sql,在有些数据库中,会延迟检查,即在修改或者删除完以后去检查从表中是否有对应的数据,如果有,拒绝操作,但是在MySQL中,外键约束都会立即检查,所以两者等价。需要注意的是,set default只是MySQL 解析器认可,但是InnoDB和NDB 拒绝在定义表时,出现ON DELETE SET DEFAULT or ON UPDATE SET DEFAULT 语句。

    ————————————————

    版权声明:本文为CSDN博主「Infen」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

    原文链接:https://blog.csdn.net/infen/article/details/84009724

    ————————————————

    版权声明:本文为CSDN博主「fullStackChenZF」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

    原文链接:https://blog.csdn.net/fullStackChenZF/article/details/78031192

    删除外键命令:alter table 表名 drop foreign key 外键约束名称 //删除外键alter table stu2 drop foreign key 编号 //实例

    更多相关内容
  • 之间建立关系

    千次阅读 2021-03-02 19:04:26
    1、之间的关系可以分为三种:一多,多多,一一的关系  建立表关系的原因?: 2、 针对数据量大的情况下讨论  1:的结构不清晰(一张中涵盖多种数据)  2:浪费硬盘空间(有重复的数据)  3:的...

    一、表的概念与分类

    主要通过外键关键字:pirmary key 来建立连系
    1、表与表之间的关系可以分为三种:一对多,多对多,一对一的关系
      建立表关系的原因?:
    2、 针对数据量大的情况下讨论
      1:表的结构不清晰(一张表中涵盖多种数据)
      2:浪费硬盘空间(有重复的数据)
      3:表的扩展性极差(不便于增加,修改,删除等操作)

    二、表与表的关系:一对多

    例如:一个公司的员工和部门之间的连系,把员工和部门分别抽离出来分析
      (1)先站在员工表看能否有多个员工对应一个部门>>>一个部门能否有多个员工(可以)
      (2)再站在部门表看能否有多个部门对应一个员工>>>一个员工能否属于多个部门(不可以)

    结论:员工表和部门表之间的关系是“一对多”的关系(一对多或者多对一)
    在这里插入图片描述
    根据id索引来寻找匹配的内容先通过列表的形式,把一张完整的表切分出来,分析它们之间的关系多对一还是多对多就可以看出情况,换位思考!

    foreign key:外键约束
      1、创建表的时候,必须先创建被关联的表
      2、插入数据的时候,也必须先插入被关联表的数据(先后顺序不能颠倒,不然会报错!)
    代码如下:
      建表:

    # 先建被关联的表
    
    create table dep(
        id int primary key auto_increment,
        dep_name varcher(32),
        dep_desc varcher(128)
    
    );
    
    # 后建数据多的表
    create table emp(
    id int primary key auto_increment,
    emp_naem varchar(64),
    emp_gender enum('male','female','others') default 'male',
    dep_id int,
    foreidn key(dep_id) references dep(id)
    
    );
    

    插入数据:

    insert into dep(dep_name,dep_desc) values('外交部','搞外交'),
            ('教学部','教书育人'),
            ('技术部','技术能力有限部门')
            ;
    
    insert into emp(emp_name,dep_id) values('jack',1),
         ('reso',2),
         ('gelen','3'),
         ('james',2);
    

    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210302190842410.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzUyNTEyOTM4,size_16,color_FFFFFF,t_70
    在这里插入图片描述
    在这里插入图片描述
    2、修改表数据
      通过主键和对应的关系可以对表中的记录增加,修改,删除等操作,也是有先后顺序的

    update dep set id=200 where id=1; # 修改id
    update emp set dep_id =300 where id=1;
    
    delect from dep where id=3; # 删除id3的数据记录
    

    外键虽然能够强制的建立表的关系,但是也会给表的数据之间增加了相关的约束

    1.删除数据的时候  先删员工表的数据 再删部门表的数据
        delete from emp where id = 4;
        delete from dep where id = 3;
    2.级联更新级联删除
    

    3、级联更新、级联删除

    create table dep(
    id int primary key auto_increment,
    dep_name varchar(32),
    dep_desc varchar(128)
    
    );
     
    caeate table emp(
    id int primary key auto_increment,
    emp_name carchar(64),
    emp-gender enum('male','female','othres') default 'male',
    foreign key(dep_id) references dep(id)
    on update cascade
    on delete cascade # 联级修改 删除
    );
    
    # 插入数据
     insert into dep (dep_name,dep_desc) values('外交部',‘搞外交’),(’教学部‘,’教书育人‘),(’技术部‘,’技术能力有限部门‘)
    insert into emp(emp_name,dep_id) values('jack',2),('rose',1),('kevin',3),('galen',1);
    
    # 修改 删除数据
    update dep set id=200 where id=3;
    delect from dep where id=2;
    

    在这里插入图片描述

    三、多对多的关系

    例如:书籍和作者的关系

    换位思考:站在书籍的角度和作者的角度思考,多本书可以被一个作者写,多个作者也能写一本书,

    条件成立,属于多对多,外键已经不能够表达这种关系了,必须通过建立第三方表来记录两者之间的关系
    在这里插入图片描述
    先建两种普通的表 不需要设置外键

    create table book(
        id int primary key auto_increment,
        title varchar(32),
        price int
    );
    create table author(
    id int primary key auto_increment,
    name varcher(32),
    age int
    
    );
    # 手动创建第三方表
    create table book2author(
        id int primary key auto_increment,
        book_id int,
        foreign key(book_id) references book(id)
        on uptade cascade
        on delete cascade , # 直接建立级联
    
        author_id int,
        foregn key (author_id) refrrences  author(id)
        on update cascade
        om delete cascade  #
     
    );
    

    插入数据:

    insert into book(title,price) values('百年孤独'60),(‘丰乳肥臀’,90),(‘疯狂说英语’,129);
    
    insert into auther (nane,age) values('西亚·马尔克斯'98),(‘莫言’,87),(‘李阳’,53);
    
    
    insert into book2auther(book_id,age) values(1,2),(2,3),(2,1),(1,3);
    

    在这里插入图片描述
    **

    四、一对一关系

    **
      1:一对一的场景,当数据量过大的时候,可以考虑把表给拆分开

    2:如老男孩的客户和学生关系(没交学费前和交学费后)

    3:姓名、电话,地址
      在这里插入图片描述
    一对一的关系:外键字段都可以建在任意一方,一般建议把外键字段建立在查找频繁的那一方

    创建表:

    # 左表的一条记录唯一对应右表的一条记录,反之也一样
    
    create table customer(
        id int primary key auto_increment,
        name char(20) not null,
        qq char(10) not null,
        phone char(16) not null
    );
    
    create table student(
        id int primary key auto_increment,
        class_name char(20) not null,
        customer_id int unique, #该字段一定要是唯一的
        foreign key(customer_id) references customer(id) #外键的字段一定要保证unique
        on delete cascade
        on update cascade
    );
    # 三种外键关系都是用foreign key,区别在于如何使用以及其他条件限制即可做出三种关系
    

    了解知识点:
      修改表的完整语句

    1.修改表的完整语句
                1. 修改表名  
                      ALTER TABLE 表名 
                                          RENAME 新表名;
                2. 增加字段
                      ALTER TABLE 表名
                                          ADD 字段名  数据类型 [完整性约束条件…],
                                          ADD 字段名  数据类型 [完整性约束条件…];
                      ALTER TABLE 表名
                                          ADD 字段名  数据类型 [完整性约束条件…]  FIRST;  # 直接移到最前面
                      ALTER TABLE 表名 
                                          ADD 字段名  数据类型 [完整性约束条件…]  AFTER 字段名;  # 寻找插哪个字段的后面                    
                3. 删除字段
                      ALTER TABLE 表名 
                                          DROP 字段名;
                4. 修改字段  # modify只能改字段数据类型完整约束,不能改字段名,但是change可以!
                      ALTER TABLE 表名 
                                          MODIFY  字段名 数据类型 [完整性约束条件…];
                      ALTER TABLE 表名 
                                          CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…];
    
    # 查询语句执行的结果也是一张表,可以看成虚拟表
    
        # 复制表结构+记录 (key不会复制: 主键、外键和索引)
        create table new_service select * from service;
    
        # 只复制表结构
        select * from service where 1=2;        //条件为假,查不到任何记录
    
        create table new1_service select * from service where 1=2;  
    
        create table t4 like employees;
    
    展开全文
  • 数据库(三) 表建立联系-外键

    千次阅读 2021-02-06 11:48:42
    1.理解之间建立关系的必要性比如我们建立了一张个人信息,把所有人的信息都存在这张表中这张表中有老师他们所属的部门,并且不同的部门工作也是不同的所有数据存放在一张中的弊端1.组织结构不清晰2.浪费...

    1.理解表与表之间建立关系的必要性

    比如我们建立了一张个人信息表,把所有人的信息都存在这张表中

    f6211d2dad946d1470b2b9fdbf7e8bb4.png

    这张表中有老师和他们所属的部门,并且不同的部门工作也是不同的

    所有数据存放在一张表中的弊端

    1.组织结构不清晰

    2.浪费存储空间

    3.扩展性差

    针对这个问题我们可以将他们分成两张表,一张专门记录个人信息,一张专门记录部门和部门工作

    建立表的时候我们需要进行分析

    1.站在个人信息表的角度:一个老师能否属于多个部门,不能!!!

    2.站在部门表的角度:一个部门能否有多个老师,可以!!!

    那这两张表的关系就是老师表多对一部门表,也可以这么说,部门表一对多老师表

    在表中是如何表示这种关系,需要找出一个两者中独一无二的东西并且把他们连接起来,我们在部门表中创建一个部门的id,在老师表中添加这个属性并指向部门id

    如下表所示

    26852d2a6109b87bc4adea41999d3b60.png

    这样我们就可以把两者联系起来了,但是老师的dep_id我们还是可以随意的修改,应该有一个限制,限制他们只能和部门表的id相同才对

    2.外键(foreign key)

    什么是外键

    如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字。

    外键的作用

    保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。 使两张表形成关联,外键只能引用外表中的列的值或使用空值。外键拥有能使两张表阻止执行和级联执行的特点

    所以要把两张有关联的表联系起来需要用到外键(foreign key)

    阻止执行

    从表插入新行,其外键值不是主表的主键值便阻止插入;

    从表修改外键值,新值不是主表的主键值便阻止修改;

    主表删除行,其主键值在从表里存在便阻止删除(要想删除,必须先删除从表 的相关行);

    主表修改主键值,旧值在从表里存在便阻止修改(要想修改,必须先删除从表的相关行)。

    级联执行

    主表删除行,连带从表的相关行一起删除;

    主表修改主键值,连带从表相关行的外键值一起修改。两种方法提供给用户选择。无论选取哪种方法,从表里都不会有多余行。从另一个角度理解,用拒绝同一事物在从表中的标志与主表不一致来实现与主表中的标志一致。

    3.表与表关系之一对多

    还是使用上面老师表和部门表的例子,两者是一对多的关系

    e52e115a9b38ba035c18df40a7389f7c.png

    1.在创建表的时候,我们需要先建被关联的表dep,才能建关联表teacher

    #先创建部门表dep

    create table dep(

    id int primary key auto)increment,

    dep_name char(16),

    duty varchar(16)

    );#再创建老师表teacher

    create table teacher(

    id int primary key auto_increment,

    gender enum('male','female') not null default 'male',

    dep_id int,

    foreign key(dep_id) references dep(id)

    );

    2.在插入记录时,必须先插被关联的表dep,才能插关联表teacher

    #先插入被关联表的记录

    insert dep(dep_name,duty) values

    ('教学部','教书育人'),

    ('德育部','培养品德'),

    ('体育部','强身健体');#再插入关联表的记录

    insert teacher(name,dep_id) values

    ('sxc',1),

    ('zzp',2),

    ('zzj',3),

    ('lzx',1),

    ('yzy',1);

    0d0146ad39f4e42654a7024dc8f63c29.png

    在我们创建完成之后,发现修改或者删除teacher表中的dep_id或者dep表中的id都无法成功,删除dep表中的数据也无法成功

    44f0b0221d3510af76ec4305aece4afa.png

    这是因为dep表中的数据还跟teacher表中的数据相关联,我们想要操作数据,比如:需要先删除教学部对应所有的员工,再删除教学部

    这样操作数据变得非常的复杂,能否有一种简单的方式,不需要考虑关联表的情况,比如我删除一个部门,那么这个部门的所有员工都跟着被删除

    3.修改和删除都需要考虑关联关系>>>同步更新和同步删除

    #把原表删除后新建两张表#还是需要先建被关联表dep

    create table dep(

    id int primary key auto_increment,

    dep_name char(10),

    duty char(10)

    );#再创建关联表teacher

    create table teacher(

    id int primary key auto_increment,name char(10),

    gender enum('male','female') not null default 'male',

    dep_id int,foreign key(dep_id) references dep(id)

    on update cascade

    on delete cascade

    );

    #先插入被关联表的记录

    insert dep(dep_name,duty) values

    ('教学部','教书育人'),

    ('德育部','培养品德'),

    ('体育部','强身健体');#再插入关联表的记录

    insert teacher(name,dep_id) values

    ('sxc',1),

    ('zzp',2),

    ('zzj',3),

    ('lzx',1),

    ('yzy',1);

    这样我们删除一个部门之后这个部门所有的人都会跟着被删除

    更新部门后,对应老师表中的部门字段也会跟着改变

    1af8394ac467522cae9eb904e54ecd8f.png

    4.表与表关系之多对多

    我们建立一个图书表和作者表,思考两者的关系

    96ea7e40fd666f158082c35e1fed85f7.png

    站在两张表的角度进行分析

    1.站在图书表:一本书可不可以有多个作者,可以!!!

    2.站在作者表:一个作者可不可以写多本书,可以!!!

    那他们两者对于对方都是多对一的关系,那我们称这种关系为多对多

    在创建一对多关联表时,必须得先创建被关联表(没有外键的),才能创建关联表(有外键的),在多对多关联表中,两者就都需要使用外键关联,这样先创建谁都不合适

    我们必须创建第三张表,并且该表需要拥有两个字段分别代表这两个表中的id

    #因为需要创建第三张表关联两张表,所以两张表没有创建的先后顺序

    create table book(

    id int primary key auto_increment,

    name char(16),

    price int

    );

    create table author(

    id int primary key auto_increment,

    name char(10)

    );#为两张表插入数据

    insert book(name,price) values

    ('book1',100),

    ('book2',466),

    ('book3',55),

    ('book4',211);

    insert author(name) values

    ('sxc'),

    ('zzj'),

    ('zzp');#插入第三张表,将另两张表的id作为外键

    create table author2book(

    id int primary key auto_increment,

    author_id int,

    book_id int,

    foreign key(author_id) references author(id)

    on update cascade

    on delete cascade,

    foreign key(book_id) references book(id)

    on update cascade

    on delete cascade

    );#为第三张表插入对应的记录

    insert author2book(author_id,book_id) values

    (1,1),

    (1,4),

    (2,1),

    (2,3),

    (3,2),

    (3,3);

    注意:两张关系表虽然有关联,但不是直接关联的,而是和第三张表关联,所以在删除表中数据的时候,另外一张表是没有影响的,只有第三张我们自己定义的表是级联更新,级联删除的

    dbe91c6848058786c24b33b1222ac2a7.png

    5.表与表关系之一对一

    我们建立一个学生表和信息表,思考两者的关系

    c72f30f4ca9b5b35a7cb1965a63ce492.png

    还是站在两张表的角度进行分析

    1.一个学生可不可以有多个详细信息,不可以!!!

    2.一个详细信息能否属于多个学生,不可以!!!

    那么这两者互相都不是多对一的关系,这有两种情况

    1.这两者没有关联

    2.两者是一对一的关系

    在创建一对一的关联表时,添加的外键可以放在两者任意一张表中,但是我们一般都放在比较常用的那一方

    #先创建没有外键的表

    create table stu_info(

    id int primary key auto_increment,

    stu_id int unique,

    phone int

    );#再创建另一个表

    create table student(

    id int primary key auto_increment,

    name varchar(16),

    age int,

    stu_info_id int unique,

    foreign key(stu_info_id) references stu_info(id)

    on update cascade

    on delete cascade

    );

    注意:创建外键时,一定要表明该键是唯一的,即unique,这样才能表示一对一的关系

    #先在无外键的表中插入记录

    insert stu_info(stu_id,phone) values

    (101,110),

    (102,120),

    (103,130);#然后在有外键的表中插入记录

    insert student(name,age,stu_info_id) values

    ('jason',18,1),

    ('egon',26,2),

    ('tank',24,3);

    c0d7ce926b6655178f9ae7c1f6be7e68.png

    d4bb0082bfb8cb5fa0da9761da33cc68.png

    5.如何找出两表之间的关系

    分析步骤:#1、先站在左表的角度去找

    是否左表的多条记录可以对应右表的一条记录,如果是,则证明左表的一个字段foreign key 右表一个字段(通常是id)#2、再站在右表的角度去找

    是否右表的多条记录可以对应左表的一条记录,如果是,则证明右表的一个字段foreign key 左表一个字段(通常是id)#3、总结:#多对一:

    如果只有步骤1成立,则是左表多对一右表

    如果只有步骤2成立,则是右表多对一左表#多对多

    如果步骤1和2同时成立,则证明这两张表时一个双向的多对一,即多对多,需要定义一个这两张表的关系表来专门存放二者的关系#一对一:

    如果1和2都不成立,而是左表的一条记录唯一对应右表的一条记录,反之亦然。这种情况很简单,就是在左表foreign key右表的基础上,将左表的外键字段设置成unique即可

    6.修改表

    #mysql对大小写不敏感!!!

    语法:1. 修改表名

    ALTER TABLE 表名

    RENAME 新表名;2. 增加字段

    ALTER TABLE 表名

    ADD 字段名 数据类型 [完整性约束条件…],

    ADD 字段名 数据类型 [完整性约束条件…];

    ALTER TABLE 表名

    ADD 字段名 数据类型 [完整性约束条件…] FIRST;

    ALTER TABLE 表名

    ADD 字段名 数据类型 [完整性约束条件…] AFTER 字段名;3. 删除字段

    ALTER TABLE 表名

    DROP 字段名;4. 修改字段 #modify只能改字段数据类型完整约束,不能改字段名,但是change可以!

    ALTER TABLE 表名

    MODIFY 字段名 数据类型 [完整性约束条件…];

    ALTER TABLE 表名

    CHANGE 旧字段名 新字段名 旧数据类型 [完整性约束条件…];

    ALTER TABLE 表名

    CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…];

    7.复制表

    #查询语句执行的结果也是一张表,可以看成虚拟表

    #复制表结构+记录 (key不会复制: 主键、外键和索引)

    create table new_service select * fromservice;#只复制表结构

    select * from service where 1=2; //条件为假,查不到任何记录

    create table new1_service select* from service where 1=2;

    create table t4 like employees;

    36

    展开全文
  • 在SQL Server中,如果建立主表和关系,则以下情况描述错误的是( )。 1 A:子相关项目的数据在主表中必须存在 B:先删除子才能删除主表 C:若主表相关项的数据更改了,则子对应的数据项也应当随之...
  • Access数据库中 主表—子建立

    万次阅读 2014-06-24 19:47:54
    Access数据库中的“主表-子”,这其实是数据关系的问题。

    Access数据库中的“主表-子表”,这其实是数据表的关系的问题。通常,一个数据库应用系统包括多个表。为了把不同表的数据组合在一起,必须建立表间的关系。建立表之间的关系,不仅建立了表之间的关联,还保证了数据库的参照完整性。

    1. 理解参照完整性

    参照完整性是一个规则,Access使用这个规则来确保相关表中记录之间关系的有效性,并且不会意外地删除或者更改相关数据。

    (1)在符合下列所有条件时,可以设置参照完整性:

    ①来自于主表的匹配字段是主键(两个表建立“一对多”的关系后,“一”方的表称为主表,“多”方的表称为子表)。

    ②两个表中相关联的字段都有相同的数据类型。

    (2)使用按照完整性时要遵守如下规则:

    在两个表之间设置参照完整性后,如果在主表中没有相关的记录,就不能把记录添加到子表中。反之,在子表中存在与之相匹配的记录时,则在主表中不能删除该记录。

    2. 创建关系

    不同表之间的关联是通过主表的主键字段和子表的外键字段来确定的。

    示例:建立学生基本信息表和课程信息表,然后建立学生表和课程表之间的关系。

    ①建立学生表和课程表就不用说了,操作很简单。在这里,学生表包括的字段有:学号、姓名、性别、出生日期、政治面貌、入学成绩、系别ID,课程表包括字段有:学科ID、课程号、学号。可以看出,这两个表之间的关联是“学号”,我们可以看出,一个学生可以选多个课程,所以学生表和课程表是“一对多”的关系,其中学生表中的“学号”为主键,课程表中“学号”为外键。

    ②建立表之间的关系

    1)在“数据库工作”选项卡的“关系”组中,单击“关系”对应的按钮,打开“关系”窗口。

    2)在“关系”窗口中,在右键菜单中,选择“显示表”,然后选中“学生表”和“课程表”,点击“添加”按钮,则将两个表添加到关系窗口中了。

    3)在“学生表”中,选中“学号”字段,按住左键不松开,拖到“选课表”的“学号”字段上,放开左键,这时会弹出“编辑关系”对话框,选中“实施参照完整性”和“级联更新相关字段”复选框,如下图:


    4)然后单击“创建”按钮,关闭“编辑关系”对话框,返回到“关系”窗口。则会看到学生表和课程表之间建立的关系。


    这是,打开“学生表”,则会看到“主表-子表”的关系,并且在学生表的每行都有个“+”号,点击可以打开子表信息。



    PS:以上内容参考了《Access2010入门与实例教程》,若想详细学习Access数据库,这本书是个不错的选择!

    展开全文
  • 主键外键是把多个组织为一个有效的关系数据库的粘合剂。主键外键的设计物理数据库的性能可用性都有着决定性的影响。必须将数据库模式从理论上的逻辑设计转换为实际的物理设计。而主键外键的结构是这个...
  • 而外键是用于在两个中的数据之间建立和加强链接的一列或多列的组合,可控制可在外键中存储的数据。本教程操作环境:windows7系统、mysql5.8版、Dell G3电脑。数据库之间通过外键来建立联系。主键约束...
  • 从相互关联的一个或多个中删除记录的操作可能会出现一些问题,如果在建立关系时仅选中了“实施参照完整性”(建立一多关系都要选中该项),当删除的记录在“多”方的中存在与“一”方表中相匹配的记录时,...
  • 表关系(一一,一多,多多)

    千次阅读 2016-08-25 20:28:08
    例如,如果设计一个可以跟踪图书信息的数据库,您需要创建一个名为 titles 的,它用来存储有关每本书的信息,例如书名、出版日期出版社。您也可能保存有关出版社的信息,诸如出版社的电话、地址邮政编码。...
  • 知识点:数据库相关概念、创建数据库的方法、设计数据库、向数据库中插入数据、建立不同数据库之间的关系、删除数据库。 1、数据表相关的一些概念 1.1 数据库里的数据是如何保存的? 数据库...
  • 依次画数据库建立的每张、视图等进入了画图状态,看到界面的左边,选中“实体”这个画图模型,按住鼠标左键不放,直接拖动到中间的带有标尺的画图区域接下来主要的工作就放在设置的属性上了。...
  • mysql – 在三个之间创建关系

    千次阅读 2021-01-25 17:12:47
    What I’ve thought about here is using the ID from the junction table ‘pricelist_products’ as a foreign key within the prices table, but this feels ...联结的目的是在多关系中唯一定义每个组合(最...
  • 要求:请安装Kingbase数据库软件,在数据库软件中创建一个自己名字的模式,在该模式下创建学生关系数据、课程、选课表。 插入一些数据,尝试查询、更新、删除 二、相关原理与知识 (完成实验所用到的相关原理...
  • 维度,实体,事实之间的关系

    万次阅读 多人点赞 2018-07-02 10:30:15
    这段时间在慢慢学习有关维度建模的一些东西,其中有个问题当时被老大挖了个坑就跳了进去几天都没爬出来,这个坑主要在于我维度,实体,事实这三种之间的关系和概念认知比较模糊,当时老大要我去设计一个...
  • 数据库考完了,这门科目说实话并不难,我这门学科理解也不算深入,平时总觉得差不多就好,可最后就是差一点,希望诸君谨记,功夫在平时,这只是个人见解,且为诸君戏! 提示:以下是本篇文章正文内容,下面案例可...
  • navicat怎么看表关系

    万次阅读 2021-01-25 20:03:45
    今天需要分析一个数据库,然后想看看各个之间的关系,所以需要查看之间的关系图,专业术语叫做ER关系图。默认情况下,Navicat显示的界面是这样的:软件将当做一个对象,然后显示了所有的。仅仅通过这些...
  • foreign key 功能 : 建立表之间的某种约束的关系,由于这种关系的存在,能够让之间的数据,更加的完整,关连性更强,为了具体说明创建如下部门表和人员。 创建部门 CREATE TABLE dept (id int ...
  • 关系型数据库之间可存在的联系/关系(relationship)有三种:一一、一多。
  • 聚簇索引:MySQLInnoDB一定会建立聚簇索引,把实际数据行和相关的键值保存在一块,这也决定了一个只能有一个聚簇索引,即MySQL不会一次把数据行保存在二个地方。1)InnoDB通常根据键值(primarykey)进行聚簇2)如果...
  • 本篇博客讲解(子查询)非相关子查询/相关子查询,一一,一多,多一,多的的关系!准备:首先我们创建一列sex。再为部分行设置好值0(女)或者1(男);delete from stud where age=26; 删除年龄为26的行。 ...
  • (2)分析关系模式 说明:在创建这些前,我们需要进行分析这些应该有哪些属性,通过关系模式写出来,后面创建数据很重要。这些该有的属性不唯一,这里以我列举的一种方式为。 班级(班级号,班级...
  • 例如,publishers  titles 之间具有一关系:每个出版社出版很多书,但是每本书名只能出自一个出版社。 只有当一个相关列是一个主键或具有唯一约束时,才能创建一关系。 多关系 在...
  • 数据库实现(一多)2.1一多情况的引入2.2利用外键实现一多2.3数据库实现(一多)2.3.1不设置外键的情况2.3.2为(多)表和从(一)之间添加外键2.3.3添加外键约束后的2个特点(重要)2.3.4小...
  • 外键关联的数据删除策略

    千次阅读 2020-06-11 07:50:00
    针对上述需求,有三种解决方案: 方案1: 在不更改主表和约束条件的前提下,先删除映射主表主键的相对应的子中数据行后,删除主表中数据,接着对主表批量insert操作,因第一步子中已删除的数据业务还需使用...
  • MySQL-一- 创建数据

    千次阅读 2021-01-20 01:20:05
    创建数据库2.1 创建学生student2.2创建成绩score2.3创建课程course2.4创建教师 teacher注:这里教师姓名可以为null3.练习插入数据3.1 向学生表里添加数据3.2向成绩中添加数据3.3向课程中添加数据3.4向...
  • 数据库和表建立一、实验目的二、实验内容要求2.1、数据库的创建 2.2、的创建、查看、修改删除 2.2.1.的创建 2.2.2.向创建的中添加数据记录 2.2.3.修改结构(找到操作的方法即可,不需要真正地修改...
  • 一篇文章带你彻底搞懂搞懂MySQL中的主键外键约束 本文主要使用Navicat for MySQL 通过编程代码测试 来分析SQL语言的常用约束条件:主键约束 外键约束。
  • OSPF邻接关系建立过程

    千次阅读 2020-12-23 20:58:29
    Init:在此状态下,路由器已经从邻居收到了Hello报文,但是自己的router-id不在所收到的Hello报文的邻居列表中,表示尚未与邻居建立双向通信关系。在此状态下的邻居要被包含在自己重新产生的Hello报文中,并且发送。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 342,990
精华内容 137,196
热门标签
关键字:

对主表和相关表建立关系