SQL数据库表设计:主键、外键、约束和自动编号
SQL数据库表设计:主键、外键、约束和自动编号
本教程将演示如何使用SQL代码为数据库表定义主键、外键、唯一约束、默认值约束、检查约束以及自动编号的标识列。
示例数据表
我们以以下数据表为例:
CREATE TABLE personal_info (
id INT PRIMARY KEY,
name VARCHAR(50),
gender VARCHAR(10),
birthdate DATE,
id_number VARCHAR(20),
phone VARCHAR(20),
email VARCHAR(50)
);
CREATE TABLE education (
id INT PRIMARY KEY,
degree VARCHAR(50),
major VARCHAR(50),
school VARCHAR(50),
start_date DATE,
end_date DATE
);
CREATE TABLE work_experience (
id INT PRIMARY KEY,
company VARCHAR(50),
position VARCHAR(50),
start_date DATE,
end_date DATE,
job_description VARCHAR(500)
);
CREATE TABLE skills (
id INT PRIMARY KEY,
skill_name VARCHAR(50),
proficiency VARCHAR(20)
);
CREATE TABLE languages (
id INT PRIMARY KEY,
language_name VARCHAR(50),
proficiency VARCHAR(20)
);
添加约束
以下SQL代码演示如何为上述数据表添加约束:
-- personal_info表
ALTER TABLE personal_info ADD CONSTRAINT unique_id_number UNIQUE (id_number);
ALTER TABLE personal_info ALTER COLUMN phone SET DEFAULT 'N/A';
ALTER TABLE personal_info ADD CONSTRAINT check_gender CHECK (gender IN ('男', '女'));
-- education表
ALTER TABLE education ALTER COLUMN id SET IDENTITY(1,1);
-- work_experience表
ALTER TABLE work_experience ALTER COLUMN id SET IDENTITY(1,1);
-- 其他表无需添加约束。
解释
ALTER TABLE语句用于修改现有表的结构。ADD CONSTRAINT语句用于添加约束。UNIQUE约束确保列中所有值都是唯一的。DEFAULT约束为列定义默认值。CHECK约束用于限制列中允许的值。SET IDENTITY用于将列定义为自动编号的标识列。
通过以上步骤,我们成功地为数据库表定义了主键、唯一约束、默认值约束、检查约束以及自动编号的标识列。
原文地址: https://www.cveoy.top/t/topic/fYrR 著作权归作者所有。请勿转载和采集!