MySQL 单表查询
创始人
2024-04-20 18:53:31
0

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] BETWEEN 值1 AND 值2;

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 * from 表1 inner  join 表2 on 表1.列 = 表2.列;

在这里插入图片描述

9.2左连接

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

select * from 表1 left  join 表2 on 表1.列 = 表2.列;

在这里插入图片描述

9.3右连接

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

select * from 表1 right join 表2 on 表1.列 = 表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;

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
AWSECS:哪种网络模式具有... 使用AWS ECS中的awsvpc网络模式来获得最佳性能。awsvpc网络模式允许ECS任务直接在V...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...