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 并且居住在南福苑的学生数据
    删除掉。
相关推荐
Hello.Reader1 小时前
RedisJSON 路径语法深度解析与实战
数据库·redis·缓存
梦否2 小时前
Android 代码热度统计(概述)
android
TDengine (老段)2 小时前
TDengine 使用最佳实践(2)
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
设计师小聂!5 小时前
Linux系统中部署Redis详解
linux·运维·数据库·redis
kfepiza5 小时前
Debian-10编译安装Mysql-5.7.44 笔记250706
linux·数据库·笔记·mysql·debian·bash
Touper.5 小时前
Redis 基础详细介绍(Redis简单介绍,命令行客户端,Redis 命令,Java客户端)
java·数据库·redis
不剪发的Tony老师5 小时前
phpMyAdmin:一款经典的MySQL在线管理工具又回来了
数据库·mysql·phpmyadmin
极限实验室5 小时前
TDBC 2025 可信数据库发展大会,极限科技邀您来赴约!
数据库
xchenhao5 小时前
基于 Flutter 的开源文本 TTS 朗读器(支持 Windows/macOS/Android)
android·windows·flutter·macos·openai·tts·朗读器
coder_pig6 小时前
跟🤡杰哥一起学Flutter (三十五、玩转Flutter滑动机制📱)
android·flutter·harmonyos