六大约束六大约束

1.主键约束(唯一约束 + 非空约束)
2.外键约束
3.唯一约束(允许一行数据为空)
4.默认值约束
5.检查约束
6.非空约束


create table student(
    --字段名 数据类型 约束 (一般在此只加非空约束)

--添加主键约束:primary key 
alter table student
    add constraint PK_stuId primary key (stuId)

--添加唯一约束:unique 
alter table student
    add constraint UQ_stuName unique (stuName)

--添加check约束:check 
alter table student
    add constraint CK_stuAge check (stuAge >=18 and stuAge <= 35)

--添加默认约束:default 
alter table student 
    add constraint DF_stuAddress default ('地址不详') for stuAddress
--添加非空约束
alter table exam
    add constraint NN_labExam check (labExam is not null)

--设置非空(alter table 表名 alter column 列名 该列的类型 NOT NULL)
alter table exam 
    alter column writtenAxam int not null

--添加外键约束foreign key(字段) references
alter table exam --修改外键表
    add constraint FK_stuId
    foreign key(stuId) references student(stuId)
 

### 数据库六大约束条件详解 数据库六大约束条件是为了确保数据的完整性和一致性而设计的重要规则。以下是详细的说明: #### 1. **非空约束 (NOT NULL)** 非空约束用于指定某个字段不能为空值。这意味着该字段在插入或更新记录时必须具有一个有效的值。如果没有设置此约束,默认情况下允许字段为空[^4]。 例如,创建一张表时可以这样定义: ```sql CREATE TABLE employees ( id INT PRIMARY KEY, name VARCHAR(50) NOT NULL, -- 不允许为空 age INT ); ``` #### 2. **唯一性约束 (UNIQUE)** 唯一性约束确保某列或多列中的每一行都必须有一个唯一的值。如果尝试插入重复的数据,则会引发错误。通常,主键也隐含了唯一性约束,但它还可以应用于其他非主键字段[^4]。 示例代码如下: ```sql CREATE TABLE users ( user_id INT PRIMARY KEY, email VARCHAR(100) UNIQUE -- 邮箱地址必须唯一 ); ``` #### 3. **主键约束 (PRIMARY KEY)** 主键是一种特殊的唯一性约束,用来唯一标识表中的每一行记录。每个表最多只能有一个主键,并且主键不允许包含空值。主键通常是单个字段,也可以由多个字段组成(复合主键)[^1]。 示例: ```sql CREATE TABLE products ( product_id INT PRIMARY KEY, -- 主键 product_name VARCHAR(100), price DECIMAL(10, 2) ); ``` #### 4. **外键约束 (FOREIGN KEY)** 外键用于建立和加强两个表之间的链接关系。它限制了一个表中的数据必须匹配另一个表中的某些特定值。这有助于维护参照完整性,防止孤立记录的存在[^1]。 举例来说: ```sql CREATE TABLE orders ( order_id INT PRIMARY KEY, customer_id INT, FOREIGN KEY (customer_id) REFERENCES customers(customer_id) -- 外键关联 ); ``` #### 5. **默认值约束 (DEFAULT)** 默认值约束为字段指定了一个初始值。当未显式提供值时,系统自动填充这个默认值。这对于一些经常使用的固定值非常有用[^1]。 例子: ```sql CREATE TABLE settings ( setting_key VARCHAR(50) PRIMARY KEY, value TEXT DEFAULT 'Not Set' -- 默认值为"Not Set" ); ``` #### 6. **检查约束 (CHECK)** 检查约束用于验证字段内的值是否满足一定的逻辑条件。只有符合条件的数据才能被接受;否则将拒绝插入或修改操作。 实例展示: ```sql CREATE TABLE students ( student_id INT PRIMARY KEY, grade CHAR(1) CHECK (grade IN ('A', 'B', 'C', 'D', 'F')) -- 只能输入合法等级 ); ``` --- ### 总结 以上六个主要约束分别是非空、唯一性、主键、外键、默认值以及检查约束。它们共同作用以保障数据库内部数据的质量与可靠性[^1][^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值