0
点赞
收藏
分享

微信扫一扫

【MySQL】数据管理

ZGtheGreat 2022-04-27 阅读 59
学习mysql

1. 外键

1.在创建表时,增加约束

学生表的 gradeid 字段要引用年级表的 gradeid

定义外键key

给外键添加约束 references 引用

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

删除有外键关系的表,必须要先删除引用别人的表(从表),再删除被引用的表(主表)

2.创建表之后,添加外键约束

ALTER TABLE `student` 
ADD CONSTRAINT `FK_gradeid` FOREIGN KEY(`gradeid`) REFERENCES `grade`(`gradeid`);

以上为物理外键,数据库级别的外键,不建议使用

  • 数据库就是单纯的表,只用来存数据,只有行数据和列字段

  • 想使用多张表的数据,想使用外键,用程序实现

2. DML操作

2.1 添加

INSERT INTO `grade`(`gradename`) VALUES('高三')

主键自增可省略字段

INSERT INTO `grade` VALUES('高二')

插入多个字段

INSERT INTO `grade`(`gradename`) VALUES('高一'),('初三')

指定字段插入数据

INSERT INTO `student`(`name`) VALUES ('老王')
INSERT INTO `student`(`name`,`pwd`,`sex`) 
VALUES ('老王','111111','男'),
('老李','222222','男')

2.2 修改

UPDATE `student` SET `Sname`='王二' WHERE Sno=20050302;

修改多个属性

UPDATE `student` SET `Sname`='翠花',`Ssex`='女' WHERE Sno=20050302;
操作符含义范围结果
=
< > !=
>
<
<=
>=
BETWEEN … AND …区间
AND&&
OR||

多条件定位数据

UPDATE `student` 
SET `Sname`='赵六',`Sdept`='CS',`Speciality`='计算机应用' WHERE `Sname`='李四' AND `Sdept`='cd';

VALUE可以是一个具体的值,也可以是一个变量

UPDATE `student` SET `Sbirthday`=CURRENT_TIME WHERE `Sname`='李四'; 

2.3 删除

DELETE FROM `student` WHERE `Sname`='赵六';
TRUNCATE
/*
	完全清空一个数据库表,表的结构和索引约束不会变
*/

DELETE 与 TRUNCATE区别

都能删除数据,都不会删除表结构

TRUNCATE 重新设置自增列,计数器会归零,不会影响事务

  • INNODB 自增列会从1开始(存在内存中,断电即失)
  • MYISAM 继续从上一个自增量开始(存在文件中,不会丢失)
举报

相关推荐

0 条评论