MSSQL系列(二):表相关操作、列操作、(唯一、主键、默认、检查、外键、非空)约束、临时表 [数据库教程]

database

1.创建表

--创建学生班级表

createtable StuClass

(

ClassId intprimarykey, --班级ID 主键约束

ClassName nvarchar(30) notnullunique, --班级名称 非空约束 唯一约束

CreateDate datetimedefaultgetdate(), --创建时间 默认值约束

IsDelete nvarchar(1) defaultN--是否删除 默认‘N‘ ‘Y‘代表删除‘N‘代表不删除 默认值约束

)

go

--创建学生表

createtable Student

(

StuId intprimarykeyidentity(1,1), --学生ID 主键约束 自增长

StuName nvarchar(30) notnull, --学生姓名 非空约束

StuSex nvarchar(2) check(stuSex=or stuSex=), --学生性别 只是女或者男 检查约束

CreateDate datetimedefaultgetdate(), --创建时间 默认当前时间 默认值约束

StuAge int, --学生年龄 无约束

ClassId intforeignkey (ClassId) references StuClass (ClassId), --班级ID 外键

IsDelete nvarchar(1) defaultN--是否删除 默认‘N‘ ‘Y‘代表删除‘N‘代表不删除

)

go

--创建学生科目表

createtable StuSubject(

SubjectId intprimarykey, --科目ID

SubjectName nvarchar(30) , --科目名称

)

go

--创建学生成绩表

createtable StuScore(

StuId intforeignkey (StuId) references Sutdent(StuId) ondeletecascade, --学生ID 外键约束 同时支持级联删除

SubjectId intforeignkey (SubjectId) references StuSubject(SubjectId) ondeletecascade , --学生科目 外键约束

StuScore float, --学生成绩

primarykey(StuId,SubjectId) --联合主键

)

go

2.约束相关操作(添加、删除)

--添加约束的另一种方式 注意:两种方式只能用一种

--添加主键约束

altertable StuScore addconstraint PK_StuScore_StuId_SubjectId primarykey (StuId)

go

--添加非空约束

altertable StuScore altercolumn StuScore floatnotnull

go

--添加检查约束

altertable StuInfo addconstraint CK_StuInfo_StuSex check(StuSex=or StuSex=)

go

--添加唯一约束

altertable StuClass addconstraint UQ_StuClass_ClassName unique(ClassName)

go

--添加默认值约束

altertable StuClass addconstraint DF_StuClass_CreateDate default(getdate()) for CreateDate

go

--添加外键约束

altertable StuInfo addconstraint FK_StuClass_StuInfo foreignkey (ClassId) references StuClass(ClassId) ondeletecascade

go

--删除单个约束

altertable StuScore drop FK_StuClass_StuInfo

go

--删除多个约束

altertable StuScore dropconstraint

FK_StuClass_StuInfo,

PK_StuScore_StuId_SubjectId

go

3.列相关操作

--添加列

altertable StuScore add CreateDate datetimedefaultgetdate();

go

--删除列

--删除列名的时候 如果存在约束 要删除约束

altertable StuScore drop DF__StuScore__Create__403A8C7D

altertable StuScore dropcolumn CreateDate

go

--修改列字段类型

altertable StuScore altercolumn StuScore float

go

--修改表名

--注意:更改对象名的任何部分都可能破坏脚本和存储过程,谨慎操作

exec sp_rename Student,StuInfo

go

--修改表中的列名

--注意:更改对象名的任何部分都可能破坏脚本和存储过程,谨慎操作

exec sp_rename StuInfo.CreateDate,CreateTime,column

go

4.删除表

--删除表  注意当有主从表时候 先删从表 如果设置了联级删除 那么都会删除

ifexists(selectcount(*) from sys.objects where name=StuScore)

droptable StuScore

go

5.临时表相关操作

--删除临时表

ifobject_id(tempdb..#StuInfo) isnotnull

droptable #StuInfo

go

--创建临时表

createtable #StuInfo

(

StuId intprimarykeyidentity(1,1), --学生ID 主键约束 自增长

StuName nvarchar(30) notnull, --学生姓名 非空约束

StuSex nvarchar(2) check(stuSex=or stuSex=), --学生性别 只是女或者男 检查约束

CreateDate datetimedefaultgetdate(), --创建时间 默认当前时间 默认值约束

StuAge int, --学生年龄 无约束

IsDelete nvarchar(1) defaultN--是否删除 默认‘N‘ ‘Y‘代表删除‘N‘代表不删除 默认值约束

)

 6.相关系统表

查询表、列、约束、索引信息

--查询表、列、约束、索引信息

sp_help StuInfo

 

 

 查询字段信息

--查询字段信息

sp_columns StuInfo

 

 注:个人微信公众号

个人QQ号

 

 

MSSQL系列 (二):表相关操作、列操作、(唯一、主键、默认、检查、外键、非空)约束、临时表

以上是 MSSQL系列(二):表相关操作、列操作、(唯一、主键、默认、检查、外键、非空)约束、临时表 [数据库教程] 的全部内容, 来源链接: utcz.com/z/534699.html

回到顶部