select [distinct] * | 字段1,字段2,字段3...
from 表名
[where 条件表达式]
[group by 字段名] [having 条件表示式]
[order by 字段名] [asc | desc ]
[limit [offset] 记录数]

“distinct” 是可选参数,用于剔除查询结果中重复的数据。

4.1 简单查询

  ①查询所有字段 

#方法1
select 字段1,字段2,...,字段n from 表名 //所有字段
#方法2
select * from 表名

  注意:

  1、一般情况下,除非需要使用表中所有字段的数据,否则最好不要使用星号通配符,使用通配符虽然可以节省输入查询语句的时间,但由于获取的数据过多会降低查询的效率;

  2、对于字段显示的信息较多时,分号可以使用\G替换,显示更清晰。

  ②查询指定字段

select 字段1,字段2,... from 表名;//部分字段

4.2 按条件查询

  ①带关系运算符查询

select  * | 字段1,字段2,... from 表名  where  字段名 > | < | <= | >= | = |!= 字段值;

  ②带in关键字查询

select  * | 字段1,字段2,... from 表名 where 字段名 [not] in (值1,值2,值3,...);

  ③带between......and 关键字查询

select  * | 字段1,字段2,... from 表名 where 字段名 [not] between  值1  and  值2;  //值1和值2也包括在查询范围内

  ④空值查询

select  * | 字段1,字段2... from 表名  where 字段名 is [not] NULL;

  ⑤带distinct关键字查询

select  distinct  字段名 from 表名;                                      #只查询该字段中不重复的值
select distinct 字段名1,字段名2,... from 表名; #只有当所列字段值都相等时候才认定为重复数据

  ⑥带like关键字的查询

select * | 字段1,字段2,... from 表名  where 字段名 like "%值%";        #%匹配任意长度的字符串,包括空字符串
select * | 字段1,字段2,... from 表名 where 字段名 like "_值_"; #_匹配单个字符,若要匹配多个字符,需要使用多个_

  ⑦带and关键字的多条件查询

select  * | 字段1,字段2... from 表名  where 表达式1  and  表达式2;

  ⑧带or关键字的多条件查询

select  * | 字段1,字段2... from 表名  where 表达式1  or  表达式2;

  注意:

  or关键字和and关键字可以一起使用,需要注意的是,and的优先级高于or,因此当两者在一起使用时,应该先运算and两边的条件表达式,再运算or两边的条件表达式。

4.3 高级查询

  ①聚合函数

 count()  返回数据行数
sum() 返回某列值的和
max() 返回某列值的最大值
min() 返回某列值的最小值
avg() 返回某列值的平均值

  ②对查询结果排序

select  * | 字段1,字段2,... from 表名 where 表达式 order by 字段1[asc | desc] , 字段2[asc | desc] , ...;

  查询结果先按照字段1以规定的顺序进行排序,对于字段1值相同的数据,再按照字段2以规定的顺序进行排序。

  ③分组查询

select  * | 字段1,字段2,... from 表名 where 表达式 group by 字段1 , 字段2 , ... [having 条件表达式];

  注意:

  group by 一般和聚合函数在一起使用,如果查询的字段出现在group by之后,却没有包含在聚合函数中,该字段显示的是分组后的第一条记录的值;

  having关键字指定条件表达对分组后的内容进行过滤;

  ④limit限制查询结果的数量

select  * | 字段1,字段2,... from 表名 where 表达式 limit [offset]  每页显示的行数pagesize; 

  满足条件的数据可能很多,通过limit子句,限定返回的是哪些行的数据。减少数据的传输,便于用户查看数据。

  对于一个页面,每页显示的行pagesize一般为固定的。

  偏移量:偏移指定行之后,再开始显示。

  假设每页显示10行,当前页码为page

  显示第二页 偏移2-1页数据(2-1) *10 =10

  显示第三页 偏移3-1页数据(3-1) *10 =20

  第n页,偏前n-1页已经显示的内容。offset =(page -1 ) * pagesize

4.4 为表和字段取别名

  ①给表取别名

select * | 字段1,字段2,... from 表名 [as] 别名;

  ②给字段取别名

select  字段1 [as] 别名,字段2 [as] 别名,... from 表名;

