SQL语言自用(持续更新)(带例子)

目录

  • 基础知识
    • 数据定义
    • 数据查询
      • 单表查询
      • 连接查询
      • 嵌套查询
      • 集合运算
  • 实验例子
    • 数据定义
    • 数据查询
      • 单表查询
        • 查询的目标表达式为所有列、指定的列或指定的列的运算三种不同。
        • 使用DISTINCT保留字消除重复行。
        • 对查询结果排序和分组。
        • 集合分组使用集函数进行各项统计。
      • 连接查询
        • 笛卡儿连接和等值连接。
        • 自连接。
        • 外连接
        • 复合条件连接。
        • 多表连接。
      • 嵌套查询
        • 通过实验验证对子查询的两个限制条件。
        • 体会相关子查询和不相关子查询的不同。
        • 考察四类谓词的用法,包括:
      • 集合运算
        • 使用保留字UNION进行集合并运算。
        • 采用逻辑运算符AND或OR来实现集合交和减运算。

基础知识

数据定义

数据查询

单表查询

 查询的目标表达式为所有列、指定的列或指定的列的运算三种不同。
 使用DISTINCT保留字消除重复行。
 对查询结果排序和分组。
 集合分组使用集函数进行各项统计。

连接查询

 笛卡儿连接和等值连接。
 自连接。
 外连接
 复合条件连接。
 多表连接。

嵌套查询

 通过实验验证对子查询的两个限制条件。
 体会相关子查询和不相关子查询的不同。
 考察四类谓词的用法,包括:
第一类,IN、NOT IN;
第二类,带有比较运算符的子查询;
第三类,SOME、ANY或ALL谓词的子查询,查询最大值和最小值;
第四类,带有EXISTS谓词的子查询,实现“所有”等情况(如王宏的“所有”课程,“所有”女生选修的课程)

集合运算

 使用保留字UNION进行集合并运算。
 采用逻辑运算符AND或OR来实现集合交和减运算。

实验例子

数据定义

学校实验要求命名加上自己的名字,给库、表、视图、属性命名
之后的例子中名字首字母会时有时没有,大家自行理解一下。

表名表名属性
学生表Pansx_StudentsSno学号,Sname, Semail,Scredit学分,Ssex性别
教师表Pansx_TeachersTno工号,Tname,Temail,Tsalary薪水
课程表Pansx_CoursesCno,Cname,Ccredit课程学分
成绩表Pansx_ReportsSno,Tno,Cno,Score

其中:
psx_Sno、psx_Tno、psx_Cno分别是表Pansx_Students、表Pansx_Teachers、表Pansx_Courses的主键,具有唯一性约束;
psx_Scredit具有约束“大于等于0”;
Pansx_Reports中的psx_Sno,psx_Tno,psx_Cno是外键,它们共同组成Pansx_Reports的主键。

数据查询

先插入一些数据,方便进行查询
【Students】
Students
【Teachers】Teachers
【Courses】
Courses
【Reports】
Reports

单表查询

查询的目标表达式为所有列、指定的列或指定的列的运算三种不同。
2)	查询学生的选课成绩合格的课程成绩,并把成绩换算为积分。积分的计算公式为:[1+(考试成绩-60)*0.1]*Ccredit。考试成绩>=60 否则=03)	查询学分是34的课程的名称。
(4)	查询所有课程名称中含有“算法”的课程编号。

使用DISTINCT保留字消除重复行。
5)	查询所有选课记录的课程号(不重复显示)。
对查询结果排序和分组。
查询性别为“男”的所有学生的名称并按学号升序排列。
集合分组使用集函数进行各项统计。
6)	统计所有老师的平均工资。
(7)	查询所有教师的编号及选修其课程的学生的平均成绩,按平均成绩降序排列。
(8)	统计各个课程的选课人数和平均成绩。
(9)	查询至少选修了三门课程的学生编号和姓名。
(10)	查询编号S26的学生所选的全部课程的课程名和成绩。
(11)	查询所有选修了“数据库原理及应用”课程的学生编号和姓名。
(12)	求出选修了同一个课程的学生对
(13)	求出至少被两名学生选修的课程编号。
(14)	查询选修了编号S26的学生所选的某个课程的学生编号。
(15)	查询学生的基本信息及选修课程编号和成绩。
(16)	查询学号S52的学生的姓名和选修的课程名称及成绩。
(17)	查询和学号S52的学生同性别的所有学生资料。
(18)	查询所有选课的学生的详细信息。
(19)	查询没有学生选的课程的编号和名称。
(20)	查询选修了课程名为C++的学生学号和姓名。
(21)	找出选修课程UML或者课程C++的学生学号和姓名。
(22)	找出和课程UML或课程C++的学分一样课程名称。
(23)	查询所有选修编号C01的课程的学生的姓名。
(24)	查询选修了所有课程的学生姓名。
(25)	利用集合并运算,查询选修课程C++或选择课程JAVA的学生的编号、姓名和积分。
(26)	实现集合交运算,查询既选修课程C++又选修课程JAVA的学生的编号、姓名和积分。
(27)	实现集合减运算,查询选修课程C++而没有选修课程JAVA的学生的编号。


