Day27、使用DQL命令查询数据

news/2024/4/29 8:25:21/文章来源:https://blog.csdn.net/qq_72629130/article/details/126896596

1、DQL语言

        1.1、DQL(Data Query Language,数据查询语言)

                1)查询数据库数据,如SELECT语句

                2)简单的单表查询或多表的复杂查询和嵌套查询

                3)数据库语言中最核心、最重要的语句

                4)使用频率最高的语句

            1.2、SELECT语法

SELECT   [ALL | DISTINCT] 
{  * |  table.* | [ table.field1 [ as  alias1] [, table.field2 [as  alias2]][, …]] }
FROM  table_name  [ as  table_ alias  ][ left|out|inner  join  table_name2 ]    #联合查询[ WHERE  … ]   	#指定结果需满足的条件[ GROUP BY …]	#指定结果按照哪几个字段来分组[ HAVING …]	#过滤分组的记录必须满足的次要条件[ ORDER BY… ]	#指定查询记录按一个或者多个条件排序[ LIMIT  {   [ offset,] row_count    |   row_count OFFSET offset   }] ;  
#指定查询的记录从哪条至哪条

                []   括号代表可选的;                                                                                      

                {}   括号代表必须的;

                #    MySQL语句中的注释符,也可以用   /*该处为注释*/ 

        1.3、指定查询字段

                1)查询表中所有的数据列结果,采用“*”符号

select   *   from student;

                2)可指定查询的结果数据列

                        如只查询student表中的学号、姓名、电话

SELECT     StudentNo, StudentName, Phone  FROM  student;

                3)如区分连接查询时两个表有同名的字段

SELECT student.StudentNo,StudentName,StudentResult FROM student ,result

 

        1.4、AS子句 

                1)AS子句作用

                        可给数据列取一个新别名

                        可给表取一个新别名

                        可把经计算或总结的结果用另外一个新名称来代替

                2)AS子句用法

SELECT   StudentNo   AS “学号”   FROM   student;
SELECT   a.StudentNo   FROM   student AS  a;
SELECT   Phone+1  AS  Tel    FROM   student;

                        AS 也可省略不写

        1.5、DISTINCT关键字的使用

                1)作用

                        去掉SELECT查询返回的记录结果中重复的记录(所有返回列的值都相同),只返回一条

                2)

SELECT     DISTINCT   字段名1, 字段名2...     FROM   表名

                        ALL 关键字是默认的,返回所有的记录,与之相反

#查询成绩表中的所包含的课程IDSELECT   DISTINCT  SubjectNo  FROM  result;

 

        1.6、使用表达式的列

                1)表达式一般由文本值、列值、NULL、函数和操作符等组成

                2)应用场景

                        SELECT语句返回结果列中使用

                        SELECT语句的ORDER  BY、HAVING等子句中使用

                        DML语句中的where条件语句中使用表达式

                3)在SQL语句中使用表达式

                        返回的列中使用,如

SELECT  version() ,   100*3        #返回MySQL版本和计算结果
SELECT  SubjectName “课程名称”, ClassHour+10  AS “新学时”  FROM subject;
#给返回结果中的课时都加10个课时

                        避免SQL返回结果中包含“ .”,“*”和括号等干扰开发语言程序,如

SELECT   version() as  MySQL_V , 123.44*100  AS  EXPRESSION;
#返回结果不会与后台开发程序发生混淆

 

        1.7、where条件语句

                1)用于检索数据表中符合条件的记录

                2)搜索条件可由一个或多个逻辑表达式组成,结果一般为真或假

                3)搜索条件的组成

                        逻辑操作符

                        比较操作符

        1.8、逻辑操作符

 

         1.9、比较操作符

                         1、数值数据类型的记录之间才能进行算术运算

                        2、相同数据类型的数据之间才能进行比较

        1.10、BETWEEN AND范围查询

                1)根据一个范围值来检索

SELECT  字段列1,字段2 ,…FROM 表名 WHERE   字段x  BETWEEN  值1 AND  值2

                2)等同于 >= 和 <= 联合使用

