查询的规律

查询语句限定条件越多,查询范围越小;

1.整个表

Select * From 库名.表名

2.整个表的某字段内

Select id From 库名.表名

3.整个表某字段的范围内

Select * From 库名.表名 Where id<50;

4.整个表某字段的范围内在限定条目数

Select * From 库名.表名 Where id<50 Limit 0,10;

总结:

范围的大小比较关系如下

1.>2.>3.>4.

Select指定表和字段查询范围

指定整个表

* 是通配符;

Select * From 库名.表名

指定某几个字段

Select id,name From 库名.表名

Where指定字段查询范围

Where 后面可以添加很多查询条件,常用的查询条件如下,在现实中具体使用哪种看应用场景;

运用关系运算符确定范围查询

操作符 描述 实例
= 等号,检测两个值是否相等,如果相等返回true (A = B) 返回false。
<>, != 不等于,检测两个值是否相等,如果不相等返回true (A != B) 返回 true。
> 大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true (A > B) 返回false。
< 小于号,检测左边的值是否小于右边的值, 如果左边的值小于右边的值返回true (A < B) 返回 true。
>= 大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true (A >= B) 返回false。
<= 小于等于号,检测左边的值是否小于于或等于右边的值, 如果左边的值小于或等于右边的值返回true (A <= B) 返回 true。

Example:

Select * From 库名.表名 Where id<50;

In 包含判断查询

select * from secondweek.test1_tb where id in(1,2);

id not in(1,2)不查括号里面包含的

select * from secondweek.test1_tb where id not in(1,2);

字符串包含 example:

select * from secondweek.test1_tb where addr in("北京");

Between X and Y符合连续数值范围内查询

select * from secondweek.test1_tb where id between 1 and 3;

Is NULL 空值判断查询

Mysql列中的空值(NULL)不同于0,也不同于空字符串;

可以使用 Not 关键字;

select * from secondweek.test1_tb where regTime is Null;

Distinct 去重查询

假设有多个重复,那么他留存唯一的标准是什么?留第一条;

使用distinct命令时需要放在查询条件的开头;

原本表结构:

select distinct password,email from secondweek.test1_tb;

去重后的表结构:

如果是使用了多个列字段,就根据一行与一行来比较,不是单个;如果只是单列去重,那么和Group By 字段名;没啥区别;

Group By 单列去重

单字段去重效果好,因为Group By sex, sex列就作为分组标准,男为一组,女为一组,结果就会只显示男、女两组。可以作为单列去重使用;

原表:

去重后:

select password,email from secondweek.test1_tb Group By password;

Distinct 去重后:

select Distinct password,email from secondweek.test1_tb;

Group By结合聚合统计函数\Having查询

Group By 字段; 这列字段就会被作为分组,不能有重复;分组之后可以求字段中最大、最小、平均值、每组数量...

example:

select Count(sex),sex from secondweek.test1_tb Group By sex;

结合Having 关键字:

Having 和 Where类似都是对查询结果进行过滤用;

区别在于,Having后面可以跟着聚合函数,而Where不能;

Having一般都和Group By一起使用,对分组后的结果进行过滤;

select Avg(salary),sex from secondweek.test1_tb Group By sex having Avg(salary)>=5900;

Like 模糊查询

模糊查询支持使用通配符;常用通配符有*%_、...

% example:

% 百分号通配符可以匹配任意长度的字符,包括空字符串;

# 知道固定头
select * from secondweek.test1_tb where username Like "zhao%"; # 知道固定尾
select * from secondweek.test1_tb where username Like "%qi";

模糊搜索example:

_ 单个字符匹配example:

_下划线通配符只能匹配单个字符,要想匹配多个,就得用多个下划线;

select * from secondweek.test1_tb where username Like "lis_";

And 并列多条件查询

Select * From 库名.表名 Where id<50 and sex=0;

Or 或条件查询

Select * From 库名.表名 Where name="lisi" or sex=0;

Limit 限定查询结果的数量

Select * From 库名.表名 Where id<50 Limit M[,N];

# M 是偏移变量,默认从0开始,如果指定查询结果为 lisi,wangwu,zhaoliu,chenqi,  lisi是0,如果M=2,就从zhouliu开始;
# N 是记录数,表示显示出几条数据;
Select * From 库名.表名 Where id<50 Limit 0,10;

复合条件查询

根据应用场景,将上述查询条件语句进行嵌套、并列一起使用,叫做复合条件查询;

# 聚合(统计)函数
> 列举一些常用聚合函数;一般和Order by 结合使用;

  • AVG() --- 求某一列平均值
  • COUNT() --- 统计总行数
  • SUM() --- 计算列总和
  • MIN() --- 求某一列的最小值
  • MAX() --- 求某一列的最大值

# Order By对查询结果排序
> 先确定以某列为基准进行排列;

可以使用Order By将某列定为基准,然后排序;

ASC 升序

select * from secondweek.test1_tb Order By salary ASC;

DESC 降序

select * from secondweek.test1_tb Order By salary DESC;

# 查询时使用别名
> as 可以省略;

为表取别名

