基于SqlServer基本表的插入、修改和删除

向表中已存在的列修改其类型

ALTER TABLE Students(表名)

ALTER(修改) column(列) Sage 后面跟类型

删除表中的某一列(如果该列存在约束需要先删除约束)

ALTER TABLE Students(表名)

DROP(删除) column(列) Sage

4.2 删除Students表(注:此条为DDL命令)。

注意:此处对比truncate table命令的使用,以及与后面delete命令的差别,写出相应代码。

说明:此表删除后,请立即将其建立起来,并恢复原有数据,以便后面的例子使用。如删除时出现问题,应分析问题原因,并找出解决办法。

用DDL就是用DROP TABLE 表名

此条语句是数据定义语言,会把表的结构删除

因为该表的主键是另外一个表Reports表的外键,所以需要先删除Reports表的外键Sno字段引用

在这里插入图片描述

先删除Reports的外键引用:

在这里插入图片描述

删除后:

在这里插入图片描述

删除外键引用后执行truncate table Students 与drop tableStudents 命令成功

数据操作语言DML:

truncate table Student

Delete from Student

Where 后面跟所要执行的条件

代码如下:

delete from Students

where Sname=‘罗兆’

truncate table Students

数据定义DDL:

代码如下:

drop table Students

truncate table和delete都只是删除表的数据,是DML语言都是数据操纵语言,

但是truncate table语句是一次性删除表中所有行,且被删除的数据不能找回,delete则为一条一条逐行删除,这个操作会放到rollback、segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发(例如级联删除,作业二中也有体现若有删除一个门,则教师表中相应的数据则一起删除),删除后的数据可以通过日志文件进行恢复

4.3 向表中添加元组

①将一个学生元组(S01,李大平,男,20,机械)添加到基本表Students中,观察执行结果。如不能成功,分析原因,并找出解决办法。

代码如下:

insert into Students values(‘S01’,‘李太平’,‘男’,20,‘机械’);

SELECT * FROM Students

在这里插入图片描述

②现有课程C08,名称为“大学物理”,学分为4,没有先行课,请向Courses表插入相应元组。

代码如下:

insert into Courses values(‘C08’,‘大学物理’,NULL,4)

SELECT * FROM Courses

在这里插入图片描述

③现有学号S04,课程号为C07,成绩未出,请将其添加到基本表Reports中。

在这里插入图片描述

4.4 数据修改

①将学号为S04且课程号为C07的成绩改为80分。

在这里插入图片描述

②所有男生年龄加一岁。

修改前:

在这里插入图片描述

修改后:

在这里插入图片描述

③将范林军的学号改成S01。如修改不成功,分析原因。

因为在Studens表中Sno为主键且,表中已经有Sno为S01的元祖所以必定不成功违反主键约束

4.5 数据删除

①在Students表中,将学号为S02的元组删除。如删除不成功,分析原因,并找出解决办法。

删除肯定不成功,因为Report表中主键引为Students中外键,要想删除成功S02,首先要确定Report中没有S02学生的记录

一、可以通过删除Students表中的外键约束,再进行删除

alter table Students

drop CONSTRAINT 外键约束名

再通过delete from Students --delete

where Sno=‘S02’

二、可以通过创建表结构是通过设置外键约束时候添加级联更新和级联删除

alter table Reports

add constraint F1_01 foreign key(Sno)references Students

on delete cascade

在这里插入图片描述

三、可以通过先把Reports表中所有S02数据删除后再进行删除Students表中的S02学生

在这里插入图片描述

再删除Students表中数据:

在这里插入图片描述

②将Reports表中低于80分的成绩记录删除。

在这里插入图片描述

附加拓展题:七台河市2010年公务员招考面试资格确认名单

在这里插入图片描述

考号 姓名 部门代码 部门名称 职位代码 职位名称 总分

102100816 刘宇光 40039 七台河市中级人民法院 01 计算机管理 122.5

102100906 陈纯悦 40040 七台河市检察院 01 计算机管理 122.5

102100701 钱旭 40039 七台河市中级人民法院 01 计算机管理 119.75

102100516 张新 40040 七台河市检察院 02 财会人员 115.75

102100810 高荣 40039 七台河市中级人民法院 02 财会人员 115.25

102100524 肖德庆 40039 七台河市中级人民法院 02 财会人员 110.5

102101122 米含玉 40040 七台河市检察院 03 聘任制书记员 112.75

102100528 姜海楠 40039 七台河市中级人民法院 03 聘任制书记员 110.25

102100727 周琦 40039 七台河市中级人民法院 03 聘任制书记员 105

1)请根据以上表格,参考教材79-80页的表,将表格拆分成关系表,并建表。

2)请用1)建立的表,使用表连接或嵌套查询,显示表格的全部信息。如果不能全部显示,查找原因。

3)

解:根据表中所给信息综上所述

每个人可以报选2个单位,每个单位可以报选3个工作岗位,共有6中可能,所以

关系模式应该为下图

在这里插入图片描述

只有当考生号和部门代码,职位代码、成绩共同出现时候才能唯一确定该生是否录取,且考生号和部门代码,职位代码,三个属性才能唯一确定该元祖,在成绩表中一同作为主键,和外键,
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。

下面的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)

在这里插入图片描述

最新整理电子书

在这里插入图片描述

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!
望可以帮助到大家。

下面的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)

[外链图片转存中…(img-b2e3Z9tK-1712420520058)]

最新整理电子书

[外链图片转存中…(img-wzr9tC9N-1712420520058)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

  • 19
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值