#查询课程表中课时在110和120之间的所有记录SELECT  *  FROM  subject  WHERE ClassHour   BETWEEN  110   AND  120;
等同于:SELECT  *  FROM  subject  WHERE ClassHour >= 110  AND  ClassHour <=120;

 

        1.11、LIKE模糊查询

                1)在WHERE子句中,使用LIKE关键字进行模糊查询

                        与“%”一起使用,表示匹配0或任意多个字符

                        与“_”一起使用,表示匹配单个字符

 #查询包含“数学”的所有课程
SELECT   *  FROM subject WHERE SubjectName  LIKE  "%数学%";
#查询所有姓名为“李**”三个字的学生信息
SELECT  StudentNo,StudentName FROM student  WHERE StudentName LIKE "李__";

 

        1.12、 使用IN进行范围查询

                1)在WHERE子句中使用IN进行范围查询

SELECT  字段列1,字段2 ,…FROM 表名 WHERE   字段x  IN  ( 值1,值2,值3…)  

                2)查询的字段x的值,至少与括号中的一个值相同

                3)多个值之间用英文逗号隔开

SELECT  *  FROM  subject  where    ClassHour = 100  OR ClassHour =110 OR ClassHour  = 120;  #普通处理方式
SELECT  *  FROM  subject  where ClassHour  IN ( 100, 110,120 );
#使用IN进行查询方式,更为简洁,效率更高

 

        1.13、 NULL空值条件查询

                1)NULL

                        NULL代表“无值”

                        区别于零值0和空符串“”

                        只能出现在定义允许为NULL的字段

                        须使用 IS NULL 或 IS NOT NULL 比较操作符去比较

2、连接查询

        2.1、连接查询

                1)如需要多张数据表的数据进行查询,则可通过连接运算符实现多个查询

                2)分类包括

                        a、内连接 ( inner  join)

                                等值和非等值的连接查询

                                自身连接查询

                        b、外连接 ( out   join )

                                左连接(LEFT   JOIN)

                                右连接  ( RIGHT  JOIN)

        2.2、内连接查询

                        1)INNER JOIN内连接

                        在表中至少一个匹配时,则返回记录

SELECT   字段1,字段2,…  FROM  table_1 
INNER  JOIN   table_2    ON  table_1.字段x   =  table_2.字段y;
#  INNER JOIN  与 JOIN 是相同的;
#  如table_1中的行在table_2中没有匹配,则不返回;
#要求:从subject和grade数据表查询课程名称和所属年级名称
SELECT SubjectName,GradeName FROM   subject   INNER   JOIN  grade   ON   subject.GradeID= grade.GradeID;  

                        2)等值和非等值的连接查询

                        与单表查询类似,都是SELECT语句

                        把多个表放到FROM后,并用逗号隔开

                        可使用AS关键字取别名,便于引用

                        如无重名查询字段则可省略数据表的指定

#要求:从subject和grade数据表查询课程名称和所属年级名称
#非等值连接查询
SELECT  SubjectName, GradeName  FROM  subject,  grade;  
#等值查询
SELECT  SubjectName, GradeName  FROM  subject,  grade 
WHERE  subject.GradeID = grade.GradeID; 

 

        2.3、外连接

                1)左外连接(LEFT JOIN)

                        从左表(table_1)中返回所有的记录,即便在右(table_2)中没有匹配的行

SELECT   字段1,字段2,… FROM table_1 
LEFT  [ OUTER ]   JOIN   table_2    ON  table_1.字段x   =  table_2.字段y;

                2)右外连接(RIGHT JOIN)

                        从右表(table_2)中返回所有的记录,即便在左(table_1)中没有匹配的行

SELECT   字段1,字段2,… FROM table_1 
RIGHT   [ OUTER ]   JOIN   table_2    ON  table_1.字段x   =  table_2.字段y;

 

        2.4、不同的SQL JOIN对比

 

        2.5、ORDER BY排序

                1)ORDER BY排序查询

                        对SELECT语句查询得到的结果,按某些字段进行排序

                        与DESC或ASC搭配使用,默认为ASC

        2.6、MySQL的LIMIT

                1)LIMIT [m,]n  或  LIMIT  n  OFFSET  m

                        限制SELECT返回结果的行数

                        m 制定第一个返回记录行的偏移量

                        n 制定返回记录行的最大数目

                2)m不指定则偏移量为0,从第一条开始返回前n条记录 LIMIT 常用于分页显示

        2.7、子查询

                1)在查询语句中的WHERE条件子句中,又嵌套了另外一个查询语句

                2)嵌套查询可由多个子查询组成,求解的方式是由里及外

                3)子查询返回的结果一般都是集合,故而建议使用 IN 关键字

