📜  sql中的主键(1)

📅  最后修改于: 2023-12-03 15:20:19.357000             🧑  作者: Mango

SQL中的主键

在关系型数据库中,主键是一种用于标识数据库表中唯一记录的机制。主键可以是一个或多个列的组合。它们具有以下特性:

  1. 唯一性:每个主键值必须是唯一的,不允许重复的值出现。

  2. 不可空:主键列不能有空值。

  3. 固定性:一旦一个记录被插入数据库,其主键必须不可更改。

创建主键

在SQL中,我们可以使用以下语法创建主键:

CREATE TABLE table_name (
   column1 datatype constraint PK_table_name PRIMARY KEY,
   column2 datatype,
   column3 datatype,
   .....
);

其中,PK_table_name是主键的名称,column1是拥有主键的列名,datatype是列的数据类型。

如果要在一个表中使用多列作为主键,可以使用以下语法:

CREATE TABLE table_name (
   column1 datatype,
   column2 datatype,
   column3 datatype,
   .....
   CONSTRAINT PK_table_name PRIMARY KEY (column1, column2, ... column_n)
);

在这种情况下,主键由一个或多个列组成,用逗号隔开。

主键的作用
  1. 确保数据唯一性:主键保证了每行数据的唯一性,这意味着我们可以使用主键标识一行数据,而不需要担心可能存在重复的数据。

  2. 提高查询性能:主键的值经过索引可以加速查询和过滤数据。

  3. 作为外键的引用:主键可以用作其他表中的外键引用,这能够确保数据的一致性和完整性。

引用主键

当使用主键作为外键引用时,可以使用以下语法:

CREATE TABLE table_name (
   column1 datatype PRIMARY KEY,
   column2 datatype,
   .....
);

CREATE TABLE referencing_table_name (
   column1 datatype,
   column2 datatype,
   .....
   CONSTRAINT FK_table_name FOREIGN KEY (column1)
   REFERENCES table_name(column1)
);

在这个示例中,table_name表的column1是主键,referencing_table_name表的column1是外键,引用了table_name表的column1列。

总结

主键在SQL中的作用重大,通常用于保证数据完整性以及提高查询性能。创建主键非常简单,只需要在创建表的时候指定一些约束,然后数据库会自动维护这些约束。当使用主键作为外键引用时,它可以确保数据的一致性和完整性。