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,这在一些数据库系统中可能不支持。请根据实际情况调整约束条件。

通过以上步骤,我们成功地创建了个人信息、教育、工作经历、技能和语言表,并设置了相应的约束。这些约束可以确保数据的完整性和一致性。

SQL 数据库设计:创建个人信息、教育、工作经历、技能和语言表并设置约束

原文地址: https://www.cveoy.top/t/topic/fYr4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录