金沙棋牌app手机下载

当前位置:金沙棋牌 > 金沙棋牌app手机下载 > 数据表脚本金沙棋牌app手机下载:

数据表脚本金沙棋牌app手机下载:

来源:http://www.logblo.com 作者:金沙棋牌 时间:2019-08-29 16:00

FOREIGN KEY约束增多准绳

1、外键约束并不唯有能够与另一表的主键约束相链接,它还足以定义为援用另贰个表中 UNIQUE 约束的列。

2、假诺在 FOREIGN KEY 约束的列中输入非 NULL 值,则此值必需在被援用列中存在;不然,将重返违反外键约束的错误音讯。 若要有限帮衬验证了整合外键约束的富有值,请对具备加入列钦点NOT NULL。

3、FOREIGN KEY 约束仅能引用位于同一服务器上的均等数据库中的表。 跨数据库的引用完整性必得通过触发器达成。

4、FOREIGN KEY 约束可援用同一表中的其余列。 此行为称为自引用。

5、在列级钦赐的 FOREIGN KEY 约束只好列出三个援引列。 此列的数据类型必需与定义约束的列的数据类型一样。

6、在表级钦赐的 FOREIGN KEY 约束所兼有的援引列数目必需与约束列列表中的列数一样。 各类引用列的数据类型也必须与列表中相应列的数据类型同样。

7、对于表可富含的援用其余表的 FOREIGN KEY 约束的多少或其余表所具有的援用特定表的 FOREIGN KEY 约束的多寡, 数据库引擎 都未曾预约义的限量。 固然如此,可利用的 FOREIGN KEY 约束的实际上数目依然受硬件配备以及数据库和应用程序设计的界定。 表最多能够将 2伍十个别的表和列作为外键援引(传出援用)。 SQL Server 二零一四 (13.x) 将可在单独的表中援用的别的表和列(传入引用)的多寡限制从 253 升高至 10,000。 (兼容性品级至少必得为 130。)数量限制的巩固带来了下列约束:

DELETE 和 UPDATE DML 操作协理胜出 253 个外键援引。 不协理ME智跑GE 操作。

对自己实行外键引用的表仍只可以举行 252个外键援用。

列存款和储蓄索引、内部存款和储蓄器优化表和 Stretch Database 暂不帮助开展当先 253 个外键援用。

8、对于一时表不强制 FOREIGN KEY 约束。

9、假若在 CLEscort客商定义类型的列上定义外键,则该类型的落实必需援助二进制排序。

10、仅当 FOREIGN KEY 约束援引的主键也定义为品种 varchar(max) 时,本领在此约束中运用项目为varchar(max) 的列。

DEFAULT约束增添法规

1、若在表中定义了暗中认可值约束,顾客在插入新的数量行时,要是该行未有一些名数量,那么系统将默许值赋给该列,如若大家不设置私下认可值,系统默以为NULL。

2、假设“私下认可值”字段中的项替换绑定的暗中认可值(以不带圆括号的花样显得),则将唤起您清除对暗中认可值的绑定,并将其替换为新的默许值。

