SQL主键

SQL主键主键是一种特殊的约束,用来保证一列(或一组列)中的值是唯一的,而且永不改动。换句话说,表中的一列(或多个列)的值唯一标识表中的每一行。这方便了直接或交互地处理表中的行。没有主键,要安全地UPDATE或DELETE特定行而不影响其他行会非常困难。

表中任意列只要满足以下条件,都可以用于主键:

  • 任意两行的主键值都不相同。
  • 每行都具有一个主键值(即列中不允许NULL值)。
  • 包含主键值的列从不修改或更新。(大多数DBMS不允许这么做,但如果你使用的DBMS允许这样做,好吧,千万别!)
  • 主键值不能重用。如果从表中删除某一行,其主键值不分配给新行。
    一种定义主键的方法是创建它,如下所示。
    CREATE TABLE Vendors
    (
        vend_id           CHAR(10)        NOT NULL PRIMARY KEY,
        vend_name        CHAR(50)        NOT NULL,
        vend_address     CHAR(50)        NULL,
        vend_city        CHAR(50)        NULL,
        vend_state       CHAR(5)          NULL,
        vend_zip          CHAR(10)        NULL,
        vend_country     CHAR(50)        NULL
    );

在此例子中,给表的vend_id列定义添加关键字PRIMARY KEY,使其成为主键。

    ALTER TABLE Vendors
    ADD CONSTRAINT PRIMARY KEY (vend_id);

这里定义相同的列为主键,但使用的是CONSTRAINT语法。此语法也可以用于CREATE TABLE和ALTER TABLE语句。

说明:SQLite中的键
SQLite不允许使用ALTER TABLE定义键,要求在初始的CREATE TABLE语句中定义它们。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!

 

SQL教程