1. sql中为什么要使用约束
好处是:为了限制数据的合法性;缺点我觉得就是:表和表之间关系太紧密,操作不方便,比如加上外键约束后,要删除表中数据,必须先把主表中的数据删除才能再删除子表中的
2. 添加约束的目的是什么
首先是为了数据的正确性.例如一个汽车数据库,有汽车和产地两个表,录入数据的人输入:德国宝马,德国奔驰,日本丰田...假如不慎写错,输入了日本宝马,那么约束就会制止你输入这个错误的数据.假如没有添加约束,过一段时间数据库就会出现很多日本宝马,德国丰田这类的数据,需要繁琐的手动修改.
其次是约束可以联级更新和联级删除,比如佳美改名叫凯美瑞,只要更新主表,联级更新可以把子表所有佳美改为凯美瑞.
3. 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)
)
4. SQL中的外部键约束有什么用
设置数据库中的外键约束是为了保证数据库的参照完整性。sql
server
2005中的关系表之间的连接,用外键表中的外键引用主键表中的主键、一旦创建了关系并将关系成功地加入到了数据库中,就能够保证数据的参照完整性、
5. 数据库问题 SQL Server 数据库中有哪几种约束各有什么作用
如表:
学生信息表(学生学号,姓名,性别,系别号)
系别信息表(系别号,系别名)
1、实体完整性约束--就是常说的主键约束,用来区分两条不同的记录。
上面的学生编号建成主键后,通过它可以区分学生的记录。
2、参照完整性--就是常说的外键约束,用来保证数据的整合性。
上面的 学生信息表 中的 系别号 就是一种情况,它必须在 系别信息表 中存在在可以,系别信息表 中的 系别号 就可以设置成 学生信息表 的外键。
3、域完整性约束--就是常说的check约束
上面的学生信息表中的 性别 字段只能有 男或者女,这样就可以建一个check约束,限制该字段只能输入 男或者女。
---
以上,希望对你有所帮助。
6. SQL里的约束概念是什么
参考约束是一个规则,可由 SQL 和 XQuery 编译器使用,但数据库管理器不会强制执行它。查询编译器包括一个重写查询阶段,它将 SQL 和 XQuery 语句变换为可能是优化的格式并改进所需数据的访问路径。该约束的目的不是由数据库管理器对数据执行附加验证,而是为了提高查询性能。
7. SQL中的主键约束有什么作用请举例说明
表有唯一的主键约束。表的主键可以保护一个或多个列,主键约束可与NOT
NULL约束共同作用于每一数据列。NOT
NULL约束和唯一性约束的组合将保证主键唯一地标识每一行。像唯一性约束一样,主键由B-tree索引增强。
创建主键约束使用CREATE
TABLE语句与表一起创建,如果表已经创建了,可以使用ALTER
TABLE语句。
CREATE
TABLE
policies
(policy_id
NUMBER
CONSTRAINT
pk_policies
PRIMARY
KEY,
holder_name
VARCHAR2(40),
gender
VARCHAR2(1),
marital_status
VARCHAR2(1),
date_of_birth
DATE
);
与唯一性约束一样,如果主键约束保护多个数据列,那么必须作为一个表约束创建。
CREATE
TABLE
insured_autos
(policy_id
NUMBER,
vin
VARCHAR2(40),
coverage_begin
DATE,
coverage_term
NUMBER,
CONSTRAINT
pk_insured_autos
PRIMARY
KEY
(policy_id,vin)
USING
INDEX
TABLESPACE
index
STORAGE
(INITIAL
1M
NEXT
10M
PCTINCREASE
0)
);
禁用或删除主键必须与ALTER
TABLE
语句一起使用
ALTER
TABLE
policies
DROP
PRIMARY
KEY;
或
ALTER
TABLE
policies
DISABLE
PRIMARY
KEY;
8. SQL中Unique约束有什么用啊
作用为:唯一约束保证在一个字段或者一组字段里的数据与表中其它行的数据相比是唯一的。
创建唯一约束可确保在不参与主键的特定列中不输入重复值。当唯一约束和主键都强制唯一性时,如果满足下列条件,则应将唯一约束而不是主键约束附加到表上:
1、希望在列或列的组合中强制唯一性。可将多个唯一约束附加到表,但是只能将一个主键约束附加到表。
2、希望在允许空值的列中强制唯一性。可将唯一约束附加到允许空值的列,但是只能将主键约束附加到不允许空值的列。当将唯一约束附加到允许空值的列时,请确保在约束的列中最多有 一行包含空值。
(8)sql中约束的目的是扩展阅读:
SQL中其他约束有:
1、主键约束:
主键列的数据类型不限,但此列必须是唯一并且非空。如该表中已有主键为1000的行,则不能再添加主键为1000。人工或程序不好控制的时候,也可以设置主键列为自动增长列。
2、参考约束:
参考约束是一个规则,可由 SQL 和 XQuery编译器使用,但数据库管理器不会强制执行它。
查询编译器包括一个重写查询阶段,它将 SQL 和 XQuery 语句变换为可能是优化的格式并改进所需数据的访问路径。该约束的目的不是由数据库管理器对数据执行附加验证,而是为了提高查询性能。
3、用户自定义完整性约束:
用户自定义完整性指针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。
例如某个属性必须取唯一值,某个非主属性也不能取空值,某个属性的取值范围在0-100之间等。