数据库SQL语言实战(三)

简介: 本篇文章重点在于SQL中的各种删除操作

删除操作

本篇文章重点在于SQL中的各种删除操作

题目一

删除表中的学号不全是数字的那些错误数据,学号应该是数字组成,不能够包含字母空格等非数字字符。方法之一:用substr函数,例如Substr(sid,1,1)返回学号的第一位,判断是否是数字。

delete from test3_01
where sid not in
  (select sid
  from test3_01
  where regexp_like(sid, '^[0-9]+$'))
关键点:

1、利用正则表达式来实现

2、^:表示字符串开始;$:表示字符串结束;[0,9]:表示10个数字;+:表示有一种或多种前面[]中的数
3、允许空白字符可以用'^[0-9\s]+$'

题目二

删除表中的出生日期和年龄(截止到2012年的年龄,即年龄=2012-出生年份)不一致的那些错误数据。

delete from test3_02
where age <> 2012 - extract(year from birthday)

关键点:

1、Extract函数是在Oracle数据库中用于从日期或时间间隔类型数据中提取特定部分,如年、月、日、小时、分钟等的一个函数

题目三

删除表中的性别有错误的那些错误数据(性别只能够是“男”、“女”或者空值)。

delete from test3_03
where sex <> '男' and sex <> '女' and sex is not null

关键点:

1、null的处理只能是 is null 或者 is not null

2、null在算术运算或逻辑运算中返回值都是null

题目四

删除表中的院系名称有空格的、院系名称为空值

delete 
from test3_07
where sid not in(
  select sid
  from pub.student
)

的或者院系名称小于3个字的那些错误数据。

delete from test3_04 
where dname like '% %' or
dname is null or
length(dname) < 3

关键点:

1、like '% %’ 来表示名称有空格

2、length()来计算属性值的长度

题目五

删除表中的班级不规范的那些错误数据,不规范是指和大多数不一致。

delete from test3_05
where class not in
(
    select class
  from test3_05
  where regexp_like(class, '^[0-9]+$')
)

题目六

删除其中的错误数据,错误指如下情况:课程号和教师编号在教师授课表pub.teacher_course中不同时存在的,即没有该教师教该课程;

方法一:

delete 
from test3_08 T
where not exists(
  select cid, tid
  from pub.teacher_course A
  where T.cid=A.cid and T.tid=A.tid
)

方法二、

delete 
from test3_08 
where (cid, tid) not in(
    select cid, tid
    from pub.teacher_course
)

关键点:

1、 (cid, tid)让cid和tid作为一个整体在关系中匹配,要求同时匹配而不是分开匹配

2、not exists在问题出现不存在时可以使用

题目七

删除其中的错误数据,错误指如下情况:成绩数据有错误(需要先找到成绩里面的错误)。

delete
from test3_09
where score not between 0 and 100

关键点:

1、between x and y语句的使用

题目八

删除其中的错误数据,错误指如下情况:学号在学生信息pub.student中不存在的;课程号在课程信息pub.course中不存在的;教师编号在教师信息pub.teacher中不存在的;课程号和教师编号在教师授课表pub.teacher_course中不存在的;成绩数据有错误(需要先找到成绩里面的错误)。

delete
from test3_10 S
where sid not in
  (select sid
  from pub.student)
or cid not in
  (select cid
  from pub.course)
or tid not in
  (select tid
  from pub.teacher)
or not exists
  (select cid, tid
  from pub.teacher_course T
  where S.cid = T.cid
  and S.tid = T.tid)
or score not between 0 and 100

关键点:

1、多个条件并列选其一即可用or实现

总结

本文的所有题目均来自《数据库系统概念》(黑宝书)、山东大学数据库实验三。不可用于商业用途转发。

如果能帮助到大家,大家可以点点赞、收收藏呀~

