MySQL基础——DQL

news2024/11/13 9:12:03

DQL(Data Query Language,数据查询语言)是SQL中的一个子集,主要用于查询数据库中的数据。DQL的核心语句是 SELECT,它用于从一个或多个表中提取数据,并能够通过各种条件进行过滤、排序和聚合操作。下面是DQL的相关知识点及示例:

1. SELECT 语句

SELECT 是 DQL 中的核心语句,用于从表中查询数据。

基本语法:
SELECT 列名1, 列名2, ... FROM 表名 WHERE 条件;
  • 列名1, 列名2:需要查询的列。
  • FROM:指定查询的表。
  • WHERE:可选的条件,用于过滤返回的行。
示例:

查询 users 表中的 nameemail 列:

SELECT name, email FROM users;
 设置别名
语法:SELECT 字段1 AS 别名1, 字段2 AS 别名2 ... FROM 表名;
示例:

name 列的别名设置为 username,将 email 列的别名设置为 user_email

SELECT name AS username, email AS user_email FROM users;
去除重复记录
语法:SELECT DISTINCT 字段列表 FROM 表名;
示例:

查询 users 表中不同的城市(去除重复的 city):

SELECT DISTINCT city FROM users;
示例2:

查询 users 表中不同的 emailcity 组合:

SELECT DISTINCT email, city FROM users;

2. SELECT * 查询所有列

使用 * 可以查询表中的所有列。

示例:

查询 users 表的所有列:

SELECT * FROM users;

3. WHERE 子句(条件查询)

WHERE 子句用于过滤查询结果,返回满足条件的行。

基本语法:
SELECT 列名 FROM 表名 WHERE 条件;
示例:

查询 users 表中 age 大于 25 的用户:

SELECT * FROM users WHERE age > 25;
2. 比较运算符

WHERE 子句中,常用的比较运算符包括:

  • =:等于
  • !=<>:不等于
  • >:大于
  • <:小于
  • >=:大于或等于
  • <=:小于或等于
示例:
# 查询 users 表中 age 等于 30 的用户:

SELECT * FROM users WHERE age = 30;

# 查询 users 表中 age 不等于 30 的用户:

SELECT * FROM users WHERE age != 30;
3. 逻辑运算符

逻辑运算符用于在 WHERE 子句中组合多个条件:

  • AND:所有条件都必须为真。
  • OR:只要有一个条件为真。
  • NOT:条件不成立时为真。
示例:
# 查询 users 表中 age 大于 25 且 city 为 'New York' 的用户:

SELECT * FROM users WHERE age > 25 AND city = 'New York';

# 查询 users 表中 age 大于 25 或 city 为 'New York' 的用户:

SELECT * FROM users WHERE age > 25 OR city = 'New York';
4. BETWEEN 操作符

BETWEEN 用于筛选值在某个范围内的记录。

基本语法:
SELECT 列名 FROM 表名 WHERE 列名 BETWEEN 最小值 AND 最大值;
示例:

查询 users 表中 age 在 20 到 30 岁之间的用户:

注意小的值在前,大的值在后,否则无法筛选

SELECT * FROM users WHERE age BETWEEN 20 AND 30;
5. IN 操作符

IN 用于筛选列值在给定列表中的记录。(相当于或)

基本语法:
SELECT 列名 FROM 表名 WHERE 列名 IN (值1, 值2, ...);
示例:

查询 users 表中 city 为 'New York'、'Los Angeles' 'Chicago' 的用户:

SELECT * FROM users WHERE city IN ('New York', 'Los Angeles', 'Chicago');
6. LIKE 操作符

LIKE 用于进行模糊匹配,常用于文本数据。通常结合通配符 %(表示零个或多个字符)和 _(表示一个字符)使用。

基本语法:
SELECT 列名 FROM 表名 WHERE 列名 LIKE 模式;
示例:

查询 users 表中 name 以 'A' 开头的用户:A%表示开头为A,其余的都行

SELECT * FROM users WHERE name LIKE 'A%';

查询 users 表中 name 中包含 'son' 的用户:

SELECT * FROM users WHERE name LIKE '%son%';
7. IS NULLIS NOT NULL

IS NULL 用于查找列中值为 NULL 的记录,IS NOT NULL 用于查找列中不为 NULL 的记录。

基本语法:
SELECT 列名 FROM 表名 WHERE 列名 IS NULL; SELECT 列名 FROM 表名 WHERE 列名 IS NOT NULL;
示例:

查询 users 表中 email 为空的用户:

SELECT * FROM users WHERE email IS NULL;

查询 users 表中 email 不为空的用户:

