Mysql数据库:select from语句详解

Mysql数据库:select from语句详解

  • 一、select from语句概述
  • 二、select from语句的基本用法
  • 三、select from语句的示例
    • 1、查询所有列
    • 2、查询特定列
    • 3、查询带有条件的数据(过滤)
    • 4、查询结果排序
    • 5、查询结果限制
    • 6、查询结果去重
    • 7、查询结果分组
    • 8、查询结果统计
    • 9、查询结果联合
    • 10、查询简单的计算
    • 11、查询别名
    • 12、NULL参与运算
    • 13、着重号(反引号)


💖The Begin💖点点关注,收藏不迷路💖

一、select from语句概述

select from语句用于从数据库中查询数据。它由两个关键字组成:select 和from。

select 关键字用于指定要查询的列,from关键字用于指定要查询的表。

通过结合使用这两个关键字,我们可以从数据库中选择特定的列和行进行查询。

二、select from语句的基本用法

下面是select from语句的基本语法:

SELECT column1, column2,FROM table_name;

其中,column1, column2, …是要查询的列名,可以是一个或多个列,用逗号分隔。

table_name是要查询的表名。

三、select from语句的示例

1、查询所有列

如果要查询表中的所有列,可以使用星号*代替列名。示例代码如下:

SELECT * FROM table_name;

2、查询特定列

如果只需要查询表中的特定列,可以在select 关键字后面指定列名。示例代码如下:

SELECT column1, column2 FROM table_name;

3、查询带有条件的数据(过滤)

如果需要筛选出满足特定条件的数据,可以使用WHERE子句。示例代码如下:

SELECT column1, column2 FROM table_name WHERE condition;

其中,condition是查询条件,可以使用比较运算符(如=、<、>等)和逻辑运算符(如AND、OR等)组合成复杂的条件。

如:

1、查询满足多个条件的数据:
SELECT 列名1, 列名2,FROM 表名 WHERE 条件1 AND 条件2;可以使用 AND 运算符连接多个条件,查询满足所有条件的数据。2、查询满足任意一个条件的数据:
SELECT 列名1, 列名2,FROM 表名 WHERE 条件1 OR 条件2;可以使用 OR 运算符连接多个条件,查询满足任意一个条件的数据。3、查询不满足某个条件的数据:
SELECT 列名1, 列名2,FROM 表名 WHERE NOT 条件;使用 NOT 关键字可以排除满足某个条件的数据,查询不满足该条件的数据。

4、查询结果排序

如果需要对查询结果进行排序,可以使用ORDER BY子句。示例代码如下:

SELECT column1, column2 FROM table_name ORDER BY column1 ASC;

其中,column1是要排序的列名,ASC表示升序(从小到大),DESC表示降序(从大到小)。

如:

1、升序排序:
SELECT 列名1, 列名2, … FROM 表名 ORDER BY 列名 ASC;使用 ORDER BY 关键字可以按照指定列的值进行升序排序。2、降序排序:
SELECT 列名1, 列名2, … FROM 表名 ORDER BY 列名 DESC;使用 ORDER BY 关键字可以按照指定列的值进行降序排序。

5、查询结果限制

1、查询前几条数据:
SELECT 列名1, 列名2,FROM 表名 LIMIT 数量;使用 LIMIT 关键字可以限制查询结果返回的数据数量。2、查询指定范围的数据:
SELECT 列名1, 列名2,FROM 表名 LIMIT 起始位置, 数量;

例子:

如果只需要查询结果的前几行,可以使用LIMIT子句。示例代码如下:

SELECT column1, column2 FROM table_name LIMIT 10;

其中,10表示要查询的行数。

6、查询结果去重

SELECT DISTINCT 列名 FROM 表名;或者SELECT 列名1 DISTINCT 列名2 FROM 表名;

使用 DISTINCT 关键字可以去除查询结果中的重复数据。

7、查询结果分组

SELECT 列名1, 列名2,FROM 表名 GROUP BY 列名;

使用 GROUP BY 关键字可以将查询结果按照指定列进行分组。

8、查询结果统计

SELECT COUNT(列名) FROM 表名;

使用 COUNT 函数可以统计指定列的数据数量。

9、查询结果联合

SELECT 列名1, 列名2,FROM 表名1 UNION SELECT 列名1, 列名2,FROM 表名2;

使用 UNION 关键字可以将多个查询结果合并为一个结果集。

10、查询简单的计算

1、检索并计算列的总和:

SELECT SUM(column_name) FROM table_name;

2、检索并计算列的平均值:

SELECT AVG(column_name) FROM table_name;

3、检索并计算列的最大值:

SELECT MAX(column_name) FROM table_name;

4、检索并计算列的最小值:

SELECT MIN(column_name) FROM table_name;

11、查询别名

1、为列取别名

在SELECT语句中,我们可以为查询结果中的列取一个自定义的别名。这样做的好处是,可以让查询结果更加清晰明了,尤其是在查询结果中存在多个列时,给列取别名可以让查询结果更具可读性。

示例:

假设我们有一张名为”students”的表,包含了学生的姓名(name)、年龄(age)和性别(gender)三个列。现在我们想查询该表中所有学生的姓名和年龄,并为这两个列取别名。

SELECT name AS 姓名, age AS 年龄
FROM students;## 其中,别名可以使用双引号" "括起来。

我们使用”AS”关键字为name列取了别名”姓名”,为age列取了别名”年龄”。这样查询结果中的列名就变为了”姓名”和”年龄”,而非原本的”name”和”age”。

2、为表取别名

除了为列取别名外,我们还可以为表取别名。当我们在一个查询中使用了多个表时,为表取别名可以简化查询语句的编写,提高代码的可读性。

示例:

假设我们有一张名为”students”的表和一张名为”scores”的表,分别包含了学生信息和考试成绩。现在我们想查询学生的姓名和对应的成绩,并为这两张表取别名。

SELECT s.name AS 姓名, sc.score AS 成绩
FROM students AS s
JOIN scores AS sc ON s.id = sc.student_id;

我们使用”AS”关键字为students表取了别名”s”,为scores表取了别名”sc”。这样在查询语句中,我们可以直接使用别名来引用表名,而无需写完整的表名。

3、使用别名进行计算

除了简单地为列或表取别名外,我们还可以使用别名进行一些计算操作。这样可以在查询结果中得到一些计算后的值,而不仅仅是原始的列值。

示例:

假设我们有一张名为”products”的表,包含了产品的名称(name)、价格(price)和数量(quantity)三个列。现在我们想查询每个产品的总价,并为总价取一个别名”总价”。

SELECT name, price, quantity, (price * quantity) AS 总价
FROM products;

我们使用了括号将”price * quantity”这个计算表达式括起来,并为它取了一个别名”总价”。这样查询结果中就会包含一个名为”总价”的列,其中的值为每个产品的价格和数量相乘的结果。

12、NULL参与运算

在MySQL中,NULL是一个特殊的值,用于表示缺失或未知的数据。以下是关于MySQL中NULL的一些详细说明:

1NULL不等同于0或空字符串:NULL表示缺少值,而0和空字符串都是具体的值。因此,NULL0或空字符串进行比较时,结果将始终为不相等。2NULL可以用于所有数据类型:NULL可以用于任何数据类型,包括整数、浮点数、字符串、日期等。3NULL的存储空间:在MySQL中,NULL值不占用存储空间。这意味着,将NULL存储在一个列中,不会占用额外的存储空间。4NULL的比较:在MySQL中,无法通过使用等于(=)或不等于(<>)运算符来比较NULL值。相反,必须使用IS NULLIS NOT NULL运算符来检查NULL值。5NULL的使用场景:NULL可以用于各种情况,例如表示未知的数据、缺失的数据、未定义的数据等。例如,在一个学生表中,如果某个学生的出生日期未知,可以将该字段设置为NULL

NULL的注意事项:在使用NULL时需要注意以下几点:

1、在数据库设计中,应该避免使用NULL作为主键或唯一键,因为NULL不是唯一的值。
2、在查询中,应该谨慎使用NULL值,因为与NULL值相关的操作可能会导致意外的结果。
3、在使用NULL值进行计算时,结果通常也是NULL。因此,在进行计算之前,应该先检查NULL值并相应地处理。

13、着重号(反引号)

在MySQL中,反引号 是用来引用数据库、表、列名等标识符的符号。它的作用主要有以下几个方面:

1、区分保留字:

有些词是MySQL的保留字,例如SELECT、FROM、WHERE等,如果你使用这些保留字作为数据库、表、列名等标识符,就会导致语法错误。为了避免这种情况,可以使用反引号将保留字括起来,使其被视为标识符而不是保留字。

例如,如果你想创建一个名为select的表,可以使用以下语句:

CREATE TABLE `select` (`id` INT,`name` VARCHAR(50)
);

2、区分大小写:

在MySQL中,默认是不区分大小写的,也就是说,name、NAME、NaMe都被认为是相同的标识符。如果你希望保留大小写的特性,可以使用反引号将标识符括起来。

