MySQL 单表查询

news2024/11/17 21:25:38

1.简单查询

1.1 SELECT语句

SELECT [DISTINCT] * |字段名1,字段名2...
FROM 表名
[WHERE 条件表达式1]
[GROUP BY 字段名 [HAVING 条件表达式2]]
[GROUP BY 字段名 [ASC | DESC]]
[LIMIT [OFFSET] 记录数]

在这里插入图片描述
在这里插入图片描述

1.2 查询指定字段

SELECT 字段1,字段2,... FROM 数据表名;

1.3 查询所有字段

SELECT * FROM 数据表名;

2.按条件查询

2.1 带关系运算符的查询

SELECT 字段名1,字段名2...
FROM 表名
WHERE 条件表达式

2.2 比较运算符

在这里插入图片描述

2.3 逻辑运算符

在这里插入图片描述

2.4 带 IN 关键字的查询

SELECT * | 字段名1,字段名2...
FROM 表名
WHERE 字段名 [NOT] IN (元素1,元素2...;

2.5 带 BETWEEN AND 关键字的查询

SELECT * | {字段名1,字段名2...}
FROM 表名
WHERE 字段名 [NOT] BETWEEN1 AND2

2.6 空值查询

SELECT * | 字段名1,字段名2...
FROM 表名
WHERE 字段名 IS [NOT] NULL;

2.7 带DISTINCT关键字的查询(过滤去重)

SELECT DISTINCT 字段名 FROM 表名;

2.8 带LIKE关键字的查询(模糊查询)

SELECT * | {字段名1,字段名2...}
FROM 表名
WHERE 字段名 [NOT] LIKE '匹配字符串';

注意:匹配字符串可以包含百分号(%)和下划线(_)的通配符字符串
● “s%” 表示以s开始的字符串
● “%s” 表示以s结尾的字符串
● "%s%"表示包含s的字符串
● 下划线只匹配单个字符 如果想匹配多个字符可以使用多个下划线
● 如果想匹配字符串里面的 % 或 _ 可以在前面使用 \ 来转义

2.9 带AND关键字的多条件查询

SELECT * | {字段名1,字段名2...}
FROM 表名
WHERE 条件表达式1 AND 条件表达式2 [AND 条件表达式3...]

2.10 带OR关键字的多条件查询

SELECT * | {字段名1,字段名2...}
FROM 表名
WHERE 条件表达式1 OR 条件表达式2 [AND 条件表达式3...

3.聚合函数

3.1 COUNT()函数 (统计函数)

SELECT COUNT(*) FROM 表名;

3.2 SUM()函数(求和函数)

SELECT SUM(字段名) FROM 表名;

3.3 MAX()函数(最大值函数)

SELECT MAX(字段名) FROM 表名;

3.4 MIN()函数(最小值函数)

SELECT MIN(字段名) FROM 表名;

3.5 AVG()函数(平均值函数)

SELECT AVG(字段名) FROM 表名;

4.对查询结果排序

SELECT 字段名1,字段名2...
FROM 表名
ORDER BY 字段名1 [ASC | DESC], 字段名2 [ASC | DESC]...

注:ASC 表示升序 DESC 表示降序

5.分组查询

SELECT 字段名1,字段名2...
FROM 表名
GROUP BY 字段名1,字段名2...[HAVING 条件表达式];

5.1 分组

在这里插入图片描述
在数据库中,通过 group by 将查询结果按照1个或多个字段进行分组,字段值相同的为一组。

select ... from students group by 需要分组字段;   

group_concat(…)
我们通过group_concat(…)查看每组的详细信息
在这里插入图片描述

5.2 分组后的筛选

在这里插入图片描述

6.限制查询

SELECT 字段名1,字段名2...
FROM 表名
LIMIT [OFFSET, ] 记录数

7.函数

在这里插入图片描述
在这里插入图片描述

8.为表和字段取别名

8.1为表取别名

SELECT * FROM 表名 [AS] 别名;

8.2为字段取别名

SELECT 字段名 [AS] 别名 [,字段名 [AS] 别名,...] FROM 表名;

9.表连接

当查询结果的列来源于多张表时,需要将多张表连接成一个大的数据集,再选择合适的列返回mysql。这时我们就需要使用表连接。

分类:
● 内连接
● 外连接
○ 左连接
○ 右连接

9.1内连接

内连接仅选出两张表中互相匹配的记录

select * from1 inner  join2 on1.=2.;

在这里插入图片描述

9.2左连接

查询的结果为两个表匹配到的数据,左表持有的数据,对于右表中不存的数据使用null填充

select * from1 left  join2 on1.=2.;

在这里插入图片描述

9.3右连接

查询结果为两个表匹配到的数据,右表持有的数据,对于左表中不存在的数据使用null填充。

select * from1 right join2 on1.=2.;

在这里插入图片描述

10.子查询

某些情况下,当进行查询的时候,需要的条件是另外一个 select 语句的结果,这个时候,就要用到子查询。

总结

创建数据库
CREATE DATABASE chapter04;

查看当前使用的数据库
SELECT DATABASE();

选择使用数据库
USE chapter04;

查看当前使用的数据库
SELECT DATABASE();

创建表
CREATE TABLE student(
id INT(3) PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
grade FLOAT,
gender CHAR(2)
);

查看表
SELECT * FROM student;

插入数据
INSERT INTO student(name, grade, gender)
VALUES ('A',40,'男'),
('B',50,'男'),
('C',60,'男'),
('D',70,'女'),
('E',80,'女'),
('F',90,'男'),
('G',100,'男'),
('H',110,NULL);

查看表(指定字段)
SELECT id, name, grade FROM student;

查看表(*通配符)
SELECT * FROM student;

带关系运算符的查询
SELECT id, name FROM student WHERE id=4;IN关键字查询
SELECT id, name, grade FROM student WHERE id IN(1,2,3);BETWEEN AND 关键字的查询
SELECT id, name, grade
FROM student
WHERE id  BETWEEN 2 AND 5;

空值查询
SELECT *
FROM student
WHERE gender IS NULL;DISTINCT关键字的查询(过滤去重)
SELECT DISTINCT gender FROM student;LIKE关键字的查询(模糊查询)
SELECT name
FROM student
WHERE name LIKE '%d';AND关键字的多条件查询
SELECT id,name,grade
FROM student
WHERE id in (1,2,3,4) AND grade < 70;AND关键字的多条件查询
SELECT id,name,grade
FROM student
WHERE id in (1,2) OR grade > 70;

COUNT()函数 (统计函数)    
SELECT COUNT(*) FROM student;

SUM()函数(求和函数)
SELECT SUM(grade) FROM student;

MAX()函数(最大值函数)
SELECT MAX(grade) FROM student;

MIN()函数(最小值函数)
SELECT MIN(grade) FROM student;

AVG()函数(平均值函数)
SELECT AVG(grade) FROM student;

对查询结果排序
SELECT *
FROM student
ORDER BY gender DESC,grade ASC;

分组查询
SELECT *
FROM student
GROUP BY gender;

限制查询
SELECT *
FROM student
LIMIT 4;

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

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

相关文章

【深入理解 —— js闭包】

&#x1f9c1;个人主页&#xff1a;个人主页 ✌支持我 &#xff1a;点赞&#x1f44d;收藏&#x1f33c;关注&#x1f9e1; 文章目录js闭包&#x1f380; 什么是闭包&#xff1f;&#x1fa70; 执行上下文&#xff08;执行环境&#xff09;&#x1f367;解释闭包的含义&#x…

Linux 黑马

1.1虚拟机介绍1.2VMware Workstation虚拟化软件 下载CentOS; 5分钟教你下载安装VMware16虚拟机&#xff08;含许可证密钥&#xff09;【全免费VMware虚拟机 上集】_哔哩哔哩_bilibili 1.3远程链接Linux系统 &FinalShell 1.4拓展WSL(Ubuntu)环境 Win11>可选功能>…

愿你被这个世界温柔以待(第二十课)最优秀的仓库Gitee

愿你被这个世界温柔以待(第二十课)最优秀的仓库Gitee 在追梦的道路上 相信自己一定能变的更加优秀 看下面操作流程图:如果你觉自己的学习能力很强跟着下面的流程图片去走 图片教学 上传一份项目如何做 下面的是图片教学 看到上面的图片操作可能看不懂 Giteej基本操作命令行 初…

Photoshop简单案例(9)——利用PS去水印的四种方法

目录一、项目介绍二、简单水印2.1 水印原图2.2 去除步骤2.3 去除效果三、文件水印3.1 水印原图3.2 去除步骤3.3 去除效果3.4 拓展四、内容识别法4.1 水印原图4.2 去除步骤4.3 去除效果一、项目介绍 本文将介绍利用PhotoShop去水印的四种方法。 二、简单水印 2.1 水印原图 对…

我敢打赌,90%的测试人员都不理解Git

01 概念 1、Git本地有四个工作区域&#xff1a; 工作目录&#xff08;Working Directory&#xff09; 暂存区&#xff08;Stage/Index&#xff09; 资源库&#xff08;Repository或Git Directory&#xff09; git仓库&#xff08;Remote Directory&#xff09; 文件在这四…

深度学习设计模式(一):编写高质量代码的基础(多例子+代码)

学习如何编写高质量代码前言面向对象面向对象编程&#xff0c;面向对象编程语言面向对象分析 &#xff0c;面向对象设计封装&#xff0c;抽象&#xff0c;继承&#xff0c;多态封装抽象继承多态面向对象比面向过程有哪些优势&#xff0c;面向过程过时了&#xff1f;什么是面向过…

MyBatisPlus入门

目录 概述 SpringBoot继承MyBatisPlus CRUD 新增 删除 修改 查询 条件构造器 全局配置 相关注解 ActiveRecord 插件 分页插件 防止全表删除插件 乐观锁插件 乐观锁插件的使用 逻辑删除 使用逻辑删除 扩展 自动填充 Sql注入器 代码生成器Generator 代码生成器MyBa…

Seata 分布式事务你懂吗?学习了大咖的笔记,公司说要给我涨薪 8K

分布式事务处理过程的-ID三组件模型&#xff1a; 关于事务的基本概念 Seata 是阿里开源的分布式事务解决方案中间件&#xff0c;对业务侵入小&#xff0c;在应用中 Seata 整体事务逻辑基于两阶段提交的模型&#xff0c;核心概念包含三个角色&#xff1a; TM&#xff1a;事务发…

听说你还在自己做重复劳动?看我一键生成错误码映射

大家在工作中定义错误码的时候都是如何处理的&#xff1f; xdm 可以评论区交流交流 我看到过有的是这样定义错误码的&#xff1a; m : make(map[int]string)m[0] "OK"m[1] "链接失败"m[2] "文件类型错误"... 还看到过这样定义错误码的&#x…

腾讯云2核2G、2核4G、4核8G、8核16G、16核32G服务器价格出炉

腾讯云轻量应用服务器为轻量级的云服务器&#xff0c;使用门槛低&#xff0c;按套餐形式购买&#xff0c;轻量应用服务器套餐自带的公网带宽较大&#xff0c;4M、6M、7M、10M、14M及20M套餐可选&#xff0c;如果是云服务器CVM这个带宽价格就要贵很多了。 轻量应用服务器CPU内存…

Linux系统中如何实现串口的格式化功能方法

大家好&#xff0c;今天的话&#xff0c;主要和大家聊一聊&#xff0c;如何实现串口格式化功能实验。 目录 第一&#xff1a;串口格式化基本简介 第二&#xff1a;实验程序的操作 第三&#xff1a;具体的代码实现 第一&#xff1a;串口格式化基本简介 前面虽然实现了串口的功…

[附源码]计算机毕业设计基于vuejs的爱宠用品销售appSpringboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【vue】中英文切换(多语言国际化)

一、安装i18n插件 npm install vue-il8n8.23.0 --save二、创建语言包文件夹与配置 &#xff08;1&#xff09;index.js中 import Vue from vue // 引入vue import VueI18n from vue-i18n // 引入i18n模块 import elementEnLocale from element-ui/lib/locale/lang/en // elem…

新手使用wvp-pro和ZLMediaKit的菜鸟说明(手把手教)

对于wvp-pro的使用&#xff0c;很多大佬都是白嫖菜鸟党&#xff0c;很多都第一次使用wvp&#xff0c;甚至第一次接触国标&#xff0c;连国标最基本流程都不清楚。所以写此文档以供各位菜鸟大佬点评指正 看此文档前提&#xff1a;&#xff08;下文ZLMediaKit简称zlm&#xff09…

springBoot中日志的使用

springBoot中日志的使用 日志基础 首先你需要知道日志门面&#xff0c;日志实现&#xff0c;日志桥接器。 基于日志实现&#xff0c;常用的有logback,log4j2&#xff0c;这两个日志实现是的创始人是同一个&#xff0c;概念差不多&#xff0c;这里以log4j2为例&#xff0c;有如…

迭代器和生成器

文章目录迭代器和生成器图解迭代器和生成器的关系迭代器容器生成器yield函数生成器表达式总结迭代器和生成器 图解迭代器和生成器的关系 图1-1​ 不管是生成器还是我们的容器&#xff0c;最终都是迭代器&#xff0c;使用next方法进行有规律的获取元素&#xff0c;不需要将元素…

免费的在线3D CAD【BimAnt】

BimAnt托管了可以免费使用的在线三维CAD&#xff0c;采用BRep内核&#xff0c;支持几何约束求解&#xff0c;支持二维草图&#xff0c;支持挤压、放样、扫掠和旋转等操作。访问地址&#xff1a;BimAnt三维CAD。 一、添加基础图元 BimAnt三维CAD支持圆柱、圆锥、球体、圆环体…

STM32的最小系统组成的详解

经常使用STM32开发的工程师对于它的开发环境的最小系统是必须要有所了解的&#xff0c;特别是硬件工程师在设计硬件的时候对这个最小系统就要更加的深入了解了&#xff0c;如果最小系统的搭建都有问题&#xff0c;那以后的使用很难避免不出现问题。 话不多说&#xff0c;进入正…

【自省】使用Executors.xxx违反阿里Java代码规范,那还不写定时任务了?

一、背景 在《分布式锁主动续期的入门级实现-自省 | 简约而不简单》中通过【自省】的方式讨论了关于分布式锁自动续期功能的入门级实现方式&#xff0c;简单同步一下上下文&#xff1a; 客户端抢到分布式锁之后开始执行任务&#xff0c;执行完毕后再释放分布式锁。持锁后因客…

微服务守护神-Sentinel-热点-授权-系统规则

引言 书接上篇 微服务守护神-Sentinel-降级规则 &#xff0c;上面介绍了Sentinel降级规则&#xff0c;本篇继续来Sentinel的热点、授权、系统规则。 热点规则 何为热点&#xff1f;热点即经常访问的数据。很多时候我们希望统计某些热点数据中访问频次最高的 Top K 数据&…