MySQL数据管理

1、外键

1
2
ALTER TABLE `grade`ADD  CONSTRAINT  `FK_id` FOREIGN KEY(`GradeID`) REFERENCES `student`(`id`);
--ALTER TABLE `表名`ADD CONSTRAINT `约束名` FOREIGN KEY(`属性的列名`) REFERENCES 引用(要引用的列名);
  • 外键一旦生成,就与其他的表建立联系,不可随意删除被外键连接的表,要先删除引用这张表的数据表,尽量避免使用外键连接过多的表
  • 我们的数据表,我们只希望它是一个单纯的由字段(列)和数据组(行)成的东西
  • 可以使用程序的外键

2.DML

1.插入
1
2
3
INSERT INTO `grade`(`GradeID`) VALUES(2);--添加某一项的值或者某几项的值
INSERT INTO `grade` VALUES(1,"a")--可以忽略字段名,但是后面的值要一一对应
INSERT INTO `grade` VALUES(1,"a"),(3,"a"),(4,"a")--添加多条记录,用括号分开
2.更新数据
1
2
3
4
UPDATE `学校开始安排表` SET `班级`='20181431' WHERE ID='2';--判定条件,没有判定条件就会全部修改
UPDATE `学校开始安排表` SET `班级`='20181431',`考试人数`=0 WHERE ID='2';--多个条件判断就用逗号隔开
/*多个条件判断修改数据 可以用AND 或者 OR 等逻辑运算符*/
UPDATE `学校开始安排表` SET `班级`='20181431',`考试人数`=2 WHERE ID='2' and `学号字段`="双号";
3.删除数据
1
2
3
4
5
6
--1.用delete删除的话,那么自增的数据就会在下次添加数据时,从上一次数据的最后一个序号开始自增
DELETE FROM student
INSERT INTO student(`sname`) VALUES("1")
--2.用truncate删除的话,也会把自增变量进行归零
TRUNCATE TABLE `student`;
INSERT INTO student(`sname`) VALUES("1")

==delete删除数据库重启对应的两种数据库引擎现象==

  • InnoDB:自增列会从一开始,断电即失的存储,存在内存中;
  • MyISAM:继续从上一个自增列开始,存储在文件中;