【MySQL】(基础篇四) —— 检索数据

检索数据

检索数据是我们使用数据库时进行最多的操作,其中包括了检索条件、排序、过滤、分组等等。我会在后续的多篇博客中为你进行详细地介绍它们。

这次先让我们来粗略的了解一下SELECT,为了使用SELECT检索表数据,必须至少明确两点信息——想选择什么,以及从什么地方选择。

为了方便后面的学习,我准备了一些数据库以及数据表信息,网盘链接:https://pan.baidu.com/s/1A2je66sLrpd7rbzuSK2LPQ?pwd=1023 提取码:1023

或者直接运行SQL命令,我希望你可以和我一起进行实操,让自己掌握mysql更加熟练,具体的SQL命令传送门:https://blog.csdn.net/dao_cao_renshuai/article/details/139565004

检索单个列

我们将从简单的SQL SELECT语句开始介绍,此语句如下所示:

【示例】在employees表中查找last_name字段

SELECT last_name
FROM employees;

运行结果查出表中所有last_name字段的信息

在这里插入图片描述

上述语句利用SELECT 语句从employees表中检索一个名为last_name的列。所需的列名在SELECT关键字之后给出,FROM关键字指出从其中检索数据的表名。如果你的输出结果顺序和我不同也没有关系,这涉及到sql的排序问题,我会在后面的内容中为你详细讲解。

多条SQL语句必须以分号( ; )分隔。MySQL如同多数DBMS一样,不需要在单条SQL语句后加分号。但特
定的DBMS可能必须在单条SQL语句后加上分号。当然,如果愿意可以总是加上分号。事实上,即使不一定需要,但加上分号肯定没有坏处。如果你使用的是mysql命令行,则必须加上分号来结束SQL语句。

在处理SQL语句时,其中所有空格(空格、制表符、换行)都被忽略。SQL语句可以在一行上给出,也可以分成许多行。多数SQL开发人员认为将SQL语句分成多行更容易阅读和调试。

检索多个列

要想从一个表中检索多个列,使用上述相同的SELECT语句。唯一的不同是必须在SELECT关键字后给出多个列名,列名之间必须以逗号分隔。

【示例】在employees表中查找last_name字段和first_name字段

SELECT last_name, first_name
FROM employees;

运行结果:

在这里插入图片描述

检索所有列

除了指定所需的列外(如上所述,一个或多个列),SELECT语句还可以检索所有的列而不必逐个列出它们。这可以通过在实际列名的位置使用星号(*)通配符来达到,如下所示:

【示例】查询employees表中的所有字段

SELECT *
FROM employees;

运行结果:

在这里插入图片描述

一般,除非你确实需要表中的每个列,否则最好别使用星号(*)通配符。虽然使用通配符可能会使你自己省事,不用明确列出所需列,但检索不需要的列通常会降低检索和应用程序的性能。

DISTINCT去重

SELECT返回所有匹配字段的行。但是,如果你不想要每个值每次都出现,怎么办?假如你想得出employees表中产品的所有工种job_id:

在这里插入图片描述

解决办法是使用DISTINCT关键字,顾名思义,此关键字指示MySQL只返回不同的值。

【示例】去重查询employees表中产品的所有job_id:

SELECT DISTINCT job_id
FROM employees;

运行结果:

在这里插入图片描述

DISTINCT关键字应用于所有列而不仅是前置它的列。如果给出SELECT DISTINCT vend_id,prod_price,除非指定的两个列的结果都不同,否则所有行都将被检索出来。

LIMIT限制结果条数

SELECT语句返回所有匹配的行,它们可能是指定表中的每个行。为了返回第一行或前几行,可使用LIMIT子句。

【示例】去重查询employees表中产品的所有job_id,且限制只查看前五个结果:

SELECT DISTINCT job_id
FROM employees
LIMIT 5;

运行结果:

在这里插入图片描述

【示例】去重查询employees表中产品的所有job_id,限制从第五个数据开始只查看五个结果:

SELECT DISTINCT job_id
FROM employees
LIMIT 5,5;

