SQL 语言数据操纵语言 DML

一、目的
SQL 语言的数据操纵功能通过 DML(数据维护语言)实现。DML 包括数据查
询和数据更新两种数据操纵语句。其中,数据查询指对数据库中的数据查询、统
计、分组、排序等操作;数据更新指数据的插入、更新和删除等数据维护操
作。
本次实验了解 DML 语言的 INSERT、UPDATE、DELETE 等数据维护语言,
掌握在 Navicat for MySQL 中用 DML 语言的 INSERT、UPDATE、DELETE 对表
进行数据插入、更新和删除。
二、要求
1、实验前:预习实验内容,学习相关知识。
2、实验中:按照实验内容要求进行实验,实验时注意每种 SQL 语句的基本
命令及各个关键字的含义,做好实验记录。
3、实验后:分析实验结果,总结实验知识,得出结论,按格式写出实验报
告。
三、重点与难点
1、重点:
(1) 用 INSERT 语句向表中插入数据。
(2) 用 UPDATE 语句更新(修改)表中已有数据。
(3) 用 DELETE 语句删除表中数据。
2、难点:
INSERT 语句中,使用从子表插入数据的 FROM 子句。 UPDATE 语句和 DELETE 语句的 WHERE 子句。
四、过程
(一)实验预习
(1) 熟悉 SQL 中的 INSERT、UPDATE、DELETE 语句的格式及所用的关键字含
义及用法。
(2) 掌握 INSERT 语句的两种不同插入数据方式。
(3) 掌握 UPDATE 语句和 DELETE 的一般用法。
(二)实验原理
在 Navicat for MySQL 中使用 INSERT 语句向表中插入数据。使用 UPDATE
语句更新(修改)表中已有数据。使用 DELETE 语句删除表中数据。
(三)实验内容
1
. 启动Navicat for MySQL,用INSERT 语句对表进行单条数据插入操作,
语法格式如下:
Insert Into <表名> [(<属性列 1>[,<属性列 2>]„)] Values (<常量
1>[,<常量 2>]„);
其中,INSERT INTO 指明要插入的表以及表中的属性列(字段),VALUES
指明要插入相应属性列(字段)的值。
例如:
Insert into test (name,age,score,address) values (' 吴 思 远
',48,590.00,'重庆邮电大学计算机学院');
用 INSERT 语句对表进行批量数据插入操作,语法格式如下:
Insert Into <表名 1> [(<属性列 1>[,<属性列 2>]„)] Select [(<属
性列 1>[,<属性列 2>]„)] From <表名 2>; INSERT 语句的批量插入,把从其他表中查询出来数据插入到当前表中。
例如:
Insert
into
test
(name,age,score,address)
Select
name,age,score,address from test_temp;
2
. 在 Navicat for MySQL 中,用 UPDATE 语句对表中已有的数据进行修
改,语法格式如下:
Update <表名> Set <属性列>=<表达式>[,<属性列>=<表达式>][,„
n] [Where <条件>];
其中,表名指定要更新的表,SET 指定要更新的属性列(字段)及其相应
的值,WHERE 指定更新条件。
例如:
Update test set age = 37 where name='吴思远' and address='重庆
邮电大学计算机科学与技术学院';
3
. 在 Navicat for MySQL 中,用 DELETE 语句对表中已有的数据进行删
除,语法格式如下:Delete From <表名> [Where <条件>];
其中,FROM 指定要删除数据的表,WHERE 指定要删除数据的条件。
例如: Delete From test Where age>=35;
(四)注意事项
1、INSERT 语句中,无论是哪一种用法,都应该注意要插入的值与要插入的
字段相互对应。
2、UPDATE 语句中,如果没有指定更新条件 WHERE 子句,则对表中所有记录
进行更新。
3、DELETE 语句中,如果没有指定删除条件 WHERE 子句,则对表中所有记录
进行删除。使用 DELETE 语句删除表中数据时,并不能释放被占用的数据块
空间,将来还可以使用回退(Rollback)操作。
六、实验步骤:
执行以下内容:

  1. 启动 Navicat for MySQL,在 MySQL -- 新建连接中完成连接参数配置。
    2. 登录到本地数据库服务器后,连接到 test 数据库上。
  2. 首先用 Create Table 语句建立 test 表,test 表定义如下所示:
  3. 用 INSERT 语句对表 test,插入如下 7 条记录:
  4. 再用 Create Table 语句建立 test_temp 表,test_temp 表定义如下所示:
  5. 用 INSERT 语句对表 test_temp,插入如下 3 条记录:
  6. 用 INSERT INTO ... SELECT ... FROM 语句,将 test_temp 表中的数据,
    插入到 test 表中。
  7. 用 UPDATE 语句将 test 表中年龄小于等于 20 的数据,将成绩更新为原来
    的成绩加 5 分。
  8. 用 UPDATE 语句将 test 表中居住在 兴业苑 所有学生的年龄减少 1 岁。
  9. 用 DELETE 语句将 test 表中年龄大于等于 21 并且 成绩大于等于 500 的学
    生数据删除掉。
  10. 用 DELETE 语句将 test 表中成绩小于 550 并且居住在南福苑的学生数据
    删除掉。
相关推荐
Kapaseker44 分钟前
2026年,我们还该不该学编程?
android·kotlin
数据组小组14 小时前
免费数据库管理工具深度横评:NineData 社区版、Bytebase 社区版、Archery,2026 年开发者该选哪个?
数据库·测试·数据库管理工具·数据复制·迁移工具·ninedata社区版·naivicat平替
雨白17 小时前
Android 快捷方式实战指南:静态、动态与固定快捷方式详解
android
hqk17 小时前
鸿蒙项目实战:手把手带你实现 WanAndroid 布局与交互
android·前端·harmonyos
LING18 小时前
RN容器启动优化实践
android·react native
恋猫de小郭20 小时前
Flutter 发布官方 Skills ,Flutter 在 AI 领域再添一助力
android·前端·flutter
悟空聊架构20 小时前
基于KaiwuDB在游乐场“刷卡+投币”双模消费系统中的落地实践
数据库·后端·架构
IvorySQL20 小时前
PostgreSQL 技术日报 (3月4日)|硬核干货 + 内核暗流一网打尽
数据库·postgresql·开源
进击的丸子1 天前
虹软人脸服务器版SDK(Linux/ARM Pro)多线程调用及性能优化
linux·数据库·后端
Kapaseker1 天前
一杯美式搞懂 Any、Unit、Nothing
android·kotlin