暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SQL中的主键约束(PRIMARY KEY)是什么?

SQL数据库运维 2021-07-15
3352

SQL中的主键是什么?

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

注:由两列或更多列组成的主键也称为复合主键。

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

  • 任意两行的主键值都不相同。

  • 每行都具有一个主键值(即列中不允许NULL值)。

  • 包含主键值的列从不修改或更新。(大多数DBMS不允许这样做,但是如果你使用的DBMS允许这样做,好吧,千万别!!!

  • 主键值不能重复。如果从表中删除某一行,其主键值不分配新行。




SQL PRIMARY KEY 约束

PRIMARY KEY 约束唯一标识数据库表中的每条记录。

主键必须包含唯一的值。

主键列不能包含 NULL 值。

每个表都应该有一个主键,并且每个表只能有一个主键,此主键可以包含单个或多个列(字段)。



使用CREATE TABLE 创建 SQL PRIMARY KEY 约束

下面的 SQL 在 "Persons" 表创建时在 "Id_P" 列创建 PRIMARY KEY 约束:

MySQL:

    CREATE TABLE Persons
    (
    Id_P int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255),
    PRIMARY KEY (Id_P)
    )


    SQL Server Oracle MS Access:

      CREATE TABLE Persons
      (
      Id_P int NOT NULL PRIMARY KEY,
      LastName varchar(255) NOT NULL,
      FirstName varchar(255),
      Address varchar(255),
      City varchar(255)
      )

      如果需要命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束,请使用下面的 SQL 语法:

      MySQL / SQL Server / Oracle / MS Access:

        CREATE TABLE Persons
        (
        Id_P int NOT NULL,
        LastName varchar(255) NOT NULL,
        FirstName varchar(255),
        Address varchar(255),
        City varchar(255),
        CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)
        )


        使用ALTER TABLE语句添加 SQL PRIMARY KEY 约束

        如果在表已存在的情况下为 "Id_P" 列创建 PRIMARY KEY 约束,请使用下面的 SQL:

        MySQL / SQL Server / Oracle / MS Access:

          ALTER TABLE Persons
          ADD PRIMARY KEY (Id_P)

          如果需要命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束,请使用下面的 SQL 语法:

          MySQL / SQL Server / Oracle / MS Access:

            ALTER TABLE Persons
            ADD CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)

            注释:如果您使用 ALTER TABLE 语句添加主键,必须把主键列声明为不包含 NULL 值(在表首次创建时)。 

            注意:SQLlite不允许使用ALTER TABLE定义键,要求在初始的CREATE TABLE语句中定义他们。



            删除 PRIMARY KEY 约束

            如需删除PRIMARY KEY 约束,请使用下面的 SQL:

            MySQL:

              ALTER TABLE Persons
              DROP PRIMARY KEY

              SQL Server / Oracle / MS Access:

                ALTER TABLE Persons
                DROP CONSTRAINT pk_PersonID
                文章转载自SQL数据库运维,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                评论