连接查询

笛卡儿连接和等值连接。
代码
自连接。
代码
外连接
代码
复合条件连接。
代码
多表连接。
代码

嵌套查询

通过实验验证对子查询的两个限制条件。
代码
体会相关子查询和不相关子查询的不同。
代码
考察四类谓词的用法,包括:
代码

第一类,IN、NOT IN;
第二类,带有比较运算符的子查询;
第三类,SOME、ANY或ALL谓词的子查询,查询最大值和最小值;
第四类,带有EXISTS谓词的子查询,实现“所有”等情况(如王宏的“所有”课程,“所有”女生选修的课程)

集合运算

使用保留字UNION进行集合并运算。
代码
采用逻辑运算符AND或OR来实现集合交和减运算。
代码

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【QT入门】 Qt自定义控件与样式设计之QComboBox样式表介绍

往期回顾 【QT入门】 Qt自定义控件与样式设计之QLineEdit的qss使用-CSDN博客 【QT入门】Qt自定义控件与样式设计之QPushButton常用qss-CSDN博客 【QT入门】 Qt自定义控件与样式设计之QPushButton实现鼠标悬浮按钮弹出对话框-CSDN博客 【QT入门】 Qt自定义控件与样式设计之QComb…

LabVIEW和2D激光扫描的受电弓滑板磨耗精确测量

LabVIEW和2D激光扫描的受电弓滑板磨耗精确测量 在电气化铁路运输中,受电弓滑板的健康状况对于保障列车安全行驶至关重要。受电弓滑板作为连接电网与列车的直接介质,其磨损情况直接影响到电能的有效传输及列车的稳定运行。精确、快速测量受电弓滑板磨损情…

天池医疗AI大赛[第一季] Rank5解决方案

一、赛题说明 数据格式 本次大赛数据集包含数千份高危患者的低剂量肺部CT影像(mhd格式)数据,每个影像包含一系列胸腔的多个轴向切片。每个影像包含的切片数量会随着扫描机器、扫描层厚和患者的不同而有差异。原始图像为三维图像。这个三维图…

力扣经典150题(1)

文章目录 6.Z字形变换82.删除排序链表中的重复元素||61.旋转链表100.相同的树 6.Z字形变换 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下&#xff1…

【讲解如何OpenCV入门】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

数据库之DQL操作(数据查询语言)

