当前位置: 首页 > news >正文

玩转Mysql系列 - 第6篇:select查询基础篇

这是Mysql系列第6篇。

环境:mysql5.7.25,cmd命令中进行演示。

DQL(Data QueryLanguage):数据查询语言,通俗点讲就是从数据库获取数据的,按照DQL的语法给数据库发送一条指令,数据库将按需求返回数据。

DQL分多篇来说,本文属于第1篇。

基本语法

select 查询的列 from 表名;

注意:

select语句中不区分大小写,SELECT和select、FROM和from效果一样。

查询的结果放在一个表格中,表格的第1行称为列头,第2行开始是数据,类属于一个二维数组。

查询常量

select 常量值1,常量值2,常量值3;

如:

mysql> select 1,'b';
+---+---+
| 1 | b |
+---+---+
| 1 | b |
+---+---+
1 row in set (0.00 sec)

查询表达式

select 表达式;

如:

mysql> select 1+2,3*10,10/3;
+-----+------+--------+
| 1+2 | 3*10 | 10/3   |
+-----+------+--------+
|   3 |   30 | 3.3333 |
+-----+------+--------+
1 row in set (0.00 sec)

查询函数

select 函数;

如:

mysql> select mod(10,4),isnull(null),ifnull(null,'第一个参数为空返回这个值'),ifnull(1,'第一个参数为空返回这个值,否知返回第一个参数');
+-----------+--------------+-----------------------------------------------------+--------------------------------------------------------------------------------+
| mod(10,4) | isnull(null) | ifnull(null,'第一个参数为空返回这个值')             | ifnull(1,'第一个参数为空返回这个值,否知返回第一个参数')                       |
+-----------+--------------+-----------------------------------------------------+--------------------------------------------------------------------------------+
|         2 |            1 | 第一个参数为空返回这个值                            | 1                                                                              |
+-----------+--------------+-----------------------------------------------------+--------------------------------------------------------------------------------+
1 row in set (0.00 sec)

说明一下:

mod函数,对两个参数取模运算。

isnull函数,判断参数是否为空,若为空返回1,否则返回0。

ifnull函数,2个参数,判断第一个参数是否为空,如果为空返回第一个参数的值,否则返回第一个参数的值。

查询指定的字段

select 字段1,字段2,字段3 from 表名;

如:

mysql> drop table if exists test1;
Query OK, 0 rows affected (0.01 sec)mysql> create table test1(a int not null comment '字段a',b varchar(10) not null default '' comment '字段b');
Query OK, 0 rows affected (0.01 sec)mysql> insert into test1 values(1,'a'),(2,'b'),(3,'c');
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0mysql> select a,b from test1;
+---+---+
| a | b |
+---+---+
| 1 | a |
| 2 | b |
| 3 | c |
+---+---+
3 rows in set (0.00 sec)

说明:

test1表有两个字段a、b,select a,b from test1;用于查询test1中两个字段的数据。

查询所有列

select * from 表名

说明:

*表示返回表中所有字段。

如:

mysql> select * from test1;
+---+---+
| a | b |
+---+---+
| 1 | a |
| 2 | b |
| 3 | c |
+---+---+
3 rows in set (0.00 sec)

列别名

在创建数据表时,一般都会使用英文单词或英文单词缩写来设置字段名,在查询时列名都会以英文的形式显示,这样会给用户查看数据带来不便,这种情况可以使用别名来代替英文列名,增强阅读性。

语法:

select 列 [as] 别名 from 表;

使用双引号创建别名:

mysql> select a "列1",b "列2" from test1;
+------+------+
| 列1  | 列2  |
+------+------+
|    1 | a    |
|    2 | b    |
|    3 | c    |
+------+------+
3 rows in set (0.00 sec)

使用单引号创建别名:

mysql> select a '列1',b '列2' from test1;;
+------+------+
| 列1  | 列2  |
+------+------+
|    1 | a    |
|    2 | b    |
|    3 | c    |
+------+------+
3 rows in set (0.00 sec)

不用引号创建别名:

mysql> select a 列1,b 列2 from test1;
+------+------+
| 列1  | 列2  |
+------+------+
|    1 | a    |
|    2 | b    |
|    3 | c    |
+------+------+
3 rows in set (0.00 sec)

使用as创建别名:

