【SQL Server数据库】数据的增删改操作

news2024/11/15 17:30:07

目录

一、用SQL语句完成下列功能。

1、新开设一门课程,名叫网络安全与防火墙,学时40,编号为“0118”,主要介绍网络的安全与主要的防火墙软件。            

2、先建立monitor表,其结构与student表大致一样.包含student表的学号、姓名、性别和班级编号,然后把学生相应的个人资料插入到monitor表中。

3、更新所有职称为“助教”的教师职称为“助理教师”。

4、在所有经济系班级的名称前加上“经济系”三个字。

5、学号为“980101005”的学生的“数据结构”课程成绩改为80分。

6、删除studentgrade表中所有成绩不及格的记录。

7、删除studentgrade表中学号以“99”开头的学生选修课程的记录。

8、删除课程名为“C语言导论”的课程信息和所有这门课的选课信息。

二、小结

1.思考Alter与Update,Drop与Delete的区别

2.对数据进行插入、修改、删除时需要注意哪些问题?


一、用SQL语句完成下列功能。

1、新开设一门课程,名叫网络安全与防火墙,学时40,编号为0118,主要介绍网络的安全与主要的防火墙软件。            

insert into Course values 
('0118','网络安全与防火墙','40','网络的安全与主要的防火墙软件');

 

2、先建立monitor表,其结构与student表大致一样.包含student表的学号、姓名、性别和班级编号,然后把学生相应的个人资料插入到monitor表中。

-- 建表

create table Monitor(

    Stu_id varchar(10) not null ,

    Stu_name varchar(8) not null ,

    Stu_sex varchar(2) not null default '男',

    Class_id varchar(4) not null,

    CONSTRAINT pk_monitor primary key clustered (Stu_id),

    CONSTRAINT fk_class foreign key (Class_id) references Class(Class_id)

)

-- 插入数据

insert into Monitor

select s.Stu_id, s.Stu_name, s.Stu_Sex, s.Class_id

from Student s,

     Class c

where s.Stu_id = c.Monitor;


3、更新所有职称为助教的教师职称为助理教师

update Teacher

set TechPost = '助理教师'

where TechPost = '助教';

4、在所有经济系班级的名称前加上经济系三个字。

/*1. 直接更新无法完成,因为有触发器影响*/

/*以下语句查到了Class表存在触发器T_3*/

use school

go

exec sp_helptrigger "Class"



/*停用触发器*/

ALTER TABLE Class DISABLE TRIGGER T_3;

/*更新成功*/

update Class set Class_name = concat('经济系',Class_name)

where Depar_id = (select Depar_id from Deparment where Depar_name = '经济系');

/*2.用 SUBSTRING函数 去掉 Class_name 字段值的第一个字符,即索引从1开始*/

-- 从第二个字符开始截取长度为原始字符串长度减去1的子字符串。

update Class

set Class_name = substring(Class_name, 2, len(Class_name))

where Depar_id = (select Depar_id from Deparment where Depar_name = '经济系');

5、学号为980101005”的学生的数据结构课程成绩改为80分。

update StudentGrade

set Grade = 80

where Stu_id = '980101005'

  and Course_id = (select Course_id

                   from Course

                   where Course_name = '数据结构');

6、删除studentgrade表中所有成绩不及格的记录。

delete from StudentGrade 
    
    where Grade < 60;

7、删除studentgrade表中学号以99开头的学生选修课程的记录。

delete from StudentGrade 

    where Stu_id like '99%';

8、删除课程名为“C语言导论”的课程信息和所有这门课的选课信息。

(尽量不用级联删除,因级联需在创建表时定义。)

/*先删除选课记录,再删除课程教师表里对应的安排,最后删除课程*/

delete from StudentGrade where Course_id = (select Course_id from Course where Course_name = 'c语言');

delete from CourseTeacher where Course_id = (select Course_id from Course where Course_name = 'c语言');

delete from Course where Course_name = 'c语言';

二、小结

1.思考Alter与Update,Drop与Delete的区别

ALTER:用于修改数据库对象的结构或属性,例如修改表的列、添加索引或约束等。ALTER 语句通常用于更改数据库架构

UPDATE:用于修改表中的数据,可以将表中的一些行或列的值更改为新的值。UPDATE 语句用于更新已有的数据

DROP 和 DELETE 都可以用于删除数据或对象,但它们的作用范围不同。

DROP:通常用于删除数据库对象,例如表、视图、存储过程或函数等。

DELETE:用于删除表中的数据,可以删除表中的一些行或列。DELETE 语句用于删除已有的数据。

2.对数据进行插入、修改、删除时需要注意哪些问题?

