首页博客网络编程
使用 SQL PRIMARY KEY 约束
摘要

内容

主键:引入 SQL 约束

SQL 是一种约束,用于唯一标识每个表行。它可以是单列,也可以是一组列。每列都必须应用 NOT NULL 列约束。一个表只能有一个主键。PRIMARY KEY

在 SQL 中定义主键

建议在数据库中创建新表时分配主键。您需要使用带有约束的 SQL CREATE TABLE 语句。PRIMARY KEY

由于不同数据库管理系统中的语法要求略有不同,因此您将看到两个使用 SQL CREATE TABLE 的示例,如下所示。在它们中,我们创建一个名为 and 将该列指定为主键的新表。PRIMARY KEYGuestsID

在MySQL中

复制

CREATE TABLE Guests (
    ID int NOT NULL,
    Surame varchar(100) NOT NULL,
    Name varchar(100),
    Age int,
    PRIMARY KEY (ID)
);

在 SQL Server/Oracle/MS Access 中

复制

CREATE TABLE Guests (
    ID int NOT NULL PRIMARY KEY,
    Surname varchar(100) NOT NULL,
    Name varchar(100),
    Age int);

SQL 复合主键

SQL 复合主键是使用多列的主键。建议使用尽可能少的列数,这样就不会占用太多磁盘空间

在下面的示例中,定义了一个名为的键。但是,它由两列组成 - 并且:PK_GuestIDSurname

复制

CREATE TABLE Guests (
    ID int NOT NULL,
    Surname varchar(100) NOT NULL,
    Name varchar(100),
    Age int,
    CONSTRAINT PK_Guest PRIMARY KEY (ID,Surname)
);

将主键添加到现有表

还可以使用 ALTER TABLE 语句将 SQL 主键分配给现有表

复制

ALTER TABLE GuestsADD PRIMARY KEY (ID);

在下面的示例中,我们添加一个由两列组成的 SQL 复合主键:

复制

ALTER TABLE GuestsADD CONSTRAINT PK_Guest PRIMARY KEY (ID,Surname);

删除 SQL 中的主键

若要删除 SQL 中的主键,还需要使用该语句。同样,不同数据库的语法略有不同:ALTER TABLE

在MySQL中

复制

ALTER TABLE GuestsDROP PRIMARY KEY;

在 SQL Server/Oracle/MS Access 中

复制

ALTER TABLE GuestsDROP CONSTRAINT PK_Guest;


声明提示:若要转载请务必保留原文链接,申明来源,谢谢合作!

本文链接:https://www.gaoxuejun173.top/blog/272

广告位

本文配乐
来说两句吧

该文章已禁止评论

最新评论

广告位