mysql-2

本文详细介绍了数据库中的外键概念,包括一对一、一对多和多对多的关系。通过示例展示了创建、删除和修改外键的SQL语句,并讨论了外键约束在表间的关系,以及级联删除和更新的操作。同时提到了在有外键约束时删除字段的注意事项,强调了先解除外键关系的重要性。
摘要由CSDN通过智能技术生成

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;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值