Mysql主键 外键笔记:一起来简单谈谈sql语句

SQL的主键和外键的概念:
主键(primary key) 能够唯一标识表中某一行的属性或属性组。一个表只能有一个主键,但可以有多个候选索引。主键常常与外键构成参照完整性约束,防止出现数据不一致。主键可以保证记录的唯一和主键域非空,数据库管理系统对于主键自动生成唯一索引,所以主键也是一个特殊的索引。

外键(foreign key) 是用于建立和加强两个表数据之间的链接的一列或多列。外键约束主要用来维护两个表之间数据的一致性。简言之,表的外键就是另一表的主键,外键将两表联系起来。一般情况下,要删除一张表中的主键必须首先要确保其它表中的没有相同外键(即该表中的主键没有一个外键和它相关联)。

PS:定义主键和外键主要是为了维护关系数据库的完整性:
主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。
外键用于与另一张表的关联,是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。

主键外键的添加:

创建一个普通的表:
CREATE TABLE t(
id int not null,
name char(20)
);

方法一:在表创建的时候直接创建主键或者外键

其一:
CREATE TABLE t1(
id int not null primary key,
f_id int,
name char(20),

foreign key(f_id) references f_t(f_id)
);
其二:
CREATE TABLE t1(
id int not null,
name char(20),

PRIMARY KEY (id)
);
其三:复合主键
CREATE TABLE t1(
id int not null,
name char(20),
primary key (id,name)
);

方法二:在表创建好之后进行主外键的添加
主键:
alter table 表名
add constraint PK_字段名–“PK”为主键的缩写,字段名为要在其上创建主键的字段名,’PK_字段名’就为约束名
primary key (字段名) –字段名同上

外键:
alter table 表名
add constraint FK_字段名–“FK”为外键的缩写
foreign key (字段名) references 关联的表名(关联的字段名) –注意’关联的表名’和’关联的字段名’

alter table order add constraint fk_user_id foreign key(user_id) references t_user(user_id);–自己的order表和user表对应

删除外键
语法: ALTER TABLE table-name DROP FOREIGN KEY key-id;
例: ALTER TABLE order DROP FOREIGN KEY user_id

记录下。。。。。

猜你喜欢

转载自blog.csdn.net/xiaozhouchou/article/details/78665062