美文网首页
设置主键和关联查询

设置主键和关联查询

作者: D_w | 来源:发表于2021-10-22 17:18 被阅读0次

设置主键:

删除表的主键约束:

ALTER TABLE 数据库名.表名
DROP PRIMARY KYE

更新a表,让a表中merberid字段的值指向b表的id值

UPDATE demo.trans AS a,demo.membermaster AS b
SET a.memberid=b.id
WHERE a.transcationno > 0
AND a.cardno = b.cardno;

三种设置主键的思路:业务字段做主键、自增字段做主键、手动复制字段做主键

  1. 尽量不要用业务有关的字段做主键
  2. 自增字段做主键,对于单机系统是没问题的,但是有多台服务器各自录入数据就不一定适用了,因为在对多台机器的数据进行合并时可能出现主键重复的为你
  3. 通过手动赋值的办法,通过一定逻辑确保字段在全系统中的唯一性

创建外键

image.png

创建表时定义外键约束:

CREATE TABLE 从表名
(  
    字段名 类型
    ...
    CONSTRAINT 外键约束名称 
    FOREIGN KEY 字段名 REFERENCES 主表名 (字段名)
)

通过修改表来定义外键约束

ALTER TABLE 从表名 ADD CONSTRAINT 约束名 FOREIGN KEY 字段名 REFERENCES 主表名 (字段名)

连接

  • 内连接(INNER JOIN):表示查询结果只返回符合连接条件的记录,这种连接方式比较常用;
SELECT 字段名
FROM 表名 AS a
JOIN 表名 AS b
ON (a.字段名称=b.字段名称);
  • 外连接(OUTER JOIN):表示查询结果返回某一个表中的所有记录,以及另一个表中满足连接条件的记录
SELECT 字段名
FROM 表名 AS a
LEFT JOIN 表名 AS b
ON (a.字段名称=b.字段名称);
SELECT 字段名
FROM 表名 AS a
RIGHT JOIN 表名 AS b
ON (a.字段名称=b.字段名称);

注:没有外键约束也可以进行关联查询

相关文章

  • 设置主键和关联查询

    设置主键: 删除表的主键约束: 更新a表,让a表中merberid字段的值指向b表的id值 三种设置主键的思路:业...

  • MySQL索引失效

    哪些情况需要创建索引 主键自动建立唯一索引频繁作为查询条件的字段应该创建索引多表关联查询中,关联字段应该创建索引 ...

  • mybatis返回主键

    该标签的作用就是 查询主见 在标签内写入查询主键的sql 然后把查询出的主键按照设置到我们指定的对象字段中key...

  • 软件测试—SQL数据库(一)

    主键:唯一标识这一行的数据外键:关联到其他表主键的字段索引:提高数据的查询速度,占用一定的磁盘空间,减慢数据删除和...

  • 索引、帐户管理、主从同步

    1、索引: 需要建索引的情况: *主键自动建立唯一索引 *频繁作为查询条件的字段应该创建索引 *查询中与其他表关联...

  • 索引的创建时机

    适合创建索引的情况  主键自动建立唯一索引;  频繁作为查询条件的字段应该创建索引  查询中与其它表关联的字...

  • 【MyBatis】@Results 关联查询时,关联外键id变成

    平时在进行关联查询时,更多是使用主键对其他表进行关联查询,所以上面的写法不会出现问题。 这一次在其他表里,需要使用...

  • 索引建立的条件

    主键自动建立唯一索引; 频繁作为查询条件的字段应该创建索引; 查询中与其他表有关联的字段,例如外键关系; 频繁更新...

  • iOS 数据存储

    使用fmdb如何封装创建表设置主键,主键要求增:删:改:查: 背景:将用户与人工客服的聊天消息存储下来,可以查询历...

  • MySQL数据库学习day6

    回顾 外键:关联关系(表与表之间:表中字段指向另一张表的主键) 联合查询:union,多表合并和单表不同查询条件 ...

网友评论

      本文标题:设置主键和关联查询

      本文链接:https://www.haomeiwen.com/subject/jlxhaltx.html