SQL PRIMARY KEY唯一标识表中记录的关键约束语句

 更新时间:2023年12月10日 09:37:14   作者:小万哥  
这篇文章主要为大家介绍了SQL PRIMARY KEY唯一标识表中记录的关键约束语句详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

SQL NOT NULL 约束

SQL NOT NULL 约束用于强制确保列不接受 NULL 值。这意味着该字段始终包含一个值,而不允许插入新记录或更新记录时不提供此字段的值。

在 CREATE TABLE 时使用 SQL NOT NULL

以下 SQL 确保在创建 "Persons" 表时,“ID”、“LastName” 和 “FirstName” 列将不接受 NULL 值:

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255) NOT NULL,
    Age int
);

在 ALTER TABLE 时使用 SQL NOT NULL

要在已创建的 "Persons" 表上的 "Age" 列上创建 NOT NULL 约束,使用以下 SQL:

对于 SQL Server / MS Access:

ALTER TABLE Persons
ALTER COLUMN Age int NOT NULL;

对于 MySQL / Oracle(10G 之前的版本):

ALTER TABLE Persons
MODIFY COLUMN Age int NOT NULL;

对于 Oracle 10G 及更高版本:

ALTER TABLE Persons
MODIFY Age int NOT NULL;

通过这些 SQL 语句,您可以确保指定列不会包含 NULL 值,从而增强数据的完整性。

SQL UNIQUE 约束

SQL UNIQUE 约束确保列中的所有值都是不同的。UNIQUE 和 PRIMARY KEY 约束都为列或一组列提供了唯一性的保证。PRIMARY KEY 约束自动具有 UNIQUE 约束。每个表只能有一个 PRIMARY KEY 约束,但可以有多个 UNIQUE 约束。

在 CREATE TABLE 时使用 SQL UNIQUE 约束

以下 SQL 在创建 "Persons" 表时在 "ID" 列上创建了一个 UNIQUE 约束:

对于 SQL Server / Oracle / MS Access:

CREATE TABLE Persons (
    ID int NOT NULL UNIQUE,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
);

对于 MySQL:

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    UNIQUE (ID)
);

要为 UNIQUE 约束命名,并在多列上定义 UNIQUE 约束,请使用以下 SQL 语法:

对于 MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    CONSTRAINT UC_Person UNIQUE (ID, LastName)
);

在 ALTER TABLE 时使用 SQL UNIQUE 约束

要在表已经创建的情况下在 "ID" 列上创建 UNIQUE 约束,请使用以下 SQL:

对于 MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD UNIQUE (ID);

要为 UNIQUE 约束命名,并在多列上定义 UNIQUE 约束,请使用以下 SQL 语法:

对于 MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CONSTRAINT UC_Person UNIQUE (ID, LastName);

删除 UNIQUE 约束

要删除 UNIQUE 约束,请使用以下 SQL:

对于 MySQL:

ALTER TABLE Persons
DROP INDEX UC_Person;

对于 SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT UC_Person;

通过这些 SQL 语句,您可以在数据库中定义和管理 UNIQUE 约束,以确保列中的数据唯一性。

SQL PRIMARY KEY 约束

SQL PRIMARY KEY 约束唯一标识表中的每条记录。主键必须包含唯一的值,并且不能包含 NULL 值。一个表只能有一个主键;在表中,这个主键可以由单个列(字段)或多个列(字段)组成。

在 CREATE TABLE 时使用 SQL PRIMARY KEY

以下 SQL 在创建 "Persons" 表时在 "ID" 列上创建了一个 PRIMARY KEY

对于 MySQL:

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    PRIMARY KEY (ID)
);

对于 SQL Server / Oracle / MS Access:

CREATE TABLE Persons (
    ID int NOT NULL PRIMARY KEY,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
);

要允许对主键约束进行命名,并定义在多列上的主键约束,请使用以下 SQL 语法:

对于 MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    CONSTRAINT PK_Person PRIMARY KEY (ID, LastName)
);