数据完整性:确保插入、修改或删除的数据满足数据库表的约束和规则。例如,不违反主键、唯一性约束以及外键关系等。

数据备份和恢复:在进行重要的数据插入、修改和删除操作之前,应该先进行数据备份。这样可以在意外情况下恢复数据,避免数据丢失或损坏。

数据一致性维护:在进行数据修改和删除操作时,需要考虑与其他相关数据的一致性。例如,在删除某个表中的数据时,可能需要同时更新其他表中的相关数据,以确保数据的一致性。

错误处理和异常处理:在进行数据操作时,需要考虑可能出现的错误和异常情况,并进行适当的错误处理和异常处理。这包括处理数据冲突、数据重复、约束冲突等情况,以及记录错误日志或向用户提供适当的错误提示。

性能优化:对于大规模的数据插入、修改和删除操作,需要考虑性能优化的问题。可以通过批量操作、合理使用索引、优化查询语句等方式来提高操作的效率和响应速度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1861130.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

亚马逊运营专词(一)

许多新入驻亚马逊的大陆卖家&#xff0c;对亚马逊的专业词汇还不太了解&#xff0c;导致在运营店铺的过程出现一些问题&#xff0c;今天就来讲解一下亚马逊常用的运营专词&#xff0c;方便新手卖家深入了解。 1. Listing&#xff1a;亚马逊listing指的是产品的详情页面&#xf…

关于jd-gui启动报This program requires Java 1.8+的错误

问题&#xff1a; 在Mac使用上JD-GUI启动时&#xff0c;报了如下的错误&#xff1a; ERROR launching JD-GUINo suitable Java version found on your system! This program requires Java 1.8 Make sure you install the required Java version. 解决方法&#xff1a; 方法…

使用官方新工具手动升级 Quest 操作系统

Meta 近期推出了一款用于手动升级 Meta Quest 系统的工具&#xff0c;为用户提供了更多选择。本文将详细介绍如何使用这一工具进行系统升级。 优势与劣势 优势&#xff1a; 安装迅速&#xff1a;升级速度相比在线自动升级快&#xff0c;且可实时查看进度 即时升级&#xff1…

公关世界杂志社《公关世界》杂志社2024年第12期目录

公关动态 中国公共关系协会在法国巴黎举行黄河文化展 1-2 专题 以书法谈执法 高林; 3-4 乡村振兴与绿色发展 促进黑龙江省冰雪旅游产业高质量发展的支持政策研究 蔡德发;李可新; 5-7《公关世界》投稿&#xff1a;cnqikantg126.com 乡村振兴视域下青年社会责任感…

【快速入门】Transformer: Attention Is All You Need

Transformer → \to → 【知名应用】BERT (unsupervised trained Transformer) Transformer &#xff1a;seq2Seq model with self-attention, 后续会主要说明 self-attentionTransformer的组成&#xff1a; Self-attention是 Attention变体&#xff0c;擅长捕获数据/特征的内…

diffusion扩散模型参考论文与代码

十分钟读懂Diffusion&#xff1a;图解Diffusion扩散模型 - 知乎在之前的文章中&#xff0c;我们曾经介绍过Diffusion的具体原理&#xff0c;但是讲的还是比较偏理论&#xff0c;为了让大家快速了解Diffusion原理&#xff0c;这篇文章我们通过图解的方式。 绝密伏击&#xff1a;…

重点!业内分享:如何找到自己门店的生鲜经营定位

说到经营生鲜品类 许多商超人士或许都会面临这样一个困境 即品类繁多且复杂&#xff0c;那么如何做到精准施策&#xff1f; 比如说&#xff0c;蔬菜和水果虽都归为生鲜&#xff0c;然而细分起来&#xff0c;价格和消费群体均存在差异。像蔬菜&#xff0c;价格通常较低&#…

Redis集群-计算key的插槽值等命令

文章目录 1、集群方式登录主机63792、计算key应该保存在那个插槽3、计算某个插槽中保存的key的数量4、返回指定槽中的键5、查看redis的版本5.1、Redis集群的自动故障转移5.2、主节点下线&#xff0c;从节点自动升为主节点5.2.1、杀死主节点63795.2.2、登录从机6383&#xff0c;…

如何设计出比小米SU7 还酷炫的中控大屏?

最近&#xff0c;国内新能源汽车的热度是一波又一波&#xff0c;比亚迪大降价、小米SU7横空出世…… 智能驾舱&#xff0c;车载设计也受到越来越多人的关注。作为一名软件产品经理或设计师&#xff0c;你可能正在相关行业工作&#xff0c;或准备进入汽车领域。那你一定想了解车…

