mysql 自用 数据管理_MySQL(2):数据管理

一. 外键概念:

如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。在实际操作中,将一个表的值放入第二个表来表示关联,所使用的值是第一个表的主键值(在必要时可包括复合主键值)。此时,第二个表中保存这些值的属性称为外键(foreign key)

二. 外键作用:

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

三. 创建外键

1.创建父表 grade

CREATE TABLE `grade`(

`gradeid` INT(10) NOT NULL AUTO_INCREMENT COMMENT '年级ID',

`gradename` VARCHAR(50) NOT NULL COMMENT '年级名称',

PRIMARY KEY (`gradeid`)

)ENGINE=INNODB DEFAULT CHARSET=utf8

父表图

1334182862b517ab081704f0fce67e8b.png

2.创建子表 student

CREATE TABLE `student` (

`studentno` INT(4) NOT NULL COMMENT '学号',

`studentname` VARCHAR(20) NOT NULL COMMENT '姓名',

`gradeid` INT(10) DEFAULT NULL COMMENT '年级',

PRIMARY KEY (`studentno`),

KEY `FK_gradeid` (`gradeid`),

CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `grade` (`gradeid`)

) ENGINE=INNODB DEFAULT CHARSET=utf8

子表图

e15f1f420480bbdd5d027cee066b8b4e.png

外键效果图

6c4511b652afe6055b0d7d8057133e07.png

父表中的主键是gradeid,子表中的主键是studentno,在子表中把父表中的主键gradeid设为外键,因为子表用有gradeid,所以点击gradeid会查询到父表中的信息

四. 删除外键

ALTER TABLE student DROP FOREIGN KEY FK_gradeid;

ALTER TABLE student DROP INDEX FK_gradeid;

注意 : 删除具有主外键关系的表时 , 要先删子表 , 后删主表

五. 添加数据

INSERT INTO 表名[(字段1,字段2,字段3,...)] VALUES('值1','值2','值3')

注意:

1:字段或值之间用英文逗号隔开.

2:'字段1,字段2...'该部分可省略 , 但添加的值务必与表结构,数据列,顺序相对应,且数量一致.

3:可同时插入多条数据 , values 后用英文逗号隔开

六. 修改数据

UPDATE 表名 SET column_name=value [,column_name2=value2,...] [WHERE condition];

注意:

1:column_name 为要更改的数据列

2:value 为修改后的数据 , 可以为变量 , 具体指 , 表达式或者嵌套的SELECT结果

3:condition 为筛选条件 , 如不指定则修改该表的所有列数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值