MySQL数据表查询操作常用命令

1.表查询数据

1> 查询数据表中所有数据
语法:select * from 表名;

2> 查询指定字段的显示
语法:select 字段1,字段2,… from 表名;

3> as 别名
在查询时,默认结果显示的字段和表中字段名相同,可以通过别名来修改显示的样式.
语法:select 字段1 as 别名,字段2 别名,… from 表名;

4> 消除重复数据
在查询数据时,查询结果可能会有很多重复的数据,如果不想重复,可以使用 distinct 来实现去重.
语法:select distinct 字段名 from 表名;

5> 带条件查询 where 子句
查询数据时,需要根据不同的需求设置条件。 通过 where 子句来设置查询条件.
语法:select distinct 字段名 from 表名 where 条件;
* where 条件可以使用运算符操作:
(1)比较运算符

  • 等于: =
  • 大于: >
  • 大于等于: >=
  • 小于: <
  • 小于等于: <=
  • 不等于: !=<>

(2)逻辑运算符

  • and
  • or
  • not

(3)模糊查询 like

  • % 表示任意多个任意字符
  • _ 表示一个任意字符

(4)范围查询

  • in 表示在一个非连续的范围内 , 可以使用 or 实现
  • between … and … 表示在一个连续的范围内,可以使用 and 实现 “`

(5)空判断 null
在数据库中,允许在数据添加是没有数据,使用空值来表示。 空值不等于0,也不等于‘’,需要使用特殊的判断方式.

  • 判断空值 is null
  • 判断非空值is not null

(6)查询结果排序
排序使用 order by 子句 asc(默认) 升序 / desc 降序
语法:select * from 表名 order by 列1 asc/desc [,列2 asc/desc,…]

多字段排序 可以对多个字段进行排序,只需将字段的排序方式依次写在 order by 后面即可,字段间使用逗号分隔

(7)分页查询
查询数据库时,由于数据较多,在显示过程中不可能将数据全部显示。 可以使用分页查询,只显示指定的一部分数据.
语法:select from 表名 limit start=0,count *

  • 从start开始,获取count条数据
  • start默认值为0
  • 需要获取数据的前n条的时候可以直接写 limit n
  • 查询第 N 页 M 条数据,可以通过公式算出:(N - 1) * M

(8)聚合函数
在MySQL中提供了一些定义好的函数,利用这些函数提供对数据的统计功能。
常用的聚合函数:

  • sun() 作用类型:数字 描述:对指定列中的所有非空值求总和;
  • avg() 作用类型:数字 描述:对指定列中的所有非空值求平均值;
  • min() 作用类型:数字、字符、datatime 描述:返回指定列中的最小数字、最早的日期或者最小的字符串;
  • max() 作用类型:数字、字符、datatime 描述:返回指定列中的最大数字、最近的日期或者最大的字符串;
  • count() 作用类型:任意基于行的数据类型 描述:统计结果集合中全部记录行的数量

(9) 分组
分组就是将相同数据放到一起进行处理。 单纯的分组是没有意义的,需要配合聚合函数一起使用。
语法: select 分组的字段名,聚合函数… from 表名 group by 分组字段名 having 分组后的条件

  • 多字段分组
    可以对多个字段进行分组,需要注意的是多字段时,只有对应字段完全相同,才能分为同一组
  • group_concat(字段名)
    作用:根据分组结果,使用group_concat()来获取分组中指定字段的集合
  • having条件子句
    having 作用和 where 类似,用来去分组数据进行筛选
  • 分组汇总with rollup
    作用:会在分组下方,加一行,显示汇总


2.多表查询数据

在数据库操作中,数据往往不是存在一张表中的,同一个项目中,根据设计范式,数据可能分散在不同的多张表中,这时查询数据时,就需要多表查询。

1> 普通多表查询(无意义)
作用:直接将表放在from后面,进行读取
语法:select 表名.字段 … from 表名1,表名2…

2>多表查询连接条件
在多表个表进行查询时,表与表之间应该是有有关系的,一般会以外键的形式来建立表间的关系。
语法:select 表名1.查询字段名,表名2.查询字段名 from 表名1,表名2 where 表名1.字段名 = 表名2.字段名;

3> 表别名
在多表操作时,由于表的名字比较长,在写SQL语句时非常不方便。可以在查询时,给表起个别名,代替表名来操作
语法: select 别名.字段名… from 表1 as 表1别名,表2 表2别名… [条件]

4> 内连接查询
作用:查询的结果为两个表匹配到的数据
语法: select * from 表1 inner join 表2 on 表1.列 运算符 表2.列;

注意:数据库默认的连接方式就是内连接查询, inner join 可以不显示的写出来。 连接条件使用 on 进行指定。尽量不要使用 where,where在其它连接方式时,指定的连接条件无效。

5>左连接查询
作用:查询的结果为根据左表中的数据进行连接,如果右表中没有满足条件的记录,则连接空值。
语法: select * from 表1 left join 表2 on 表1.列 运算符 表2.列;
<在实际工作中,右连接使用的非常少,因为左连接完全可以替代右连接,在连接过程中,只需要调整表的顺序即可。>

6> 子查询
作用:作用:在一个 select 语句中,嵌入了另外一个 select 语句, 那么被嵌入的 select 语句称之为子查询语句
语法: select * from 表1 where 条件 运算符 (select 查询);

  • 标量子查询
    作用:子查询返回的结果是一个数据(一行一列)
    语法:主查询 where 条件 比较运算符 (列子查询)

  • 列级子查询
    作用:子查询返回的结果是一列(一列多行)
    语法:主查询 where 条件 in (列子查询)

  • 行级子查询
    作用:子查询返回的结果是一行(一行多列)
    语法:主查询 where (字段1,2,…) = (行子查询)

7> 自动连接查询
作用:在查询数据时,只有一张表,查询时使用自己连接自己。
语法: select * from 表1 inner join 表1 on 表1.列 运算符 表1.列 where 条件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值