mysql> select a as 列1,b as 列 2 from test1;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2 from test1' at line 1
mysql> select a as 列1,b as '列 2' from test1;
+------+-------+
| 列1  | 列 2  |
+------+-------+
|    1 | a     |
|    2 | b     |
|    3 | c     |
+------+-------+
3 rows in set (0.00 sec)

别名中有特殊符号的,比如空格,此时别名必须用引号引起来。

懵逼示例,看效果:

mysql> select 'a' 'b';
+----+
| a  |
+----+
| ab |
+----+
1 row in set (0.00 sec)mysql> select 'a' b;
+---+
| b |
+---+
| a |
+---+
1 row in set (0.00 sec)mysql> select 'a' "b";
+----+
| a  |
+----+
| ab |
+----+
1 row in set (0.00 sec)mysql> select 'a' as "b";
+---+
| b |
+---+
| a |
+---+
1 row in set (0.00 sec)

认真看一下第1个和第3个返回的结果(列头和数据),是不是懵逼状态,建议这种的最好使用as,as后面跟上别名。

表别名

select 别名.字段,别名.* from 表名 [as] 别名;

如:

mysql> select t.a,t.b from test1 as t;
+---+---+
| a | b |
+---+---+
| 1 | a |
| 2 | b |
| 3 | c |
+---+---+
3 rows in set (0.00 sec)mysql> select t.a as '列 1',t.b as 列2 from test1 as t;
+-------+------+
| 列 1  | 列2  |
+-------+------+
|     1 | a    |
|     2 | b    |
|     3 | c    |
+-------+------+
3 rows in set (0.00 sec)mysql> select t.* from test1 as t;                   
+---+---+
| a | b |
+---+---+
| 1 | a |
| 2 | b |
| 3 | c |
+---+---+
3 rows in set (0.00 sec)mysql> select * from test1 as t;
+---+---+
| a | b |
+---+---+
| 1 | a |
| 2 | b |
| 3 | c |
+---+---+
3 rows in set (0.00 sec)

总结

  • 建议别名前面跟上as关键字

  • 查询数据的时候,避免使用select *,建议需要什么字段写什么字段

相关文章:

玩转Mysql系列 - 第6篇:select查询基础篇

这是Mysql系列第6篇。 环境:mysql5.7.25,cmd命令中进行演示。 DQL(Data QueryLanguage):数据查询语言,通俗点讲就是从数据库获取数据的,按照DQL的语法给数据库发送一条指令,数据库将按需求返回数据。 DQ…...

【SpringCloud技术专题】「Gateway网关系列」(1)微服务网关服务的Gateway组件的原理介绍分析

为什么要有服务网关? 我们都知道在微服务架构中,系统会被拆分为很多个微服务。那么作为客户端要如何去调用这么多的微服务呢?难道要一个个的去调用吗?很显然这是不太实际的,我们需要有一个统一的接口与这些微服务打交道&#xf…...

【面试刷题】————STL中的vector是如何实现的?

STL(Standard Template Library)是C标准库中的一部分,它提供了许多常用的数据结构和算法,其中包括了动态数组 vector。 vector std::vector 是一个动态数组,它能够自动调整自己的大小,以适应存储元素的需…...

使用钉钉的扫码会出现多个回调(DTFrameLogin)

官方:地址 标题 出现的问题解决后效果正常使用(按照官网的流程进行使用)自己的理解(路人可忽略该内容!) 出现的问题 1692861955468 解决后效果 1692861665687 正常使用(按照官网的流程进行使用) fn.js 该文件就是钉钉官网的js文件,我下载到了…...

Android | 关于 OOM 的那些事儿

