MySQL查询语句大全

今天来补充下MySQL中各种情况下需要使用到的查询语句:

增删查改的一个简单操作在这里
本章就是查询统计,其余操作看上面的文章

1 查询所有的库

使用SHOW语句找出在服务器上当前存在什么数据库:

show databases;

在这里插入图片描述
查询到库后可以需要先使用该库,才能对这个库里面的表进行操作:use 库名

2 查询所有的表

使用SHOW语句查询使用的库里面存在的表:

show tables;

在这里插入图片描述

3 查询表的结构

使用DESCRIBE+表名查询表结构:

describe vault

在这里插入图片描述

4 查询整张表数据

使用select语句查询出表里面所有数据:
select * from 表名

select * from vault

在这里插入图片描述

5 查询表中某一列的数据

使用select语句:
select 列名1,列名2 from 表名
(列名就是字段)

select id,vault_name from vault;

在这里插入图片描述

6 查询指定数据

使用select和条件where,进行查找:
比较运算符(大小比较):>、>=、=、、!>、!=10 AND age
select * from 表名 where 条件

select * from vault where vault_name='nas0518'

在这里插入图片描述
获取该条件的下的另一个字段数据
select 字段 from 表名 where 条件

select id from vault where vault_name='nas0518';

在这里插入图片描述

7 限制行数查询

使用limit语句,注意:mysql中没有top n语句的用法
select 字段1,字段2 from 表名 limit i,n
i表示从第i个开始,n表示往后查几个

select * from vault limit 3;

单独数字n,表示查询前n行
在这里插入图片描述

select * from vault limit 1,2;

在这里插入图片描述
mysql计数也是从0开始的,limit 1,2表示从第二行开始,往后取两位,不取第一行,所以select * from vault limit 0,2; 也是成立的

8 查询结果排序

语法:order by 字段 asc/desc
order by表示进行排序
asc:正序,递增
desc:反序,倒序,递减

select * from vault where updated_time>=1589861127 order by id desc;

对更新时间大于1589861127的数,安装id降序排列
在这里插入图片描述

9 分组查询

分组查询,这里信息量其实对于初学者来说,也比较大了,我就不再详细的写了,这里就说下简单的用法,下次专门补一个分组的详细用法
group by强调的是一个整体,就是组

group by + having 组合筛选数据
注意:having 条件的字段必须在前面查询筛选存在,否则语法错误

select id,vault_name,organization_name,region_name from backup_vault group by organization_name;

在这里插入图片描述
加having使用:

select id,vault_name,organization_name,region_name from backup_vault group by organization_name having id>=40;

在这里插入图片描述
若是想对结果进行排序或者其他操作,可以利用子查询加别名

mysql> select a.id,a.vault_name,a.organization_name,a.region_name    		
	-> from
    -> (select * from backup_vault order by id asc) as a
    -> group by organization_name;

在这里插入图片描述

10 内连接查询

内连接查询返回的是同时满足两个结果集的记录。
使用inner join查询所有信息,inner可省略:
在这里说一下关联查询sql编写的思路,1,先确定所连接的表,2,再确定所要查询的字段,3,确定连接条件以及连接方式
格式:
select 表1.id,表2.name from 表1 join 表2 no 查询条件

mysql> select a.plan_name,b.vault_name
    -> from backup_plan a
    -> join backup_vault b
    -> on a.organization_name=b.organization_name;

在这里插入图片描述
内连接分三种:
1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。
2、不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括>、>=、、!。
3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。

11 外连接查询

外连接分为左外连接和右外连接,分别以左表和右表作为主表匹配,保留主表中存在但另一张表中不存在的的数据。使用left join查询
格式:
select * from 表1(主) left join 表2 on 条件

mysql> select a.plan_name,b.vault_name
    -> from backup_vault as b
    -> left join backup_plan as a
    -> on a.id =b.id;

在这里插入图片描述
右连接也是一样的,换一下主表和配表的位置,左外连接添加一个OUTER :left outer join

12 子查询:

子查询指一个查询语句嵌套在另一个查询语句内部的查询,子查询结果作为外层另一个查询的过滤条件,查询可以基于一个表或者多个表。
子查询中常用的关键字有in和exists,也可以使用比较运算符

in 子查询:
in子查询主要用于判断指定字段的值是否存在于子查询的结果集中。
如果子查询的记录较少,主查询的记录较多时使用in,因为这时用到了主表上的索引
在这里插入图片描述

exists子查询
exists子查询主要用于判断子查询的结果集是否为空。
如果子查询的记录较多,主查询的记录较少时使用exists,因为这时用到了子表上的索引。
在这里插入图片描述

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL是一种常用的关系型数据库管理系统,它支持使用SQL语言进行数据的查询、插入、更新和删除等操作。以下是一些常见的MySQL查询语句: 1. SELECT语句:用于从数据库中检索数据。 示例:SELECT * FROM 表名; 2. WHERE子句:用于在SELECT语句中添加条件筛选。 示例:SELECT * FROM 表名 WHERE 条件; 3. ORDER BY子句:用于对查询结果进行排序。 示例:SELECT * FROM 表名 ORDER BY 列名 ASC/DESC; 4. LIMIT子句:用于限制查询结果的数量。 示例:SELECT * FROM 表名 LIMIT 数量; 5. JOIN语句:用于在多个表之间建立关联。 示例:SELECT * FROM 表1 JOIN 表2 ON 表1.列 = 表2.列; 6. GROUP BY子句:用于对查询结果进行分组。 示例:SELECT 列名, COUNT(*) FROM 表名 GROUP BY 列名; 7. HAVING子句:用于在GROUP BY子句后添加条件筛选。 示例:SELECT 列名, COUNT(*) FROM 表名 GROUP BY 列名 HAVING 条件; 8. INSERT INTO语句:用于向数据库中插入新的数据。 示例:INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2); 9. UPDATE语句:用于更新数据库中的数据。 示例:UPDATE 表名 SET 列名 = 值 WHERE 条件; 10. DELETE FROM语句:用于从数据库中删除数据。 示例:DELETE FROM 表名 WHERE 条件; 这些只是MySQL查询语句的一部分,还有很多其他的语句和功能可以用于满足不同的需求。如果你有具体的问题或者需要更详细的介绍,请告诉我。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值