郧阳师专校企共建...吧 关注:984贴子:197,945

Tsql 建表添加约束

只看楼主收藏回复

USE stus--转到stus数据库
GO
IF exists(SELECT * FROM sysobjects where name='studentinfo')
--查询是否存在该表
DROP TABLE studentinfo--存在则删除
go
CREATE table studentinfo
--创建表
( s_id int identity(1,1),--自增长
c_id int ,--班级
id s_no varchar(6) not null,--学号
s_name varchar(20) not null,--姓名
s_age int ,--年龄 s_gender bit,--性别
s_address varchar(30) not null--住址)
go
--添加主键约束
ALTER table studentinfo add constraint pk_s_id primary key(s_id)
--添加外键约束
ALTER table studentinfo add constraint fk_c_id foreign key(c_id) references classinfo(id)
--添加检查约束 编号长度为6
ALTER table studentinfo add constraint ck_s_no check(len(s_no)=6)
--添加唯一约束 编号是唯一的
ALTER table studentinfo add constraint uq_s_no unique(s_no)
--添加检查约束 年龄在17岁到30岁之间
ALTER table studentinfo add constraint ck_s_age check(s_age between 17 and 30)
--添加检查约束 年龄只能是0或者1
ALTER table studentinfo add constraint ck_s_gender check(s_gender in(0,1))
--添加默认约束 性别默认为1
ALTER table studentinfo add constraint df_s_gender default 1 for s_gendergo
--SELECT * FROM studentinfo
TRUNCATE table studentinfo
--删除表数据,保留表结构
--插入数据 因为性别设置默认值了,这里不需要插入
INSERT INTO studentinfo (c_id,s_no,s_name,s_age,s_address)
select 1, '000001','jack',19,'桃花谷1'union
select 2, '000002','lucy',18,'桃花谷2'union
select 3, '000003','tom',20,'桃花谷'go
============================================================================
也可以在创建表的时候就添加约束
CREATE table studentinfo(
s_id int identity(1,1)primary key,
c_id int foreign key references classinfo(id),
s_no varchar(6) not null check(len(s_no)=6) unique,
s_name varchar(20) not null,
s_age int check (s_age between 17 and 30),
s_gender bit check(s_gender in(0,1)) default(1),
s_address varchar(30) not null
)


IP属地:湖北1楼2015-03-11 10:41回复
    二楼


    来自Android客户端2楼2015-03-11 11:24
    回复
      2025-07-27 03:58:37
      广告
      不感兴趣
      开通SVIP免广告
      三楼


      来自Android客户端3楼2015-03-11 11:24
      回复
        四楼


        来自Android客户端4楼2015-03-11 11:24
        回复
          五楼


          来自Android客户端5楼2015-03-11 11:25
          回复
            六楼


            来自Android客户端6楼2015-03-11 11:25
            回复
              七楼


              来自Android客户端7楼2015-03-11 11:25
              回复
                八楼


                来自Android客户端8楼2015-03-11 11:25
                回复
                  2025-07-27 03:52:37
                  广告
                  不感兴趣
                  开通SVIP免广告
                  九楼


                  来自Android客户端9楼2015-03-11 11:25
                  回复
                    十楼


                    来自Android客户端10楼2015-03-11 11:26
                    回复
                      红色框框里的内容怎样确定啊??


                      IP属地:江苏11楼2015-03-11 12:32
                      收起回复


                        来自Android青春福利版12楼2015-03-11 12:34
                        回复


                          来自Android青春福利版13楼2015-03-11 12:35
                          回复


                            来自Android客户端14楼2015-03-11 14:08
                            回复
                              2025-07-27 03:46:37
                              广告
                              不感兴趣
                              开通SVIP免广告
                              女神我爱你


                              来自Android客户端15楼2015-03-11 15:47
                              回复