来自 首页 2019-11-21 08:12 的文章
当前位置: 澳门太阳娱乐手机登录 > 首页 > 正文

SQLServer数据表用法

多少表定义

数据表(或称表)是数据库最器重的组成都部队分之大器晚成,数据库中以表为团队单位存款和储蓄数据,数据库只是一个框架,数据表才是其实质内容。数据库处理工科具中得以来得数据库中的全体数据表,数据表是数据库中一个那八个关键的靶子,是其余对象的底工。

CHECK约束增加准则

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

2、Check限制通过逻辑表达式来判别数据的管用,用来约束输入一列或多列的值的限量,在列中立异数据时,所要输入的剧情必得满意Check约束的尺度,不然将无法正确输入。

3、即使对单个列定义 CHECK 约束,那么该列只允许特定的值。

4、假诺对三个表定义 CHECK 约束,那么此约束会在特定的列中对值实行约束。

创设数据表

措施风姿罗曼蒂克:张开数据库管理工科具-》登入-》选用数据库-》接受表-》右键点击,选取新建表-》在侧面视图中输入列名、数据类型、是还是不是可空、在列属性中安装须求的品质-》点击保存(或ctrl+s卡塔 尔(阿拉伯语:قطر‎-》保存成功,刷新就能够呈现

图片 1

图片 2

方法二:使用T-SQL脚本新建表

 1 --数据库声明
 2 use testss
 3 --建表语法声明
 4 create table test1
 5 (
 6 --字段声明
 7 id int identity(1,1) not null,
 8 name nvarchar(50) null,
 9 sex nvarchar(50) null,
10 age nvarchar(50) null,
11 classid int,
12 primary key clustered(id asc) with(ignore_dup_key=off) on [primary]    --主键索引声明
13 )on [primary]
14 
15 --字段注释声明
16 exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'id主键' , @level0type=N'SCHEMA',
17 @level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'id';
18 
19 exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'姓名' , @level0type=N'SCHEMA',
20 @level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'name';
21 
22 exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'性别' , @level0type=N'SCHEMA',
23 @level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'sex';
24 
25 exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'年龄' , @level0type=N'SCHEMA',
26 @level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'age';
27 
28 exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'班级id' , @level0type=N'SCHEMA',
29 @level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'classid';
30 
31 go

 示例结果如下:图片 3

利用SSMS数据库管理工科具增多CHECK约束

1、连接数据库,接纳数据库,选用数据表-》右键点击(只怕间接点击节制,右键点击,采纳丰硕节制,前边步骤相近)-》选拔设计。

图片 4

2、选取要抬高度大节制的多寡列-》右键点击-》接受CHECK约束。

图片 5

3、在CHECK限定弹出框中式茶食击增添。

图片 6

4、在CHECK节制弹出框中-》输入CHECK节制表达式-》输入CHECK节制名-》输入CHECK限制描述-》别的能够筛选暗中同意。

图片 7

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

图片 8

删去数据表

措施生龙活虎:张开数据库管理工科具-》登陆-》接纳数据库-》采纳表-》右键点击,选拔删除-》点击弹出框中的分明删除-》刷新数据库

图片 9图片 10

措施二:使用T-SQL脚本删除:drop table test2;

图片 11

采取T-SQL脚本增加CHECK限制

改善数据表

情势风姿罗曼蒂克:张开数据库管理工科具-》登入-》选用数据库-》选拔表-》右键点击,选拔重命名-》重新输入表名-》按enter键分明-》刷新可查阅新表名

 图片 12

形式二:使用T-SQL脚本改过表名:exec sp_rename 'test1','test2';

图片 13

当表结构存在时

添加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

 图片 14

图片 15

查阅数据表

--查询数据库下具有的表
--xtype='U'查询客商表
select name from sysobjects where xtype='U'
-- xtype='S'查询系统表
select name from sysobjects where xtype='S'

--查看test1表的具备新闻
exec sp_help test1;

--查询test1表中享有的列
select * from syscolumns where id=Object_Id('test1')

--查看test1表中具有列数据
select * from test1;

当表结构不设不常

尽管表结构空中楼阁,能够直接抬高度大概束,能够同临时间丰硕二个照旧多个限制。

语法:

--假设表结构不设一时增加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

 图片 16

图片 17

图片 18

CHECK约束优劣势

优点:

1、保险列数据标准和界定,能够约束数据完整性

2、有Check节制的列能够提要求查询优化器音讯之所以提高质量

缺点:

1、插入恐怕校正时数据不相符约束准则,不能够改进成功。

本文由澳门太阳娱乐手机登录发布于首页,转载请注明出处:SQLServer数据表用法

关键词: