“oracle主键、外键、主键约束、唯一约束”这几个词语如何理解?
主键:就是这个表的目录,以方便你查询、更新等等,既然是“目录”,所以不可能有重复的定义出现,所以也就自动有一个主键约束。
外键:就是这个表外在的约束,要求某一列值,必须与外面的某一数据相符 ,是表与表之间数据的约束 。
主键约束 :就是要求,主键不能重复,才可以生成“目录”。
图片来源:网络
唯一约束 :就是要求,某个或某几个数据不能重复。
主键约束和唯一性约束有什么区别?
主键必然是唯一且不为空,但是唯一不一定是主键,而且主键只能有一个,但是唯一约束仅仅是为了保持某些列具有唯一性而已。所以可以有多列 一张表里只能有一个主键约束,可以有多个唯一约束 主键约束的字段不能为null,而唯一约束的字段可以为null值
1.主键约束(PRIMARY KEY) 1) 主键用于唯一地标识表中的每一条记录,可以定义一列或多列为主键。 2) 是不可能(或很难)更新. 3) 主键列上没有任何两行具有相同值(即重复值),不允许空(NULL). 4) 主健可作外健,唯一索引不可;
2.唯一性约束(UNIQUE) 1) 唯一性约束用来限制不受主键约束的列上的数据的唯一性,用于作为访问某行的可选手段,一个表上可以放置多个唯一性约束. 2) 只要唯一就可以更新. 3) 即表中任意两行在 指定列上都不允许有相同的值,允许空(NULL). 4) 一个表上可以放置多个唯一性约束
区别:每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。[知识拓展]主键:PRIMARY KEY约束唯一标识数据库表中的每条记录。主键必须包含唯一的值;主键列不能包含 NULL 值。每个表都应该有一个主键,并且每个表只能有一个主键。
唯一:UNIQUE约束唯一标识数据库表中的每条记录。UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。PRIMARY KEY 约束拥有自动定义的 UNIQUE 约束。
MySQL几张表中怎么设置主键约束和外键约束并设置级联更新?
MySQL中可以通过以下方式设置主键约束和外键约束,并设置级联更新:1. 设置主键约束:在创建表时,可以使用PRIMARY KEY关键字来设置主键约束。
例如,创建一个名为"students"的表,其中"student_id"字段为主键:CREATE TABLE students ( student_id INT PRIMARY KEY, name VARCHAR(50), age INT);2. 设置外键约束:在创建表时,可以使用FOREIGN KEY关键字来设置外键约束。
例如,创建一个名为"courses"的表,其中"student_id"字段为外键,参考了"students"表的主键:CREATE TABLE courses ( course_id INT, course_name VARCHAR(50), student_id INT, FOREIGN KEY (student_id) REFERENCES students(student_id));3. 设置级联更新:可以使用ON UPDATE CASCADE关键字来设置级联更新。
例如,修改"courses"表的外键约束,使其在"students"表中的主键更新时,自动更新"courses"表中的外键值:ALTER TABLE courses MODIFY student_id INT, FOREIGN KEY (student_id) REFERENCES students(student_id) ON UPDATE CASCADE;通过以上设置,当"students"表中的主键值更新时,"courses"表中对应的外键值也会自动更新。
总结:MySQL中,可以通过使用PRIMARY KEY关键字设置主键约束,使用FOREIGN KEY关键字设置外键约束,并使用ON UPDATE CASCADE关键字设置级联更新。
这样可以保证数据的完整性和一致性。