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 用于将列定义为自动编号的标识列。

通过以上步骤,我们成功地为数据库表定义了主键、唯一约束、默认值约束、检查约束以及自动编号的标识列。

SQL数据库表设计:主键、外键、约束和自动编号

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

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