主键(Primary key)
主键Primary key 是一列或多列的组合,作用于唯一标识表中每一行数据,简单来说就是,‘就是给每一张表中的ID添加个唯一标识,也就是主键’
- 主键Primary key 特点就是:
- 主键必须唯一、不允许出现重复值;
- 主键值不能为空,也就是说,任何一行数据的主键都不能为空NULL;
- 主键一张表只能有一个主键,可以一列或多列组成
在Mysql数据库中,可以通过' Primary key '的关键字将一列或多列设置为主键,代码如下:
CREATE TABLE Student
(
id int primary key ,
name varchar(50)
)
Student表的id设置了主键,从而保证了每列数据的唯一性,不会在重新重复的数据,也方便了对表数据的查询、删除、修改...
外键(Foreign key )
外键Foreign key 用于建立表与表之间的关系,可以保证数据的一致性
- 外键(Foreign key )
- 外键Foreign key 用于建立表与表之间的关系,可以保证数据的一致性
- 外键‘Foreign key’ 的特点就是:
- 外键值必须存在另一个表的主键的值,否则为空NULL;
- 外键约束可以保证表与表之间的数据一致性,如果一个表的外键值被修改或删除了,那么关联的表的数据也会被相应地修改或删除;
- 一张表可以有多个外键
在Mysq数据库中,可以通过关键字‘Foreign key’将一列或多列的数据设置为外键,代码如下:
CREATE TABLE Course (
id INT primary key,
name varchar(50),
teacher_id int, -- 注意
foreign key (teacher_id) references Student(id)
);
现在Course表和Student表就有了关联了
那么问题来了,我如何同时查询出两张表的数据呢?
不啰嗦,之间上代码:
select * from xxx A left join yy B on A.id=B.id ;
我这里就有左外连接演示
select * from Course as A left join Student as B on A.teacher_id= B.id
as 是什么意思呢? as就是重命名的意思,它的作用(主要为了方便查询),as 也可以忽略不写也是行的,因为 select * from Student A 没有as默认也是重命名A
select * from Course A left join Student B on A.teacher_id= B.id
我这里只讲了一种左外连接,CSDN博客还有几种连接方式,比如:内连接、交叉连接...