数据库语言实战(三)

删除操作

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

题目一

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

delete from test3_01
where sid not in(select sidfrom test3_01where 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 sidfrom 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 classfrom test3_05where regexp_like(class, '^[0-9]+$')
)

题目六

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

方法一:

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

方法二、 

delete 
from test3_08 
where (cid, tid) not in(select cid, tidfrom 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 sidfrom pub.student)
or cid not in(select cidfrom pub.course)
or tid not in(select tidfrom pub.teacher)
or not exists(select cid, tidfrom pub.teacher_course Twhere S.cid = T.cidand S.tid = T.tid)
or score not between 0 and 100

关键点:

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

总结 

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/311703.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java版数字藏品深色UI仿鲸探数藏盲盒合成短视频卡牌模式支持高并发

Java版数字藏品深色UI仿鲸探数藏盲盒合成短视频卡牌模式支持高并发&#xff0c;是一种结合了Java技术、深色用户界面&#xff08;UI&#xff09;设计、数字藏品概念、盲盒合成玩法以及短视频卡牌模式的综合性应用。该模式旨在为用户提供一种新颖、有趣的数字藏品体验&#xff0…

电脑怎么设置静态ip地址

在互联网连接中&#xff0c;IP地址扮演着至关重要的角色。它不仅是设备在网络世界中的唯一标识&#xff0c;还决定了设备如何与其他计算机通信。静态IP地址是一种固定不变的IP配置方式&#xff0c;与动态IP地址相比&#xff0c;它更加稳定&#xff0c;适用于需要长期、稳定网络…

Mysql的事务隔离级别以及事务的四大特性。

MySQL 的事务隔离级别是数据库管理系统中的一个重要概念&#xff0c;它决定了事务如何隔离和影响其他并发事务。MySQL 支持四种事务隔离级别&#xff0c;分别是&#xff1a;读未提交&#xff08;READ UNCOMMITTED&#xff09;、读已提交&#xff08;READ COMMITTED&#xff09;…

RK3568 学习笔记 : 更改 u-boot spl 中的 emmc 的启动次序

环境 开发板&#xff1a; 【正点原子】 的 RK3568 开发板 ATK-DLRK3568 u-boot 版本&#xff1a;来自 【正点原子】 的 RK3568 开发板 Linux SDK&#xff0c;单独复制出来一份&#xff0c;手动编译 编译环境&#xff1a;VMware 虚拟机 ubuntu 20.04 问题描述 RK3568 默认 …

啤酒厂要开发一个SCADA系统,我是这样考虑的

需求分析 在啤酒生产过程中&#xff0c;技术与自动化的应用对确保产品质量的稳定、提高生产效率以及保障生产安全起着至关重要的作用。因此&#xff0c;构建一套全面、高效的SCADA&#xff08;监督控制与数据采集&#xff09;系统总体规划框架对于啤酒厂来说具有重大意义。 SCA…

SSL证书添加与ICP备案,对于SpringBoot的要求

配置了SSL证书之后&#xff0c;在SpringBoot的resources文件夹里的application.properties会添加以下代码&#xff1a; server.port443 不需要添加server.address。不然会报错。 https类型的请求默认在Postman里面不可请求。 经过SSL证书处理的网页&#xff0c;链接中使默认…

jinja2常用基本语法

