实验六七 SQL的数据更新

2024-02-14 17:59

本文主要是介绍实验六七 SQL的数据更新,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实验六 SQL的数据更新

实验时间:2课时

实验性质:验证

实验主要内容及方法: SQL数据的插入、修改和删除

实验要求:

(1) 掌握SQL数据插入、修改和删除语句的一般格式。;

(2) 掌握SQL数据插入、修改和删除使用方法。

实验目的:熟练掌握SQL数据插入、修改和删除的使用。

实验设备:装有SQL SERVER 2005的电脑

实验步骤:

(1) 新建一个SQL查询窗口;

(2) 选择数据库;

(3) 验证如下例题:

一、插入数据

例3.52  在数据库SC中先创建一个关系(表)History_Student,其模式(结构)与Students完全一样。

CREATE TABLE History_Student(

Sno char(10) primary key,

Sname char(20) UNIQUE,

Ssex char(2),

Sage int,

Sdept char(20))

试将关系Students中的所有元组插入到关系History_Student中去,其SQL命令为:

INSERT
INTO History_Student
SELECT *
FROM Students;

 

 

二、修改数据

例3.53  将学号为“S03”的学生年龄改为22岁,即要修改满足条件的一个元组的属性值。

 

UPDATE Students
SET Sage=22
WHERE Sno='S03';

例3.54 将所有学生的年龄增加1岁。即要修改多个元组的值。

UPDATE Students
SET Sage=1+Sage;

例3.55  将数学系所有学生的成绩置零。

由于学生所在系的信息在Students表中,而学习成绩在Reports表中,因此,可以将SELECT子查询作为WHERE子句的条件表达式。故该更新要求的SQL命令为:

UPDATE Reports
SET Grade=0
WHERE '数学'=
(SELECT Sdept
FROM Students
WHERE Students.Sno=Reports.Sno);

 

 

三、删除数据