运行结果:

在这里插入图片描述

LIMIT 5, 5指示MySQL返回从行5开始的5行。第一个数为开始位置,第二个数为要检索的行数。

检索出来的第一行为行0而不是行1。因此,LIMIT 1, 1将检索出第二行而不是第一行。

LIMIT中指定要检索的行数为检索的最大行数。如果没有足够的行(例如,给出LIMIT 10, 5,但只有13行),MySQL将只返回它能返回的那么多行。

完全限定表名

迄今为止使用的SQL例子只通过列名引用列。也可能会使用完全限定的名字来引用列(同时使用表名和列字)。请看以下例子:

【示例】使用完全限定的列名(列名前面加上表名)来查询employees表中的last_name字段

SELECT employees.last_name
FROM employees;

这样做运行的结果和我们检索单个列中例子查询效果一样

【示例】使用完全限定的表名(表名前面加上数据库名)完成查询employees表中的last_name字段

SELECT last_name
FROM myemployees.employees;

这条语句在功能上也等于刚使用的那条语句,在有一些情形下需要完全限定名。现在,你只需要了解一下这个语法,遇到需要使用它的时候,我会为你详细解释。

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

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

相关文章

汇编:结构体

在32位汇编中,结构体(structures)用于组织和管理复杂的数据类型,结构体可以包含多个不同类型的数据项(成员);在MASM(Microsoft Macro Assembler)中,使用结构体…

Linux入门学习(2)

1.相关复习新的指令学习 (1)我们需要自己创建一个用户,这个用户前期可以是一个root用户,后期使用创建的普通用户 (2)文件等于文件内容加上文件属性,对于文件的操作就包括对于文件内容的操作和文件属性&…

Polar Web【困难】上传

Polar Web【困难】上传 Contents Polar Web【困难】上传探索&思路&效果进入环境绕过过程Webshell连接 EXPPayload 总结 探索&思路&效果 本题的主题可见为文件上传,详情在破解的过程中逐步发掘: 进入环境,为一个文件上传功界面…

html5实现个人网站源码

文章目录 1.设计来源1.1 网站首页页面1.2 个人工具页面1.3 个人日志页面1.4 个人相册页面1.5 给我留言页面 2.效果和源码2.1 动态效果2.2 目录结构 源码下载 作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/details/139564407 ht…

HCIP-Datacom-ARST自选题库_10_其他判断【23道题】

1.端到端时延等于路径上所有处理时延与队列时延之和。 2.部署PPP Multilink之后,数据将根据源地址和目的地址均匀的分配在各条成员链路上。 3.流镜像分为本地流镜像和远程流镜像两种方式。√ 4.IP报文中用Tos字段进行Q0S标记,Tos字段中是使用前6bit来…

【数据结构】排序(上)

个人主页~ 堆排序看这篇~ 还有这篇~ 排序 一、排序的概念及应用1、概念2、常见的排序算法 二、常见排序的实现1、直接插入排序(1)基本思想(2)代码实现(3)时间复杂度(4)空间复杂度 2…

基于小波样条框架的一维时间序列信号降噪方法(MATLAB R2018A)

1952年,DUFFIN在研究非调和Fourier级数时引入了Hilbert空间中框架的概念,然而并没有引起很大的反响。1986年,DAUBECHIES研究发现利用框架可以将L2(R)中的函数展开成类似标准正交基的级数,并且用框架研究函数时所需的条件要比用标准…

Vue 2看这篇就够了

