SQL 中的不同类型的键
阅读:707
点赞:0
今天,我们将学习 SQL 中的不同类型的键。基本上,SQL 中有以下几种类型的键:
1. 主键 (Primary Key)
主键是 SQL 表的基本键,用于标识表中的唯一行。定义主键时,必须包含唯一值,不能为 null。
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
Name VARCHAR(100) NOT NULL,
EmployeeNo VARCHAR(100) NOT NULL,
Email VARCHAR(200) NOT NULL,
Active BIT NOT NULL,
Phone VARCHAR(20) NULL,
CreatedDate DATETIME NOT NULL
);
2. 外键 (Foreign Key)
外键与主键相关,是另一张表中的主键。它用于在表之间建立连接。
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
Name VARCHAR(100) NOT NULL,
EmployeeNo VARCHAR(100) NOT NULL,
Email VARCHAR(200) NOT NULL,
Active BIT NOT NULL,
Phone VARCHAR(20) NULL,
CreatedDate DATETIME NOT NULL
);
CREATE TABLE EmployeeFiles (
EmployeeFileID INT PRIMARY KEY,
EmployeeID INT,
CreatedDate DATETIME NOT NULL,
FOREIGN KEY (EmployeeID) REFERENCES Employees(EmployeeID)
);
3. 唯一键 (Unique Key)
唯一键确保表中每行的值是唯一的。与主键类似,但允许列中的 null 值。
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
Name VARCHAR(100) NOT NULL,
EmployeeNo VARCHAR(100) NOT NULL,
Email VARCHAR(200) NOT NULL UNIQUE,
Active BIT NOT NULL,
Phone VARCHAR(20) NULL,
CreatedDate DATETIME NOT NULL
);
4. 复合键 (Composite Key)
复合键用于基于两个列的唯一性要求。它基本上是多个列上的主键。
CREATE TABLE Employees (
EmployeeID INT IDENTITY(1,1),
Name VARCHAR(100) NOT NULL,
EmployeeNo VARCHAR(100) NOT NULL,
Email VARCHAR(200) NOT NULL,
Active BIT NOT NULL,
Phone VARCHAR(20) NULL,
CreatedDate DATETIME NOT NULL,
PRIMARY KEY (EmployeeNo, Email)
);
5. 替代键 (Alternate Key)
当多个键被添加到表中,除了主键之外,所有的键被称为替代键。
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
Name VARCHAR(100) NOT NULL,
EmployeeNo VARCHAR(100) NOT NULL UNIQUE,
Email VARCHAR(200) NOT NULL UNIQUE,
Active BIT NOT NULL,
Phone VARCHAR(20) NULL,
CreatedDate DATETIME NOT NULL
);
6. 替代键 (Surrogate Key)
当表的主键作为唯一标识符时,称之为替代键。它可以是数据库生成的或由其他应用程序生成的。
CREATE TABLE Employees (
EmployeeID INT IDENTITY(1,1) PRIMARY KEY,
Name VARCHAR(100) NOT NULL,
EmployeeNo VARCHAR(100) NOT NULL UNIQUE,
Email VARCHAR(200) NOT NULL UNIQUE,
Active BIT NOT NULL,
Phone VARCHAR(20) NULL,
CreatedDate DATETIME NOT NULL
);