`
smiky
  • 浏览: 257813 次
  • 性别: Icon_minigender_1
  • 来自: 天门
社区版块
存档分类
最新评论

mysql中创建主外键关联的表及key的含意

阅读更多
在mysql里创建两张有主外键关联的表classes与student
classes就一个字段no int(4)
student两个字段stu_no int(4),classes_no int(4) 引用classes字面的no
create table classes(no int(4));
create table student(stu_no int(4) ,classes_no int(4) foreign key(classes_no) references classes(no));
当创建student的时候会报错,说不能创建表,原因是mysql中作为外键的列必须为key
create table classes(no int(4) ,key no (no));当然这样也行create table classes(no int(4) primary key);
create table student(stu_no int(4) ,classes_no int(4) foreign key(classes_no) references classes(no));
这样就能创建成功

那么key是什么呢?
desc classes你会发现在key列下面会有以下值中的一个:空/PRI/UNI/MUL
1. 如果Key是空的, 那么该列值的可以重复, 表示该列没有索引, 或者是一个非唯一的复合索引的非前导列
2. 如果Key是PRI,  那么该列是主键的组成部分
3. 如果Key是UNI,  那么该列是一个唯一值索引的第一列(前导列),并别不能含有空值(NULL)
4. 如果Key是MUL,  那么该列的值可以重复, 该列是一个非唯一索引的前导列(第一列)或者是一个唯一性索引的组成部分但是可以含有空值NULL

可能有人就想测试一下了,先create table classes(no int(4) ,key no (no));然后想将这个key给删了,但是你会发现mysql中没有删key的命令
于是找了一下,很多人说key就是index,于是一试alter table classes drop index no
然后desc classes发现key下面的值没了
接着create table student(stu_no int(4) ,classes_no int(4) foreign key(classes_no) references classes(no));就又会报错
所以我认为key就是index
分享到:
评论

相关推荐

    MySQL创建数据表并建立主外键关系详解

    MySQL创建数据表并建立主外键关系是数据库...总结来说,掌握如何在MySQL中创建数据表并设置主外键关系是数据库管理的基础。通过理解和运用这些概念,可以有效地设计和维护复杂的数据结构,保证数据的准确性和可靠性。

    Hibernate 一对一关联映射(主键关联VS唯一外键关联)

    本篇文章将深入探讨两种实现一对一关联的方式:主键关联(Primary Key Join)和唯一外键关联(ForeignKey Join),并结合源码和实际工具进行详细讲解。 一、主键关联(Primary Key Join) 1. 主键关联的概念: ...

    如何在MySQL数据库中定义外键

    - **RESTRICT**:禁止主表变更,如果存在依赖于主表的参照表,则不允许修改主表中的外键字段。 - **SET NULL**:将参照表中的外键字段设置为 NULL,如果主表中的对应字段被删除或更新。 综上所述,通过以上步骤,...

    MySQL删除表的时候忽略外键约束的简单实现

    在MySQL数据库管理中,删除表是一项需要谨慎操作的任务,尤其是当表之间存在外键约束时。外键约束是关系数据库中确保数据完整性和一致性的重要机制,它不允许在父表(引用其他表的字段的表)中删除那些已被子表引用...

    masql主外键操作

    ### MySQL 主外键操作详解 在关系型数据库中,主键和外键是维护数据完整性和关联性的重要机制。MySQL 提供了一系列命令来创建、修改和删除这些键。本文将根据给定的文件内容,详细介绍如何进行 MySQL 的主外键操作...

    mysql的外键

    - 在电商系统中,订单表(Orders)可以通过外键关联用户表(Users),以标识下单的用户。 - 在论坛系统中,帖子表(Threads)可以引用用户表(Users)的主键,表示发帖人。 总结来说,MySQL中的外键是实现关系...

    MySQL 创建主键,外键和复合主键的语句

    本文将详细介绍如何在MySQL中创建主键、外键以及复合主键。 1. **创建主键** 主键是数据库表中一个或一组字段,其值在全表中具有唯一性,并且不能为空。它用于唯一标识表中的每一行记录。在MySQL中,创建主键的...

    mysql外键的设置方法

    - **创建子表并指定外键**:接着创建与主表关联的子表,并在子表中定义外键,指明参照的主表的主键。 示例代码如下: ```sql -- 创建主表 parts CREATE TABLE parts ( id INT AUTO_INCREMENT PRIMARY KEY, model...

    MySQL的约束-外键约束

    本文将深入探讨其中的一种约束类型——外键约束(Foreign Key Constraint),它是关系数据库模型中的核心概念,用于建立和维护不同表之间的关联。 外键约束允许一个表中的数据引用另一个表中的数据,这种引用关系...

    mysql外键设置

    - **实现数据的一致性**:外键可以确保当在从表中插入一条记录时,该记录中指向主表的字段必须存在于主表中相应的主键或唯一索引中。 - **维护关系的完整性**:通过定义外键,可以在删除或更新主表的数据时,自动...

    掌握数据完整性:深入理解MySQL中的外键

    - **维护引用完整性**:外键确保了从属表中的外键值在主表中有对应的主键值,从而避免了指向不存在记录的引用。 - **实现表之间的关联**:外键可以建立表之间的逻辑关系,使得数据之间的关联更加明确。 - **提高数据...

    mysql数据库设置外键应该注意的几点

    外键是用来建立两个表之间的关联,通常是主表(父表)的一个或多个字段与从表(子表)的相应字段相匹配。定义外键约束时,需要指定父表的引用字段和子表的关联字段。例如: ```sql CREATE TABLE Orders ( ...

    快速理解MySQL中主键与外键的实例教程

    外键(Foreign Key)则是在一个表中引用另一个表的主键的字段,它用于建立和加强两个表之间的关联。外键的作用在于维护参照完整性,确保数据的一致性。例如在论坛的场景中,`reply` 表的 `thread_id` 字段是外键,它...

    mysql外键的使用

    这里,`child_table`是子表,`parent_table`是父表,`foreign_key_column`是子表中作为外键的列,`parent_key_column`是父表的主键列。`ON DELETE`和`ON UPDATE`选项用于指定当父表中的记录被删除或更新时,如何处理...

    MySQL外键.docx

    以下是一个简单的例子,展示如何在MySQL中创建和使用外键: 1. **创建表** 首先,我们创建两个表:“grade”(班级表)和“student”(学生表)。这里,“grade”表的主键是`id`,而“student”表的`gid`字段将...

    (mysql面试题)MySQL中的索引、主键和外键的概念及其作用及代码展示.txt

    例如,一个订单表和一个客户表可以通过外键关联,表示某个订单属于哪个客户。外键的作用主要有以下几点: - **确保数据的一致性和完整性**:通过外键约束可以防止插入无效的数据。 - **加速查询操作**:通过外键...

    mysql外键教程.zip

    MySQL数据库在设计关系型数据库时,外键是一个关键的概念,它用于维护数据库中表与表之间的关联性。这个“mysql外键教程.zip”压缩包包含了关于MySQL外键使用的多个方面,下面将详细解释这些知识点。 首先,我们...

    MySQL外键使用详解

    外键(Foreign Key)是一种数据库约束,它在一个表(称为“子表”或“外键表”)中引用另一个表(称为“父表”或“参照表”)的主键。外键的存在确保了数据的一致性,防止非法数据的插入。 2. **外键的好处**: -...

Global site tag (gtag.js) - Google Analytics