Vue 2 技术文档 Vue.js 是一款用于构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。而 Vue.js 2(以下简称 Vue…

北航第五次数据结构与程序设计编程题复习

北航第五次数据结构与程序设计编程题复习 树叶节点遍历(树-基础题)计算器(表达式计算-表达式树实现)服务优化词频统计(树实现) 树叶节点遍历(树-基础题) 【问题描述】 从标准输入中…

React的useState的基础使用

import {useState} from react // 1.调用useState添加状态变量 // count 是新增的状态变量 // setCount 修改状态变量的方法 // 2.添加点击事件回调 // userState实现计数实例import {useState} from react// 使用组件 function App() {// 1.调用useState添加状态变量// coun…

Qt——升级系列(Level Four):控件概述、QWidget 核心属性、按钮类控件

目录 控件概述 QWidget 核心属性 核心属性概览 enabled geometry windowTitle windowIcon windowOpacity cursor font toolTip focusPolicy styleSheet 按钮类控件 Push Button Radio Buttion Check Box Tool Button 控件概述 Widget 是 Qt 中的核⼼概念. 英⽂原义是 "…

运维一个宝塔面板的php项目的艰辛历程【解决了http3,ssl,quic】

在这个项目的环境 使用了宝塔面板 有4个php:php5.6,php7.3,php7.4,php8.0 nignx为1.20版本 升级计划: 升级nginx1.26.0版本,添加上http3协议,添加ssl证书 遇到的问题: 升级nginx1.26版本后 无法打开php5.6的后台 原因&#xff…

PromptPort:为大模型定制的创意AI提示词工具库

PromptPort:为大模型定制的创意AI提示词工具库 随着人工智能技术的飞速发展,大模型在各行各业的应用越来越广泛。而在与大模型交互的过程中,如何提供精准、有效的提示词成为了关键。今天,就为大家介绍一款专为大模型定制的创意AI…

Llama模型家族之Stanford NLP ReFT源代码探索 (二)Intervention Layers层

LlaMA 3 系列博客 基于 LlaMA 3 LangGraph 在windows本地部署大模型 (一) 基于 LlaMA 3 LangGraph 在windows本地部署大模型 (二) 基于 LlaMA 3 LangGraph 在windows本地部署大模型 (三) 基于 LlaMA…

QT error: allocation of incomplete type ‘Ui::Server‘

目录 前言 报错内容: 过程解析: 原因分析: daisy.skye的博客 QT合集http://t.csdnimg.cn/wEVbu 前言 最近又开始需要做上位机了,要知道qt上位机对我来说已经3年没有接触了,最开始接触还是毕业时工作中的简单学习和…

数据结构 -- 树状数组

前言 树状数组或二叉索引树(Binary Indexed Tree),又以其发明者命名为 Fenwick 树。其初衷是解决数据压缩里的累积频率的计算问题,现多用于高效计算数列的前缀和、区间和。它可以以 O(logn) 的时间得到任意前缀和。并同时支持在 …

计算机毕业设计python+spark知识图谱音乐推荐系统 音乐数据分析可视化大屏 音乐爬虫 LSTM情感分析 大数据毕设 深度学习 机器学习

流程: 1.Python采集网易云音乐歌手、歌词、音乐、评论等约10-20万海量数据,存入mysql数据库; 2.使用pandasnumpy/MapReduce对mysql中四类数据进行数据清洗,写入.csv文件并上传至hdfs(含评论NLP文本分类/lsm情感分析); 3.使用hive建…

关于科技的总结与思考

文章目录 互联网时代有趣的数字数据驱动大数据的两个特性数据保护互联网免费模式的再探讨平台互联网的意义人工智能伦理的思考语言理性人梅特卡夫定律冲浪的神奇之处AR的恐怖之处叙词表、受控词表和大众分类法六度/十九度的解读知识图谱是真正的仿生智能幂次法则和优先连接现代…

MyBatis插件机制

MyBatis插件机制是该框架提供的一种灵活扩展方式,允许开发者在不修改框架源代码的情况下对MyBatis的功能进行定制和增强。这种机制主要通过拦截器(Interceptor)实现,使得开发者可以拦截和修改MyBatis在执行SQL语句过程中的行为。 …

【AI大模型】Transformers大模型库(五):AutoModel、Model Head及查看模型结构

目录​​​​​​​ 一、引言 二、自动模型类(AutoModel) 2.1 概述 2.2 Model Head(模型头) 2.3 代码示例 三、总结 一、引言 这里的Transformers指的是huggingface开发的大模型库,为huggingface上数以万计的预…