数据库中的五种约束及其添加方法 五大约束

本文详细介绍了SQL Server中五种关键的数据库约束类型:主键约束、唯一约束、检查约束、默认约束和外键约束,并提供了每种约束的具体添加示例。
数据库中的五种约束及其添加方法 五大约束 
1.—-主键约束(Primay Key Coustraint) 唯一性,非空性 
2.—-唯一约束 (Unique Counstraint)唯一性,可以空,但只能有一个 
3.—-检查约束 (Check Counstraint) 对该列数据的范围、格式的限制(如:年龄、性别等) 4.—-默认约束 (Default Counstraint) 该数据的默认值 
5.—-外键约束 (Foreign Key Counstraint) 需要建立两表间的关系并引用主表的列 五大约束的语法示例 
1.—-添加主键约束(将stuNo作为主键) alter table stuInfo 
add constraint PK_stuNo primary key (stuNo) 
2.—-添加唯一约束(身份证号唯一,因为每个人的都不一样) alter table stuInfo 
add constraint UQ_stuID unique(stuID) 
3.—-添加默认约束(如果地址不填 默认为“地址不详”) alter table stuInfo 
add constraint DF_stuAddress default (‘地址不详’) for stuAddress 4.—-添加检查约束 (对年龄加以限定 15-40岁之间) alter table stuInfo 
add constraint CK_stuAge check (stuAge between 15 and 40)  
alter table stuInfo 
add constraint CK_stuSex check (stuSex=’男’ or stuSex=’女′)  
5.—-添加外键约束 (主表stuInfo和从表stuMarks建立关系,关联字段stuNo)  
alter table stuInfo 
add constraint FK_stuNo foreign key(stuNo)references stuinfo(stuNo)  
约束(Constraint)是Microsoft SQL Server 提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件(有关数据完整性的介绍请参见第9 章)。在SQL Server 中有5 种约束:主关键字约束(Primary Key Constraint)、外关键字约束(Foreign Key Constraint)、惟一性约束(Unique Constraint)、检查约束(Check Constraint)和缺省约束(Default Constraint)。  
### 数据库五大约束的概念及应用 #### 1. 主键约束 (Primary Key Constraint) 主键用于唯标识中的行记录。只能有个主键,它可以由单个列或多列组合而成。主键不允许为空,并且必须具有唯性。 ```sql CREATE TABLE employee ( id INT PRIMARY KEY, name VARCHAR(50), age INT ); ``` 此语句创建了个名为 `employee` 的,其中 `id` 列为主键[^2]。 #### 2. 外键约束 (Foreign Key Constraint) 外键定义了不同之间的关系,通常用来建立父子间的关联。通过设置外键可以确保参照完整性,即子中某字段的值必须存在于父对应的字段中。 ```sql CREATE TABLE orders ( order_id INT PRIMARY KEY, customer_id INT, CONSTRAINT fk_customer FOREIGN KEY (customer_id) REFERENCES customers(customer_id) ); ``` 这段 SQL 创建了张订单设置了对外部客户的引用。 #### 3. 唯约束 (Unique Constraint) 该约束保证指定的个或多个列不会出现重复值。与主键相似之处在于它也强制唯性,但是允许存在NULL值。 ```sql ALTER TABLE employees ADD UNIQUE (email); ``` 这条命令向现有员工添加电子邮件地址作为唯约束条件。 #### 4. 非空约束 (Not Null Constraint) 非空约束规定某特定列不能接受 NULL 值。这意味着每条新纪录都必须为此列提供有效的输入数据。 ```sql CREATE TABLE users ( user_name VARCHAR(50) NOT NULL, password_hash CHAR(64) ); ``` 这里声明用户名不能为空。 #### 5. 默认值约束 (Default Constraint) 默认值会在插入新行而未给定某些列的具体数值时自动填充这些列。这有助于减少不必要的手动赋值过程。 ```sql CREATE TABLE products ( product_code VARCHAR(20), price DECIMAL(8, 2), stock_quantity INTEGER DEFAULT 0 ); ``` 上述代码片段设定了商品库存数量缺省情况下为零。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值