Android反编译之dex2jar和JD-GUI

文章目录 简述工具dex2jar目标dex文件操作 JD-GUI 简述 1.dex2jar是将dex文件转换为class文件的jar包&#xff1b; 2.JD-GUI是查看转化后的class对应的jar包&#xff1b; 工具 dex2jar 下载地址&#xff1a;https://github.com/pxb1988/dex2jar 点击红框中的Latest版本信息…

T-Reqs:一款基于语法的HTTP漏洞挖掘工具

关于T-Reqs T-Reqs全称为Two Requests&#xff0c;T-Reqs是一款基于语法的HTTP模糊测试漏洞挖掘工具&#xff0c;该工具可以通过发送版本为1.1或更早版本的变异HTTP请求来对目标HTTP服务器进行模糊测试以及漏洞挖掘。该工具主要通过下列三大步骤实现其功能&#xff1a;&#x…

kubernetes pod 最小可部署计算单元

1 工作负载&#xff08;workloads&#xff09; 工作负载&#xff08;workload&#xff09;是在kubernetes集群中运行的应用程序。无论你的工作负载是单一服务还是多个一同工作的服务构成&#xff0c;在kubernetes中都可以使用pod来运行它。 workloads分为pod与controllers p…

PointCloudLib 3D对象的可视化 C++版本

0.实现效果 显示箭头 vtkOutputWindow::SetGlobalWarningDisplay(0);pcl::visualization::PCLVisualizer::Ptr viewer(new pcl::visualization::PCLVisualizer("3D Viewer"));viewer->setBackgroundColor(1, 1, 1);//添加箭头显示pcl::PointXYZ pA(0, 0, 0);pcl:…

Java高级重点知识点-12-Collection、iterator迭代器、泛型

文章目录 Collection集合Iterator迭代器泛型&#xff08;难点&#xff09; Collection集合 集合是java中提供的一种容器&#xff0c;可以用来存储多个数据。 集合框架 单列集合java.util.Collection双列集合java.util.Map 集合类继承体系图&#xff1a; List集合的特点&am…

199.罗马数字转整数(力扣)

代码解决 class Solution { public:// 定义一个哈希表来存储罗马数字符号及其对应的整数值unordered_map<char, int> res {{I, 1},{V, 5},{X, 10},{L, 50},{C, 100},{D, 500},{M, 1000},};// 将罗马数字字符串转换为整数的函数int romanToInt(string s) {int num 0; …

iPhone怎么恢复删除的数据?几款顶级iPhone数据恢复软件

从iOS设备恢复数据。 对于任何数据恢复软件来说&#xff0c;从iOS设备恢复数据都是一项复杂的任务&#xff0c;因为Apple已将众多数据保护技术集成到现代iPhone和iPad中。其中包括硬件加密和文件级加密。iOS 上已删除的数据只能通过取证文件工件搜索来找到&#xff0c;例如分析…

在 ClickHouse 中使用 Rust 实现超过 2 倍速度提升的哈希

本文字数&#xff1a;2544&#xff1b;估计阅读时间&#xff1a;7 分钟 审校&#xff1a;庄晓东&#xff08;魏庄&#xff09; 本文在公众号【ClickHouseInc】首发 Meetup活动 ClickHouse 上海首届 Meetup 讲师招募中&#xff0c;欢迎讲师在文末扫码报名&#xff01; 介绍 目前…

Elasticsearch:使用 semantic_text 简化语义搜索

作者&#xff1a;来自 Elastic Carlos Delgado, Mike Pellegrini semantic_text - 你知道&#xff0c;用于语义搜索&#xff01; 你是否想开始使用语义搜索来搜索数据&#xff0c;但专注于模型和结果而不是技术细节&#xff1f;我们引入了 semantic_text 字段类型&#xff0c;…

Python-爬虫 下载天涯论坛帖子

为了爬取的高效性&#xff0c;实现的过程中我利用了python的threading模块&#xff0c;下面是threads.py模块&#xff0c;定义了下载解析页面的线程&#xff0c;下载图片的线程以及线程池 import threading import urllib2 import Queue import re thread_lock threading.RL…

上电相位确定性:使用多芯片同步

将多个数字信号处理 (DSP) 块、宽带数模转换器 (DAC) 和宽带模数转换器 (ADC) 集成到单个单片芯片中&#xff0c;现在可以卸载耗电的 FPGA 资源&#xff0c;以允许更小的占地面积、更低的功耗、增加通道数的平台&#xff0c;能够以比以前更高的速率进行采样。伴随这一新功能而来…