厂字形网页布局网站,网站登录窗口怎么做,山西网站建设企业,免费简历模板制作网站#外键## 1,学习外键首先要明白表与表之间的关系 首先要换位思考 在考虑了这边 还要考虑另一边 然后在下定论### 判断表关系的语法#### 图书与出版社 一本书可不可以有多个出版社 不可以 一个出版社可不可以出版多本书 可以 这就是一对多关系#### 图书与作者 一本书…#外键## 1,学习外键首先要明白表与表之间的关系 首先要换位思考 在考虑了这边 还要考虑另一边 然后在下定论### 判断表关系的语法#### 图书与出版社 一本书可不可以有多个出版社 不可以 一个出版社可不可以出版多本书 可以 这就是一对多关系#### 图书与作者 一本书可不可以有多个作者 可以 一个作者可不可以写多本书 可以 多对多的关系### 作者与作者信息 一个作者可不可以有多个个人信息 不可以 一个作者的个人信息能不能有多个作者 不可以 要么两个是一对一,要么没关系primary key 主键约束该约束的意思就是该字段的值非空且不能重复关键字 references 建立表与表之间的关系foreign key 外键约束意思就是该字段与另外一张表有联系.好比儿子必定有爸爸要是有人想把爸爸K掉儿子就肯定不干了反之没儿子的人如果要被K就没人管啦## 2,一对多#foreign key会带来什么效果1,在创建表的时候,先创建 被关联的表不带有foreign key 创建完在创建带有foreign keypythoncreate table dep(id int primary key auto_increment,dep_name char(10),dep_comment char(60));create table emp(id int primary key auto_increment,name char(15),gender enum(male,female) not null default male,dep_id int,foreign key (dep_id) references dep(id) 给这个dep_ip传入的id必须是另一个表的id 而 referencnces 就是链接起另一张表 dep 里面一般都放的是令一张表的主键 且在给dep_id 传值的时候必须是另一张表有的id 如果没有就报错on update cascadeon delete cascade);insert into dep (dep_name,dep_comment) values(教学部,辅导学生,教授python),(外交,中国形象大屎),(技术部门,技术能力有限部门);insert into emp (name,gender,dep_id) values(jason,male,1),(egon,male,2),(taken,female,3);## 3,多对多python#图书表与作者表之间的关系仍然站在两张表的角度1.站在图书表一本书可不可以有多个作者可以那就是书多对一作者2.站在作者表一个作者可不可以写多本书可以那就是作者多对一书双方都能一条数据对应对方多条记录这种关系就是多对多#先来想如何创建表图书表需要有一个外键关联作者作者也需要有一个外键字段关联图书。问题来了先创建谁都不合适如何解决#建立第三张表该表中有一个字段fk左表的id还有一个字段是fk右表的idcreate table author (id int primary key auto_increment,name char(10));create table book(id int primary key auto_increment,bname char(10),price int);insert into author (name) values(egon),(jason),(yangxin),(alex);insert into book (bname,price) values(php从入门到消失,1000),(葵花宝典,553),(小泽玛利亚大战苍井空,200009),(小泽精选,20000),(小仓精选,2222);create table author2book(id int primary key auto_increment,author_id int,book_id int,foreign key (author_id) references author(id)on update cascadeon delete cascade,foreign key (book_id) references author(id)on update cascadeon delete cascade);insert into author2book(author_id,book_id) values(1,2),(2,3),(3,4),(1,4),(4,2);## 4,一对一用户名 和用户信息python左边的表记录唯一对应右边的一条记录,反之也一样create table username(id int primary key auto_increment,name char(10) notnull,age intnotnull);insert into username(name,age) values(jason,98),(yangxin,18),(wukai,10);create table card(id int primary key auto_increment,identity int unique,#该字段唯一username_id int unique,#该字段唯一foreign key (card_id) references username(id)on delete cascadeon update cascade);insert into card(identity,username_id) values(170020,1),(125435,2),(146547,3);## 5修改表python#mysql对大小写不敏感语法1. 修改表名ALTER TABLE 表名RENAME 新表名;2. 增加字段ALTER TABLE 表名ADD 字段名 数据类型 [完整性约束条件…], ADD 字段名 数据类型 [完整性约束条件…];ALTER TABLE 表名ADD 字段名 数据类型 [完整性约束条件…] FIRST; ALTER TABLE 表名ADD 字段名 数据类型 [完整性约束条件…] AFTER 字段名;3. 删除字段ALTER TABLE 表名DROP 字段名;4. 修改字段 #modify只能改字段数据类型完整约束不能改字段名但是change可以ALTER TABLE 表名MODIFY 字段名 数据类型 [完整性约束条件…];ALTER TABLE 表名CHANGE 旧字段名 新字段名 旧数据类型 [完整性约束条件…]; ALTER TABLE 表名CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…];## 6复制表python#复制表 语法 create table 表名 select *from 被复制的表名#只能复制表的结构记录 不会复制 主键 外键 和索引