例如,如果你创建了一个名为MyTable的表,可以使用以下语句查询该表:

SELECT * FROM `MyTable`;

3、允许使用特殊字符:

如果你的标识符包含特殊字符,例如空格、连字符、点号等,可以使用反引号括起来,使其被正确解析。

例如,如果你创建了一个名为my-table的表,可以使用以下语句查询该表:

SELECT * FROM `my-table`;

需要注意的是,使用反引号括起来的标识符在SQL语句中是区分大小写的。因此,如果你在创建表时使用了MyTable作为表名,那么在查询时必须使用完全相同的大小写,否则会导致语法错误。


💖The End💖点点关注,收藏不迷路💖

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

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

相关文章

【操作系统xv6】学习记录--实验1 Lab: Xv6 and Unix utilities--未完

ref:https://pdos.csail.mit.edu/6.828/2020/xv6.html 实验&#xff1a;Lab: Xv6 and Unix utilities 环境搭建 实验环境搭建&#xff1a;https://blog.csdn.net/qq_45512097/article/details/126741793 搭建了1天&#xff0c;大家自求多福吧&#xff0c;哎。~搞环境真是折磨…

QProgressDialog用法及结合QThread用法,四种线程使用

1 QProgressDialog概述 QProgressDialog类提供耗时操作的进度条。 进度对话框用于向用户指示操作将花费多长时间&#xff0c;并演示应用程序没有冻结。此外&#xff0c;QPorgressDialog还可以给用户一个中止操作的机会。 进度对话框的一个常见问题是很难知道何时使用它们;操作…

Document对象详解

前言 在前端开发中&#xff0c;DOM&#xff08;文档对象模型&#xff09;扮演着重要的角色。它允许我们使用JavaScript来与网页文档进行交互&#xff0c;实现动态的网页效果。DOM的核心部分之一就是Document对象&#xff0c;它代表了整个HTML文档。在本篇博客中&#xff0c;我们…

华媒舍:6个使你的媒体发稿推广更简单的方法!

做为新闻报道媒体从业人员&#xff0c;在宣传发稿上要行走在最前沿&#xff0c;保持竞争力。下面我们就向您介绍六个又简单又实用的方法&#xff0c;帮助你提升新闻报道媒体营销推广发稿效果。 方法一&#xff1a;明确目标群体我们应该明确定义我们自己的目标群体。掌握观众的特…

爬虫如何获取免费代理IP(一)

随着网络爬虫技术的日益发展&#xff0c;获取和使用免费代理IP已成为许多爬虫工作者关注的焦点。免费代理IP不仅能够帮助爬虫隐藏真实身份&#xff0c;还能提高数据抓取的效率。然而&#xff0c;在实际应用中&#xff0c;免费代理IP也带来了一系列挑战。接下来我提供三个篇文章…

小H靶场笔记:DC-3

DC-3 January 3, 2024 4:11 PM Tags&#xff1a;Joomla owner&#xff1a;只惠摸鱼 信息收集 探测靶机ip&#xff1a; 192.168.199.133 nmap 扫描端口、 系统版本 漏洞 发现只有80端口开发&#xff0c; 且有cve-2017-8917漏洞存在是Joomla的SQL注入漏洞 Joomla版本为3.7.0…

Docker安装Superset

文章目录 拉取镜像安装创建目录运行Superset容器设置用户名密码初始化数据库服务初始化启动superset服务访问服务 拉取镜像 docker pull amancevice/superset查看拉取的镜像ID [rootbigdata ~]# docker images REPOSITORY TAG IMAGE…

SpringBoot-SpringSecurity

Spring Security 中文文档&#xff1a;https://springdoc.cn/spring-security/ Thymeleaf&#xff1a;https://www.thymeleaf.org/ 依赖 <!--security-thymeleaf 前端验证--> <!--<dependency><groupId>org.thymeleaf.extras</groupId><artifac…

相关性与P值

相关性与P值 0 FQA&#xff1a;1 相关性与显著性的关系2 相关性分析3 使用medcalc进行相关性分析&#xff1a;参考文章&#xff1a; 0 FQA&#xff1a; 主要描述相关性和p值分别代表什么意义&#xff1f; 以及如何使用medcalc计算相关性和p值。 Q1&#xff1a;p值代表什么意义…

01.PostgreSQL基本SELECT语句

