美文网首页
sql 约束

sql 约束

作者: Vergil_wj | 来源:发表于2021-06-14 11:31 被阅读0次

定义

对一个表中的属性操作的限制叫做约束。

分类

1. 主键约束 primary key

不允许重复元素,避免了数据的冗余。

2. 外键约束 foreign key

通过外键约束从语法上保证了本事物所关联的其它事物一定时存在的。也就是说,事物和事物之间的关系是通过外键来体现的。

3. check 约束

保证事物的取值在合法的范围内。

sql server:

create table student
(
  stu_id int primary key,
  stu_sal int check (stu_sal >= 1000 and stu_sal < 8000)
)
  • check (stu_sal >= 1000 and stu_sal < 8000):学生工资范围 [1000,8000)。

4. default 默认约束

default:保证事物的属性一定会有一个值。

sql server:

create table student
(
  stu_id int primary key,
  stu_sal int check (stu_sal >= 1000 and stu_sal < 8000),
  stu_sex nchar(1) default ('男') 
)

插入数据:

insert into student (stu_id,stu_sal) values (1,5000)

stu_sex 列默认为男。

5. unique 唯一约束

保证了事物的取值不允许重复,但允许为空。

sql server:

create table student
(
  stu_id int primary key,
  stu_sal int check (stu_sal >= 1000 and stu_sal < 8000),
  stu_sex nchar(1) default ('男') ,
  stu_name nchar(200) unique
)
insert into student (1,6000,'男','张三');      -- ok
insert into student (2,6000,'男','张三');      -- error,违反了唯一约束
insert into student (3,6000,'男','李四');      -- ok
insert into student (null,6000,'男','王五');   -- error,主键不能为空
insert into student (4,6000,'男',null);    -- ok,说明唯一键可以为空
唯一约束 unique 和主键 primary key 区别
create table student
(
  stu_id int primary key,
  stu_name nvarchar(50) unique not null,
  stu_email nvarchar(50) not null,
  stu_address nvarchar(50)
)

使用没有意义的编号当主键,如 stu_id

业务上有实际含义不允许重复的当唯一键,如 stu_name

6. not null 非空

要求用户必须为该属性附一个值,否则语法出错。

表和约束的区别

  • 数据库是通过表来解决事物的存储问题的;
  • 数据库是通过约束来解决事物取值的有效性和合法性的问题;
  • 建表的过程就是指定事物属性及其事物属性各种约束的过程;

修改约束(删除、添加)

删除约束
alter table 表名 drop constraint 约束名
添加约束(check)
alter table 表名 add constraint 约束名 check(表达式)
添加约束(主键)
alter table 表名 add constraint 约束名 primary key(列名)
添加约束(唯一)
alter table 表名 add constraint 约束名 unique(列名)
添加约束(默认值)
alter table 表名 add constraint 约束名 default 默认值 for 列名
添加约束(外键)
alter table 表名 add constraint 约束名 foreign key(列名) 
references 关联表名(列名)

相关文章

  • SQL基础01

    什么是SQL SQL中常用的关键字 SQL中的语句的种类 SQL中约束 简单约束: 示例: 主键: 添加主键约束原...

  • sql中表级约束和列级约束

    sql中表级约束和列级约束,在SQL SERVER中, (1) 对于基本表的约束分为列约束和表约束 约束是限制用户...

  • 数据库(2)

    SQL 约束(Constraints) SQL 约束用于规定表中的数据规则。如果存在违反约束的数据行为,行为会被约...

  • 数据库基础知识整理-SQL约束和使用

    数据库基础知识整理-SQL约束和使用 SQL约束 SQL 约束用于规定表中的数据规则,可以在创建表时规定(通过 C...

  • 面试积累之数据库篇(六)

    事务的4大属性:原子性,隔离性,一致性,持久性 sql完整性约束:主键约束唯一约束检查约束外键约束默认约束 sql...

  • SQL 约束

    NOT NULL 约束 NOT NULL 约束强制列不接受 NULL 值。 NOT NULL 约束强制字段始终包含...

  • sql 约束

    定义 对一个表中的属性操作的限制叫做约束。 分类 1. 主键约束 primary key 不允许重复元素,避免了数...

  • sql约束

    NOT NULL(列级):非空约束,约束该字段不可为null; DEFAULT(列级):默认约束,添加默认值,插入...

  • 每天一SQL语句(03):SQL 语句进阶篇-下

    【开篇】SQL 语句进阶篇-下 【1】SQL 约束 1、约束用于限制加入表的数据的类型。可以在创建表时规定约束(通...

  • 210516:Oracle删除约束(6个)-Oracle数据库中

    一. oracle 删除主键约束_SQL基础知识:约束(实例) 给大家介绍SQL中六种工作中经常使用到的约束,供大...

网友评论

      本文标题:sql 约束

      本文链接:https://www.haomeiwen.com/subject/abwweltx.html