相关文章
|
19天前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
11天前
|
SQL 存储 关系型数据库
第二篇:关系型数据库的核心概念与 SQL 基础
本篇内容深入浅出地讲解了关系型数据库的核心概念与SQL基础,适合有一定计算机基础的学习者。文章涵盖数据库的基本操作(CRUD)、数据类型、表的创建与管理等内容,并通过实例解析SELECT、INSERT、UPDATE、DELETE等语句的用法。此外,还推荐了多种学习资源与实践建议,帮助读者巩固知识。学完后,你将掌握基础数据库操作,为后续高级学习铺平道路。
52 1
|
1月前
|
SQL 数据库 数据安全/隐私保护
数据库数据恢复——sql server数据库被加密的数据恢复案例
SQL server数据库数据故障: SQL server数据库被加密,无法使用。 数据库MDF、LDF、log日志文件名字被篡改。 数据库备份被加密,文件名字被篡改。
|
2月前
|
SQL 运维 监控
SQL查询太慢?实战讲解YashanDB SQL调优思路
本文是Meetup第十期“调优实战专场”的第二篇技术文章,上一篇《高效查询秘诀,解码YashanDB优化器分组查询优化手段》中,我们揭秘了YashanDB分组查询优化秘诀,本文将通过一个案例,助你快速上手YashanDB慢日志功能,精准定位“慢SQL”后进行优化。
|
1月前
|
SQL 关系型数据库 MySQL
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL 数据库 SQL 语句调优方法详解(2-1)
本文深入介绍 MySQL 数据库 SQL 语句调优方法。涵盖分析查询执行计划,如使用 EXPLAIN 命令及理解关键指标;优化查询语句结构,包括避免子查询、减少函数使用、合理用索引列及避免 “OR”。还介绍了索引类型知识,如 B 树索引、哈希索引等。结合与 MySQL 数据库课程设计相关文章,强调 SQL 语句调优重要性。为提升数据库性能提供实用方法,适合数据库管理员和开发人员。
|
1月前
|
关系型数据库 MySQL 大数据
大数据新视界--大数据大厂之MySQL 数据库课程设计:MySQL 数据库 SQL 语句调优的进阶策略与实际案例(2-2)
本文延续前篇,深入探讨 MySQL 数据库 SQL 语句调优进阶策略。包括优化索引使用,介绍多种索引类型及避免索引失效等;调整数据库参数,如缓冲池、连接数和日志参数;还有分区表、垂直拆分等其他优化方法。通过实际案例分析展示调优效果。回顾与数据库课程设计相关文章,强调全面认识 MySQL 数据库重要性。为读者提供综合调优指导,确保数据库高效运行。
|
2月前
|
SQL 数据库连接 Linux
数据库编程:在PHP环境下使用SQL Server的方法。
看看你吧,就像一个调皮的小丑鱼在一片广阔的数据库海洋中游弋,一路上吞下大小数据如同海中的珍珠。不管有多少难关,只要记住这个流程,剩下的就只是探索未知的乐趣,沉浸在这个充满挑战的数据库海洋中。
66 16
|
2月前
|
SQL 关系型数据库 MySQL
如何优化SQL查询以提高数据库性能?
这篇文章以生动的比喻介绍了优化SQL查询的重要性及方法。它首先将未优化的SQL查询比作在自助餐厅贪多嚼不烂的行为,强调了只获取必要数据的必要性。接着,文章详细讲解了四种优化策略:**精简选择**(避免使用`SELECT *`)、**专业筛选**(利用`WHERE`缩小范围)、**高效联接**(索引和限制数据量)以及**使用索引**(加速搜索)。此外,还探讨了如何避免N+1查询问题、使用分页限制结果、理解执行计划以及定期维护数据库健康。通过这些技巧,可以显著提升数据库性能,让查询更高效流畅。
|
27天前
|
SQL IDE 关系型数据库
JetBrains DataGrip 2025.1 发布 - 数据库和 SQL 跨平台 IDE
JetBrains DataGrip 2025.1 (macOS, Linux, Windows) - 数据库和 SQL 跨平台 IDE
96 0
|
2月前
|
存储 运维 监控
百万指标,秒级查询,零宕机——时序数据库 TDengine 在 AIOps 中的硬核实战
本篇文章详细讲述了七云团队在运维平台中如何利用 TDengine 解决海量时序数据存储与查询的实际业务需求。内容涵盖了从数据库选型、方案落地到业务挑战及解决办法的完整过程,特别是分享了升级 TDengine 3.x 时的实战经验,给到有需要的小伙伴参考阅读。
80 1

热门文章

最新文章