3、若要输入文本字符串,请用单引号 (') 将值括起来;不要选用双引号 ("),因为双引号已封存用于带引号的标志符。

4、若要输入数值默许值,请输入数值并且毫不用引号将值括起来。

金沙棋牌app手机下载,5、若要输入对象/函数,请输入对象/函数的名目而且不要用引号将名称括起来。

CHECK约束增添法规

1、CHECK 约束用于限制列中的值的范围。

2、Check约束通过逻辑表明式来判断数据的有效,用来限制输入一列或多列的值的界定,在列中立异数据时,所要输入的开始和结果必需满意Check约束的标准,否则将不能准确输入。

3、要是对单个列定义 CHECK 约束,那么该列只同意特定的值。

4、要是对一个表定义 CHECK 约束,那么此约束会在一定的列中对值实行限制。

1:向表中加多字段

动用SSMS数据库管理工科具增加外键约束

本示例演示当表结构已存在时加多外键约束,创制表时加上国外国语高校键约束步骤和表结构存在时增加外键步骤同样。示例演示如下:

1、连接数据库,打开要增加外键的数码表-》右键点击-》选择设计。

金沙棋牌app手机下载 1

2、在表设计窗口-》选拔要增加外键的数量行-》右键点击-》选拔涉及。

金沙棋牌app手机下载 2

3、在外键关系窗口中-》点击添加。

金沙棋牌app手机下载 3

4、增添实现后-》首先修改表和列标准。

金沙棋牌app手机下载 4

5、在表和列窗口中-》输入外键名-》在左臂选拔主表和涉嫌的列-》在左边手选用从表和作为外键的列-》点击分明。

金沙棋牌app手机下载 5

6、在外键关系窗口中-》可挑选丰盛只怕不增加外键描述-》可接纳充裕大概不增加修改或许去除数据时级联操作-》可挑选丰硕可能不增添强制外键约束-》可选取丰富大概不添抓好制用于复制-》点击关闭。

金沙棋牌app手机下载 6

7、点击保存开关(ctrl s)-》此时表会弹出警告窗口,点击是-》刷新查看外键是不是充分成功。

金沙棋牌app手机下载 7

金沙棋牌app手机下载 8

使用SSMS数据库管理工科具增多DEFAULT约束

1、连接数据库,选用数据表-》右键点击-》选拔设计。

金沙棋牌app手机下载 9

2、在表设计窗口中-》采纳数据列-》在列属性窗口中找到暗许值或绑定-》输入默许值(注意默许值的数据类型和输入格式)。

金沙棋牌app手机下载 10

3、点击保存开关(大概ctrl s)-》刷新表-》再一次打开表查看结果。

金沙棋牌app手机下载 11

选取SSMS数据库管理工科具加多CHECK约束

1、连接数据库,选拔数据库,选取数据表-》右键点击(或许直接点击约束,右键点击,选拔充分约束,前边步骤一样)-》选用设计。

金沙棋牌app手机下载 12

2、选拔要增进约束的数额列-》右键点击-》选用CHECK约束。

金沙棋牌app手机下载 13

3、在CHECK约束弹出框中式点心击增添。

金沙棋牌app手机下载 14

4、在CHECK约束弹出框中-》输入CHECK约束表明式-》输入CHECK约束名-》输入CHECK约束描述-》其余能够挑选暗中同意。

金沙棋牌app手机下载 15

5、点击关闭-》点击保存开关(大概ctrl s)-》刷新表查看结果。

金沙棋牌app手机下载 16

Alter table [表名] add [列名] 类型

动用T-SQL脚本增加外键约束

应用T-SQL脚本增加DEFAULT约束

选拔T-SQL脚本增添CHECK约束

2:  删除字段

当表结构已存在时

万一要丰硕约束的表已存在外键约束,须要先删除了那个之外键约束再增添外键约束。如果一纸空文外键约束能够加多外键约束。

语法:

if exists(select * from sysobjects where name=约束名)
alter table 数据库名.[dbo].表名 drop constraint 约束名;
alter table 数据库名.[dbo].表名 with check add constraint 约束名 foreign key(列名)
references 数据库名.[dbo].表名(列名)

on delete cascade
on update cascade;
go

示例:

if exists(select * from sysobjects where name='t1_t2')
alter table [testss].[dbo].[test1] drop constraint t1_t2;
alter table [testss].[dbo].[test1] with check add constraint t1_t2 foreign key(classid)
references [testss].[dbo].[test2](id)
on delete cascade
on update cascade;
go

金沙棋牌app手机下载 17

当表结构已存在时

第一判定表中是或不是留存暗中认可约束,假若存在则先删除私下认可约束再增加,假若不设有则一贯助长。

语法:

use 数据库
go
--决断暗中认可约束是还是不是留存,若是存在则先删除,即使一纸空文则一直抬高
if exists(select * from sysobjects where name=约束名)
alter table 表名 drop constraint 约束名;
go
--给钦赐列增添暗中同意约束
alter table 表名 add constraint 约束名 default(约束值) for 列名;
go

示例:

use [testss]
go
--推断私下认可约束是或不是存在,固然存在则先删除,如果不设有则一直抬高
if exists(select * from sysobjects where name='defalut_height')
alter table [testss].[dbo].[test1] drop constraint defalut_height;
go
--给钦命列增添暗中认可约束
alter table [testss].[dbo].[test1] add constraint defalut_height default(160) for height;
go

金沙棋牌app手机下载 18

金沙棋牌app手机下载 19

当表结构存在时

增加CHECK约束时首先校验约束是不是已存在,假如存在应该是先删除再增加,借使官样文章则直接助长。

语法:

-- 增多三个默许约束
use 数据库名;
go

if exists(select * from sysobjects where name=约束名)
alter table 表名 drop constraint 约束名;
go

alter table 表名 add constraint 约束名 check(约束准则),constraint 约束名 check(约束法则);
go

示例:

-- 增加二个暗中同意约束
use testss;
go

if exists(select * from sysobjects where name='check1')
alter table test1 drop constraint check1;
go

alter table test1 add constraint check1 check(height>=170 and height<=175);
go

 金沙棋牌app手机下载 20

金沙棋牌app手机下载 21

Alter table [表名]  drop column [列名]

在新表中开创外键

 语法:

if exists( select * from sysobjects where name=表名 and type ='U')
drop table 表名;
go

--当表结构一纸空文时
--建表语法证明
create table 表名
(
--字段注脚
列名 int identity(1,1) not null,
列名 int,
primary key clustered(id asc) with(ignore_dup_key=off) on [primary], --主键索引表明
constraint 外键名 foreign key(列名)

references 主表名(列名)
on update cascade--是还是不是级联操作
on delete cascade
)on [primary]

--字段注释注明
exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'列说明' , @level0type=N'SCHEMA',
@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'表名', @level2type=N'COLUMN',@level2name=N'列名';

exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'列说明' , @level0type=N'SCHEMA',
@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'表名', @level2type=N'COLUMN',@level2name=N'列名';

go

示例:

if exists( select * from sysobjects where name='test1'and type ='U')
drop table test1;
go

--当表结构不设有时
--建表语法注脚
create table test1
(
--字段注脚
id int identity(1,1) not null,
name nvarchar(50) null,
sex nvarchar(50) null,
age nvarchar(50) null,
classid int,
primary key clustered(id asc) with(ignore_dup_key=off) on [primary], --主键索引评释
constraint t3_t4 foreign key(classid)

references test2 (id)
on update cascade
on delete cascade
)on [primary]

--字段注释表明
exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'id主键' , @level0type=N'SCHEMA',
@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'id';

exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'姓名' , @level0type=N'SCHEMA',
@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'name';

exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'性别' , @level0type=N'SCHEMA',
@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'sex';

exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'年龄' , @level0type=N'SCHEMA',
@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'age';

exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'班级id' , @level0type=N'SCHEMA',
@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'classid';

go

金沙棋牌app手机下载 22

创建表时增添暗中同意约束

率先剖断表是还是不是选在,倘若存在则先删除表再增加,要是不设有则一向抬高。

语法:

--成立新表时增加暗中同意约束
--数据库注解
use 数据库名
go
--假设表已存在则先删除表再次创下制,假设表空头支票则直接创设
if exists(select * from sysobjects where name=表名 and type ='U')
drop table 表名;
go
--建表语法证明
create table 表名
(
--字段表明
列名 列类型 identity(1,1) not null,
列名 列类型) null,
列名 列类型 null,
列名 列类型 null,
列名 列类型,
列名 列类型 constraint 约束名 default 默认值,
primary key clustered(列名 asc) with(ignore_dup_key=off) on [primary] --主键索引申明
)on [primary]

