当前位置:首页 » 编程语言 » 约束名sql

约束名sql

发布时间: 2023-08-31 12:04:46

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

约束的目的就是确保表中的数据的完整性。
常用的约束类型如下:
主键约束:(Primary Key constraint) 要求主键列唯一,并且不允许为空
唯一约束:(Unique Constraint) 要求该列唯一,允许为空,但只能出现一个空值
检查约束:(Check Constraint) 某列取值范围限制、格式限制等。如有关年龄的限制
默认约束:(Default Constraint) 某列的默认值,如我们的男性学员比较多,性别默认为男
外键约束:(Foreign Key Constraint) 用于在两表之间建立关系,需要指定引用主表的哪一列
一、添加约束
在创建表时,我们可以在字段后添加各种约束,但一般不这样混用,推荐将添加约束和建表的语句分开编写。
添加约束的语法如下:
Code:
Alter Table 表名
Add Constraint 约束名 约束类型 具体的约束类型
上述语法标识修改某个表,添加某个约束,其中约束名的命名规则推荐采用"约束类型_约束字段"这样的形式。
Code:
---添加主键约束
Alter Table stuInfo
Add Constraint PK_stuNO primary Key(stuNo)
---添加唯一约束
Alter Table stuInfo
Add Constraint UQ_stuID unique(stuID)
---添加默认约束
Alter Table stuInfo
Add Constraint DF_stuAddress default('地址不详') for stuAddress
---添加检查约束
Alter Table stuInfo
Add Constraint CK_stuAge check(stuAge between 15 and 40)
---添加外键约束
Alter Table stuMarks
Add Constraint FK_stuNo foreign key(stuNo) references stuInfo(stuNo)
二、删除约束
如果错误的添加了约束,则可以删除约束
删除约束的语法如下:
Code:
Alter Table 表名
Drop Constraint 约束名
附加:在创建表的时候同时添加约束的写法:
Code:
use stuDB
go
if exists(select * from Sysobjects where name = 'stuInfo')
drop table stuInfo
go
create table stuInfo
(
stuName varchar(20) not null primary key(stuName)
,stuID int not null unique(stuID)
,stuAddress varchar(20) not null default('地址不详')
,stuAge int not null check(stuAge between 15 and 40)
)

㈡ SQL在建立约束时,给约束取得名字是干什么用怎么用约束名字存在哪里了

给约束取名字, 目的是将来你可以比较容易的删除掉.

否则你要自己去查询数据字典表.


例如下面的例子.

唯一约束的名字, 是 t_123, 那么当我不需要这个约束的时候

如果我知道名字, 那么可以直接去删除掉.




--创建测试表.
CREATETABLEtest_123(
idINT,
valueVARCHAR(10)
);
GO

--创建UNIQUE约束.
ALTERTABLEtest_123
ADDCONSTRAINTt_123UNIQUE(value);
GO

--删除UNIQUE约束.
ALTERTABLE[test_123]
DROPCONSTRAINT[t_123];
GO


如果我不知道约束的名字, 那么我需要去查询数据字典表


SELECT
tab.nameAS[表名],
idx.nameAS[约束名称],
col.nameAS[约束列名]
FROM
sys.indexesidx
JOINsys.index_columnsidxCol
ON(idx.object_id=idxCol.object_id
ANDidx.index_id=idxCol.index_id
ANDidx.is_unique_constraint=1)
JOINsys.tablestab
ON(idx.object_id=tab.object_id)
JOINsys.columnscol
ON(idx.object_id=col.object_id
ANDidxCol.column_id=col.column_id);


查询到约束名称以后, 在删除掉这个约束.



以上 SQL 语句, SQL Server 2008 Express 下测试通过。

其他数据库, 由于 数据字典表不同, 因此语句也就不同了。

㈢ sqlserver数据库里怎么查找一个表里的约束,要查出 约束名、列名、约束类型用sql语句查询

主键约束
SELECT
tab.name AS [表名],
idx.name AS [主键名称],
col.name AS [主键列名]
FROM
sys.indexes idx
JOIN sys.index_columns idxCol
ON (idx.object_id = idxCol.object_id
AND idx.index_id = idxCol.index_id
AND idx.is_primary_key = 1)
JOIN sys.tables tab
ON (idx.object_id = tab.object_id)
JOIN sys.columns col
ON (idx.object_id = col.object_id
AND idxCol.column_id = col.column_id);

