精华内容
下载资源
问答
  • 详解MySQL外键设置
    2021-01-18 18:22:17

    MySQL外键设置是学习MySQL数据库过程中不能不提的,下面就会为您详细介绍MySQL外键设置的方法,希望对您学习MySQL外键设置方面能有所帮助。

    外键的作用:

    保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。 使两张表形成关联,外键只能引用外表中的列的值!

    例如:

    a b 两个表

    a表中存有 客户号,客户名称

    b表中存有 每个客户的订单

    有了外键后

    你只能在确信b 表中没有客户x的订单后,才可以在a表中删除客户x

    建立外键的前提:本表的列必须与外键类型相同(外键必须是外表主键)。

    指定主键关键字:foreign key(列名)

    引用外键关键字:references (外键列名)

    事件触发限制: on delete和on update , 可设参数cascade(跟随外键改动), restrict(限制外表中的外键改动),set Null(设空值),set Default(设默认值),[默认]no action

    例如:

    outTable表 主键 id 类型 int

    创建含有外键的表:

    create table temp(

    id int,

    name char(20),

    foreign key(id) references outTable(id) on delete cascade on update cascade);

    说明:把id列 设为外键 参照外表outTable的id列 当外键的值删除 本表中对应的列筛除 当外键的值改变 本表中对应的列值改变。

    【编辑推荐】

    【责任编辑:段燃 TEL:(010)68476606】

    点赞 0

    更多相关内容
  • mysql建立外键

    2021-01-20 00:11:20
    建立外键的前提:本表的列必须与外键类型相同(外键必须是外表主键)。 外键作用: 使两张表形成关联,外键只能引用外表中的列的值! 指定主键关键字: foreign key(列名) 引用外键关键字: references <外键...
  • 详解MySQL 外键约束

    2020-12-14 08:20:16
    外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显示建立; 外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而...
  • MySQL中,InnoDB引擎类型的表支持了外键约束。外键的使用条件:1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但...外键的定义语法: 代码如下:[CONSTRAINT symbol] FOREIGN KEY [i
  • MySQL外键(详解)

    2021-11-17 17:13:28
    MySQL外键(详解) 什么是外键:    外键是指引用另外一个表中的一列或多列数据,被引用的列应该具有主键约束或者唯一性约束(简单来说外键是另一个表的主键或者唯一约束)。外键可以有重复的, 可以是空值,用来...

    MySQL外键(详解)

    什么是外键:
       外键是指引用另外一个表中的一列或多列数据,被引用的列应该具有主键约束或者唯一性约束(简单来说外键是另一个表的主键或者唯一约束)。外键可以有重复的, 可以是空值,用来建立和加强两个表数据之间的连接
    在这里插入图片描述

    一、主外键关系
    在上图上涉及的两个表中,学生信息表 (stuInfo)为主表,学生
    成绩表(score)为从表;那么主从表之间有什么关系呢?

    1、当主表中没有对应的记录时,不能将记录添加到子表
      --------学生成绩表中不能出现学生信息表中没有的学号

    2、不能更改主表中的值而导致子表中的记录孤立
      --------学生信息表中的id变化了,学生成绩表中的id也要随着发生改变

    3、子表存在与主表对应的记录,不能从主表中删除该行
      --------不能把部门表中的数据删除

    4、删除主表前,先删子表
      --------先删除成绩表、后删除学生信息表

    二、外键的使用
    外键的使用需要满足下列的条件:
    1、两张表必须都是InnoDB表,并且它们没有临时表。

    2、建立外键关系的对应列必须具有相似的InnoDB内部数据类型。

    3、建立外键关系的对应列必须建立了索引。

    创建外键的两种方式:
    方式一:在创建表的时候进行添加
    方式二:表已经创建好了,继续修改表的结构来添加外键。

    在创建表的时候添加外键
    表1:

    create table stuInfo(	
    		Scode int primary key,   --学生的学号
    		Sname char(10),    --学生的姓名
    		Saddress varchar(50),    --学生的住址
    		Sgrade int,    --学生所在班级
    		Semail varchar(50),    --学生的邮箱地址
    		Sbrith date	
    )DEFAULT CHARSET='utf8';	
    

    表2:

    create table score(
    studentID	int,
    coureseID int,	
    score int,	
    scoreID int primary key,	
    foreign	key(studentID) references stuInfo(Scode)  --添加外键 )
    DEFAULT charset='utf8';
    

    建表以后添加外键:
    语法:alter table 表名称 add foreign key (列名称) references
    关联表名称(列名称);
    例:

    alter table stuInfo	add foreign key (scode) references score(studentID);
    

    三、删除外键
    语法:alter table 表名称 drop foreign key 外键名称;
    例:

    alter table score drop foreign key score_ibQk_1;	
    

    注意:如果没有在建表的时候标明外键名称,
    可以通过:

    show create table 表名;
    

    进行查看外键名称


    请添加图片描述

    感谢每一个认真阅读我文章的人!!!
    如果下面这些资料用得到的话可以直接拿走:

    1、自学开发或者测试必备的完整项目源码与环境

    2、测试工作中所有模板(测试计划、测试用例、测试报告等)

    3、软件测试经典面试题

    4、Python/Java自动化测试实战.pdf

    5、Jmeter/postman接口测试全套视频获取

    我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。如果在学习或工作中遇到问题可以直接点击此链接进群询问,群里也会有大神帮忙解答,也可以手动添加群号 743262921 备注222

    展开全文
  • SQL数据库外键代码

    千次阅读 2021-01-18 19:15:29
    子表(test_student)创建一个外键, alter表TEST_STUDENT 添加约束fk_class_id外键(CLASS_ID) 参考test_class(CLASS_ID); 扩展资料: 1.高可用性: 分布式组织的可扩展性,决策支持的数据仓库功能,与...

    展开全部

    1.创建主测试表(test_62616964757a686964616fe78988e69d8331333433633338class),

    Createtabletest_class(class_idnumber,class_namevarchar2(20));

    6cfb49041caa724b74503b70ade528a1.png

    2.创建test100子表(学生表test_student),

    Createtabletest_student(stu_idnumber,stu_namevarchar2(200),class_idnumber);

    a0afe500f9106ab463ab7492326372fe.png

    3.向主表(类表test_class)添加唯一的主键,

    altertableTEST_CLASS

    Addconstraintpk_class_idprimarykey(CLASS_ID);

    7f28808f03e682b553830503990689dc.png

    4.子表(test_student)创建一个外键,

    alter表TEST_STUDENT

    添加约束fk_class_id外键(CLASS_ID)

    参考test_class(CLASS_ID);

    8c2db0c43f0bf8373e300d8e843eb784.png

    扩展资料:

    1.高可用性:

    分布式组织的可扩展性,决策支持的数据仓库功能,与许多其他服务器软件紧密相关的集成,良好的性价比,等等。

    2.数据管理和分析的灵活性:

    允许单位在快速变化的环境中做出冷静的反应,从而获得竞争优势。从数据管理和分析的角度来看,将原始数据转换为商业智能并充分利用Web的机会是很重要的。

    作为一个完整的数据库和数据分析软件包,SQLServer为新一代企业业务应用的快速发展,为企业赢得核心竞争优势打开了胜利之门。

    展开全文
  • mysql外键

    2018-03-28 10:06:23
    学习的时候需要用到外键,但是上课时学的都忘记了,就百度了一下,感觉不错,和大家分享一下。如果表A的主关键字是表B中...这里以MySQL为例,总结一下3种外键约束方式的区别和联系。 这里以用户表和用户组表为例,...

    学习的时候需要用到外键,但是上课时学的都忘记了,就百度了一下,感觉不错,和大家分享一下。

    如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表。外键是用来实现参照完整性的,不同的外键约束方式将可以使两张表紧密的结合起来,特别是修改或者删除的级联操作将使得日常的维护工作更加轻松。这里以MySQL为例,总结一下3种外键约束方式的区别和联系。

      这里以用户表和用户组表为例,这是一个典型的多对一关系,多个用户对应于一个用户组。

      首先创建用户组表:

      创建用户组表

      create table t_group (

      id int not null,

      name varchar(30),

      primary key (id)

      );

      并插入两条记录:

      插入记录

      insert into t_group values (1, 'Group1');

      insert into t_group values (2, 'Group2');

      下面创建用户表,分别以不同的约束方式创建外键引用关系:

      1、级联(cascade)方式

      级联方式

      create table t_user (

      id int not null,

      name varchar(30),

      groupid int,

      primary key (id),

      foreign key (groupid) references t_group(id) on delete cascade on update cascade

      );

      参照完整性测试

      insert into t_user values (1, 'qianxin', 1); #可以插入

      insert into t_user values (2, 'yiyu', 2); #可以插入

      insert into t_user values (3, 'dai', 3); #错误,无法插入,用户组3不存在,与参照完整性约束不符

      约束方式测试

      insert into t_user values (1, 'qianxin', 1);

      insert into t_user values (2, 'yiyu', 2);

      insert into t_user values (3, 'dai', 2);

      delete from t_group where id=2; #导致t_user中的2、3记录级联删除

      update t_group set id=2 where id=1; #导致t_user中的1记录的groupid级联修改为2

      2、置空(set null)方式

      置空方式

      create table t_user (

      id int not null,

      name varchar(30),

      groupid int,

      primary key (id),

      foreign key (groupid) references t_group(id) on delete set null on update set null

      );

      参照完整性测试insert into t_user values (1, 'qianxin', 1); #可以插入

      insert into t_user values (2, 'yiyu', 2); #可以插入

      insert into t_user values (3, 'dai', 3); #错误,无法插入,用户组3不存在,与参照完整性约束不符

      约束方式测试

      insert into t_user values (1, 'qianxin', 1);

      insert into t_user values (2, 'yiyu', 2);

      insert into t_user values (3, 'dai', 2);

      delete from t_group where id=2; #导致t_user中的2、3记录的groupid被设置为NULL

      update t_group set id=2 where id=1; #导致t_user中的1记录的groupid被设置为NULL

    展开全文
  • mysql外键设置

    2012-08-29 09:43:32
    mysql外键的设置,使用。添加外键的格式: ALTER TABLE yourtablename ADD [CONSTRAINT 外键名] FOREIGN KEY [id] (index_col_name, ...) REFERENCES tbl_name (index_col_name, ...) [ON DELETE {CASCADE | ...
  • Mysql添加外键

    2021-08-09 22:27:49
    以下是我的代码部分 CREATE TABLE `student` ( `id` INT(3) NOT NULL AUTO_INCREMENT COMMENT '用户ID', `name` VARCHAR(5) NOT NULL DEFAULT '匿名' COMMENT '用户姓名', `pwd` VARCHAR(20) NOT NULL DEFAULT '...
  • mysql外键详解

    2021-01-19 06:43:21
    1.1、MySQL中“键”和“索引”的定义相同,所以外键和主键一样也是索引的一种。不同的是MySQL会自动为所有表的主键进行索引,但是外键字段必须由用户进行明确的索引。用于外键关系的字段必须在所有的参照表中进行...
  • 主要介绍了MySQL中主键与外键的区别和联系,是MySQL入门学习中的基础知识,需要的朋友可以参考下
  • mysql之外键

    2021-01-28 01:36:31
    类似于我们将所有的代码都写在用一个py文件内,在确立表与表之间的关系时,一定要换位思考(即两方都考虑周全之后才能得出结论)。以员工表和部门表为例:1.站在员工表: 看能否有多个员工对应一个部门(即:一个部门...
  • Mysql 外键级联

    2021-01-18 21:51:41
    如果表A的主关键字是表B中的字段,则该字段...外键主要用来保证数据的完整性和一致性两个表必须是InnoDB表,MyISAM表暂时不支持外键外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果...
  • mysql外键关联

    2021-02-01 21:28:32
    主键:是唯一标识一条记录,不能有重复的,不允许为空,用来...创建外键的方式:方式一:表已经创建好了,继续修改表的结构来添加外键,代码如下:create table student(id int primary key auto_increment,name c...
  • 外键简介2.2 > 外键关系2.2.1 > 一对多2.2.2 > 多对多2.2.3 > 一对一关系3 > 查询关键字3.1 > 查询关键字之select与from3.2 > 查询关键字之where筛选3.3 > 查询关键字之group by分组3.4 &...
  • mysql数据表建立主外键需要注意以下几点: 需要建立主外键关系的两个表的存储引擎必须是InnoDB。 外键列和参照列必须具有相似的数据类型,即可以隐式转换的数据类型。 外键列和参照列必须创建索引,如果外键列...
  • – default默认 check保证满足条件 foreign key外键 约束的建立方法如下: create table t( -- char型不能自增 -- 自增一旦申请就会加1 TNO int primary key auto_increment comment'主键',-- char订场 TN ...
  • mySql外键名称问题

    2021-02-04 21:12:50
    嗨,我在mysql workbench中设计了一个数据库 . 当我去转发工程师时,我得到了(错误:121),因为我在多个表中都有相同的外键,我意识到这是不允许...请欣赏一些帮助 .(我还没有在下面的代码中重命名外键)CREATE TABLE...
  • mysql外键约束怎么写

    千次阅读 2021-01-18 19:17:33
    mysql外键约束的写法:【[CONSTRAINT ] FOREIGN KEY 字段名 REFERENCES 主键列1】。外键约束是表的一个特殊字段,经常与主键约束一起使用。在 CREATE TABLE 语句中,通过 FOREIGN KEY 关键字来指定外键。(推荐学习:...
  • MySQL外键使用详解

    2021-02-07 16:36:43
    最近有开始做一个实验室管理系统,因为分了几个表进行存储·所以要维护表间的关联··研究了一下MySQL外键。(1)只有InnoDB类型的表才可以使用外键mysql默认是MyISAM,这种类型不支持外键约束(2)外键的好处:可以...
  • MySql外键设置详解

    千次阅读 2021-01-18 19:18:05
    外键的作用,主要有两个:一个是让数据库自己通过外键来保证数据的完整性和一致性一个就是能够增加ER图的可读性有些人认为外键的建立会给开发时操作数据库带来很大的麻烦.因为数据库有时候会由于没有通过外键的检测而...
  • mysql数据库之外键

    2021-01-18 19:15:26
    外键前戏之一对多关系# 定义一张部门员工表idnamegenderdep_namedep_desc1jasonmale教学部教书育人2egonmale外交部漂泊游荡3tankmale教学部教书育人4kevinmale教学部教书育人5owenfemale技术部技术能力有限部门"""把...
  • MySQL 命令行一、mysql服务的启动和停止net stop mysqlnet start mysql二、登录mysql语法如下:mysql -u 用户名 -p 用户密码键入命令mysql -u root -p,回车后提示你输入密码,输入你设置的密码,然后回车即可进入到...
  • MYSQL外键(Foreign Key)的使用在MySQL 3.23.44版本后,InnoDB引擎类型的表支持了外键约束。外键的使用条件:1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持);2.外键...
  • MySQL外键应用

    2021-02-05 14:11:24
    MySQL版本:5.5.28系统平台:RHEL 5.8 32位(1) 外键的使用:外键的作用,主要有两个:一个是让数据库自己通过外键来保证数据的完整性和一致性一个就是能够增加ER图的可读性有些人认为外键的建立会给开发时操作数据库...
  • 本文介绍了在MySQL数据库中定义外键的方法。
  • 最近有开始做一个实验室管理系统,因为分了几个表进行存储·所以要维护表间的关联··研究了一下MySQL外键。(1)只有InnoDB类型的表才可以使用外键mysql默认是MyISAM,这种类型不支持外键约束(2)外键的好处:可以...
  • 第一招、mysql服务的启动和停止net stop mysqlnet start mysql第二招、登陆mysql语法如下: mysql -u用户名 -p用户密码键入命令mysql -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,...
  • mysql外键的使用

    2021-01-18 22:12:35
    一早就知道有mysql外键这回事,但是貌似平时的项目中用到的并不多,以至于我没有去研究过这个东西,也不知道该怎么用。当然也不清楚对性能的影响。这篇文章先搞清楚外键的作用。首先来添加一张表,做为测试要用的...
  • mysql外键设置方式

    万次阅读 多人点赞 2018-08-27 09:54:51
    mysql外键设置方式/在创建索引时,可指定在delete/update父表时,对子表进行的相应操作, 包括: restrict, cascade,set null 和 no action ,set default. restrict,no action: 立即检查外键约束,如果子表有匹配...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,631
精华内容 20,252
关键字:

mysql外键代码

mysql 订阅
友情链接: Oracle.rar