一、级联删除
当需要删除一个记录的时候,如果这条记录中的一些字段是其他记录的外键,会提示无法删除。这里需要用到级联删除(即删除一条记录时,同时删除与此记录相关的其他记录)
用法
在外键的声明后面加上
ON DELETE CASCADE
验证一下
创建表
CREATE TABLE class(
classid INT(10) NOT NULL PRIMARY KEY,
classname VARCHAR(10)
);
CREATE TABLE student(
id int(10) NOT NULL PRIMARY KEY,
classid INT(10) NOT NULL,
FOREIGN KEY (classid) REFERENCES class(classid) ON DELETE CASCADE
);
插入数据
INSERT INTO class VALUES(1,"计算机二班");
INSERT INTO class VALUES(2,"计算机三班");
INSERT INTO student VALUES(1204,1);
INSERT INTO student VALUES(1205,2);
查看信息
SELECT * FROM class;
SELECT * FROM student;
显示
1 计算机二班
2 计算机三班
1204 1
1205 2
删除信息
DELETE FROM class WHERE classid = 1;
显示
2 计算机三班
1205 2
二、MYSQL自联
表中的字段与其他字段有关联关系,查询时,可通过定义表别名进行查询,如表名为table,关联字段分别为a,b
select * from table tablea
left join table tableb
where tablea.a = tableb.b