唯一约束
SELECT
tab.name AS [表名],
idx.name AS [约束名称],
col.name AS [约束列名]
FROM
sys.indexes idx
JOIN sys.index_columns idxCol
ON (idx.object_id = idxCol.object_id
AND idx.index_id = idxCol.index_id
AND idx.is_unique_constraint = 1)
JOIN sys.tables tab
ON (idx.object_id = tab.object_id)
JOIN sys.columns col
ON (idx.object_id = col.object_id
AND idxCol.column_id = col.column_id);

外键约束
select
oSub.name AS [子表名称],
fk.name AS [外键名称],
SubCol.name AS [子表列名],
oMain.name AS [主表名称],
MainCol.name AS [主表列名]
from
sys.foreign_keys fk
JOIN sys.all_objects oSub
ON (fk.parent_object_id = oSub.object_id)
JOIN sys.all_objects oMain
ON (fk.referenced_object_id = oMain.object_id)
JOIN sys.foreign_key_columns fkCols
ON (fk.object_id = fkCols.constraint_object_id)
JOIN sys.columns SubCol
ON (oSub.object_id = SubCol.object_id
AND fkCols.parent_column_id = SubCol.column_id)
JOIN sys.columns MainCol
ON (oMain.object_id = MainCol.object_id
AND fkCols.referenced_column_id = MainCol.column_id)

Check约束
SELECT
tab.name AS [表名],
chk.name AS [Check约束名],
col.name AS [列名],
chk.definition
FROM
sys.check_constraints chk
JOIN sys.tables tab
ON (chk.parent_object_id = tab.object_id)
JOIN sys.columns col
ON (chk.parent_object_id = col.object_id
AND chk.parent_column_id = col.column_id)

㈣ SQL怎么自定义约束

语法: ALTER TABLE 表名 ADD CONSTRAINT约束名约束类型 具体的约束声明

约束名的取名规则推荐采用:约束类型_约束列,当然你也可以不这么命名,这样单纯是比较方便
如:主键(Primary Key)约束:PK_UserId
唯一(Unique key)约束: UQ_UserCardId
默认(Default Key)约束 DF_UserPasswd
检查(Check Key)约束 CK_Gender
外键(Foreign Key)约束: FK_SortId
--以上加棕色段是我定义表中的列名称

打个比方:add constraint PK_UserId PRIMARY KEY (UserId)
--PK_UserId 是自定义约束名 , PRIMARY KEY 是约束类型, (UserId)是具体的约束声明

㈤ SQL server语句所有的约束条件

1、主键约束(Primary Key constraint):要求主键列数据唯一,并且不允许为空。

2、唯一约束(Unique constraint):要求该列唯一,允许为空,但只能出现一个空值。

3、检查约束(Check constraint):某列取值范围限制,格式限制等,如有关年龄、邮箱(必须有@)的约束。

4、默认约束(Default constraint):某列的默认值,如在数据库里有一项数据很多重复,可以设为默认值。

5、外键约束(Foreign Key constraint):用于在两个表之间建立关系,需要指定引用主表的哪一列。

(5)约束名sql扩展阅读:

对于存在外键约束的表,如果进行删除非空的外键,可能会出现错误。 如果在 FOREIGN KEY 约束的列中输入非 NULL 值,则此值必须在被引用的列中存在,否则将返回违反外键约束的错误信息。

列级 FOREIGN KEY 约束的 REFERENCES 子句仅能列出一个引用列,且该列必须与定义约束的列具有相同的数据类型。表级 FOREIGN KEY 约束的 REFERENCES 子句中引用列的数目必须与约束列列表中的列数相同。每个引用列的数据类型也必须与列表中相应列的数据类型相同。

㈥ sql约束名是什么

constraint 约束名字
用法:
alt table 表名
add constraint 约束名 约束类型 (约束内容)

㈦ sql 约束名

SQL 约束(Constraints)

  • SQL 约束用于规定表中的数据规则。

  • 如果存在违反约束的数据行为,行为会被约束终止。

  • 约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。

热点内容
海控联盟怎么下载安卓版 发布:2025-02-04 04:55:52 浏览:763
妖荡三界安卓叫什么 发布:2025-02-04 04:54:24 浏览:831
数据库表的备份 发布:2025-02-04 04:53:50 浏览:560
python深度遍历 发布:2025-02-04 04:53:50 浏览:135
爱感大黑牛怎么连接安卓手机 发布:2025-02-04 04:41:31 浏览:218
publicftp 发布:2025-02-04 04:41:26 浏览:72
sqlserver超时 发布:2025-02-04 04:39:58 浏览:71
网络推理算法 发布:2025-02-04 04:37:00 浏览:260
c怎么存储数据 发布:2025-02-04 04:31:12 浏览:63
奥迪q3行驶证如何查配置 发布:2025-02-04 04:28:26 浏览:329