3、MySQL函数

        3.1、MySQL的统计函数

 

         3.2、GROUP BY分组

                1)使用GROUP BY关键字对查询结果分组

                        对所有的数据进行分组统计

                        分组的依据字段可以有多个,并依次分组

                        与HAVING结合使用,进行分组后的数据筛选

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

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

相关文章

Linux小白学习

Linux学习 虚拟机 安装Linux镜像下载简单命令含义 一、虚拟机安装 参考视频&#xff1a;https://www.bilibili.com/video/BV1dS4y1e7rH?share_sourcecopy_web&vd_source0d57c2e2317ebb16893c37677d1b8931 二、Linux镜像下载 网盘下载地址&#xff1a; 链接&#xff1a;h…

如何设计一个可扩展的登录功能

本文主要分享了如何设计一个可扩展的登录功能。 一、多种登录方式&#xff08;需要有一个唯一值来绑定各种登录方式&#xff0c;目前业界用的比较多的是手机号&#xff09; 1.用户名密码登录 最原始的登录方式&#xff0c;这种登录方式与注册功能是分开的&#xff0c;业界慢慢…

网课查题公众号搭建教程(内附接口、源码)

网课查题公众号搭建教程(内附接口、源码) 本平台优点&#xff1a;免费查题接口搭建 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a;题库后台http://daili.j…

Windows11+Ubuntu 3系统如何安全地删掉最后一个Ubuntu系统?

文章目录Windows11Ubuntu 3系统如何安全地删掉最后一个Ubuntu系统&#xff1f;3系统是什么&#xff1f;第一步&#xff1a;删掉Ub16第二步&#xff1a;重启进入grub命令行第三步&#xff1a;从grub命令行中手动启动ubuntu20第四步&#xff1a;进入Windows11更新开机启动项grub配…

LeetCode 0304. 二维区域和检索 - 矩阵不可变

【LetMeFly】304.二维区域和检索 - 矩阵不可变 力扣题目链接&#xff1a;https://leetcode.cn/problems/range-sum-query-2d-immutable/ 给定一个二维矩阵 matrix&#xff0c;以下类型的多个请求&#xff1a; 计算其子矩形范围内元素的总和&#xff0c;该子矩阵的 左上角 为…

3、Android 活动Activity(4)(为活动补充附加信息)

在意图之外给活动添加额外的信息&#xff0c; 首先可以把字符串参数放到字符串资源文件中&#xff0c;待App运行之时再从资源文件读取字符串值&#xff1b; 接着还能在AndroidManifest.xml中给指定活动配置专门的元数据&#xff0c;App运行时即可获取对应活动的元数据信息&…

C#使用winform做一个开关小游戏

成品展示 游戏原理&#xff1a; 游戏时&#xff0c;任意点击一个格子&#xff0c;其自身状态改变&#xff0c;且上下左右四个格子的状态也进行变化&#xff0c;即&#xff1a;原来是开的变成关的&#xff0c;原来是关的变成开的。 制作过程 1.建项目会的吧。 2.设置游戏窗…

TCP重传,滑动窗口,流量控制,拥塞控制

重传机制 超时重传快速重传SACKD-SACK 超时重传 RTT 就是 数据从网络一端传送到另一端所需要的时间&#xff0c;也就是包的往返时间。 超时重传时间以 RTO 表示&#xff0c;应该略大于RTT。 如果超时重发的数据&#xff0c;再次超时时有需要重传&#xff0c;TCP的策略是超…

[需求管理-2]:什么是需求以及需求的收集与识别

目录 第1章 什么是需求识别 第2章 需求的来源 2.1 外部需求&#xff08;收集&#xff09; 2.2 内部需求&#xff08;开发&#xff09; 第3章 需求的层次 第4章 需求的形式 4.1 提问题&#xff08;针对业务层次需求、原始性需求&#xff09;&#xff1a;第一性原理 4.2 …

视觉SLAM十四讲_4李群与李代数

