foreign key (外键):
表与表之间的关系 一对一 一对多 多对多
创建外键:
create table book(id int primary key auto_increment,name char(10),pid int,foreign key(pid) references publish(id));
Field | Type | Null | Key | Default | Extra
id | int(11) | NO | PRI | NULL | auto_increment |
name| char(10) | YES | | NULL | |
pid | int(11) | YES | MUL | NULL |
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | char(10) | YES | | NULL |
show create table book 显示创建表结构 外键
| book | CREATE TABLE `book` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` char(10) DEFAULT NULL,
`pid` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `pid` (`pid`),
CONSTRAINT `book_ibfk_1` FOREIGN KEY (`pid`) REFERENCES `publish` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
其中 book_ibfk_1 为外键名
有外键关系的必须先解除外键关系 不能直接删除字段
alter table book drop foreign key book_ibfk_1;
alter table book drop id ; 删除字段
alter table book add id int primary key auto_increment first ; 添加字段 添加到哪一列 after 字段名
alter table book add froeign key(id) references publish (id) ; 添加外键
两个表有了外键关联后不能直接删除 需要级联删除
级联删除 父键删除子健也删除
添加级联关系
alter table book add froeign key(id) references publish (id) on delete cascade on update cascade ;
添加级联删除 和级联更新
alter table book rename anrui 修改表名
alter table book modify book char(1000) 修改字段属性
alter table book change book book1 char(1000) 修改字段属性(多一个修改字段名)************************8
插入表数据 values 多条数据 value单行数据
集合插入“a,b”形式
插入数据:
insert into book values()
将其他表的查询数据,插入到这个表中
insert into book (id ,name) select id,name from publish ;
删除记录:
delete from book where id =1;