SQL中的几种约束的创建与删除

哈喽大家好啊!今天咱们来聊聊数据库里的一个重要概念——约束。
说白了,约束就是为了保证我们表里的数据是完整、准确的,不会出现乱七八糟的情况。
常用的约束类型主要有这么几种:
1 . 主键约束(PrimaryKey Constraint):这个就像每个人的身份证号一样,是唯一的,而且不能为空。
一个表只能有一个主键约束。
2 . 唯一约束(Unique Constraint):这个要求列里的数据必须是唯一的,但是可以允许有一个空值。
比如电话号码这个字段,肯定不能重复,但可能暂时还没人填,这时空值就是允许的。
3 . 检查约束(Check Constraint):这个可以限制列里的数据必须满足某个条件,比如年龄必须在1 5 到4 0岁之间,或者格式必须符合某个要求。
4 . 默认约束(Default Constraint):这个可以给某个列设置一个默认值,比如我们假设一个学校的学员大部分都是男生,那么性别这个字段就可以设置默认值为“男”。
5 . 外键约束(ForeignKey Constraint):这个用于在不同的表之间建立关系,比如一个订单表里的客户ID必须引用客户表里的某个客户ID。

添加约束
在创建表的时候,我们确实可以在定义字段的时候直接添加约束,不过这样做容易把代码弄得乱七八糟的,不太推荐。
更好的做法是先把表创建好,然后再用ALTER TABLE语句单独添加约束。

添加约束的语法大概是这样的:
sql ALTER TABLE 表名 ADD CONSTRAINT 约束名 约束类型;
这里的约束名最好按照约束类型_约束字段的格式来命名,这样看起来更清晰。

举个例子:

添加主键约束:
sql ALTER TABLE stuInfo ADD CONSTRAINT PK_stuNO PRIMARY KEY (stuNo);

添加唯一约束:
sql ALTER TABLE stuInfo ADD CONSTRAINT UQ_stuID UNIQUE (stuID);

添加默认约束:
sql ALTER TABLE stuInfo ADD CONSTRAINT DF_stuAddress DEFAULT '地址不详' FOR stuAddress;

添加检查约束:
sql ALTER TABLE stuInfo ADD CONSTRAINT CK_stuAge CHECK (stuAge BETWEEN 1 5 AND 4 0);

添加外键约束:
sql ALTER TABLE stuMarks ADD CONSTRAINT FK_stuNo FOREIGN KEY (stuNo) REFERENCES stuInfo (stuNo);
删除约束
如果哪天我们发现添加的约束是错的,或者不需要了,当然也可以把它删掉。
删除约束的语法很简单:
sql ALTER TABLE 表名 DROP CONSTRAINT 约束名;
在创建表时同时添加约束
当然,如果你想在创建表的时候就直接添加约束,也是完全可以的。
比如:
sql USE stuDB; GO
IF EXISTS (SELECT FROM SysObjects WHERE Name = 'stuInfo') DROP TABLE stuInfo; GO
CREATE TABLE stuInfo ( stuName VARCHAR(2 0) NOT NULL PRIMARY KEY, stuID INT NOT NULL UNIQUE, stuAddress VARCHAR(2 0) NOT NULL DEFAULT '地址不详', stuAge INT NOT NULL CHECK (stuAge BETWEEN 1 5 AND 4 0) );
这样,表创建的同时,约束也跟着一起添加好了,是不是很方便呢?
好啦,今天就和大家分享到这里,希望对大家有所帮助!如果有任何问题,欢迎留言讨论哦!

SQL unique约束的用法

嗨,我们来聊聊数据库里的UNIQUE约束和PRIMARY KEY约束。
这两个都是用来确保数据唯一性的好帮手。

首先,UNIQUE约束就像给数据库表里的每条记录都配了一个独一无二的身份证号,保证这一列的值不会重复。
而PRIMARY KEY约束呢,它不仅保证了唯一性,还额外承担了标识记录的任务,就像是每个学生的学号一样,既是唯一的,又能准确找到这个人。

值得一提的是,PRIMARY KEY自带了UNIQUE约束的功能,所以你不需要额外设置。
但是,一个表可以有多个UNIQUE约束,比如除了学号是PRIMARY KEY,还可以要求学生的身份证号也不能重复。

下面我给你举个例子,看看怎么在创建表的时候使用这些约束。
假设我们要创建一个叫Persons的表,包含P_Id、LastName、FirstName、Address和City这几列。

如果你想让P_Id这一列是唯一的,可以这样写SQL语句:
sql CREATE TABLE Persons ( P_Id INT NOT NULL, LastName VARCHAR(2 5 5 ) NOT NULL, FirstName VARCHAR(2 5 5 ), Address VARCHAR(2 5 5 ), City VARCHAR(2 5 5 ), UNIQUE (P_Id) );
而在SQL Server、Oracle或MS Access中,你可以更简洁地写:
sql CREATE TABLE Persons ( P_Id INT NOT NULL UNIQUE, LastName VARCHAR(2 5 5 ) NOT NULL, FirstName VARCHAR(2 5 5 ), Address VARCHAR(2 5 5 ), City VARCHAR(2 5 5 ) );
这样,P_Id这一列就既是非空的,又是唯一的了。
希望这个解释对你有帮助!

sqlserver表的唯一键约束怎么设置

在 SQL Server 中给表加上唯一键约束其实挺简单的,我这就带你一步步来操作。
首先呢,你得打开 SQL Server Management Studio,连上你要改的那个数据库。

接着,在对象资源管理器里找到你想要添加唯一键约束的表,右键点它,然后选“设计”。
这样表的设计视图就打开了。

现在,你需要在表设计视图里右键点表头那个空白的地方,或者随便选一列,然后选“索引/键...”。
这一步是为了进入索引和键的设置界面。

接下来,在“索引/键”窗口里,点那个“添加”按钮,这样就会新建一个索引或者键。
在新建的那一栏里,给它取个名字,方便以后识别。

然后,点“列...”按钮,会弹出一个对话框,里面列出了你表里的所有列。
在这里,你就要选那些你想要设为唯一键的列了。
记得点列名左边的小方框,把它选上。

选完列之后,回到“索引/键”窗口,找到“类型”这一列,把它设为“唯一键”。

最后一步,保存更改。
做完这些设置后,点“确定”返回表设计视图。
在表设计视图里,你可以点工具栏上的保存图标,或者右键点表名,选“保存[表名]”,把改动保存下来。

总结一下就是:先找到表并打开设计视图,然后进入索引/键设置,新建一个唯一键并选择要约束的列,最后保存改动。
这样,你的 SQL Server 表就成功设置了唯一键约束啦!

SQL中如何设置唯一性约束(sql唯一性约束语句)

嗨小伙伴们,今天来聊聊数据库操作的小技巧。
想要给表增加一条独特的约束规则,比如用 alter table[] add constraint cons_02 unique(zoneName) 这样的代码,就是用来确保表中某个字段的数据类型和唯一性的。
你可以在创建表的时候就设置这个约束,也可以在表建好后再通过 alter table 来添加。
至于SQL的那些高大上的功能,咱们也来简单了解一下吧!首先是定义数据库结构,SQL可以轻松设置数据库的三层架构,包括视图、模式和内模式。
这些通常系统会自动处理,我们只需要关注前两者即可。
接着是数据操作,SQL允许我们轻松地插入、删除、修改数据,尤其是查询功能超级强大。
最后,数据控制功能主要是用来限制用户的访问权限,确保咱们的数据库安全无忧!