变量 {{变量名称}} 循环 {%for i in range(100)%}代码块{%endfor%} 条件判断 {%if true%}代码块1{%elif true%}代码块2{%else%}代码块3{%endif%} include导入其他模板 {%include "sub.tpl"%} 过滤器 {{vendor_list|filter()}} 继承母版 {%extends base.co…

Android JetPack Compose+Room----实现搜索记录功能

文章目录 需求概述功能展示实现搜索功能使用的技术1.Android Jetpack room2.Android JetPack Compose 代码实现编写搜索界面接入Room实现搜索功能的管理引入依赖定义包结构定义操作表的Dao类定义数据库的基础配置定义数据库的Dao管理类使用数据库升级 源码地址 需求概述 搜索功…

Java反序列化基础-类的动态加载

类加载器&双亲委派 什么是类加载器 类加载器是一个负责加载器类的对象&#xff0c;用于实现类加载的过程中的加载这一步。每个Java类都有一个引用指向加载它的ClassLoader。而数组类是由JVM直接生成的&#xff08;数组类没有对应的二进制字节流&#xff09; 类加载器有哪…

Java 类加载过程

Java 类加载过程 类的生命周期类的加载过程加载验证准备解析初始化 类的生命周期 类的生命周期&#xff1a; 加载&#xff08;Loading&#xff09;— 验证&#xff08;Verification&#xff09;— 准备&#xff08;Preparation&#xff09;— 解析&#xff08;Resolution&#…

CSS基础:width,height尺寸属性详解

你好&#xff0c;我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端的程序媛。云桃桃&#xff0c;大专生&#xff0c;一枚程序媛&#xff0c;感谢关注。回复 “前端基础题”&#xff0c;可免费获得前端基础 100 题汇总&#xff0c;回复 “前端工具”&#xff0c;可获取 Web…

【文件系统】 F2FS文件系统学习

一、基本介绍 1、F2FS History F2FS&#xff08;Flash Friendly File System&#xff09;是专门为Nand Flash设计的一个日志型文件系统&#xff0c;于2012年12月合入Linux3.8内核&#xff0c;Google也在2018年&#xff08;Android P&#xff09;将其吸收到安卓原生版本中&…

Composer是什么?

Composer是PHP的一个依赖管理工具&#xff0c;它允许开发者声明项目所依赖的代码库&#xff0c;并在项目中自动安装这些依赖。它使用composer.json文件来定义项目的依赖关系&#xff0c;并使用composer.lock文件来锁定依赖的版本&#xff0c;以确保项目的稳定性和可重复性。 Co…

【Git教程】(十)版本库之间的依赖 —— 项目与子模块之间的依赖、与子树之间的依赖 ~

Git教程 版本库之间的依赖 1️⃣ 与子模块之间的依赖2️⃣ 与子树之间的依赖&#x1f33e; 总结 在 Git 中&#xff0c;版本库是发行单位&#xff0c;代表的是一个版本&#xff0c;而分支或标签则只能被创建在版本库这个整体中。如果一个项目中包含了若干个子项目&#xff0c;…

雪亮工程视频联网综合管理/视频智能分析系统建设方案(一)

一、行业背景 雪亮工程主要是针对农村地区治安防控的监控项目&#xff0c;在乡村的主干道、路口、人群聚集地部署高清摄像头&#xff0c;通过三级综治中心和指挥平台&#xff0c;将视频图像信息系统纵向下延至县、乡、村&#xff0c;同时利用系统拓展在安防、社会治理、智慧交…

基于U-Net的图像分割算法介绍

U-Net是一种用于图像分割的深度学习架构,其设计初衷是用于生物医学图像分割,尤其是医学影像中的细胞分割任务。U-Net结构独特,具有编码器-解码器结构,能够有效地捕捉图像中的局部和全局信息,并在像素级别上进行精确的分割。 相关论文: U-Net: Convolutional Networks for…

记录一下我hive连不上DataGrip的问题

用户名和密码都没问题&#xff0c;但报如下这个错误 原因&#xff1a;是因为我在linux上没启hiveserver2服务 解决&#xff1a; [atguiguhadoop102 hadoop]$ hiveserver2 which: no hbase in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/module/jdk1.8…

Spring Boot 统一功能处理(二)

本篇主要介绍Spring Boot统一功能处理中的统一数据返回格式。 目录 一、定义统一的返回类 二、配置统一数据格式 三、测试配置效果 四、统一格式返回的优点 五、源码角度解析String问题 一、定义统一的返回类 在我们的接口在处理请求时&#xff0c;返回的结果可以说是参…

Linux-进程控制

目录 1.进程创建 2. 进程终止 2.1 进程退出的场景 2.2 进程常见退出方法 2.3 return返回终止 2.4 exit()和_exit() 3. 进程等待 3.1 进程等待的原因 3.2 wait​编辑 3.3 waitpid 3.4 status 4. 进程替换 4.1 替换原理 4.2 exec函数系列 1.进程创建 在linux中for…

【学习笔记】rt-thread

任务 创建好任务&#xff0c;不管是动态还是静态创建&#xff0c;任务的状态是init &#xff0c;通过start方法来启动任务&#xff1b;线程大小 设置小了&#xff0c;无法正常工作&#xff1f;显示占空间100% 启动过程 TODO 这是编译器特性&#xff1f; 因为RT-Thread使用编…