例3.56  分别删除学号为“S04”的学生记录及学生选课记录。(注意参照关系及被参照关系,即参照完整性


 

DELETE
FROM Reports
WHERE  Sno='S04';DELETE
FROM Students
WHERE  Sno='S04';

 

 

例3.57  删除数学系所有学生的选课记录。

 

DELETE
FROM Reports
WHERE '数学'=
(SELECT Sdept
FROM Students
WHERE Students.Sno=Reports.Sno);

 

例3.58  删除所有学生的选课记录。

DELETE
FROM Reports;

 

 

实验七 SQL的视图

实验时间:2课时

实验性质:验证

实验主要内容及方法:SQL视图建立、修改和删除

实验要求:

(1) 掌握SQL视图建立、修改和删除;

(2) 掌握SQL视图查询。

实验目的:熟练掌握SQL的应用。

实验设备:装有SQL Server 2005的电脑

实验步骤:

(1) 选择数据库SC;

(2) 新建查询;

(3) 验证如下例题:

一、定义视图

1 建立视图

例3.59 建立数学系学生的视图Math_Student,并要求进行修改和插入操作时仍需保证该视图只有数学系的学生,视图的属性名为Sno,Sname,Sage,Sdept。

CREATE VIEW Math_Student
AS
SELECT Sno, Sname, Sage, Sdept
FROM Students
WHERE Sdept='数学'
WITH CHECK OPTION

 

例3.60  建立学生的学号(Sno)、姓名(Sname)、选修课程名(Cname)及成绩(Grade)的视图Student_CR。

本视图由三个基本表的连接操作导出,其SQL语句如下:

CREATE VIEW Student_CR
AS
SELECT Students.Sno, Sname, Cname, Grade
FROM Students, Reports, Courses
WHERE Students.Sno=  Reports.Sno

 

 

例3.61  定义一个反映学生出生年份的视图Student_Birth。

CREATE VIEW Student_birth(Sno, Sname, Sbirth)
AS SELECT Sno, Sname, 1996-Sage
FROM Students

 

2 删除视图

DROP VIEW Student_Birth;

例3.62删除视图Student_Birth。

DROP VIEW Student_Birth;

二、查询视图

例3.63 在数学系的学生视图Math_Student中找出年龄(Sage)小于20岁的学生姓名(Sname)和年龄(Sage)。

 

SELECT Sname, Sage
FROM Math_Student
WHERE Sage<20;

说明:本例转换后的查询语句为:

SELECT Sname, Sage

FROM Students

WHERE Sdept=’数学’ AND Sage<20;

例3.64 在Student_CR视图中查询成绩在85分以上的学生学号(Sno)、姓名(Sname)和课程名称(Cname)。

SELECT Sno, Sname, Cname
FROM Student_CR
WHERE Grade>85;

 

 

三、更新视图

例3.65  将数学系学生视图Math_Student中学号为S05的学生姓名改为“黄海”。

UPDATE Math_Student
SET Sname='黄海'
WHERE Sno='S05';

说明:DBMS自动转换为对基本表的更新语句如下:

UPDATE Students

SET Sname='黄海'

WHERE Sno='S05' AND Sdept='数学';

例3.66  向数学系学生视图Math_Student中插入一个新的学生记录,其中学号为“S19”,姓名为“王海”,年龄为20岁。

INSERT
INTO Math_Student
VALUES ('S19', '王海', 20, '数学');

例3.67  删除数学系学生视图Math_Student中学号为“S09”的记录。

DELETE
FROM Math_Student
WHERE Sno='S09'

 

这篇关于实验六七 SQL的数据更新的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/709202

相关文章

Java注解之超越Javadoc的元数据利器详解

《Java注解之超越Javadoc的元数据利器详解》本文将深入探讨Java注解的定义、类型、内置注解、自定义注解、保留策略、实际应用场景及最佳实践,无论是初学者还是资深开发者,都能通过本文了解如何利用... 目录什么是注解?注解的类型内置注编程解自定义注解注解的保留策略实际用例最佳实践总结在 Java 编程

MySQL数据库约束深入详解

《MySQL数据库约束深入详解》:本文主要介绍MySQL数据库约束,在MySQL数据库中,约束是用来限制进入表中的数据类型的一种技术,通过使用约束,可以确保数据的准确性、完整性和可靠性,需要的朋友... 目录一、数据库约束的概念二、约束类型三、NOT NULL 非空约束四、DEFAULT 默认值约束五、UN

Pandas利用主表更新子表指定列小技巧

《Pandas利用主表更新子表指定列小技巧》本文主要介绍了Pandas利用主表更新子表指定列小技巧,通过创建主表和子表的DataFrame对象,并使用映射字典进行数据关联和更新,实现了从主表到子表的同... 目录一、前言二、基本案例1. 创建主表数据2. 创建映射字典3. 创建子表数据4. 更新子表的 zb

一文教你Python如何快速精准抓取网页数据

《一文教你Python如何快速精准抓取网页数据》这篇文章主要为大家详细介绍了如何利用Python实现快速精准抓取网页数据,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录1. 准备工作2. 基础爬虫实现3. 高级功能扩展3.1 抓取文章详情3.2 保存数据到文件4. 完整示例

MySQL 多表连接操作方法(INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN)

《MySQL多表连接操作方法(INNERJOIN、LEFTJOIN、RIGHTJOIN、FULLOUTERJOIN)》多表连接是一种将两个或多个表中的数据组合在一起的SQL操作,通过连接,... 目录一、 什么是多表连接?二、 mysql 支持的连接类型三、 多表连接的语法四、实战示例 数据准备五、连接的性

MySQL中的分组和多表连接详解

《MySQL中的分组和多表连接详解》:本文主要介绍MySQL中的分组和多表连接的相关操作,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录mysql中的分组和多表连接一、MySQL的分组(group javascriptby )二、多表连接(表连接会产生大量的数据垃圾)MySQL中的

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

SpringMVC 通过ajax 前后端数据交互的实现方法

《SpringMVC通过ajax前后端数据交互的实现方法》:本文主要介绍SpringMVC通过ajax前后端数据交互的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价... 在前端的开发过程中,经常在html页面通过AJAX进行前后端数据的交互,SpringMVC的controll