数据库三种完整性约束_数据库定义外键约束的语句

数据库三种完整性约束_数据库定义外键约束的语句 1.创建表 –创建学生班级表 create table StuClass ( ClassId int primary key, –班级ID 主键约束 ClassName nvarchar…

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

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

代码100分

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

代码100分--添加约束的另一种方式 注意:两种方式只能用一种
--添加主键约束
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.删除表

代码100分--删除表  注意当有主从表时候 先删从表 如果设置了联级删除 那么都会删除
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号

 

技术图片

 

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

原文地址:https://www.cnblogs.com/vic-tory/p/13339572.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/7266.html

(0)
上一篇 2023-03-24 11:30
下一篇 2023-03-24

相关推荐

  • 数据库微课版课后答案_中国微课慕课网

    数据库微课版课后答案_中国微课慕课网https://v.youku.com/v_show/id_XNDQ2MDAzOTE2MA==.html 上一期我们通过基本拆分算法,展示基本配置是什么样的。现在来介绍下 dble 其他的一些功能。…

    2022-12-25
    100
  • excel 截取 字符串_excel 字符串比较

    excel 截取 字符串_excel 字符串比较怎么样可以从一串字符中的某个指定位置的前或后截取指定个数的字符.如:12345.6789,我要截取小数点前(或后)的3个字符.怎么样操作,另外,怎么样从右边截取字符,就是和left()函数相反的那个功能.=find(“.”,a2)返回在数字中字符(小数点)的位置。具体公式如下:字符(小数点)前三位=MID(A2,FIND(“.”,A2)-3,3)字符(小数点)后三个=MID(A2,FIND(“.”,A2)+1,3)字符(小数点)前面的所有数字=LEFT(A2,FIND(“

    2023-03-02
    114
  • sql中case用法_赋值表达式的条件

    sql中case用法_赋值表达式的条件本文介绍 SQL CASE 表达式,它是 SQL 中数一数二的重要功能,CASE 表达式的语法分为简单 CASE 表达式和搜索 CASE 表达式两种。 本文重点 CASE 表达式分为简单 CASE 表

    2023-05-22
    160
  • MySQL管理_MySQL数据结构

    MySQL管理_MySQL数据结构Mysql:MySQL数据管理 外键管理 外键概念 如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关

    2023-02-01
    110
  • linux版solr-6.5.1配置

    linux版solr-6.5.1配置基础准备 将tomcat和solr压缩包解压到solr文件夹下 配置tomcat的端口号(conf下的server.xml) 启动tomcat 测试tomcat是否可以正常使用 开始配置solr 把…

    2022-12-15
    106
  • 存储过程用法

    存储过程用法创建无参存储过程 1 create procedure proc_test01 2 as 3 begin 4 select * from myrptdetail 5 end 执行无参存储过程 exec

    2022-12-28
    111
  • 如何使用chmod 600来加强Python代码的安全性

    如何使用chmod 600来加强Python代码的安全性在讲解如何使用chmod 600来加强Python代码的安全性之前,需要先介绍一下chmod 600是什么意思。chmod是Linux下的一个命令,用于修改文件或目录的权限。其中,数字600表示为只有文件所有者可以读写该文件,而其他用户没有任何权限。

    2024-03-08
    35
  • Postgresql 安装失败:Problem running post-install step. Installation may not complete correctly.[通俗易懂]

    Postgresql 安装失败:Problem running post-install step. Installation may not complete correctly.[通俗易懂]1 进入pgsql目录下。执行 .ininitdb -D .data -E UTF8 其中 .data是你定义的数据库的路径。这个可以和pgsql的安装路径不同。 这一步会在数据库路径中加入很多默…

    2022-12-16
    107

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注