DQL英文全称是Data Query Language(数据查询语言),数据查询语言,用来查询数据库中表的记录。查询关键字: SELECT。 本节介绍以下表为例: create table emp(id int comment 编号,workno varchar(10) comment 工号,nam…

基于SpringBoot+MyBatis-Plus的代码生成器

一、功能说明 数据源管理:实现多个数据库的表代码生成表管理:从数据源导入表,配置表和字段默认配置:配置项目默认信息,配置字段数据类型映射操作日志 功能截图 二、代码实现 基于velocity-engine模板代码生成 pack…

工单管理系统设计方案,工单系统的流程

工单管理系统是一种用于管理和跟踪工作流程的软件系统。它可以帮助企业和组织更好地分配任务、优化工作流程、提高生产效率和客户满意度。下面是一个基本的工单管理系统设计方案:需求分析  在设计工单管理系统之前,需要进行需求分析,确定系…

三极管原理特性介绍,课堂上可不这么讲!

原文来自微信公众号:工程师看海,与我联系:chunhou0820 看海原创视频教程:《运放秘籍》 大家好,我是工程师看海,原创文章欢迎点赞分享! 今天介绍下三极管的特性,清晰易懂&#xff0c…

C语言进阶课程学习记录-第27课 - 数组的本质分析

C语言进阶课程学习记录-第27课 - 数组的本质分析 数组实验-数组元素个数的指定实验-数组地址与数组首元素地址实验-指针与数组地址的区别小结 本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程,图片全部来源于课程PPT,仅用于个人学习记录 数组 实验-数…

Ubuntu 22上安装Anaconda3。下载、安装、验证详细教程

在Ubuntu 22上安装Anaconda3,你可以遵循以下步骤: 更新系统存储库: 打开终端并运行以下命令来更新系统存储库: sudo apt update安装curl包: 下载Anaconda安装脚本通常需要使用curl工具。如果系统中没有安装curl&#x…

如何提升产品用户体验?4个工具+6张案例,让你快速吃透!

在数字时代的浪潮中,产品用户体验早已不再是简单的“好用”或“不好用”的评判标准,它不仅仅是功能的堆砌,更是情感的连接、智慧的体现。在这个竞争激烈的市场中,只有那些能够深入理解用户需求、精准把握用户心理的产品&#xff0…

HarmonyOS 开发-应用新功能引导实现案例

介绍 本文介绍如何使用high_light_guide三方库完成应用新版本功能导航。通过高亮区域与蒙版背景的明暗度对比,让用户快速锁定重点功能,了解版本变更和业务入口。 效果图预览 使用说明 点击页面上对应按钮或空白区域进入下一个提示,直至提示…

MiniApp SDK 是什么?

介绍 MiniApp SDK 是提供开发、部署、产品体验分析、上线全流程各种需求的解决方案。接入此 SDK,您就可以只关注于代码开发本身,剩余的所有事情都可以交由 SDK 及其依赖方解决。另外,能够有效降低多端开发的技术门槛和研发成本,提…

一篇文章学会进程替换

进程替换是什么 fork之后,父子进程各自执行父进程的代码的一部分,父子代码共享,数据写时拷贝各自一份。 但是,如果子进程不想执行父进程的代码,就想执行一个全新的代码呢? 这就需要用到 进程程序替换 所谓的…

MybatisPlus分页插件的使用

目录 &#x1f9c2;1.添加mybatisPlus依赖 &#x1f953;2.添加配置类 &#x1f32d;3.添加分页接口 &#x1f37f;4. 添加实现类 &#x1f95e;5.测试 1.添加mybatisPlus依赖 <!--mybatisPlus--><dependency><groupId>com.baomidou</groupId>&l…

linux中查看占用端口的进程方法

1、netstat -tlnp | grep 端口号 netstat -tlnp|grep 3306 其中&#xff1a;95115是进程号&#xff0c;mysqld是进程名称 2、ss -ltnp | grep 端口号 注意&#xff1a;-tlnp和-ltnp ss -ltnp|grep 3306其中&#xff1a;mysqld是进程名称&#xff0c;95115是进程id 3、lsof…

【Python 基础知识课程】Python的第一个程序

Python 简介 Python 是一种功能强大且用途广泛的编程语言&#xff0c;广泛用于数据科学、Web 开发、自动化等高需求领域。 幸运的是&#xff0c;对于初学者来说&#xff0c;它也是一种很好的学习语言&#xff0c;因为Python代码更容易阅读和编写。它的简单性使其成为初学者的完…

R语言绘图 | 散点小提琴图

原文链接&#xff1a;R语言绘图 | 散点小提琴图 本期教程 写在前面 本期的图形来自发表在Nature期刊中的文章&#xff0c;这样的基础图形在日常分析中使用频率较高。 获得本期教程数据及代码&#xff0c;后台回复关键词&#xff1a;20240405 绘图 设置路径 setwd("You…

我是如何从功能测试成功转岗测试开发的?记录下我的面试经验

由于这段时间我面试了很多家公司&#xff0c;也经历了之前公司的不愉快。所以我想写一篇文章来分享一下自己的面试体会。希望能对我在之后的工作或者面试中有一些帮助&#xff0c;也希望能帮助到正在找工作的你。 一 找工作 壹&#xff0f; 我们总是草率地进入一个自己不了解…