SQL Server系列:表相关操作、列操作、(唯一、主键、默认、检查、外键、非空)约束、临时表
1.创建表
--创建学生班级表 create table StuClass ( ClassId int primary key, --班级ID 主键约束 ClassName nvarchar(30) not null unique, --班级名称 非空约束 唯一约束 CreateDate datetime default getdate(), --创建时间 默认值约束 IsDelete nvarchar(1) default 'N' --是否删除 默认'N' 'Y'代表删除'N'代表不删除 默认值约束 ) go --创建学生表 create table Student ( StuId int primary key identity(1,1), --学生ID 主键约束 自增长 StuName nvarchar(30) not null, --学生姓名 非空约束 StuSex nvarchar(2) check(stuSex='男' or stuSex='女'), --学生性别 只是女或者男 检查约束 CreateDate datetime default getdate(), --创建时间 默认当前时间 默认值约束 StuAge int, --学生年龄 无约束 ClassId int foreign key (ClassId) references StuClass (ClassId), --班级ID 外键 IsDelete nvarchar(1) default 'N' --是否删除 默认'N' 'Y'代表删除'N'代表不删除 ) go --创建学生科目表 create table StuSubject( SubjectId int primary key, --科目ID SubjectName nvarchar(30) , --科目名称 ) go --创建学生成绩表 create table StuScore( StuId int foreign key (StuId) references Sutdent(StuId) on delete cascade, --学生ID 外键约束 同时支持级联删除 SubjectId int foreign key (SubjectId) references StuSubject(SubjectId) on delete cascade , --学生科目 外键约束 StuScore float, --学生成绩 primary key(StuId,SubjectId) --联合主键 ) go
2.约束相关操作(添加、删除)
--添加约束的另一种方式 注意:两种方式只能用一种 --添加主键约束 alter table StuScore add constraint PK_StuScore_StuId_SubjectId primary key (StuId) go --添加非空约束 alter table StuScore alter column StuScore float not null go --添加检查约束 alter table StuInfo add constraint CK_StuInfo_StuSex check(StuSex='男' or StuSex='女') go --添加唯一约束 alter table StuClass add constraint UQ_StuClass_ClassName unique(ClassName) go --添加默认值约束 alter table StuClass add constraint DF_StuClass_CreateDate default(getdate()) for CreateDate go --添加外键约束 alter table StuInfo add constraint FK_StuClass_StuInfo foreign key (ClassId) references StuClass(ClassId) on delete cascade go --删除单个约束 alter table StuScore drop FK_StuClass_StuInfo go --删除多个约束 alter table StuScore drop constraint FK_StuClass_StuInfo, PK_StuScore_StuId_SubjectId go
3.列相关操作
--添加列 alter table StuScore add CreateDate datetime default getdate(); go --删除列 --删除列名的时候 如果存在约束 要删除约束 alter table StuScore drop DF__StuScore__Create__403A8C7D alter table StuScore drop column CreateDate go --修改列字段类型 alter table StuScore alter column StuScore float go --修改表名 --注意:更改对象名的任何部分都可能破坏脚本和存储过程,谨慎操作 exec sp_rename 'Student','StuInfo' go --修改表中的列名 --注意:更改对象名的任何部分都可能破坏脚本和存储过程,谨慎操作 exec sp_rename 'StuInfo.CreateDate','CreateTime','column' go
4.删除表
--删除表 注意当有主从表时候 先删从表 如果设置了联级删除 那么都会删除 if exists(select count(*) from sys.objects where name='StuScore') drop table StuScore go
5.临时表相关操作
--删除临时表 if object_id('tempdb..#StuInfo') is not null drop table #StuInfo go --创建临时表 create table #StuInfo ( StuId int primary key identity(1,1), --学生ID 主键约束 自增长 StuName nvarchar(30) not null, --学生姓名 非空约束 StuSex nvarchar(2) check(stuSex='男' or stuSex='女'), --学生性别 只是女或者男 检查约束 CreateDate datetime default getdate(), --创建时间 默认当前时间 默认值约束 StuAge int, --学生年龄 无约束 IsDelete nvarchar(1) default 'N' --是否删除 默认'N' 'Y'代表删除'N'代表不删除 默认值约束 )
6.相关系统表
查询表、列、约束、索引信息
--查询表、列、约束、索引信息 sp_help StuInfo
查询字段信息
--查询字段信息 sp_columns StuInfo
注:个人微信公众号
个人QQ号
微信:17873041739
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?