SELECT * FROM users WHERE email IS NOT NULL;

4. ORDER BY 子句(排序查询)

ORDER BY 用于对查询结果进行排序,可以按升序(ASC)或降序(DESC)排列。

基本语法:
SELECT 列名 FROM 表名 ORDER BY 列名 [ASC|DESC];
示例:

查询 users 表中的用户,并按 age 列降序排列:

SELECT * FROM users ORDER BY age DESC;

5. LIMIT 子句(分页查询)

LIMIT 用于限制返回的结果集中的行数。通常用于分页查询。

基本语法:
SELECT 列名 FROM 表名 LIMIT n;
示例:

查询 users 表中的前 5 行数据:

SELECT * FROM users LIMIT 5;

6. 聚合函数:

7. GROUP BY 子句(分组查询)

GROUP BY 用于将查询结果按某个或多个列进行分组,常常与聚合函数(如 COUNTSUMAVG 等)一起使用。

基本语法:
SELECT 列名, 聚合函数 FROM 表名 GROUP BY 列名;
示例:

统计 users 表中每个城市的用户数量:

SELECT city, COUNT(*) AS user_count FROM users GROUP BY city;

8. HAVING 子句

HAVING 子句用于过滤 GROUP BY 的结果。它与 WHERE 类似,但 HAVING 主要用于过滤分组后的结果,而 WHERE 则用于在分组前过滤数据。

基本语法:
SELECT 列名, 聚合函数 FROM 表名 GROUP BY 列名 HAVING 条件;
示例:

查询 users 表中用户数量大于 10 的城市:

SELECT city, COUNT(*) AS user_count FROM users GROUP BY city HAVING user_count > 10;

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

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

相关文章

Android解析XML格式数据

文章目录 Android解析XML格式数据搭建Web服务器Pull解析方式SAX解析方式 Android解析XML格式数据 通常情况下&#xff0c;每个需要访问网络的应用程序都会有一个自己的服务器&#xff0c;我们可以向服务器提交数据&#xff0c;也可以从服务器上获取数据。不过这个时候就出现了…

Vant 按需引入导致 Typescript,eslint 报错问题

目录 1&#xff0c;按需引入问题2&#xff0c;Typescript 报错解决3&#xff0c;eslint 报错解决 1&#xff0c;按需引入问题 vant4 通过按需引入的配置 使用组件时&#xff0c;会同时将样式自动导入。 所以可直接使用相关的 API 方法&#xff0c;样式也没有问题。比如&#…

如何使用VeilTransfer评估和提升组织的数据安全态势

关于VeilTransfer VeilTransfer是一款功能强大的企业数据安全检测与增强工具&#xff0c;该工具基于Go语言开发&#xff0c;旨在帮助广大研究人员完成企业环境下的数据安全测试并增强检测能力。 此工具模拟了高级威胁行为者使用的真实数据泄露技术&#xff0c;使组织能够评估和…

基于SpringBoot的求职招聘管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于JavaSpringBootVueMySQL的求职招聘管理系统…

1.10 DFT示例2

1.10 DFT示例2 1.10.2 一个通用正弦波 通过将复正弦波的表达式代入DFT的定义&#xff0c;并按照矩形序列示例中的相同步骤&#xff0c;可以类似地推导出通用正弦波的DFT。 尽管如此&#xff0c;在理解了上述概念后&#xff0c;我们可以通过一种更简单的方法看到一般正弦波的…

校园二手数码交易系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;卖家管理&#xff0c;用户管理&#xff0c;二手商品管理&#xff0c;商品类型管理&#xff0c;商品求购管理&#xff0c;用户通知管理&#xff0c;退货管理 微信端账号功能包括&#xff1a;系统首页&a…

索尼发布新款PS5 Pro主机 算力与定价齐飞 9成玩家感叹“价格贵”

北京时间周二深夜&#xff0c;消费电子大厂索尼如期发布游戏主机PlayStation 5的升级版本PS5 Pro。虽然机器参数与事前预期完全一致&#xff0c;但发布会后仍然出现了舆论争议——索尼的定价超出预期了。 &#xff08;PS5首席架构师马克塞尔尼发布新机器&#xff0c;来源&#…

Python编码系列—Python项目维护与迭代:持续进化的艺术

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

面试官:聊聊MySQL的binlog

前言 MySQL 日志 主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。 其中&#xff0c;比较重要的还要属二进制日志 binlog&#xff08;归档日志&#xff09;和事务日志 redo log&#xff08;重做日志&#xff09;和 undo log&#xff08;回滚日志&#…

idea中git提交的代码回退到指定版本

