您的位置:1010cc时时彩经典版 > 1010cc安卓版 > 1010cc时时彩经典版数据表基本操作语句

1010cc时时彩经典版数据表基本操作语句

发布时间:2019-08-08 16:26编辑:1010cc安卓版浏览(65)

    使用SSMS数据库管理工具修改CHECK约束

    1、打开数据库,选择数据表-》右键点击-》选择设计(或者展开约束,选择约束,右键点击,选择修改,后面步骤相同)。

    1010cc时时彩经典版 1

    1010cc时时彩经典版 2

    2、选择要修改的数据列-》右键点击-》选择CHECK约束。

    1010cc时时彩经典版 3

    3、在CHECK约束弹出框中-》选择要修改的约束-》输入约束表达式-》输入约束名和约束描述-》选择表设计器规则-》点击关闭。

    1010cc时时彩经典版 4

     4、点击保存按钮(或者ctrl s)-》刷新表查看修改结果。

    1010cc时时彩经典版 5

    使用SSMS数据库管理工具添加CHECK约束

    1、连接数据库,选择数据库,选择数据表-》右键点击(或者直接点击约束,右键点击,选择添加约束,后面步骤相同)-》选择设计。

    1010cc时时彩经典版 6

    2、选择要添加约束的数据列-》右键点击-》选择CHECK约束。

    1010cc时时彩经典版 7

    3、在CHECK约束弹出框中点击添加。

    1010cc时时彩经典版 8

    4、在CHECK约束弹出框中-》输入CHECK约束表达式-》输入CHECK约束名-》输入CHECK约束描述-》其他可以选择默认。

    1010cc时时彩经典版 9

    5、点击关闭-》点击保存按钮(或者ctrl s)-》刷新表查看结果。

    1010cc时时彩经典版 10

    创建表时添加默认约束

    首先判断表是否选在,如果存在则先删除表再添加,如果不存在则直接添加。

    语法:

    --创建新表时添加默认约束
    --数据库声明
    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

    1010cc时时彩经典版 11

    1010cc时时彩经典版 12

    当表结构已存在时

    如果要添加约束的表已存在外键约束,需要先删除外键约束再添加外键约束。如果不存在外键约束可以添加外键约束。

    语法:

    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

    1010cc时时彩经典版 13

    11:重命名列名
    exec sp_rename '[表名].[列名]','[表名].[新列名]'

    使用T-SQL脚本修改CHECK约束

    CHECK约束修改规则必须首先删除现有的CHECK约束,然后使用新定义重新创建,才能使用Transact-SQL修改CHECK约束。

    语法:

    --修改check约束
    use 数据库名
    go

    --如果约束存在则先删除
    if exists(select * from sysobjects where name=约束名)
    alter table 表名 drop constraint 约束名;
    go

    --添加约束
    alter table 表名
    --with check --该约束是否应用于现有数据,with check表示应用于现有数据,with nocheck表示不应用于现有数据
    add constraint 约束名
    check
    not for replication --当复制代理在表中插入或更新数据时,禁用该约束。
    (约束表达式);
    go

    --向表中添加新数据或更新表中现有数据时是否禁用该约束。check表示校验,nocheck表示不校验
    --alter table 表名
    --check
    --constraint 表名;
    --go

    --添加check约束描述
    execute sp_addextendedproperty N'MS_Description', N'约束描述', N'SCHEMA', N'dbo', N'TABLE', N'表名', N'CONSTRAINT', N'约束名';
    go

    示例:

    --修改check约束
    use testss
    go

    --如果约束存在则先删除
    if exists(select * from sysobjects where name='u_check2')
    alter table test1 drop constraint u_check2;
    go

    --添加约束
    alter table test1
    --with check --该约束是否应用于现有数据,with check表示应用于现有数据,with nocheck表示不应用于现有数据
    add constraint u_check2
    check
    not for replication --当复制代理在表中插入或更新数据时,禁用该约束。
    (height>=100 and height <=200);
    go

    --向表中添加新数据或更新表中现有数据时是否禁用该约束。check表示校验,nocheck表示不校验
    --alter table test1
    --check
    --constraint u_check2;
    --go

    --添加check约束描述
    execute sp_addextendedproperty N'MS_Description', N'修改约束', N'SCHEMA', N'dbo', N'TABLE', N'test1', N'CONSTRAINT', N'u_check2';
    go

    1010cc时时彩经典版 14

    1010cc时时彩经典版 15

    使用T-SQL脚本添加CHECK约束

    DEFAULT约束添加规则

    1、若在表中定义了默认值约束,用户在插入新的数据行时,如果该行没有指定数据,那么系统将默认值赋给该列,如果我们不设置默认值,系统默认为NULL。

    2、如果“默认值”字段中的项替换绑定的默认值(以不带圆括号的形式显示),则将提示你解除对默认值的绑定,并将其替换为新的默认值。

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

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

    5、若要输入对象/函数,请输入对象/函数的名称并且不要用引号将名称括起来。

    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 约束的实际数目还是受硬件配置以及数据库和应用程序设计的限制。 表最多可以将 253 个其他表和列作为外键引用(传出引用)。 SQL Server 2016 (13.x) 将可在单独的表中引用的其他表和列(传入引用)的数量限制从 253 提高至 10,000。 (兼容性级别至少必须为 130。)数量限制的提高带来了下列约束:

    DELETE 和 UPDATE DML 操作支持大于 253 个外键引用。 不支持 MERGE 操作。

    对自身进行外键引用的表仍只能进行 253 个外键引用。

    列存储索引、内存优化表和 Stretch Database 暂不支持进行超过 253 个外键引用。

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

    9、如果在 CLR 用户定义类型的列上定义外键,则该类型的实现必须支持二进制排序。

    10、仅当 FOREIGN KEY 约束引用的主键也定义为类型 varchar(max) 时,才能在此约束中使用类型为varchar(max) 的列。

    3:更新表中列的描述属性(如Username)
    EXEC sp_updateextendedproperty N'MS_Description', N'新的描述内容', N'user', N'dbo', N'TABLE', N'表名', N'column', N'UserName'

    CHECK约束修改优缺点

    优点:

    1、修改数据库CHECK约束可以保证数据的规范性和完整性。

    缺点:

    1:修改约束的表设计器使用规则时,可能会引起原有数据与约束的冲突。

     

    当表结构不存在时

    如果表结构不存在,可以直接添加约束,可以同时添加一个或者多个约束。

    语法:

    --如果表结构不存在时添加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

     1010cc时时彩经典版 16

    1010cc时时彩经典版 17

    1010cc时时彩经典版 18

    使用T-SQL脚本添加DEFAULT约束

    在新表中创建外键

     语法:

    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

    1010cc时时彩经典版 19

    二、创建注释(N'user', N'dbo', N'TABLE' 为固定的写法) 
    1:为表添加描述信息
    EXECUTE sp_addextendedproperty N'MS_Description', N'人员信息表', N'user', N'dbo', N'TABLE', N'表名', NULL, NULL

    CHECK约束优缺点

    优点:

    1、保证列数据规范和范围,可以约束数据完整性

    2、有Check约束的列可以提供给查询优化器信息从而提升性能

    缺点:

    1、插入或者修改时数据不符合约束规则,无法修改成功。

    当表结构已存在时

    首先判断表中是否存在默认约束,如果存在则先删除默认约束再添加,如果不存在则直接添加。

    语法:

    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

    1010cc时时彩经典版 20

    1010cc时时彩经典版 21

    使用SSMS数据库管理工具添加外键约束

    本示例演示当表结构已存在时添加外键约束,创建表时添加外键约束步骤和表结构存在时添加外键步骤相同。示例演示如下:

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

    1010cc时时彩经典版 22

    2、在表设计窗口-》选择要添加外键的数据行-》右键点击-》选择关系。

    1010cc时时彩经典版 23

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

    1010cc时时彩经典版 24

    4、添加完毕后-》首先修改表和列规范。

    1010cc时时彩经典版 25

    5、在表和列窗口中-》输入外键名-》在左边选择主表和关联的列-》在右边选择从表和作为外键的列-》点击确定。

    1010cc时时彩经典版 26

    6、在外键关系窗口中-》可选择添加或者不添加外键描述-》可选择添加或者不添加修改或者删除数据时级联操作-》可选择添加或者不添加强制外键约束-》可选择添加或者不添加强制用于复制-》点击关闭。

    1010cc时时彩经典版 27

    7、点击保存按钮(ctrl s)-》此时表会弹出警告窗口,点击是-》刷新查看外键是否添加成功。

    1010cc时时彩经典版 28

    1010cc时时彩经典版 29

    7:添加check约束
    Alter table [表名] add constraint [约束名] check(内容)

    本文由1010cc时时彩经典版发布于1010cc安卓版,转载请注明出处:1010cc时时彩经典版数据表基本操作语句

    关键词:

上一篇:数据表脚本,数据库设计

下一篇:没有了