MSSQL系列(二):表相关操作、列操作、(唯一、主键、默认、检查、外键、非空)约束、临时表 [数据库教程]
1.创建表
--创建学生班级表createtable StuClass
(
ClassId intprimarykey, --班级ID 主键约束
ClassName nvarchar(30) notnullunique, --班级名称 非空约束 唯一约束
CreateDate datetimedefaultgetdate(), --创建时间 默认值约束
IsDelete nvarchar(1) default‘N‘--是否删除 默认‘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) default‘N‘--是否删除 默认‘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) default‘N‘--是否删除 默认‘N‘ ‘Y‘代表删除‘N‘代表不删除 默认值约束
)
6.相关系统表
查询表、列、约束、索引信息
--查询表、列、约束、索引信息sp_help StuInfo
查询字段信息
--查询字段信息sp_columns StuInfo
注:个人微信公众号
个人QQ号
MSSQL系列 (二):表相关操作、列操作、(唯一、主键、默认、检查、外键、非空)约束、临时表
以上是 MSSQL系列(二):表相关操作、列操作、(唯一、主键、默认、检查、外键、非空)约束、临时表 [数据库教程] 的全部内容, 来源链接: utcz.com/z/534699.html