❶ sql server属性约束问题
哥哥亲测的,如果没问题请采纳吧。
ALTERTABLE[dbo].[test2]WITHCHECKADDCONSTRAINT[CK_test2]CHECK((len([name])=(10)AND[name]like'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))
GO
ALTERTABLE[dbo].[test2]CHECKCONSTRAINT[CK_test2]
GO
test2 是表名,name 是字段。
❷ 数据库问题 SQL Server 数据库中有哪几种约束各有什么作用
如表:
学生信息表(学生学号,姓名,性别,系别号)
系别信息表(系别号,系别名)
1、实体完整性约束--就是常说的主键约束,用来区分两条不同的记录。
上面的学生编号建成主键后,通过它可以区分学生的记录。
2、参照完整性--就是常说的外键约束,用来保证数据的整合性。
上面的 学生信息表 中的 系别号 就是一种情况,它必须在 系别信息表 中存在在可以,系别信息表 中的 系别号 就可以设置成 学生信息表 的外键。
3、域完整性约束--就是常说的check约束
上面的学生信息表中的 性别 字段只能有 男或者女,这样就可以建一个check约束,限制该字段只能输入 男或者女。
---
以上,希望对你有所帮助。
❸ sql中表达完整性约束的机制主要有哪几种
在SQL中,表达完整性约束的规则有主键约束、外键约束、属性值约束和全局约束等多种形式。
(1)主键约束:可用主键子句或主键短语来定义。
如 PRIMARY KEY (S#) (主键子句)
S# CHAR (4) PRIMARY KEY (其中,PRIMARY KEY 为主键短语)
(2)外键约束:可用外键子句来定义
如 FOREIGN KEY (S#) REFERNCE S(S#)
(3)属性值约束:包括非空值约束(NOT NULL);基于属性的检查子句(CHECK) ;
域约束子句(在“CREAT DOMAIN”语句中出现CHECK子句)
如CREAT DOMAIN AGE SMALLINT CHECK (VALUE>10)
(4)全局约束:包括基于元组的检查子句(CHECK)和断言
断言的句法为:CREATE ASSERTION 断言名 CHECK 条件
❹ 如何设置 SQL 中一个属性check约束值只能是0或者1
假设说你要给test表的OnUse字段添加check约束
alter table test
add constraint ck_col check(OnUse=0 or OnUse=1)
如果在新建表的时候则
OnUse int check(OnUse=0 or OnUse=1)
❺ sql server 中有哪几种约束
sql
server中主要有四种约束:
1、实体完整性约束(每一行反应不同的实体)
通过索引,唯一约束。主键约束或标识属性来体现
2、域完整性约束(指给定列的输入有效性)
通过限制数据类型,检查约束,输入格式,外键约束,默认值,非空等体现
3、引用完整性约束(表之间的联系)
通过主外建来建立完整性约束
4、自定义完整性约束(根据用户的需求)
❻ 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中表达完整性约束的规则主要有哪几种
1、实体完整性:规定表的每一行在表中是惟一的实体。
2、域完整性:是指表中的列必须满足某种特定的数据类型约束,其中约束又包括取值范围、精度等规定。
3、 参照完整性:是指两个表的主关键字和外关键字的数据应一致,保证了表之间的数据的一致性,防止了数据丢失或无意义的数据在数据库中扩散。
4、用户定义的完整性:不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性即是针对某个特定关系数据库的约束条件,它反映某一具体应用必须满足的语义要求。
(7)sql属性值的约束扩展阅读
完整性约束的类型介绍:
1、与表有关的约束:是表中定义的一种约束。可在列定义时定义该约束,此时称为列约束,也可以在表定义时定义约束,此时称为表约束。
2、域(Domain)约束:在域定义中被定义的一种约束,它与在特定域中定义的任何列都有关系。
3、断言(Assertion):在断言定义时定义的一种约束,它可以与一个或多个表进行关联。
❽ SQL中Unique约束有什么用啊
作用为:唯一约束保证在一个字段或者一组字段里的数据与表中其它行的数据相比是唯一的。
创建唯一约束可确保在不参与主键的特定列中不输入重复值。当唯一约束和主键都强制唯一性时,如果满足下列条件,则应将唯一约束而不是主键约束附加到表上:
1、希望在列或列的组合中强制唯一性。可将多个唯一约束附加到表,但是只能将一个主键约束附加到表。
2、希望在允许空值的列中强制唯一性。可将唯一约束附加到允许空值的列,但是只能将主键约束附加到不允许空值的列。当将唯一约束附加到允许空值的列时,请确保在约束的列中最多有 一行包含空值。
(8)sql属性值的约束扩展阅读:
SQL中其他约束有:
1、主键约束:
主键列的数据类型不限,但此列必须是唯一并且非空。如该表中已有主键为1000的行,则不能再添加主键为1000。人工或程序不好控制的时候,也可以设置主键列为自动增长列。
2、参考约束:
参考约束是一个规则,可由 SQL 和 XQuery编译器使用,但数据库管理器不会强制执行它。
查询编译器包括一个重写查询阶段,它将 SQL 和 XQuery 语句变换为可能是优化的格式并改进所需数据的访问路径。该约束的目的不是由数据库管理器对数据执行附加验证,而是为了提高查询性能。
3、用户自定义完整性约束:
用户自定义完整性指针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。
例如某个属性必须取唯一值,某个非主属性也不能取空值,某个属性的取值范围在0-100之间等。
❾ SQL中创建表时怎样限定属性值的取值,如一个表中有一列为"科目",限定其只能取"语文","数学","英语".
创建表时:
Create Table 表名(列名 char(10) check (列名 In('语文','数学','英语')))
创建后添加约束:
Alter Table 表名 add Constraint 约束名 CHeck(
列名 In('语文','数学','英语'))
❿ SQL 完整性 约束 问题。 表间参考约束
declare
co_total number(10);
begin
select sum(ORD_QTY_SUM) into co_total from ec_CLONE_cgt_co where org_code ='11340101'
and order_date =(select distinct replace (varchar(current date) ,'-','') from ec_CLONE_cgt_co);
IF co_total>100 THEN
for cust_id in (select cust_code from ec_CLONE_cgt_co_detail where cgt_code='6901028225137')
loop