实验六七 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

相关文章

MySQL 中的 CAST 函数详解及常见用法

《MySQL中的CAST函数详解及常见用法》CAST函数是MySQL中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型,本文给大家介绍MySQL中的CAST... 目录mysql 中的 CAST 函数详解一、基本语法二、支持的数据类型三、常见用法示例1. 字符串转数字2. 数字

Mysql实现范围分区表(新增、删除、重组、查看)

《Mysql实现范围分区表(新增、删除、重组、查看)》MySQL分区表的四种类型(范围、哈希、列表、键值),主要介绍了范围分区的创建、查询、添加、删除及重组织操作,具有一定的参考价值,感兴趣的可以了解... 目录一、mysql分区表分类二、范围分区(Range Partitioning1、新建分区表:2、分

MySQL 定时新增分区的实现示例

《MySQL定时新增分区的实现示例》本文主要介绍了通过存储过程和定时任务实现MySQL分区的自动创建,解决大数据量下手动维护的繁琐问题,具有一定的参考价值,感兴趣的可以了解一下... mysql创建好分区之后,有时候会需要自动创建分区。比如,一些表数据量非常大,有些数据是热点数据,按照日期分区MululbU

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语

MySQL中查找重复值的实现

《MySQL中查找重复值的实现》查找重复值是一项常见需求,比如在数据清理、数据分析、数据质量检查等场景下,我们常常需要找出表中某列或多列的重复值,具有一定的参考价值,感兴趣的可以了解一下... 目录技术背景实现步骤方法一:使用GROUP BY和HAVING子句方法二:仅返回重复值方法三:返回完整记录方法四:

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优

mysql表操作与查询功能详解

《mysql表操作与查询功能详解》本文系统讲解MySQL表操作与查询,涵盖创建、修改、复制表语法,基本查询结构及WHERE、GROUPBY等子句,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随... 目录01.表的操作1.1表操作概览1.2创建表1.3修改表1.4复制表02.基本查询操作2.1 SE

MySQL中的锁机制详解之全局锁,表级锁,行级锁

《MySQL中的锁机制详解之全局锁,表级锁,行级锁》MySQL锁机制通过全局、表级、行级锁控制并发,保障数据一致性与隔离性,全局锁适用于全库备份,表级锁适合读多写少场景,行级锁(InnoDB)实现高并... 目录一、锁机制基础:从并发问题到锁分类1.1 并发访问的三大问题1.2 锁的核心作用1.3 锁粒度分