作者:345丶 前言 Android 系统对每个app都会有一个最大的内存限制,如果超出这个限制,就会抛出 OOM,也就是Out Of Memory 。本质上是抛出的一个异常,一般是在内存超出限制之后抛出的。最为常见的 OOM 就是内存泄露(大量…...

珠玑妙算游戏

珠玑妙算游戏,OJ练习 一、描述二、方法一三、方法二 一、描述 珠玑妙算游戏(the game of master mind)的玩法如下: 计算机有4个槽,每个槽放一个球,颜色可能是红色(R)、黄色&#xf…...

【rust语言】rust多态实现方式

文章目录 前言一、多态二、rust实现多态trait的静态方式还有一种方式可以通过动态分发,还以上面那段代码,比如dyn关键字 泛型方式枚举方式优点:缺点: 总结 前言 学习rust当中遇到了这个问题,记录一下,不对…...

两年半机场,告诉我如何飞翔

为说明如何坐飞机离港,故此记录一篇。何为离港,顾名思义,离开港湾,那何为港湾,便是机场。 机场,一个你可能经常去,亦或不曾去之地。我想,管你去没去过,先说下怎么去&…...

【动手学深度学习】--21.锚框

锚框 学习视频:锚框【动手学深度学习v2】 官方笔记:锚框 1.锚框 目标检测算法通常会在输入图像中采样大量的区域,然后判断这些区域中是否包含我们感兴趣的目标,并调整区域边界从而更准确地预测目标的真实边界框(gro…...

C语言学习笔记(完整版)

文章目录 算法算法的基本概念算法的特征算法的优劣 描述算法三种基本结构流程图N-S流程图伪代码 常量和变量了解数据类型常量整形常量实型常量字符型常量转义字符符号常量 变量整形变量实型变量字符型变量 表达式与运算符赋值运算符和赋值表达式变量赋初值强制类型转换 算术运算…...

【Unity3D赛车游戏】【四】在Unity中添加阿克曼转向,下压力,质心会让汽车更稳定

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…...

Python爬虫requests判断请求超时并重新post/get发送请求

在使用Python爬虫中&#xff0c;你可以使用requestsimport requests #Python爬虫requests判断请求超时并重新post发送请求&#xff0c;proxies为代理 def send_request_post(url, data, headers , proxies , max_retries3, timeout5):retries 0while retries < max_retries…...

CSS中如何实现多列布局?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 多列布局&#xff08;Multi-column Layout&#xff09;⭐ column-count⭐ column-width⭐ column-gap⭐ column-rule⭐ column-span⭐ 示例⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧…...

【C++】string简单实用详解

本片要分享的内容是有关于string的知识&#xff0c;在这之前得介绍一下什么是STL&#xff1b; 目录 1.STL简单介绍 2. string简单介绍 3.string简单使用 3.1.string的定义 3.2.字符串的拼接 3.3.string的遍历 3.3.1.循环遍历 3.3.2.迭代器遍历 4.string的函数构造 1.…...

opencv 进阶16-基于FAST特征和BRIEF描述符的ORB(图像匹配)

在计算机视觉领域&#xff0c;从图像中提取和匹配特征的能力对于对象识别、图像拼接和相机定位等任务至关重要。实现这一目标的一种流行方法是 ORB&#xff08;Oriented FAST and Rotated Brief&#xff09;特征检测器和描述符。ORB 由 Ethan Rublee 等人开发&#xff0c;结合了…...

Unity 类Scene窗口相机控制

类Scene窗口相机控制 &#x1f354;效果 &#x1f354;效果 传送门&#x1f448;...

juc基础(三)

目录 一、读写锁 1、读写锁介绍 2、ReentrantReadWriteLock 3、例子 4、小结 二、阻塞队列 1、BlockingQueue 简介 2、BlockingQueue 核心方法 3、案例 4、常见的 BlockingQueue &#xff08;1&#xff09;ArrayBlockingQueue(常用) &#xff08;2&#xff09;Li…...

c语言函数指针和指针函数的区别,以及回调函数的使用。

函数指针是什么&#xff0c;函数指针本质也是指针&#xff0c;不过是指向函数的指针&#xff0c;存储的是函数的地址。 指针函数是什么,指针函数其实就是返回值是指针的函数&#xff0c;本质是函数。 函数指针是如何定义的呢&#xff0c;如下 void (*pfun)(int a,int b) 这…...

什么是服务端渲染?前后端分离的优点和缺点?

一.概念 服务端渲染简单点就是服务端直接返回给客户端一个完整的页面&#xff0c;也就是一个完整的html页面&#xff0c;这个页面上已经有数据了。说到这里你可能会觉得后端怎么写页面啊&#xff0c;而且服务端返回页面不是加载更慢吗&#xff1f;错了&#xff0c;因为我们现在…...

【Java】优化重复冗余代码的8种方式

文章目录 前言1. 抽取公用方法2. 抽工具类3. 反射4.泛型5. 继承与多态6.使用设计模式7.自定义注解(或者说AOP面向切面)8.函数式接口和Lambda表达式 前言 日常开发中&#xff0c;我们经常会遇到一些重复代码。大家都知道重复代码不好&#xff0c;它主要有这些缺点&#xff1a;可…...

从算法理想向工程现实的跨越:SLAM 核心架构、思维误区与 Nav2 实战避坑指南

前言&#xff1a;直面 SLAM 的“先有鸡还是先有蛋” 在机器人领域&#xff0c;SLAM&#xff08;Simultaneous Localization and Mapping&#xff0c;同时定位与地图构建&#xff09; 毫无疑问是最耀眼的明珠之一。简单来说&#xff0c;它的核心任务就是让一个机器人在未知环境中…...

法律文书分析系统接入 A-MEM 长程记忆

项目实训 | Vue3 FastAPI | NeurIPS 2025 A-MEM 复现与工程落地一、背景与动机 在法律文书智能分析系统的开发过程中&#xff0c;我们发现了一个核心痛点&#xff1a;AI助手没有"记忆"。 用户在第一轮对话里详细描述了案件事实——“我是原告张三&#xff0c;2024年…...

保姆级教程:用Python脚本搞定YOLO生活垃圾数据集的划分与文件校验

Python实战&#xff1a;YOLO数据集自动化处理全流程指南 当你第一次拿到标注好的目标检测数据集时&#xff0c;是否曾被这些繁琐的准备工作困扰过&#xff1f;图片和标签文件散落在各处&#xff0c;需要手动划分训练集、验证集和测试集&#xff1b;文件命名不规范导致模型训练…...

N_m3u8DL-RE完整教程:跨平台流媒体下载的终极解决方案

N_m3u8DL-RE完整教程&#xff1a;跨平台流媒体下载的终极解决方案 【免费下载链接】N_m3u8DL-RE Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文. 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE …...

小红书无水印下载全攻略:如何用XHS-Downloader高效保存优质内容

小红书无水印下载全攻略&#xff1a;如何用XHS-Downloader高效保存优质内容 【免费下载链接】XHS-Downloader 小红书&#xff08;XiaoHongShu、RedNote&#xff09;链接提取/作品采集工具&#xff1a;提取账号发布、收藏、点赞、专辑作品链接&#xff1b;提取搜索结果作品、用户…...

从选题到投稿全流程卡点突破,Perplexity论文写作辅助全链路拆解

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;从选题到投稿全流程卡点突破&#xff0c;Perplexity论文写作辅助全链路拆解 Perplexity 不仅是高效的信息检索工具&#xff0c;更是科研写作中贯穿选题、综述、论证与润色的智能协作者。其核心优势在于实时联…...

告别手动Coding:用EB tresos Studio配置TC3xx芯片MCAL的保姆级图文指南

告别手动Coding&#xff1a;用EB tresos Studio配置TC3xx芯片MCAL的保姆级图文指南 当TC3xx系列芯片遇上AUTOSAR架构&#xff0c;传统寄存器级开发方式正在被图形化配置彻底革新。对于每天需要面对微控制器底层驱动的嵌入式工程师而言&#xff0c;EB tresos Studio提供的可视化…...

别再乱用Pre Launch Init了!Actor Framework嵌套操作者启动的正确姿势(附LabVIEW 2023示例)

Actor Framework嵌套操作者启动陷阱与实战解决方案 在LabVIEW的Actor Framework&#xff08;AF&#xff09;开发中&#xff0c;嵌套操作者的启动顺序是一个看似简单却暗藏玄机的技术细节。许多中级开发者在项目实践中都曾遇到过这样的场景&#xff1a;明明按照常规思路在Pre La…...

VCSA底层网络配置实战:从IP修改到SSH登录的运维指南

1. 环境准备与基础概念 刚接触VMware vCenter Server Appliance&#xff08;VCSA&#xff09;的朋友可能会觉得底层配置有点神秘。其实就像给新买的智能手机设置Wi-Fi一样&#xff0c;我们需要根据实际网络环境调整它的"网络身份"。VCSA本质上是个预配置的Linux虚拟机…...

Keil C51评估版SRC指令限制解析与解决方案

1. 问题现象与背景解析最近在调试一个基于8051架构的嵌入式项目时&#xff0c;遇到了一个令人困惑的编译错误。当我在Keil C51开发环境中使用SRC指令时&#xff0c;编译器突然报出致命错误(Fatal Error)&#xff0c;但检查代码语法看起来完全正确。这个SRC指令是用来控制编译器…...