📜  SQL 中的复合键(1)

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

SQL 中的复合键

在 SQL 中,复合键(Compound Key)也称为联合键(Composite Key),指的是由多个列组成的键。一个表可以有多个列组成复合键,这些列可以是表中已有的列,也可以是新添加的列。

建立复合键

在建立复合键时,需要在创建表时指定多个列,并在它们前面添加 PRIMARY KEY 关键字,如下所示:

CREATE TABLE students (
  id INT,
  name VARCHAR(50),
  age INT,
  PRIMARY KEY (id, name)
);

这将创建一个名为 students 的表,其中包含名为 id、name 和 age 的三个列。然而,通过向 PRIMARY KEY 关键字添加名为 id 和 name 的列,它们将成为复合键的一部分。

使用复合键

复合键可以用于查询、排序和更新数据。查询复合键的语法非常简单,只需要在 WHERE 子句中指定多个列,并使用 AND 运算符将它们连接。例如,如下查询返回 id 为 123,并且姓名为 Tom 的学生的记录:

SELECT * FROM students WHERE id = 123 AND name = 'Tom';

排序也很简单,在 ORDER BY 子句中指定多个列排序的顺序即可。例如,如下代码通过姓名和年龄对学生记录进行按字母顺序排序:

SELECT * FROM students ORDER BY name ASC, age ASC;

更新或删除记录也可以使用复合键。例如,如下代码将删除 id 为 123,并且姓名为 Tom 的学生的记录:

DELETE FROM students WHERE id = 123 AND name = 'Tom';
注意事项

需要注意的是,在使用复合键时,应遵循以下一些最佳实践:

  • 选择正确的列:在选择复合键的列时,应选择最能唯一标识一行的列。例如,在学生表中,考虑到学号和姓名的组合可能不唯一,可能需要将学号单独作为主键。
  • 不要让复合键太大:复合键的大小会影响查询和索引的效率。因此,应尽可能选择较小的列或使用功能更强大的数据类型。
  • 遵循命名规范:如果表中存在多个复合键,应该为它们命名,以便于区分。

在使用复合键时,需要仔细考虑其影响,以便确定最适合的方案。