首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【数据库】MySQL进阶一、主外讲解

MySQL进阶主外讲解 1.什么是外: 主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性 外:是另一表的主键, 外可以有重复的, 可以是空值,用来和其他表建立联系用的...Id=Dept_id,而Dept_id就是员工表中的外:因为员工表中的员工需要知道自己属于哪个部门,就可以通过外Dept_id找到对应的部门,然后才能找到部门表里的各种字段信息,从而让二者相关联。...所以说,外一定是在从表中创建,从而找到与主表之间的联系;从表负责维护二者之间的关系。 2.外的使用需要满足下列的条件:(这里涉及到了InnoDB的概念) 1....MySQL常见引擎有两种:InnoDB和MyISAM,后者不支持外。 2. 建立外关系的对应列必须具有相似的InnoDB内部数据类型。 3....CASCADE(级联):如果主表的记录删掉,则从表中相关联的记录都将被删掉。 SET NULL:将外设置为空。

2K70
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    day05_MySQL学习笔记_02

    REFERENCES(references:引用/参照/关联)       第二种添加外约束的方式:在表格创建时没有添加外约束,之后通过修改表格添加外约束。       ...REFERENCES(references:引用/参照/关联)       第二种添加外约束的方式:在表格创建时没有添加外约束,之后通过修改表格添加外约束。...特别注意:ON相当于WHERE,一般多用于主外条件关联。              不是主外条件也可以啊!说白了,ON就是筛选的条件。       内连接的特点:查询结果必须满足条件。...,三张表的连接查询就一般会有两个主外关系,       所以在大家不是很熟悉连接查询时,首先要学会去除无用笛卡尔积,那么就是用主外关系作为条件来处理。       ...如果两张表的查询,那么至少有一个主外条件,三张表连接至少有两个主外条件。

    2.1K20

    MySQL中创建外的错误:1215 Cannot add the foreign key constraint

    引言: MySQL中经常会需要创建父子表之间的约束,这个约束是需要建立在主外基础之上的,这里解决了一个在创建主外约束过程中碰到的一个问题。 1....问题的提出 创建两个表: product: 商品表 sealer: 供货商表  相应的SQL如下:    product: DROP TABLE IF EXISTS...product.sid 至 sealer.id,进行父子表的主外关联。...问题分析 主外更多的是某表的主键与子表的某个列进行关联,要求是具备相同的数据类型和属性,问题会不会出现在这里?...总结 之所以出现1215的问题,是由于主外之间的数据类型不一致造成的,以后类似问题,皆可按此处理。

    2.4K50

    深入mysql关联问题的详解--Java学习网

    今儿继续再看老师给推荐的深入浅出mysql数据库开发这本书,看到innodb数据库的外关联问题时,遇到了一个问题,书上写的是可以对父表进行修改,从而同步到子表的外上去,可是自己的实验却是没有能够。...CONSTRAINT `city_ibfk_1` FOREIGN KEY (`country_id`) REFERENCES `country` (`country_id`)) 上面的问题是说因为有关联的存在...然后自己又重新看了下书本,发现自己的sql语句中没有innodb的外约束方式(cascade,set null,no action,restrict),感觉这就是自己出问题的地方。...可是怎么加入关联方式呢,上网找了好半天也没有合适的方法。就自己找呗,就通过老师说的方法,?...网上的说法是:字段类型和外的索引 这里是重新建立一张表icity,结果可以了,总结可能是因为字段类型的问题,可是我的alter的问题还是没有解决呢: 代码如下: mysql> create

    1K40

    mysql(入门基础了解部分,数据库的基本概念)

    MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL是开源的,所以你不需要支付额外的费用。...四种:一对一关联、一对多关联、多对多关联、自我引用 一对一关联(one-to-one) 在实际的开发中应用不多,因为一对一可以创建成一张表。...举例:设计学生表:学号、姓名、手机号码、班级、系别、身份证号码、家庭住址、籍贯、紧急联系人、...拆为两个表:两个表的记录是一一对应关系。...基础信息表(常用信息):学号、姓名、手机号码、班级、系别档案信息表(不常用信息):学号、身份证号码、家庭住址、籍贯、紧急联系人、...两种建表原则:外唯一:主表的主键和从表的外(唯一),形成主外关系...外是主键:主表的主键和从表的主键,形成主外关系。  一对多关系(one-to-many) 常见实例场景:客户表和订单表,分类表和商品表,部门表和员工表。 举例:员工表:编号、姓名、...

    84530

    MySQL全部知识点(2)

    5 外 主外是构成表与表关联的唯一途径! 外是另一张表的主键!例如员工表与部门表之间就存在关联关系,其中员工表中的部门编号字段就是外,是相对部门表的外。...例如再创建一张表t_stu_tea表,给出两个,一个相对t_stu表的外,另一个相对t_teacher表的外。...这个条件大多数情况下都是使用主外关系去除。...两张表的连接查询一定有一个主外关系,三张表的连接查询就一定有两个主外关系,所以在大家不是很熟悉连接查询时,首先要学会去除无用笛卡尔积,那么就是用主外关系作为条件来处理。...如果两张表的查询,那么至少有一个主外条件,三张表连接至少有两个主外条件。 3 自然连接 大家也都知道,连接查询会产生无用笛卡尔积,我们通常使用主外关系等式来去除它。

    1.9K70

    表与表之间关系

    注意: 一对多的创建原则: 主外关连 1.2.2、一对一关系 在一对一关系中,A 表中的一行最多只能匹配于 B 表中的一行,反之亦然。如果相关列都是主键或都具有唯一约束,则可以创建一对一关系。...注意: 一对一的创建原则: 外唯一:主表的主键和从表的外(唯一),形成主外关系,外唯一 UNIQUE 外是主键:主表的主键和从表的主键,形成主外关系 1.2.3、多对多关系 在多对多关系中,...2、一对多应用 创建一对多关系:主外关连 新华出版社(Python爬虫、Linux) 海燕出版社(操作系统、数学) 摆渡出版社(英语、网页设计) 大众出版社() 案例: 这是一个书和出版社的一个例子...,书要关联出版社(多个书可以是一个出版社,一个出版社也可以有好多书)。...) ); #作者表(被关联表) create table author( id int primary key auto_increment, name char(5) ); #作者和书表(关联表)

    1.4K30

    java开发学习-数据库(1)

    MySQL 是开源的,所以你不需要支付额外的费用。 Mysql两个小插曲: Mysql之父[U1] Mysql的兄弟- mariaDB 国外软件产品特点 mariaDB[U2] 简介 ?...、或者编写两张表的触发器来实现 数据库的主键和外类型必须要一致 设置参照完整性后,外当中的内值,必须得是主键的内容 有对应参照完整性的两张表格,在对他们进行数据插入、更新、删除的过程中,系统都会被将修改的与另外一张表格进行对照...5.9.4.3.1.主外关联 方式1:添加表时候添加主外关联 CREATE TABLE tb_student( id int PRIMARY KEY, name VARCHAR(50),...PRIMARY KEY, score int, CONSTRAINT sc_st_fk FOREIGN KEY(sid) REFERENCES tb_student(id)) 当两张表进行了主外关联后...( tid int PRIMARY KEY, name VARCHAR(100)) CREATE TABLE tea_stu_rel( tid int, sid int) -- 修改表结构添加主外

    1.3K50

    impdp导入中碰到的两个问题

    (2) 主外关联 ORA-31693: Table data object "TEST"."...callout ORA-02291: integrity constraint (TEST.FK_ITE_REF_PSR) violated - parent key not found 由于有些表之间是存在主外关联的...,expdp导出的时候选择了data_only仅导出数据,impdp导入的时候会因未插入主键记录而插入外记录,出现ORA-02291的错误,对于这种情况可以选择先禁止主外关联,导入后再恢复关联。...constraint_name||';'  from user_constraints WHERE CONSTRAINT_TYPE='R'; NOVALIDATE参数不会验证已存储的数据,但未来再插入的记录则会遵循主外关联的关系...对于有主外关联的数据,如果选择data_only仅导出数据,那么可在导入前禁止约束,这样导入过程不会受到主外关联的影响,导入后可以恢复约束,保证约束的正确。

    1.6K30

    MySQL数据库:第八章:连接查询

    回退至Mysql数据库理论与实战#进阶7:连接查询理解:查询语句中涉及到的字段来自于多张表,将这种查询称为多表连接查询语法:select 查询列表 from 表名1,表名2;引入案例:select name...boyfriend_id = boys.id;笛卡尔乘积:现象:表1和表2连接,结果为两表的完全连接结果,数据不正确表1m行,表2 n行,结果为:m*n 行产生原因:没有有效的连接条件解决办法:添加两个表的连接条件...★ 找到两个表的关联关系。...两个表的关联列的意思肯定是一样,但名称不一定一样!一般通过主外列进行关联。...连接查询的分类 ★:sql92语法:内连接等值连接非等值连接自连接外连接(支持的不太好,mysql压根不支持)sql99语法:内连接等值连接非等值连接自连接外连接左外连接右外连接全外连接(mysql不支持

    16830

    六千字带你快速上手操作MySQL

    alter table 【表名】change 原版字段名,新版字段名 属性 删除字段 删除无用字段 alter table 【表名】 drop 字段名 主外设置 我们使用主外的方式来保证我们的数据完整性...​ 概念及语法见如下表格 概念 语法 添加主键 保证数据完整性 ALTER TABLE 表名 ADD CONSTRAINT 主键名PRIMARY KEY 表名(字段名); 添加外 保证数据完整性...ALTER TABLE 表名ADD CONSTRAINT 设置外键名称 FOREIGN KEY(关联字段名) REFERENCES 关联表名字(字段名); ​ 注意事项:mysql的引擎支持问题,innoDB...储存类型支持外,MYISAMD的储存类型不支持外 ​ 复合主键创建方式: alter table result aDD constraint PK_RESULT primary key (studentNo...alter table 表名 add constraint 外键名 foreign key (外字段) references 关联表名 (关联字段) alter table student add

    88120

    MySQL

    编辑的内容会有text或longtext进行存储 longtext 超大文本 3、日期型 名称 取值范围 datetime 内部以日期格式存放数据 , 是以系统的时间为准 timestamp 时间戳 , 是以mysql...有外的表是子表,没有外的表是主表,一般情况下主表的数据信息会相对于少于子表(这不是绝对的)。主要还是看有没有关联字段(外)。 设置主外关系是在子表上进行设置....主外关系的名称,一般都是全大写,以FK为前缀,多个单词之间用下划线(_)分隔。 设置完主外关系之后,子表中添加数据时的外字段中的数据在主表中必须存在,如果不存在将会引发异常。...两表之间逻辑关联,降低数据冗余): 外的创建两种方式: 1) 第一种建表时没有指定,后期进行添加 语法: alter table 子表名 add constraint FK_ 外键名称 foreign...key (gradeid) references grade(gradeid) 2) 第二种在建表的时候指定主外关系 mysql> create table result( -> studentNo

    17120

    数据库概述

    这种类型的数据库是最古老的数据库类型,关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。 关系型数据库以行(row) 和列(column) 的形式存储数据,以便于用户理解。...四种:一对一关联、一对多关联、多对多关联、自我引用 一对一关联(one-to-one) 在实际的开发中应用不多,因为一对一可以创建成一张表。...两种建表原则: 外唯一:主表的主键和从表的外(唯一),形成主外关系,外唯一。 外是主键:主表的主键和从表的主键,形成主外关系。...one-to-many) 一对多建表原则:在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键 多对多(many-to-many) 要表示多对多关系,必须创建第三个表,该表通常称为联接表,它将多对多关系划分为两个一对多关系...将这两个表的主键都插入到第三个表中。

    72820

    PawSQL独家秘笈:表连接消除优化让SQL性能翻倍

    内连接消除 适用条件: 存在主外等值连接 主表的主键是查询中唯一被引用的主表列 优化方式: 移除主表及连接条件 将主表主键的引用替换为外表外 必要时添加外非空条件 2....外连接消除 适用条件: 左外连接或右外连接 连接条件包含主外等值连接 内表主键是查询中唯一被引用的内表列 优化方式: 移除内表及所有连接条件 将内表主键的引用替换为外表外 ️ 主流数据库的现实挑战...尽管连接消除技术如此高效,但主流数据库如MySQL和PostgreSQL却还未拥抱这一优化。...以一个实例为证: 原始SQL:两个关联 SELECT orders.* FROM customer RIGHT JOIN orders ON c_custkey = o_custkey AND

    8910
    领券