数据库有哪几种类型约束

数据库有哪几种类型约束,第1张

主键约束(PrimaryKeyconstraint):要求主键数据唯一,并且不允许为空。

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

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

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

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

扩展资料

主键约束在表中定义一个主键来唯一确定表中每一行数据的标识符。

(非空,唯一)

例如:

altertablemember

add

constraintPK_member_member_noprimarykeyclustered(member_no)

主键列的数据类型不限,但此列必须是唯一并且非空。

如该表中已有主键为1000的行,则不能再添加主键为1000。

人工或程序不好控制的时候,也可以设置主键列为自动增长列。

主键主要用在查询单调数据,修改单调数据和删除单调数据上。做程序的时候,都将表的主键设置为int型的可自增的列,这样在编程的时候,很容易区分数据。

参考资料来源:百度百科-主键约束

参考资料来源:百度百科-约束

可以在建表时定义、

create table test1(t1 int primary key,t2 int) ti是主键、主码完整性约束

create table test2(t3 int primary key,t1 int foreign key references test1(t1))

test2中t3为主键、t5为外键引用test1的t1

也可以使用

alter table test2

add constraint fk_s foreign key (t1) referneces test1(t1) 添加引用完整性,fk_s是约束名、自己随便起

如果test1的ti不是主键、可以通过

alter table test1

add constraint fk_t primary key (t1) 添加主码完整性,被指定的列、原表中一定要不能为空

新建表:

create table [表名]

(

[自动编号字段] int IDENTITY (1,1) PRIMARY KEY ,

[字段1] nVarChar(50) default \'默认值\' null ,

[字段2] ntext null ,

[字段3] datetime,

[字段4] money null ,

[字段5] int default 0,

[字段6] Decimal (12,4) default 0,

[字段7] image null ,

)

删除表:

Drop table [表名]

插入数据:

INSERT INTO [表名] (字段1,字段2) VALUES (100,\'51WINDOWSNET\')

删除数据:

DELETE FROM [表名] WHERE [字段名]>100

更新数据:

UPDATE [表名] SET [字段1] = 200,[字段2] = \'51WINDOWSNET\' WHERE [字段三] = \'HAIWA\'

新增字段:

ALTER TABLE [表名] ADD [字段名] NVARCHAR (50) NULL

删除字段:

ALTER TABLE [表名] DROP COLUMN [字段名]

修改字段:

ALTER TABLE [表名] ALTER COLUMN [字段名] NVARCHAR (50) NULL

重命名表:(Access 重命名表,请参考文章:在Access数据库中重命名表)

sp_rename \'表名\', \'新表名\', \'OBJECT\'

新建约束:

ALTER TABLE [表名] ADD CONSTRAINT 约束名 CHECK ([约束字段] <= \'2000-1-1\')

删除约束:

ALTER TABLE [表名] DROP CONSTRAINT 约束名

新建默认值

ALTER TABLE [表名] ADD CONSTRAINT 默认值名 DEFAULT \'51WINDOWSNET\' FOR [字段名]

删除默认值

ALTER TABLE [表名] DROP CONSTRAINT 默认值名

删除Sql Server 中的日志,减小数据库文件大小

dump transaction 数据库名 with no_log

backup log 数据库名 with no_log

dbcc shrinkdatabase(数据库名)

exec sp_dboption \'数据库名\', \'autoshrink\', \'true\'

\\\'添加字段通用函数

Sub AddColumn(TableName,ColumnName,ColumnType)

ConnExecute(\"Alter Table \"&TableName&\" Add \"&ColumnName&\" \"&ColumnType&\"\")

End Sub

\\\'更改字段通用函数

Sub ModColumn(TableName,ColumnName,ColumnType)

ConnExecute(\"Alter Table \"&TableName&\" Alter Column \"&ColumnName&\" \"&ColumnType&\"\")

End Sub

\\\'检查表是否存在

sql=\"select count() as dida from sysobjects where id = object_id(N\'[所有者][表名]\') and OBJECTPROPERTY(id, N\'IsUserTable\') = 1\"

set rs=connexecute(sql)

responsewrite rs(\"dida\")\'返回一个数值,0代表没有,1代表存在

判断表的存在:

select from sysobjects where id = object_id(N\'[dbo][tablename]\') and OBJECTPROPERTY(id, N\'IsUserTable\') = 1

某个表的结构

select from syscolumns where id = object_id(N\'[dbo][你的表名]\') and OBJECTPROPERTY(id, N\'IsUserTable\') = 1

如果需要修改SQL主键约束,该SQL语句应该怎么写呢?下面就将教您SQL主键约束的修改语句写法,如果您遇到过类似的问题,不妨一看。

--修改SQL主键约束用SQL

--获取SQL主键约束名字

declare @csname varchar(100)

set @csname=''

select @csname=name

FROM sysobjects

WHERE xtype='PK' AND parent_obj=object_id('表名')

--删除约束

exec('alter table 表名 drop constraint ' + @csname)

--禁用约束(不校验)

exec('alter table 表名 nocheck constraint ' + @csname)

--启用约束(校验)

exec('alter table 表名 check constraint ' + @csname)

--添加约束

alter table 表名 add constraint 主键约束名 primary key (列名)

例: if not exists ( SELECT

from syscolumns

where id = object_id('accPF_RefFAcctID')

and name = 'id')

ALTER TABLE accPF_RefFAcctID

ADD id INT IDENTITY(1,1) CONSTRAINT PK_accPF_RefFAcctID PRIMARY KEY (id)

create table score。

SQL的主键和外键的作用:外键取值规则:空值或参照的主键值。

(1)插入非空值时,如果主键表中没有这个值,则不能插入。

(2)更新时,不能改为主键表中没有的值。

(3)删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除。

(4)更新主键记录时,同样有级联更新和拒绝执行的选择。

简而言之,SQL的主键和外键就是起约束作用。

alter table 外键表名 add constraint 约束名称 foreign key (外键字段) references 主键表名(约束列名)。

如果表A中的Ids是主键,要约束表B中得Aid列,那么语句应该是:alter table B add constraint A_B_Ids foreign key(Aid) references A(Ids)。

我们可以使用下面语句从all_constraints视图中查看某表上的约束:

SELECT

constraint_name,

table_name,

r_owner,

r_constraint_name

FROM

all_constraints

WHERE

table_name

=

'table_name'

and

owner

=

'owner_name';

另一个视图ALL_CONS_COLUMNS也包括组成表上约束列的信息。

以上就是关于数据库有哪几种类型约束全部的内容,包括:数据库有哪几种类型约束、如何使用SQL语句定义主码完整性约束和引用完整性约束、数据库中添加主键约束的SQL语句是什么样的,请高手帮忙!!! 是在修改表格的时候,用SQL语句...等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9538383.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存