sql server 中有哪几种约束?

1 、主键约束:stuinfo表,学号为主键,确保唯一性。
2 、唯一约束:stuinfo表,学号唯一,防止重复。
3 、默认约束:stuinfo表,地址默认为“地址不详”。
4 、检查约束:stuinfo表,年龄必须在1 5 到4 0岁之间。
5 、外键约束:stumarks表,学号引用stuinfo表学号,保证数据一致性。

SQL-CHECK和DEFAULT约束

CHECK约束和DEFAULT约束啊,这俩是数据库里头挺常用的东西。

CHECK约束就是用来管住你数据的,不让乱来。
比如你有个表叫用户信息,那年龄这一列,肯定不能填负数啊。
你就得加个CHECK约束,写个条件,比如年龄必须大于0。
这样数据进表前就会自动检查,不符合就给毙了。
这能保证你表里的数据质量。

创建表的时候就能加。
比如这么写SQL语句: sql CREATE TABLE users ( age INT CHECK (age > 0) );
意思就是建个users表,年龄是整数类型,还得满足age大于0这个条件。

要是表早就建好了,想再加这个约束,就用ALTER TABLE。
比如: sql ALTER TABLE users ADD CONSTRAINT chk_age CHECK (age > 0);
这样就把约束加上了,名字叫chk_age。

想把这个约束给删了?也简单: sql ALTER TABLE users DROP CONSTRAINT chk_age;
再说DEFAULT约束。
这玩意儿是给列设置默认值的。
你建表的时候,可以指定某列如果没给值,就自动填个默认的。
最常见的就是用户表的邮箱,可能很多人都不填,你就设置个默认的,比如空着。

建表时这么写: sql CREATE TABLE users ( email VARCHAR DEFAULT NULL );
这里email列没给默认值,就是允许空。

要是表建好了,想给某个列加默认值,比如给email设个默认的"noemail@example.com",就写: sql ALTER TABLE users ALTER email SET DEFAULT 'noemail@example.com';
想撤销默认值?也用ALTER TABLE: sql ALTER TABLE users ALTER email DROP DEFAULT;
这两种约束用对地方,能帮你管好数据库的数据,减少很多麻烦。