SQL Server约束

一、SQL Server主键约束。

  1. 主键约束操作基本语句。

    CREATE TABLE table_name (
    	pk_column data_type PRIMARY KEY,
    	...
    );
    
  2. 主键是唯一标识表中每一行的列或一组列。可以使用 PRIMARY KEY 约束为表创建主键。

  3. 如果主键只包含一列,则可以将 PRIMARY KEY 约束定义为列约束:主键必须包含唯一的值。主键列不能包含 NULL 值。每个表都应该有一个主键,并且每个表只能有一个主键。

  4. 如果是在新建表的时候添加主键约束比较简单,直接在列名后加入primary key即可,标准的添加主键约束的SQL脚本如下:

二、SQL Server外键约束。

  1. vendor_groups 和v endor 表,它们的结构如下:

    CREATE TABLE procurement.vendor_groups (
    	group_id INT IDENTITY PRIMARY KEY,
    	group_name VARCHAR (100) NOT NULL
    );
    
    CREATE TABLE procurement.vendors (
    	vendor_id INT IDENTITY PRIMARY KEY,
    	vendor_name VARCHAR(100) NOT NULL,
    	group_id INT NOT NULL,
    );
    
  2. FOREIGN KEY约束语法。

    CONSTRAINT fk_constraint_name
    FOREIGN KEY (column_1, column2,...)
    REFERENCES parent_table_name(column1,column2,..)
    
  3. 外键是一个表中的一列或一组列,它唯一地标识另一个表的行。

  4. 要强制执行 vendor_groups 和 vendors 表中的数据之间的链接,需要在 vendors 表中建立外键。要创建外键,请使用 FOREIGN KEY 约束。

三、SQL Server Not Null约束。

  1. 以下示例为列创建一个具有 NOT NULL 约束的表:

    CREATE SCHEMA hr;
    GO
    CREATE TABLE hr.persons(
    	person_id INT IDENTITY PRIMARY KEY,
    	first_name VARCHAR(255) NOT NULL,
    	last_name VARCHAR(255) NOT NULL,
    	email VARCHAR(255) NOT NULL,
    	phone VARCHAR(20)
    );
    
  2. persons ,它具有以下几个字段: first_name ,last_name 和 email

  3. SQL Server NOT NULL 约束只是指定列不能为 NULL 值。

  4. 将NOT NULL约束添加到列

    UPDATE table_name
    SET column_name = <new_value>
    WHERE column_name IS NULL;
    

四、SQL Server唯一约束。

  1. 以下语句创建一个表: hr.persons ,其 email 邮件列中的数据在表的行中是唯一的:

    CREATE SCHEMA hr;
    GO
    CREATE TABLE hr.persons(
    	person_id INT IDENTITY PRIMARY KEY,
    	first_name VARCHAR(255) NOT NULL,
    	last_name VARCHAR(255) NOT NULL,
    	email VARCHAR(255) UNIQUE
    );
    
  2. SQL Server UNIQUE 约束用于确保存储在列或列组中的数据在表中的行中是唯一的。

  3. UNIQUE约束与PRIMARY KEY约束: 尽管 UNIQUE 和 PRIMARY KEY 约束都强制数据的唯一性,但是当要强制实现不是主键列的列或列组的唯一性时,应使用 UNIQUE 约束而不是 PRIMARY KEY 约束。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值