MySQL----MySQL数据库入门----第四章 单表查询的更多相关文章

  1. 数据库开发-Django ORM的单表查询

    数据库开发-Django ORM的单表查询 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查询集 1>.查询集相关概述 查询会返回结果的集,它是django.db.mod ...

  2. mysql四-1:单表查询

    一 单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二 关键 ...

  3. Mysql(四)-1:单表查询

    一 单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二 关键 ...

  4. Python、mysql四-1:单表查询

    一 单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二 关键 ...

  5. 第二章 单表查询 T-SQL语言基础(1)

    单表查询(1) 本章:逻辑查询处理,特定的SELECT查询生成正确的结果集而要经历的一系列逻辑阶段;单表查询的其他方面,包括:运算符,空值(NULL),字符的处理和临时数据,分级(ranking),C ...

  6. 第二章 单表查询 T-SQL语言基础(3)

    单表查询(3) 2.6 处理字符数据 字符数据的查询处理,内容包括:类型,排序规则,运算符和函数,以及模式匹配. 2.6.1 数据类型 SQL Server支持两种字符数据类型----普通字符和Uni ...

  7. 第二章 单表查询 T-SQL语言基础(2)

    单表查询(2) 2.2 谓词和运算符 T-SQL有几种不同的语言元素可以指定逻辑表达式,例如,查询过滤器(WHERE和HAVING),CHECK约束,等等. 在逻辑表达式中可以使用各种谓词(取值为TR ...

  8. Mybatis入门(四)------联表查询

    Mybatis联表查询 一.1对1查询 1.数据库建表 假设一个老师带一个学生 CREATE TABLE teacher( t_id INT PRIMARY KEY, t_name VARCHAR(3 ...

  9. MySQL----MySQL数据库入门----第五章 多表操作

    5.1 外键 比如说有两个数据表,分别是学生信息表student和年级表grade.在student表中有存储学生年级的字段gid(外键),在grade表也有存储学生年级的字段id(主键),stude ...

随机推荐

  1. Java快速入门-03-小知识汇总篇(全)

    Java快速入门-03-小知识汇总篇(全) 前两篇介绍了JAVA入门的一系小知识,本篇介绍一些比较偏的,说不定什么时候会用到,有用记得 Mark 一下 快键键 常用快捷键(熟记) 快捷键 快捷键作用 ...

  2. unity材质球贴图滚动

       using System.Collections; using System.Collections.Generic; using UnityEngine; public class NewBe ...

  3. 使用Netty3或Netty4发布Http协议服务

    现在是2018年1月11日18:12分,已经是下班时间了,小Alan今天给大家简单的介绍一下Netty,让大家以后在使用到Netty的时候能够有一定的了解和基础,这样深入学习Netty以及以后灵活应用 ...

  4. 结合java的反射和泛型性质简化JDBC和相应的同步等服务器数据库操作代码

    github地址:https://github.com/hzphzp/HeartTrace_Server 我们的服务器端数据库并没有用sqllite, 而是直接用mysql,并且用JDBC直接进行操作 ...

  5. flask请求流程

  6. Azure School 终于上线了,物联网开发课程先走一波~

    要说目前最热门的技术是什么,物联网(IoT)肯定荣登榜首!老牌科技企业早已涉足,新晋初创公司层出不穷,就连很多传统企业也开始试水这一领域…… 物联网,说小其实挺小,工业仪表.汽车飞机,甚至家用电器,专 ...

  7. 【Oracle】锁表处理 SQL 错误: ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效

    问题描述有时候ORACLE数据的某些表由于频繁操作,而且比较大,会导致锁表(死锁). 问题分析(1)锁的分析ORACLE里锁有以下几种模式:0:none1:null 空2:Row-S 行共享(RS): ...

  8. scala当中的文件操作和网络请求

    1.读取文件当中每一行的数据 def main(args: Array[String]): Unit = { //注意文件的编码格式,如果编码格式不对,那么读取报错 val file: Buffere ...

  9. java多态-向上转型和向下转型

    向上转型:符合“is a”,是安全的,子类向上到父类,多余的属性和方法会丢弃 向下转型:不安全的,用instanceof提前判断一下,以免抛出异常 instanceof用法: result = obj ...

  10. JavaScript浏览器对象模型(BOM)之window对象

    一.BOM概述 BOM(Browser Object Model)浏览器对象模型,它提供了很多对象,用于访问浏览器的功能. BOM 缺少规范,每个浏览器提供商又按照自己想法去扩展它,那么浏览器共有对象 ...