一.先在本地仓库回退到指定版本的代码 选中项目&#xff0c;右键依次点击【Git】——>【Show History】&#xff0c;如下图&#xff1a; 2. 查看提交到远程仓库的git记录&#xff0c;下图中为每次提交的git记录&#xff0c;回退到其中一个指定的即可&#xff0c;如下图&…

ICM20948 DMP代码详解(13)

接前一篇文章&#xff1a;ICM20948 DMP代码详解&#xff08;12&#xff09; 上一回完成了对inv_icm20948_set_chip_to_body_axis_quaternion函数第2步即inv_rotation_to_quaternion函数的解析。回到inv_icm20948_set_chip_to_body_axis_quaternion中来&#xff0c;继续往下进行…

开放式激光振镜运动控制器在Ubuntu+Qt下的文本标刻

开放式激光振镜运动控制器在UbuntuQt下的文本标刻 上节课程我们讲述了如何通过UbuntuQt进行振镜校正&#xff08;详情点击→开放式激光振镜运动控制器在UbuntuQt下的激光振镜校正&#xff09;&#xff0c;本节文本标刻是在振镜校正的前提下实现的。 在正式学习之前&#xff0…

首个大模型供应链安全领域的国际标准,WDTA《大模型供应链安全要求》标准解读

9月6日,WDTA世界数字技术院在2024 外滩大会上正式发布了国际标准《大模型供应链安全要求》。这一标准为管理大型语言模型(LLM)供应链中的安全风险提出了系统性的框架,涵盖了LLM的整个生命周期,从开发、训练到部署和维护,为每个阶段提供了详尽的指导。 文末附标准获取方式 一…

re题(17)BUUCTF-[BJDCTF2020]JustRE

BUUCTF在线评测 (buuoj.cn) 放到ida&#xff0c;shiftF12可以直接看到有个类似flag的字符串&#xff0c;可以跳转过去 这里我们先不跳转&#xff0c;进入main&#xff08;&#xff09;的各个函数看一下 找到flag 本题学到一堆c的系统库函数

ImDisk Toolkit将一部分RAM模拟成硬盘分区

ImDisk Toolkit 是一个用于虚拟磁盘管理的工具&#xff0c;它可以将 RAM&#xff08;一部分内存&#xff09;模拟成硬盘分区&#xff0c;从而创建一个高速的临时存储空间&#xff0c;通常称为“RAM Disk”。以下是如何使用 ImDisk Toolkit 来将一部分 RAM 模拟成硬盘分区的步骤…

C++ | Leetcode C++题解之第398题随机数索引

题目&#xff1a; 题解&#xff1a; class Solution {vector<int> &nums; public:Solution(vector<int> &nums) : nums(nums) {}int pick(int target) {int ans;for (int i 0, cnt 0; i < nums.size(); i) {if (nums[i] target) {cnt; // 第 cnt 次…

Python OpenCV精讲系列 - 高级图像处理技术(三)

&#x1f496;&#x1f496;⚡️⚡️专栏&#xff1a;Python OpenCV精讲⚡️⚡️&#x1f496;&#x1f496; 本专栏聚焦于Python结合OpenCV库进行计算机视觉开发的专业教程。通过系统化的课程设计&#xff0c;从基础概念入手&#xff0c;逐步深入到图像处理、特征检测、物体识…

高效+灵活,万博智云全球发布AWS无代理跨云容灾方案!

摘要 近日&#xff0c;万博智云推出了基于AWS的无代理跨云容灾解决方案&#xff0c;并与拉丁美洲&#xff0c;中东&#xff0c;亚洲的合作伙伴面向全球开展了联合发布。这一方案以AWS应用环境为基础&#xff0c;将HyperBDR平台的高效、灵活和成本效益优势与无代理功能相结合&a…

HAProxy--高性能反向代理

文章目录 Web架构负载均衡介绍为什么使用负载均衡负载均衡类型 HAProxy简介应用场景HAProxy是什么HAProxy功能 脚本安装HAProxy基础配置global多进程和线程HAProxy日志配置项 Proxies配置-listen-frontend-backendserver配置 frontendbackend配置实例子配置文件 HAProxy调度算法…

SRS流媒体服务器从入门到精通(其一,环境搭建)

欢迎诸位来阅读在下的博文~ 在这里&#xff0c;在下会不定期发表一些浅薄的知识和经验&#xff0c;望诸位能与在下多多交流&#xff0c;共同努力! 江山如画&#xff0c;客心如若&#xff0c;欢迎到访&#xff0c;一展风采 文章目录 一、SRS简介二、SRS的应用场景三、环境搭建…