SQL 数据库设计:创建个人信息、教育、工作经历、技能和语言表并设置约束
SQL 数据库设计:创建个人信息、教育、工作经历、技能和语言表并设置约束
本文将介绍如何使用 SQL 创建个人信息、教育、工作经历、技能和语言表,并设置主键、外键、唯一约束、默认值约束、检查约束和自动编号的标识列等。
1. 创建数据表
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)
);
2. 设置约束
-- 设置 personal_info 表的主键
ALTER TABLE personal_info ADD CONSTRAINT pk_personal_info PRIMARY KEY (id);
-- 设置 education 表的主键和外键
ALTER TABLE education ADD CONSTRAINT pk_education PRIMARY KEY (id);
ALTER TABLE education ADD CONSTRAINT fk_education_personal_info FOREIGN KEY (id) REFERENCES personal_info(id);
-- 设置 work_experience 表的主键和外键
ALTER TABLE work_experience ADD CONSTRAINT pk_work_experience PRIMARY KEY (id);
ALTER TABLE work_experience ADD CONSTRAINT fk_work_experience_personal_info FOREIGN KEY (id) REFERENCES personal_info(id);
-- 设置 skills 表的主键和唯一约束
ALTER TABLE skills ADD CONSTRAINT pk_skills PRIMARY KEY (id);
ALTER TABLE skills ADD CONSTRAINT uc_skill_name UNIQUE (skill_name);
-- 设置 languages 表的主键和唯一约束
ALTER TABLE languages ADD CONSTRAINT pk_languages PRIMARY KEY (id);
ALTER TABLE languages ADD CONSTRAINT uc_language_name UNIQUE (language_name);
-- 设置 personal_info 表的 id 列为自动编号的标识列
ALTER TABLE personal_info ALTER COLUMN id INT IDENTITY(1,1);
-- 设置 personal_info 表的 gender 列的默认值约束
ALTER TABLE personal_info ADD CONSTRAINT df_gender DEFAULT 'unknown' FOR gender;
-- 设置 education 表的检查约束
ALTER TABLE education ADD CONSTRAINT chk_end_date CHECK (end_date >= start_date);
说明:
ALTER TABLE语句用于修改表结构。ADD CONSTRAINT语句用于添加约束。PRIMARY KEY约束用于定义主键。FOREIGN KEY约束用于定义外键。UNIQUE约束用于定义唯一约束。DEFAULT约束用于定义默认值。CHECK约束用于定义检查约束。IDENTITY用于定义自动编号的标识列。
注意:
education表的end_date列的检查约束引用了另一列start_date,这在一些数据库系统中可能不支持。请根据实际情况调整约束条件。
通过以上步骤,我们成功地创建了个人信息、教育、工作经历、技能和语言表,并设置了相应的约束。这些约束可以确保数据的完整性和一致性。
原文地址: https://www.cveoy.top/t/topic/fYr4 著作权归作者所有。请勿转载和采集!