本文为b站视频的一个笔记 在SLAM中&#xff0c;我们经常要解下面一个问题 FminJ(T)Σi1N∣∣zi−Tpi∣∣2F minJ(T) \Sigma_{i1}^N||z_i - Tp_i||^2FminJ(T)Σi1N​∣∣zi​−Tpi​∣∣2 这个问题中, T是位姿变量。对于求最小值问题&#xff0c;我们第一步就要求函数对于变量…

Java小白踩坑录上

文章目录1、Java小白踩坑录 - String和char2、Java小白踩坑录 - Random 揭秘3、Java小白踩坑录 - B计划之Java资源如何释放&#xff1f;4、Java小白踩坑录 - 反射到底有多慢&#xff1f;5、Java小白踩坑录 - 数组 & List6、Java小白踩坑录 - Java类型的七十二变揭秘7、Java…

IDEA生成带参数和返回值注解

文章目录步骤说明打开IDEA进入 - 设置 - 编辑器 - 活动模板现象一&#xff1a;IDEA提示悬空的注解现象二&#xff1a;IDEA提示标签说明已丢失使用范围设置注解使用步骤说明 打开IDEA进入点击左上角 - 文件 - 设置 - 编辑器 - 活动模板 新建活动模板 填写模板文本 编辑变量 …

2.canal服务器配置及java客户端

【README】 1.本文总结自 B站《尚硅谷-canal》&#xff1b; 2.canal 介绍&#xff0c;可以参考 GitHub - alibaba/canal: 阿里巴巴 MySQL binlog 增量订阅&消费组件 3. canal服务器配置包括 mysql配置&#xff0c;canal配置等&#xff1b; 4.mysql服务器&#xff0c;ca…

完美且简要,如此输出风控中的重要数据指标曲线(如KS等)

先前&#xff0c;我们用excel给大家演示过一个KS的计算方式。 ks值是在模型中用于区分预测正负样本分隔程度的评价指标。每个样本的预测结果化对应的一个个分数&#xff0c;从最低分到最高分&#xff0c;输出为正负样本的累积分布。Ks值为这个两个正负样本中&#xff0c;最大差…

听吧音乐项目测试

听吧音乐项目 听吧音乐测试1.项目背景2.需求分析2.1 用户需求2.2 软件需求3. 测试点分析及测试用例4. 自动化测试代码4.1 注册登录注销模块自动化测试代码4.2 专辑播放自动化测试代码5. 测试报告1.项目背景 听吧音乐是一个在线听歌网站&#xff0c;游客通过首页可以在线收听其…

WinUI 3 踩坑记:第一个窗口

本文是 WinUI 3 踩坑记 的一部分,该系列发布于 GitHub@Scighost/WinUI3Keng,文中的代码也在此仓库中,若内容出现冲突以 GitHub 上的为准。WinUI 3 应用的入口和 UWP 类似,也是继承自 Application 的一个类,略有不同的是没有 UWP 那么多的启动方式可供重写,只有一个 OnLau…

python计算离散积分

前言 本文是傅立叶及其python应用系列的第一篇文章对应的仓库地址为https://github.com/yuanzhoulvpi2017/tiny_python/tree/main/Fourier_Series 介绍 本篇文章将要介绍一个非常小众的scipy函数&#xff1a;simpson. 这个函数的一大功能就是可以对离散数据积分。之所以要介…

P39 事件处理

P39 事件处理1.事件模型的流程2.事件监听器2.1 动作监听器&#xff08;ActionListener&#xff09;2.2 焦点监听器&#xff08;FocusListener&#xff09;2.3 鼠标监听器&#xff08;MouseListener&#xff09;2.4 鼠标移动/拖动监听器&#xff08;MouseMotionListener&#xf…

SpringAOP的概述与实现

目录 SpringAOP的概述 什么是AOP AOP能干什么 AOP的特点 AOP底层实现 AOP基本概念 连接点 切入点 通知 切面 目标对象 织入 引入 谈谈你对AOP的理解&#xff1f; SpringAOP的实现 依赖引用 spring.xml配置 注解实现 1.定义切面 设置通知 2.开启aop 3.测试 …

金仓数据库KingbaseES客户端编程开发框架-MyBatis(2. 概述 3. MyBatis配置说明)

2. 概述 MyBatis 是一款优秀的持久层框架&#xff0c;它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息&#xff0c; 将接口和 Java 的 POJOs(Plain Old Ja…