1. SQL简介 SQL 是用于访问和处理数据库的标准的计算机语言。 SQL有两个标准:分别是SQL92和SQL99,他们分别代表了92年和99年颁布的SQL标准,我们今天使用的SQL语言依然遵循这些标准。 注意:除了 SQL 标准之外,大部分 SQL 数据库程序都拥有它们自己的私有扩展! 2. SQL分…

软件设计 - 大数据 - 性能优化篇2

前言 偶然之间想到&#xff0c;在数据库中我们存储的数据放置在了某个列中&#xff0c;但这个数据的体积很大。且已明确知晓这个数据不会用于查询操作。只会在业务需要的时候从数据库中拿出来使用即可。 举例 - 新闻稿件编辑 根据场景我们知道&#xff0c;当新闻内容比较多时…

【每日一题】466. 统计重复个数-2024.1.2

题目&#xff1a; 466. 统计重复个数 定义 str [s, n] 表示 str 由 n 个字符串 s 连接构成。 例如&#xff0c;str ["abc", 3] "abcabcabc" 。 如果可以从 s2 中删除某些字符使其变为 s1&#xff0c;则称字符串 s1 可以从字符串 s2 获得。 例如&…

主流桌面浏览器Chrome,FireFox和Edge等如何禁用弹出式窗口阻止程序,这里有详细步骤

为什么你想知道如何禁用浏览器中的弹出式窗口阻止程序?毕竟,弹出式窗口是网络的祸害:显示烦人的广告、虚假的安全消息和其他刺激,会分散你的浏览注意力,甚至可能包含恶意代码。 所有主要的桌面浏览器现在都默认阻止弹出式窗口,那么你到底为什么要取消阻止这些害虫呢?事…

【力扣100】39.组合总和

添加链接描述 class Solution:def combinationSum(self, candidates: List[int], target: int) -> List[List[int]]:def backtrack(path,target,res,index):if target0:res.append(path[:])returnif target<0:return for i in range(index,len(candidates)):if target&g…

c盘扩容时,d盘无法删除卷问题

C盘扩容时&#xff0c;磁盘管理中D盘右键无法删除卷的原因 首先&#xff0c;D盘下文件夹为空&#xff0c;但是显示可用空间不是100%&#xff0c;经过排查&#xff0c;发现是虚拟内存设置在了D盘导致无法删除卷&#xff0c;这里只需要将虚拟内存放到其他盘&#xff0c;如E盘即可…

【MyBatis】配置 SQL 提示(IDEA 代码自动补全)和解决未能解析数据库 Unable to resolve table ‘employee‘ 问题

默认在 MyBatis 中编写 SQL 语句是不识别的。 需要做如下配置&#xff1a; 然后 SQL 语句可以出现提示&#xff0c;但是自己的数据库会报错&#xff1a; 原因是 IDEA 没有和 数据库 建立连接&#xff0c;需要连接数据库&#xff08;注意&#xff1a;需要具体到某个 Schema&…

07、Docker 安装 MinIO

Docker 安装 MinIO 中文官网 拉取镜像 docker pull minio/minio数据文件映射 mkdir -p /docker/minio/data 运行容器 docker run -d \-p 9000:9000 \-p 9090:9090 \--name minio \-v /docker/minio/data:/data \ -e "MINIO_ROOT_USERadmin" \ -e "MINIO_R…

springCloud之Stream

1、简介 Spring Cloud Stream是一个用来为微服务应用构建 消息驱动 能力的框架。通过使用 Spring Cloud Strea m &#xff0c;可以有效简化开发人员对消息中间件的使用复杂度&#xff0c;降低代码与消息中间件间的耦合度&#xff0c;屏蔽消息中间件 之 间的差异性&#xff0c;…

stm32学习总结:5、Proteus8+STM32CubeMX+MDK仿真串口并使用串口打印日志(注意重定向printf到串口打印的问题)

stm32学习总结&#xff1a;5、Proteus8STM32CubeMXMDK仿真串口并使用串口打印日志&#xff08;注意重定向printf到串口打印的问题&#xff09; 文章目录 stm32学习总结&#xff1a;5、Proteus8STM32CubeMXMDK仿真串口并使用串口打印日志&#xff08;注意重定向printf到串口打印…

前端的JWT怎么进行用户认证?

实现用户认证和权限控制是Web应用开发中的重要部分&#xff0c;关系到用户的隐私和数据安全。在Go语言的后端开发中&#xff0c;一般会使用JSON Web Tokens&#xff08;JWT&#xff09;搭配存储中间件&#xff08;如Redis&#xff09;来处理用户认证和权限控制。JWT是一个开放标…