查询时使用表名的别名,可以省略写全称的麻烦,在多表操作的时候需要写多个表名时,有点应用场景;

select id,username,password from secondweek.test1_tb as tb where tb.id > 2;

# or

select id,username,password from secondweek.test1_tb tb where tb.id > 2;

为字段取别名

原本查询出来的列名都是创建时定义好的,查询时可以使用别名展示出来;

表原来结构:

select id,username myuaer,password as ps from secondweek.test1_tb;

修改成别名展示:

mysql 单表下的字段操作_查询的更多相关文章

  1. mysql 单表下的字段操作

    如下只介绍单表的添加.更新.删除.查询表结构操作,查询数据操作范围太大用单独的篇幅来讲解: 查看表结构 desc test_tb; Insert 插入数据 插入 = 添加 为表中指定的字段插入数据 C ...

  2. MySQL单表多字段模糊查询

    今天工作时遇到一个功能问题:就是输入关键字搜索的字段不只一个字段,比如 我输入: 超天才 ,需要检索出 包含这个关键字的 name . company.job等多个字段.在网上查询了一会就找到了答案. ...

  3. python 3 mysql 单表查询

    python 3 mysql 单表查询 1.准备表 company.employee 员工id id int 姓名 emp_name varchar 性别 sex enum 年龄 age int 入职 ...

  4. Mysql 单表查询-排序-分页-group by初识

    Mysql 单表查询-排序-分页-group by初识 对于select 来说, 分组聚合(((group by; aggregation), 排序 (order by** ), 分页查询 (limi ...

  5. Mysql 单表查询where初识

    Mysql 单表查询where初识 准备数据 -- 创建测试库 -- drop database if exists student_db; create database student_db ch ...

  6. MySQL单表数据不超过500万:是经验数值,还是黄金铁律?

    今天,探讨一个有趣的话题:MySQL 单表数据达到多少时才需要考虑分库分表?有人说 2000 万行,也有人说 500 万行.那么,你觉得这个数值多少才合适呢? 曾经在中国互联网技术圈广为流传着这么一个 ...

  7. MySQL单表最大记录数不能超过多少?

    MySQL单表最大记录数不能超过多少? 很多人困惑这个问题.其实,MySQL本身并没有对单表最大记录数进行限制,这个数值取决于你的操作系统对单个文件的限制本身. 从性能角度来讲,MySQL单表数据不要 ...

  8. MySQL单表数据不要超过500万行:是经验数值,还是黄金铁律?

    本文阅读时间大约3分钟. 梁桂钊 | 作者 今天,探讨一个有趣的话题:MySQL 单表数据达到多少时才需要考虑分库分表?有人说 2000 万行,也有人说 500 万行.那么,你觉得这个数值多少才合适呢 ...

  9. MySQL单表最大限制

    想把一个项目的数据库导出来,然后倒入到自己熟悉的MySQL数据库中进行运行和调试.导出来后,发现sql文件整整有12G多大,忽然想起来,MySQL好像有个叫做容量限制的神奇特性,但是忘了上限是多少了, ...

随机推荐

  1. hdu3938 Portal

    Problem Description ZLGG found a magic theory that the bigger banana the bigger banana peel .This im ...

  2. hdu3506 Monkey Party

    Problem Description Far away from our world, there is a banana forest. And many lovely monkeys live ...

  3. 牛客练习赛70 D.数树 (模拟,STL)

    题意:每次有\(3\)中操作,对两个点连条边,删去某条边,或者问当前大小不为\(1\)的树的数量.连重边或者删去一条不存在的边,这样的白痴操作可以无视qwq. 题解:水题,用map存一下pair然后分 ...

  4. Drone构建失败,一次drone依赖下载超时导致构建失败的爬坑记录

    Once upon a time, birds were singing in the forest, and people were dancing under the trees, It's so ...

  5. C# 之 dynamic

    C#中的dynamic用于避免编译时类型检查,编译器在运行时获取类型. dynamic无法使用VisualStudio的intelliSense(智能感知),即调用dynamic修饰的对象的方法或字段 ...

  6. .net core面试题

    第1题,什么是ASP net core? 首先ASP net core不是 asp net的升级版本.它遵循了dot net的标准架构, 可以运行于多个操作系统上.它更快,更容易配置,更加模块化,可扩 ...

  7. 1.PowerShell DSC概述

    什么是PowerShell DSC DSC 是一个声明性平台,用于配置.部署和管理系统. PowerShell PowerShell 是构建于 .NET 上基于任务的命令行 shell 和脚本语言. ...

  8. 修改jpg的图片大小

    using System.Drawing.Imaging; public void ResizePic(string oldFilePath, int thumbnailImageWidth, int ...

  9. centos7+腾讯云服务器搭建wordpress

    title: centos7+腾讯云服务器搭建wordpress date: 2020-03-04 categories: web tags: [wordpress] 分两部分:1.搭建LEMP环境 ...

  10. CSS3实现 垂直居中 水平居中 的技巧

    1 1 1 How To Center Anything With CSS Front End posted by Code My Views 1 Recently, we took a dive i ...