• 技术文章 >数据库 >SQL

    简单了解SQL Server主键约束(PRIMARY KEY)

    WBOYWBOY2022-09-06 17:30:57转载334
    本篇文章给大家带来了关于SQL server的相关知识,其中主要介绍了SQL Server主键约束(PRIMARY KEY),主键是唯一标识表中每一行的一列或一组列,文章围绕主题展开详情,下面一起来看一下,希望对大家有帮助。

    php入门到就业线上直播课:进入学习

    推荐学习:《SQL教程

    SQL Server PRIMARY KEY(主键)约束简介

    主键是唯一标识表中每一行的一列或一组列。您可以使用主键约束为表创建主键。
    如果主键仅包含一列,你可以使用PRIMARY KEY约束作为列约束:

    CREATE TABLE table_name (
        pk_column data_type PRIMARY KEY,
        ...
    );

    如果主键有两列或多列,则必须将主键约束用作表约束:

    CREATE TABLE table_name (
        pk_column_1 data_type,
        pk_column_2 data type,
        ...
        PRIMARY KEY (pk_column_1, pk_column_2)
    );

    每个表只能包含一个主键,一个主键可以包含多个列,即多个列的组合不能重复。参与主键的所有列必须定义为NOT NULL。如果未为所有主键列指定NOT NULL约束,SQL Server会自动为这些列设置非空约束。

    SQL Server PRIMARY KEY约束示例

    以下示例创建了一个具有主键的表,主键由一列组成:

    CREATE TABLE dbo.activities (
        activity_id INT PRIMARY KEY IDENTITY,--主键
        activity_name VARCHAR (255) NOT NULL,
        activity_date DATE NOT NULL
    );

    在表dbo.activities中,activity_id列是主键列,意味着这一列的值不能重复

    IDENTITY属性用于activity_id列自动生成唯一的整数值。

    下面创建一个由两列组成外键的新表:

    CREATE TABLE dbo.participants(
        activity_id int,
        customer_id int,
        PRIMARY KEY(activity_id, customer_id)
    );

    在本例中,activity_idcustomer_id列中的值可以重复,但两列中的每个值组合都必须是唯一的。

    通常,表总是在创建时定义主键。然而,有时,现有表可能没有定义主键。在这种情况下,可以使用ALTER TABLE语句向表中添加主键。比如示例:

    先创建一个没有主键列的表:

    CREATE TABLE dbo.events(
        event_id INT NOT NULL,
        event_name VARCHAR(255),
        start_date DATE NOT NULL,
        duration DEC(5,2)
    );

    然后使event_id列成为主键:

    ALTER TABLE sales.events 
    ADD PRIMARY KEY(event_id);

    注意,如果 sales.events 表已经有数据,在将 event_id 列提升为主键之前,必须确保 event_id 中的值是不重复的。

    推荐学习:《SQL教程

    以上就是简单了解SQL Server主键约束(PRIMARY KEY)的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:脚本之家,如有侵犯,请联系admin@php.cn删除
    专题推荐:SQL
    上一篇:一文搞懂SQL中的开窗函数 下一篇:SQL查询给表起别名要点(总结分享)
    VIP课程(WEB全栈开发)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• SQL Server解析/操作Json格式字段数据的方法实例• oracle数据库与sql的区别是什么• mysql的10061错误是什么• 一起来聊聊MySQL索引结构• SQL案例学习之字符串的合并与拆分
    1/1

    PHP中文网