查询的规律

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

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. 【noi 2.5_1789】算24(dfs)

    最开始我想的是全排列+枚举符号和括号的方法,但是我自己倒腾了很久还是打不对,只好向他人请教.正解很机智--直接随意将几个数"捆绑"在一起,值存在其中一个数上,其他数标记不可再选,直 ...

  2. poj 2653 线段相交裸题(解题报告)

    #include<stdio.h> #include<math.h> const double eps=1e-8; int n; int cmp(double x) { if( ...

  3. 轻松理解 Java开发中的依赖注入(DI)和控制反转(IOC)

    前言 关于这个话题, 网上有很多文章,这里, 我希望通过最简单的话语与大家分享. 依赖注入和控制反转两个概念让很多初学这迷惑, 觉得玄之又玄,高深莫测. 这里想先说明两点: 依赖注入和控制反转不是高级 ...

  4. 【POJ 1148】Utopia Divided

    Utopia Divided 题目链接:POJ 1148 题目大意 在一个坐标系中,一个点一开始在原点,然后被要求每次走到一个规定的象限内. 你有一些互不相同的数,每次你可以选每选过的两个,正负性可以 ...

  5. 【转】Docker 核心技术与实现原理

    转自:https://draveness.me/docker 提到虚拟化技术,我们首先想到的一定是 Docker,经过四年的快速发展 Docker 已经成为了很多公司的标配,也不再是一个只能在开发阶段 ...

  6. OpenStack Train版-5.安装nova计算服务(控制节点)

    nova计算服务需要在 控制节点 和 计算节点 都安装 控制节点主要安装 ​ nova-api(nova主服务)​ nova-scheduler(nova调度服务)​ nova-conductor(n ...

  7. Linux-平均负载指数

    目录 系统平均负载 什么是平均负载 平均负载多少合理 如何观察平均负载 平均负载和CPU的使用率的区别 平均负载分析 执行CPU密集型任务 执行I/O密集型任务 大量进程调度 关于平均负载的总结 系统 ...

  8. leetcode_二叉树篇_python

    主要是深度遍历和层序遍历的递归和迭代写法. 另外注意:因为求深度可以从上到下去查 所以需要前序遍历(中左右),而高度只能从下到上去查,所以只能后序遍历(左右中). 所有题目首先考虑root否是空.有的 ...

  9. 数据分析常用库(numpy,pandas,matplotlib,scipy)

    概述 numpy numpy(numeric python)是 python 的一个开源数值计算库,主要用于数组和矩阵计算.底层是 C 语言,运行效率远高于纯 python 代码.numpy主要包含2 ...

  10. npm ip

    npm ip webpack $ ip address var ip = require('ip'); ip.address() // my ip address ip.isEqual('::1', ...