mysql怎么搞主键外键 mysql主外键怎么设置

MySQL之主键、外键、连接设置主键的思路:业务字段做主键、自增字典做主键、手动赋值字段做主键 。
多表查询:分散在多个不同的表里的数据查询出来的操作 。
外键:从表中用来引用主表中数据的那个公共字段 。
连接有2种类型的连接:内连接(inner join)和外连接(outer join)
内连接:查询结果只返回符合连接条件的记录 。
外连接:查询结果返回某一个表中的所有记录 , 以及另一个表中满足连接条件的记录 。
其中左连接:left join,返回左表中的所有记录 , 以及右表中符合连接条件的记录 。
右连接:right join,返回右表中的所有记录,以及左表中符合连接条件的记录 。
MySQL如何创建主键,外键和复合主键1.创建主键语法
ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(列名);
2.创建外键语法
ALTER TABLE news_info[子表名] ADD CONSTRAINT FK_news_info_news_type[约束名] FOREIGN KEY (info_id)[子表列] REFERENCES news_type[主表名] (id)[主表列] ;
【mysql怎么搞主键外键 mysql主外键怎么设置】3.使用组合主键
如果一列不能唯一区分一个表里的记录时,可以考虑多个列组合起来达到区分表记录的唯一性,形式
①创建时:create table sc (
studentno int,
courseid int,
score int,
primary key (studentno,courseid) );
②修改时:alter table tb_name add primary key (字段1,字段2,字段3);
在MySQL中如何设置主键和外键添加主键~
ALTER
TABLE
table_name
ADD
CONSTRAINT
pk_name
PRIMARY
KEY(列名);
添加外键~
ALTER
TABLE
table_name
ADD
CONSTRAION
pk_name
FOREIGN
KEY(列名)
REFERENCES
table_name(列名);
基础语法~其他条件自行添加
mysql建立外键时,多对多如何建立?一张表中的主键只能有一个,外键可以有多个,如果一张表中多个列都需要被别的表的外键参考,需要使用候选码(非空并且唯一),具体到你的这个问题的需求可以考虑用如下方法解决:
把a表中的bookid和authorid都设置为非空并且唯一,即
create table a(bookid int not null unique, authorid int not null unique);
然后在book表和author表中就可以分别设置外键来参照a表中两个不同的字段了 。
打开我的navicat,然后找到我的teacher表,选中它,然后点击菜单栏上的‘design table'
2. 在弹出的对话框中找到“Foreign Keys” , 然后单机 。
3. 然后会出现一个设置外键的界面,一共有七列 。简单介绍一下这几列的意思 。‘name’:可以不填,你一会保存成功系统会自动生成 。FieldName’:就是你要把哪个键设置为外键 。这里选择‘dept’,‘Reference DadaBase’:外键关联的数据库 。‘Reference Table‘ :关联的表 这里是dept表‘Forgin filed Names’:关联的的字段,这里是code‘ondelete’:就是删除的时候选择的动作 。这里我的选择是setNull,意思就是当关联的表删除以后,teacher》dept字段会设置为null.
4. 设置完成后点击‘save’保存退出 , 也可以点击‘add Foreign Key’再添加一个外键 。
打开我的navicat,然后找到我的teacher表,选中它,然后点击菜单栏上的‘design table’ 。如下图:
2. 在弹出的对话框中找到“Foreign Keys” , 然后单机 。如下图:
3. 然后会出现一个设置外键的界面,一共有七列 。简单介绍一下这几列的意思 。‘name’:可以不填,你一会保存成功系统会自动生成 。FieldName’:就是你要把哪个键设置为外键 。这里选择‘dept’ , ‘Reference DadaBase’:外键关联的数据库 。‘Reference Table‘ :关联的表 这里是dept表‘Forgin filed Names’:关联的的字段,这里是code‘ondelete’:就是删除的时候选择的动作 。这里我的选择是setNull,意思就是当关联的表删除以后,teacher》dept字段会设置为null 。如图

推荐阅读