--字段注释注解
exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'列说明' , @level0type=N'SCHEMA',
@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'表名', @level2type=N'COLUMN',@level2name=N'列名';

exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'列说明' , @level0type=N'SCHEMA',
@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'表名', @level2type=N'COLUMN',@level2name=N'列名';

exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'列说明' , @level0type=N'SCHEMA',
@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'表名', @level2type=N'COLUMN',@level2name=N'列名';

exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'列说明' , @level0type=N'SCHEMA',
@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'表名', @level2type=N'COLUMN',@level2name=N'列名';

exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'列说明' , @level0type=N'SCHEMA',
@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'表名', @level2type=N'COLUMN',@level2name=N'列名';

go

示例:

--创造新表时增加暗中认可约束
--数据库表明
use testss
go
--即使表已存在则先删除表更创制,倘使表海市蜃楼则直接制造
if exists(select * from sysobjects where name='test1' and type ='U')
drop table test1;
go
--建表语法注明
create table test1
(
--字段注脚
id int identity(1,1) not null,
name nvarchar(50) null,
sex nvarchar(50) null,
age nvarchar(50) null,
classid int,
height int constraint default_he default 166,
primary key clustered(id asc) with(ignore_dup_key=off) on [primary] --主键索引注解
)on [primary]

--字段注释申明
exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'id主键' , @level0type=N'SCHEMA',
@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'id';

exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'姓名' , @level0type=N'SCHEMA',
@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'name';

exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'性别' , @level0type=N'SCHEMA',
@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'sex';

exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'年龄' , @level0type=N'SCHEMA',
@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'age';

exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'班级id' , @level0type=N'SCHEMA',
@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'classid';

go

金沙棋牌app手机下载 23

金沙棋牌app手机下载 24

当表结构不设有时

纵然表结构不设有,能够直接助长约束,能够并且丰盛七个照旧多个约束。

语法:

--假如表结构空中楼阁时增多check约束
use 数据库名;
go
--即便已存在表则删除
if exists(select * from sysobjects where name=表名 and xtype='U')
drop table 表名;
go
--创建表
create table 表名
(
--字段注脚
列名 int identity(1,1) not null,
列名 nvarchar(50) null,
列名 nvarchar(50) null constraint 约束名 check(约束法则),
列名 nvarchar(50) null,
列名 int,
列名 int constraint 约束名 check(约束准绳)
primary key clustered(列名 asc) with(ignore_dup_key=off) on [primary], --主键索引评释
)on [primary]

--字段注释注解
exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'列描述' , @level0type=N'SCHEMA',
@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'表名', @level2type=N'COLUMN',@level2name=N'列名';

exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'列描述' , @level0type=N'SCHEMA',
@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'表名', @level2type=N'COLUMN',@level2name=N'列名';

exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'列描述' , @level0type=N'SCHEMA',
@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'表名', @level2type=N'COLUMN',@level2name=N'列名';

exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'列描述' , @level0type=N'SCHEMA',
@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'表名', @level2type=N'COLUMN',@level2name=N'列名';

exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'列描述' , @level0type=N'SCHEMA',
@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'表名', @level2type=N'COLUMN',@level2name=N'列名';

go

示例:

--假如表结构空头支票时加多check约束
use testss;
go
--如果已存在表则删除
if exists(select * from sysobjects where name='test1' and xtype='U')
drop table test1;
go
--创建表
create table test1
(
--字段证明
id int identity(1,1) not null,
name nvarchar(50) null,
sex nvarchar(50) null constraint check1 check(sex='男' or sex='女'),
age nvarchar(50) null,
classid int,
height int constraint check2 check(height>=110 and height<=120)
primary key clustered(id asc) with(ignore_dup_key=off) on [primary], --主键索引注解
)on [primary]

--字段注释申明
exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'id主键' , @level0type=N'SCHEMA',
@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'id';

exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'姓名' , @level0type=N'SCHEMA',
@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'name';

exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'性别' , @level0type=N'SCHEMA',
@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'sex';

exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'年龄' , @level0type=N'SCHEMA',
@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'age';

exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'班级id' , @level0type=N'SCHEMA',
@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'classid';

go

 金沙棋牌app手机下载 25

金沙棋牌app手机下载 26

金沙棋牌app手机下载 27

3:  修改表中字段类型 (能够修改列的种类,是或不是为空)

FOREIGN KEY约束优劣点

优点:

1、保障数据的一致性,完整性,更有限支持。

2、关联合检查询时,能够用到FK 的统计新闻。

3、有主外键的数据库设计能够追加EGL450图的可读性。

缺点:

1、删队或更新关联数据时须要做检查,作用会相当的低。

2、手工业调数据时,会存在主从表校验,会相比较麻烦。

3、批量导入数据时,会存在外键校验,须要先关闭外键约束,导入完成再张开外键约束,操作相比较麻烦。

 

DEFAULT约束优瑕疵

优点:

1、使用暗中认可值可以减掉代码量,新添多少时能够不用写新扩张暗许值列,实行新扩大操作时时暗许填充。

2、较有利开展总计和深入分析,以及方便程序逻辑操作。

缺点:

1、使用不为NULL的私下认可值,占用了越来越多的积累空间。

 

CHECK约束优缺点

优点:

1、保险列数据正式和范围,能够约束数据完整性

2、有Check约束的列可以提需要查询优化器新闻之所以提高品质

缺点:

1、插入可能涂改时数据不吻合约束准绳,不可能修改成功。

Alter table [表名] alter column [列名] 类型

4:增添主键

Alter table [表名] add constraint [ 约束名] primary key( [列名])

5:加多独一约束

Alter table [表名] add constraint [ 约束名] unique([列名])

6:增加表中某列的暗许值

Alter table [表名] add constraint [约束名] default(默认值) for [列名]
7:加多约束

Alter table [表名] add constraint [约束名] check (内容)

8:增添外键约束

 Alter table [表名] add constraint [约束名]  foreign key(列名) referencese 另一表名(列名)

9:删除约束

Alter table [表名] drop constraint [约束名] 

10:重命名表

exec sp_rename '[原表名]','[新表名]'

11:重命名列名

exec sp_rename '[表名].[列名]','[表名].[新列名]'

 

成立注释(N'user', N'dbo', N'TABLE' 为定位的写法)

12:为表增多描述消息
EXECUTE sp_addextendedproperty N'MS_Description', '职员音讯表', N'user', N'dbo', N'TABLE', N'表名', NULL, NULL

13:为字段Username增加描述消息
EXECUTE sp_addextendedproperty N'MS_Description', '姓名', N'user', N'dbo', N'TABLE', N'表名', N'column', N'Username'

14:为字段Sex增多描述音信
EXECUTE sp_addextendedproperty N'MS_Description', '性别', N'user', N'dbo', N'TABLE', N'表名', N'column', N'Sex'

15:更新表中列UserName的呈报属性:
EXEC sp_updateextendedproperty 'MS_Description','新的姓名','user',dbo,'TABLE','表名','column','UserName'

16:删除表中列UserName的陈诉属性:
EXEC sp_dropextendedproperty 'MS_Description','user',dbo,'TABLE','表名','column','Username'

本文由金沙棋牌发布于金沙棋牌app手机下载,转载请注明出处:数据表脚本金沙棋牌app手机下载:

关键词:

上一篇:没有了

下一篇:没有了