MySQL的查询

DQL(Data Query Language) 数据查询语言是用于从数据库中检索数据的语言。查询返回的结果集是一张虚拟表。

1.基础查询

这是最基本的查询语句,用于从数据库中选择指定表中的列。

SELECT column1, column2, ...
FROM table_name;

 2.条件查询

条件查询允许你在检索数据时使用条件来过滤结果。条件可以是比较运算符,逻辑运算符等

=、!=、<>、<、<=、>、>=;
BETWEEN…AND;
IN(set);
IS NULL;  
AND;
OR;
NOT

SELECT column1, column2, ...
FROM table_name
WHERE condition;

3.模糊查询

模糊查询允许你使用通配符通过指定模式来匹配文本字段

通配符: 
_ 任意一个字母
%:任意0~n个

SELECT column1, column2, ...
FROM table_name
WHERE column_name LIKE pattern

4.字段控制查询

使用DISTINCT关键字来返回唯一不同的值。

SELECT DISTINCT column1, column2, ...
FROM table_name;

5.排序

 使用ORDER BY关键字来对检索出的结果进行排序,可以指定升序(ASC)或降序(DESC)。

SELECT column1, column2, ...
FROM table_name
ORDER BY column1 ASC/DESC, column2 ASC/DESC, ...;

6.聚合函数

 聚合函数允许你对数据进行统计计算,如计数、求和、平均值、最大值和最小值。

SELECT COUNT(column_name), SUM(column_name), AVG(column_name), MAX(column_name), MIN(column_name)
FROM table_name;

 COUNT():统计指定列不为NULL的记录行数;
MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
MIN():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
SUM():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;
AVG():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;

7.分组查询

SELECT column1, aggregate_function(column2)
FROM table_name
GROUP BY column1;

 GROUP BY关键字用于将结果分组,然后对每个组应用聚合函数。凡和聚合函数同时出现的列名,则一定要写在group by 之后

having与where的区别:
        1.having是在分组后对数据进行过滤.
          where是在分组前对数据进行过滤
        
2.having后面可以使用分组函数(统计函数)
          where后面不可以使用分组函数。
WHERE是对分组前记录的条件,如果某行记录没有满足WHERE子句的条件,那么这行记录不会参加分组;而HAVING是对分组后数据的约束。

8.LIMIT

 LIMIT用来限定查询结果的起始行,以及总行数

查询5行记录,起始行从0开始
SELECT * FROM table_name LIMIT 0, 5

9.多表查询

 多表查询是指在关系型数据库中同时查询多个表以获取所需的数据。这种查询通常涉及到表与表之间的关联关系,可以通过 JOIN 操作将这些表连接起来,以便联合查询它们的数据。

内连接(INNER JOIN):

内连接用于返回两个表中匹配行的交集。
示例:
SELECT *
FROM table1
INNER JOIN table2 ON table1.column = table2.column;
左连接(LEFT JOIN 或 LEFT OUTER JOIN):

左连接用于返回左表中的所有行,以及右表中与左表中匹配行的行。如果右表中没有匹配的行,则为 NULL。
示例:
SELECT *
FROM table1
LEFT JOIN table2 ON table1.column = table2.column;
右连接(RIGHT JOIN 或 RIGHT OUTER JOIN):

右连接与左连接类似,只是返回右表中的所有行,以及左表中与右表中匹配行的行。如果左表中没有匹配的行,则为 NULL。
示例:
SELECT *
FROM table1
RIGHT JOIN table2 ON table1.column = table2.column;
全连接(FULL JOIN 或 FULL OUTER JOIN):

全连接返回两个表中的所有行,如果其中一个表中没有与另一个表中的行匹配的行,则为 NULL。
示例:
SELECT *
FROM table1
FULL JOIN table2 ON table1.column = table2.column;
交叉连接(CROSS JOIN):

交叉连接返回两个表中所有可能的组合,它不需要任何关联条件。
示例:
SELECT *
FROM table1
CROSS JOIN table2;

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值