注意: 在上面的示例中只有一个 PRIMARY KEYPK_Person)。然而,主键的值由两个列(ID + LastName)组成。

在 ALTER TABLE 时使用 SQL PRIMARY KEY

要在表已经创建的情况下在 "ID" 列上创建主键约束,请使用以下 SQL:

对于 MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD PRIMARY KEY (ID);

要允许对主键约束进行命名,并定义在多列上的主键约束,请使用以下 SQL 语法:

对于 MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CONSTRAINT PK_Person PRIMARY KEY (ID, LastName);

注意: 如果使用 ALTER TABLE 添加主键,则主键列必须在创建表时声明为不包含 NULL 值。

删除 PRIMARY KEY 约束

要删除主键约束,请使用以下 SQL:

对于 MySQL:

ALTER TABLE Persons
DROP PRIMARY KEY;

对于 SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT PK_Person;

通过这些 SQL 语句,您可以在数据库中定义和管理 PRIMARY KEY 约束,以确保表中的数据具有唯一的标识。

以上就是SQL PRIMARY KEY唯一标识表中记录的关键约束语句的详细内容,更多关于SQL PRIMARY KEY约束的资料请关注脚本之家其它相关文章!

相关文章

  • MYSQL插入数据时检查字段值是否重复的方法详解

    MYSQL插入数据时检查字段值是否重复的方法详解

    这篇文章主要给大家介绍了关于MYSQL插入数据时检查字段值是否重复的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01
  • SQL去重的3种实用方法总结

    SQL去重的3种实用方法总结

    SQL去重是数据分析工作中比较常见的一个场景,下面这篇文章主要给大家介绍了关于SQL去重的3种实用方法的相关资料,文中通过图文以及实例代码介绍的非常详细,需要的朋友可以参考下
    2022-10-10
  • 利用MySQL加密函数保护Web网站敏感数据的方法分享

    利用MySQL加密函数保护Web网站敏感数据的方法分享

    如果您正在运行使用MySQL的Web应用程序,那么它把密码或者其他敏感信息保存在应用程序里的机会就很大
    2012-03-03
  • MYSQL 浅谈MyISAM 存储引擎

    MYSQL 浅谈MyISAM 存储引擎

    mysql中用的最多存储引擎就是innodb和myisam。做为Mysql的默认存储引擎,myisam值得我们学习一下,以下是我对《高性能MYSQL》书中提到的myisam的理解,请大家多多指教
    2012-04-04
  • MySQL如何处理InnoDB并发事务中的间隙锁死锁

    MySQL如何处理InnoDB并发事务中的间隙锁死锁

    这篇文章主要为大家介绍了MySQL如何处理InnoDB并发事务中的间隙锁死锁,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • mysql授予用户远程访问权限的实现

    mysql授予用户远程访问权限的实现

    在默认情况下,MySQL 数据库仅允许在本地主机上进行访问,如果您需要远程连接到 MySQL 数据库,您需要授予用户远程访问权限,本文就来
    2023-11-11
  • MySQL读写分离原理详细解析

    MySQL读写分离原理详细解析

    这篇文章主要介绍了MySQL读写分离原理详细解析,读写分离是基于主从复制来实现的,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-07-07
  • Mysql常用sql语句汇总

    Mysql常用sql语句汇总

    这篇文章主要介绍了Mysql常用sql语句汇总的相关资料,需要的朋友可以参考下
    2017-09-09
  • MySQL InnoDB中意向锁的作用及原理

    MySQL InnoDB中意向锁的作用及原理

    意向锁是由InnoDB在操作数据之前自动加的,本文主要介绍了MySQL InnoDB中意向锁的作用及原理,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05
  • mysql+mybatis实现存储过程+事务 + 多并发流水号获取

    mysql+mybatis实现存储过程+事务 + 多并发流水号获取

    这篇文章主要介绍了mysql+mybatis+存储过程+事务 + 多并发流水号获取,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12

最新评论