精华内容
下载资源
问答
  • java获取数据库主外键

    2014-02-19 14:56:01
    使用eclipse获取mysql数据库中的表结构以及主外键
  • 只有INNODB的数据库支持外键,修改my.ini文件设置default-storage-engine=INNODB 外键必须与参照列的数据类型必须相同(数值型要求长度和符号都相同,字符串要求类型相同,长度可以不同)。 2.2设置外键

    1.主键

    主键默认非空,默认唯一性约束,只有主键才能设置自动增长,自动增长一定是主键,主键不一定自动增长。

    如何设置主键?

    在定义列时设置:ID INT PRIMARY KEY
    在列定义完之后设置:primary KEY(id)

    2.外键

    2.1设置外键时的注意事项:

    只有INNODB的数据库支持外键,修改my.ini文件设置default-storage-engine=INNODB 外键必须与参照列的数据类型必须相同(数值型要求长度和符号都相同,字符串要求类型相同,长度可以不同)。

    2.2设置外键的语法

    alter table 表名 add constraint 自定义外键名
    foreign key(外键字段)
    references 关联表名(关联字段);

    举例:

    在创建完表之后添加添加外键:

    语法:
    alter table 表名 add constraint 自定义外键名
    foreign key (外键字段)
    references 关联表名(关联字段);

    示例:
    添加外键: Score 表中的 SubjectId字段 关联 Subject 表的 SubjectId 字段

    alter table Score add constraint score_subject
    foreign key(SubjectId)
    references Subject(SubjectId);

    创建表时添加外键:

    – 父表
    create table if not exists father_table(
    test_field1 int(4) primary key
    )charset=‘utf8mb4’;

    – 子表
    create table if not exists child_table(
    test_field1 int(4),
    foreign key(test_field1) references father_table(test_field1)
    )charset=‘utf8mb4’;

    注意:

    1.外键值可以为null
    2.外键字段在引用一张表的某个字段的时候,被引用的字段必须具有unique(唯一性)约束。

    3.有了外键引用后,表分为父表和子表,引用的表为父表,被引用的表为子表

    创建时先创建父表
    删除时先创建子表
    插入时先插入父表数据

    3.五大约束

    1.primary KEY:设置主键约束;

    2.UNIQUE:设置唯一性约束,不能有重复值;

    3.DEFAULT 默认值约束,height DOUBLE(3,2)DEFAULT 1.2
    height不输入是默认为1,2

    4.NOT NULL:设置非空约束,该字段不能为空;

    5.FOREIGN key :设置外键约束。

    展开全文
  • 如何查看MySQL数据库主外键关系

    千次阅读 2019-08-23 16:45:51
    查看所有的主外键关系,例如有一张表为:role,输入以下命令 SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME='role'

    查看所有的主外键关系,例如有一张表为:role,输入以下命令

    SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME='role'
    
    展开全文
  • 数据库主键和外键作用

    万次阅读 多人点赞 2018-04-26 13:18:34
    主键保证了数据的唯一性,外键保证了数据的完整性。主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。外键用于...

    主键保证了数据的唯一性,外键保证了数据的完整性。
    主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。 身份证号 是唯一能确定你这个人的,其他都可能有重复,所以, 身份证号 是主键。
    外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。
    展开全文
  • 数据库主外键概念详细介绍

    千次阅读 多人点赞 2020-05-17 18:18:33
    关于数据库主外键设置问题 一、主外键概念 主键 ​ 1、主键 ​ 简单而言,能够唯一的表示表中的每一行数据,这样的列属性成为表的主键,使用表主键可以保证实体的完整性,可对表内数据进行修改、删除时使用主键来...

    关于数据库的主外键设置问题

    一、主外键概念

    主键

    1、主键

    ​ 简单而言,能够唯一的表示表中的每一行数据,这样的列属性称为表的主键,使用表主键可以保证实体的完整性,可对表内数据进行修改、删除时使用主键来操作,同时也主要用于和其他表之间通过主外键关联建立表之间的联系。例如:

    ​ 下图这个员工表中对应第一行红色字段为表的主键,它标识出了数据的唯一性

    在这里插入图片描述

    2、主键作用

    ​ 保证数据库表的唯一性、完整性

    ​ 用于和其他表之间建立外键关联的关系,从而实现对关联表的控制操作

    3、主键设计原则

    ​ 主键的设计对用户无意义(由下边举例阐述)

    ​ 以“居民身份证” 作为作为主键的设置,在升号时带来的麻烦作为反例。但实际上身份证作为主键设计是没有问题的。用身份证作为主键,对其他数 据的引用带来了好处,数据完整性得到保证。升号属于几十年才可能有的事情(也许接下来几十年都不会再升号),这属于极少变化的属性。虽然升级时带来了麻 烦,可是否不用身份证作为主键的升级就不麻烦了吗?其实无论选择什么属性作为主键,升级的工作量都是相当的。

    ​ 主键设置应该是单列的,为了提高查询和连接的效率

    ​ 主键永远不要去更新它

    ​ 主键不应该包括动态变化的数据,例,时间戳、时间列等

    ​ 主键通常要设置自增长,由计算机自动来生成

    4、主键选取策略

    ​ 通常数据库建表时一个表至多能设置一个主键,以下为常用三种主键选取方式:

    1. ​ 自动增长型字段

    2. ​ 手动增长型字段

    3. ​ UniqueIdentifier

      ​ 使用UniqueIdentifier SQL Server提供一个UniqueIdentifier数据类型(16字节),并提供一个生成函数NEWID(),生成一个唯一的UniqueIdentifier

    4. ​ COMB类型

      保留UniqueIdentifier的前10字节,后6字节表示生成时间

    外键

    1、外键

    ​ 外键就是通过表中一个键将两个表连接起来的键

    在这里插入图片描述

    2、外键作用

    ​ 保证数据的完整性和一致性

    ​ 主要目的是控制存储在外键表中的数据。

    ​ 支持关联查询。

    ​ FOREIGN KEY约束用于防止会破坏表之间链接的操作

    3、阻止执行

    ​ 从表插入一条数据时,若外键值不是主表的主键值时,将阻止插入数据

    在这里插入图片描述

    mysql> INSERT INTO banji VALUES('11','英语一班','8');		-- 错误写法
    ERROR 1062 (23000): Duplicate entry '16' for key 'PRIMARY'
    
    mysql> INSERT INTO banji VALUES('11','英语一班','9');		-- 正确写法
    Query OK, 1 row affected (0.00 sec)
    

    ​ 从表修改外键值时,其值不是主表的主键值则阻止修改(可参照上图理解)

    ​ 主表删除某一行时,其主键值在从表里存在则将阻止删除(若想删除,必须要现删除从表的关联行)

    ​ 主表修改主键值时,旧值在从表里存在,则将阻止修改(若想修改,必须要现删除从表的关联)。

    4、级联执行

    ​ 主表删除、修改某一行数据,则从表数据将被一起删除、修改

    总结

    ​ 结合实际情况来看,数据库设计时尽量不要设计太多外键关系;因为在后期的数据库维护起来比较麻烦,出现各种关联关系的表,耦合度比较高,因而个人不建议,设置太多外键关联。(可通过子代码编写方法,实现数据之间的逻辑业务处理)

    展开全文
  • 一、什么是主键、外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键  比如  学生表(学号,姓名,性别,班级)  其中每个学生的...
  • 数据库主外键详解

    2014-08-22 11:48:28
    数据库主外键详解,带代码片段。让你直观了解数据库的主外键设置
  • NULL 博文链接:https://yanzhenwei.iteye.com/blog/850724
  • MySQL数据库主外键

    2020-09-08 22:48:14
    1、主外键的定义 主关键字(primary key ): 简称主键,它是表中的一个字段,它的值用于唯一地标识表中的某一条记录。 外关键字(foreign key) : 简称外键,是用于建立或加强两个表数据之间的链接的一列。 如果公共...
  • 为mysql数据表建立主外键需要注意以下几点: 需要建立主外键关系的两个表的存储引擎必须是InnoDB。 外键列和参照列必须具有相似的数据类型,即可以隐式转换的数据类型。 外键列和参照列必须创建索引,如果外键列...
  • 数据库主外键关联

    2016-12-10 09:49:40
    错误提示:表"table2"中的列与现有的主键或UNIQUE约束不匹配 数据库表中只有一个主键,这个主键...而建立主外键关系的主键列必须具有唯一性。所以table2的2列加在一起才具有唯一性,单独一列并不具有唯一性。
  • 数据库外键作用

    2016-11-01 15:11:05
    这和软件工程的模块化思想差不多类似,只不过在数据库中是对表关系进行解耦,尽量让表 记录的数据单一化。就如你贴的图片中,把成绩和学生信息放在一张表中就太冗余了,成绩完全可以以学生的id作为区分标识。 ...
  • 数据库主外键关联关系

    千次阅读 2017-07-28 09:27:44
    查询数据库主外键关联关系 select * from user_constraints a, user_constraints b where a.constraint_type = 'R' and b.constraint_type = 'P' and a.r_constraint_name = b.constraint_name
  • 数据库物理外键和逻辑外键

    千次阅读 2020-11-02 17:01:45
    物理外键性能问题 物理外键性能问题总结:...mysql的外键设计问题 虽然很多人都不推荐你在关系型数据库使用外键 但你更多听到的是mysql的,而不是SQLserver或者其他。比较公认的是,他的外键设计的 的确不是很好, 限制
  • 数据库表的主外键

    2019-06-15 19:41:00
    添加实际上是将一个已经存在的字段修改为键 **删除主键:** ALTER TABLE food DROP PRIMARY KEY ; 删除主键只是删除了主键类型,并没有删除字段 如果主键设置自增长,先通过修改语句去掉自增长,然后...
  • 数据库设置外键 做关联

    千次阅读 2020-03-19 09:45:54
    alter table t_borrow add constraint aid foreign key (adminid) references t_admin(id) aid 为外键的名字 adminid 为t_borrow 的外键 id为t_admin的一个字段
  • 数据库中的外键和主表、从表主键和外键主键(关键字,primary key)外键(外关键字,foreign key,公共关键字的其中一个)存在的必要性表和从表单表 主键和外键 主键(关键字,primary key) 关系型数据库中的...
  • 数据库外键是什么?

    千次阅读 2021-02-02 03:35:29
    什么是外键?外键 ( foreign key ) 是用于建立和加强两个表数据...不用也不会怎么样,如果一个健壮的系统,数据库中的数据一定有很好的参照完整性,如果不用外键,就要多写代码对数据的完整性进行额外的判断 。外键...
  • MySql数据库主键外键数据库设计

    千次阅读 2019-05-20 01:38:57
    MySql数据库主键外键数据库设计
  • 1.外键作用: 使两张表形成关联,外键只能引用外表中的指定列的值! 2.建立外键的前提: 本表的列必须与外键类型相同(外键必须是外表的主键)。 3.事件触发限制: on delete(删除)和on update (更新),  ...
  • 达梦数据库获取主外键约束信息

    千次阅读 2020-04-16 09:17:50
    在达梦数据库中,我们有时候需要查询主外键信息,通过如下的SQL语句可以直接获取 --DM7获取主键信息 select t1.table_name , t1.constraint_name, t2.column_name from all_constraints t1, dba_cons_...
  • FOREIGN KEY (本表外键列名) REFERENCES 表名称 (表主键列名) ); 2. 创建表之后, 添加外键约束 ALTER TABLE 表名称 ADDFOREIGN KEY (本表外键列名) REFERENCES 表名称 (主键列名,唯一约束列名); 查看...
  • DROP TABLE IF EXISTS News ;... COMMENT ‘主键’ 备注 PRIMARY KEY (Id) 主键标识符 创建外键: alter table News add constraint fk foreign key (NewsClassifyId) references NewsClassify(Id);
  • 如何设置数据库中的外键

    千次阅读 2021-01-30 08:19:41
    展开全部创建数据库时就是有主键的创建了主键,但是表之间的关系没有联系,要建数据库关系图只e69da5e887aa62616964757a686964616f31333365653739有主键没有外键时不行的。建外键的前提是此外键必须是另外一个表的...
  • 主键Primary key,唯一标示一个实体。是保证数据库的实体完整性,保证数据中数据的正确性和合理性,取值非空唯一。 外键Foreign,是用来使表与表之间联系。用来保证数据库的参照完整性,...主外键的关系结构: 1,
  • C#操作数据库主外键和级联约束

    千次阅读 2017-06-02 02:46:37
    SqlConnection a = new SqlConnection(str1);  a.Open();  SqlCommand conn1 = new SqlCommand("create database us on primary(name=us,filename='E:\\LT_home\\社区2.0\\us.mdf',si
  • 数据库主外键设计

    千次阅读 2016-04-22 15:18:45
    一、什么是主键、外键: 关系型数据库中的一条记录中有若干个属性,若其中  某一个属性组(注意是组)能唯一标识一条记录  ,该属性组就可以成为一个主键  比如  学生表(学号,姓名,性别,班级)  其中每...
  • MySQL数据库外键SQL语句的编写

    千次阅读 2021-01-16 22:05:54
    数据库外键SQL语句的编写 1. 外键约束作用 外键约束:对外键字段的值进行更新和插入时会和引用表中字段的数据进行验证,数据如果不合法则更新和插入会失败,保证数据的有效性 2. 对于已经存在的字段添加外键约束...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 100,641
精华内容 40,256
关键字:

数据库主外键的作用