MySql查询

单表查询:

  • 查询所有字段

    SELECT * FROM 表名;  '*' 代表所有字段
  • 查询指定字段

    SELECT 字段名1, 字段名2 FROM 表名;
  • 按照指定条件查询记录

    1. 	查询某条特定记录:
    SELECT * FROM 表名 WHERE 字段名 = '条件'; 2. 带 IN 关键字的条件查询:
    SELECT * FROM 表名 WHERE 字段名 IN ('范围');
    SELECT * FROM 表名 WHERE 字段名 NOT IN ('范围'); 3. 带 BETWEEN AND 关键字的调价查询:
    SELECT * FROM 表名 WHERE 字段名 BETWEEN '左范围' AND '右范围';
    SELECT * FROM 表名 WHERE 字段名 NOT BETWEEN '左范围' AND '右范围'; 4. 带 LIKE 关键字的模糊条件查询:
    " % " 表示比配任意长度的字符.
    " _ " 表示只能匹配一个长度的字符.
    SELECT * FROM 表名 WHERE 字段名 LIKE '条件 + 通配符';
    例子: SELECT * FROM student WHERE name LIKE 'B_B';
    查询名字以B开头以B结尾的只能是三个字符的记录
    SELECT * FROM student WHERE name LIKE 'B__B';
    查询名字以B开头以B结尾的只能是四个字符的记录
    SELECT * FROM student WHERE name LIKE 'B%B';
    查询名字以B开头以B结尾的可以是任意字符的记录 5. 带 AND 的多条件查询
    AND 相当于'逻辑与', 也就是说同时满足条件才算匹配
    SELECT * FROM 表名 WHERE 字段1 = '条件1' AND 字段2 > '条件2';
    同时满足条件一,条件二两个条件才能匹配 6. 带 OR 的多条件查询
    OR 相当于'逻辑或', 也就是说只要满足条件之一就可以匹配
    SELECT * FROM 表名 WHERE 字段1 = '条件1' or 字段2 = '条件2';
    满足条件1或者满足条件2即可匹配 7. 关键字 DISTINCT (查询结果不重复)
    SELECT DISTINCT 字段1 FROM 表名;
    有时多条记录的某一个字段可能值时重复的,但我们并不想要重复的数据.在字段名前加上 DISTINCT 即可 8. 分组查询:
    SELECT 字段1 FROM 表名 GROUP BY 字段1;
    解释:
    注意分组动作是查询后到记录后在进行的,所以不能字段1要么是 *, 要么分组字段名在前面已经被查询
    SELECT 字段1, COUNT(字段2), GROUP_CONCAT(字段2) FROM 表名 GROUP BY 字段1;
    解释:
    COUNT() 函数: 计算有多少条记录,
    GROUP_CONCAT() 函数: 将分组中的某个字段名显示出来
    SELECT 字段1,COUNT(字段2) FROM 表名 GROUP BY 字段1 HAVING COUNT(字段2) > 条件1;
    解释:
    分组之后还可以进行条件过滤, 将不想要的分组丢弃, 使用 HAVING 关键字.
    HAVING 和 WHERE 的区别: 前者是在分组后过滤, 后者是在分组前过滤
    9. 使用LIMIT限制查询结果的数量
    SELECT * FROM 表名 LIMIT 4;
    LIMIT [位置偏移量] [行数] SELECT * FROM 表名 LIMIT 4,5
    表示从第五条数据开始读, 往后读三条数据, 也就是读第五条到第八条.
    LIMIT 第一个参数不写默认就是0 需要两个参数才能确定一个取记录的范围. 10. 查询空值:
    SELECT * FROM 表名 WHERE 字段名 IS NULL;
    查询字段名是NULL的记录
    SELECT * FROM 表名 WHERE 字段名 IS NOT NULL;
    查询字段名不是NULL的记录

多表查询:

  • 普通双表连接查询

    SELECT s.字段名1, s.字段名2, f.字段名1, f.字段名2 FROM 表1 AS f, 表2 AS s WHERE 条件1
    解释:给表1建一个别名为f, 给表2建一个别名为s, 查询s表中的字段1,2 和 f表中的字段1,2 在满足条件1下 的所有记录
  • 内连接查询

    使用 表1 INNER JOIN 表2 ON 连接条件
    SELECT s.字段1 FROM 表1 AS s INNER JOIN 表2 as f ON f.字段1 = s.字段1
    解释:查询表1中的所有字段1和表2中的字段1相等的记录中的字段1 PS:自连接? : 涉及到的两张表都是同一张表.
    SELECT f2.字段1,f2.字段2 FROM 表1 AS f1 INNER JOIN 表1 as f2 ON f1.字段1 = f2.字段1 AND f1.字段1 = '条件1';
    查询表的字段1 = '条件1' 的其他记录
  • 外链接查询

    • 左连接

      使用 表1 LEFT JOIN 表2 ON 连接条件 格式
      SELECT s.字段1, f.字段1,f.字段2 FROM 表1 as s LEFT JOIN 表2 as f ON s.字段1 = f.字段1;
      解释:
      根据语序我们知道 表1 是在左面 JOIN 进表2的 所以在表1中 s.字段1 不等于 f.字段1 的记录也会被查询出来.只不过查询出来的f.字段1, f.字段2 值为 NULL
    • 右连接

      使用 表1 RIGHT JOIN 表2 ON 连接条件 格式
      SELECT s.字段1, f.字段1,f.字段2 FROM 表1 as s RIGHT JOIN 表2 as f ON s.字段1 = f.字段1;
      解释:
      和左连接差不多,只不过是右表的数据全部显示出来

常用函数:

  • SUM()

    SUM(字段名):求总和,返回指定列值的总和
  • COUNT()

    COUNT(*):计算表中的总行数
    COUNT(字段名):计算该字段名下的总行数,空值也就是 NULL 值不会记录
  • AVG()

    AVG(字段名):求平均值
  • MAX()

    MAX(字段名):求字段中最大的值
  • MIN()

    MIN(字段名):求字段中最小的值

MySQL查询(未完结)的更多相关文章

  1. 一篇文章让Oracle程序猿学会MySql【未完待续】

    一篇文章让Oracle DB学会MySql[未完待续] 随笔前言: 本篇文章是针对已经能够熟练使用Oracle数据库的DB所写的快速学会MySql,为什么敢这么说,是因为本人认为Oracle在功能性方 ...

  2. MySQL查询缓存详解

    一:缓存条件,原理 MySQL Query Cache是用来缓存我们所执行的SELECT语句以及该语句的结果集,MySql在实现Query Cache的具体技术细节上类似典型的KV存储,就是将SELE ...

  3. mysql 查询每个分组前N条记录

    mysql 查询每个分组前N条记录 假设存在表movie,  有字段 id, part(地区), mcount(观看次数) 现查询每个地区观看次数最多的3部movie, 则表 ###id虽未存在gro ...

  4. MYSQL查询操作 详细

    学习目标 1 掌握select查询所有字段.指定字段的数据 2 掌握消除重复行命令distinct 3 掌握as给字段.表起别名 4 掌握条件查询where后跟比较运算符.逻辑运算符的用法 5 掌握条 ...

  5. MYSQL查询语句大全集锦

    MYSQL查询语句大全集锦 1:使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 2:2.创建一个数据库MYSQLDATA mysql> C ...

  6. MySQL安装未响应解决方法

    安装MySQL出示未响应,一般显示在安装MySQL程序最后2步的3,4项就不动了. 这种情况一般是你以前安装过MySQL数据库服务项被占用了. 1.卸载MySQL 2.删除安装目录及数据存放目录 3. ...

  7. Mysql查询缓存研究

    转载声明:本文为DBA+社群原创文章,转载必须连同本订阅号二维码全文转载,并注明作者名字及来源:DBA+社群(dbaplus). http://mp.weixin.qq.com/s?__biz=MzI ...

  8. 数据库之MySQL查询

    查询 创建数据库.数据表 -- 创建数据库 create database python_test1 charset=utf8; -- 使用数据库 use python_test1; -- stude ...

  9. mysql查询、子查询、连接查询

    mysql查询.子查询.连接查询 一.mysql查询的五种子句 where子句(条件查询):按照“条件表达式”指定的条件进行查询. group by子句(分组):按照“属性名”指定的字段进行分组.gr ...

随机推荐

  1. Idea中更改主题后xml配置文件局部黄色背景颜色去除

    相信很多小伙伴和我一样一样的,喜欢更换Idea的主题,但是细心的小伙伴就发现了,每次更改主题后xml配置文件就会局部产生黄色背景颜色,对于强迫症患者真的是够了,网上也有部分文章,但是不够详细,也跟Id ...

  2. bzoj2959: 长跑(LCT+并查集)

    题解 动态树Link-cut tree(LCT)总结 LCT常数大得真实 没有环,就是\(lct\)裸题吧 有环,我们就可以绕环转一圈,缩点 怎么搞? 当形成环时,把所有点的值全部加到一个点上,用并查 ...

  3. 第八次 Scrum Meeting

    第八次 Scrum Meeting 写在前面 会议时间 会议时长 会议地点 2019/4/12 22:00 20min 大运村1号楼6F 附Github仓库:WEDO 例会照片 工作情况总结(4.12 ...

  4. UML-5-进化式需求

    1.需求管理定义 瀑布式式中,研发之前,完全定义和固化需求. 但,需求是不断变化的,你之前可能会有45%的需求,不会被使用到,经常使用到的只占20%左右. 因此,如何寻找这20%的需求,是重点.其方法 ...

  5. git特殊用法

    git stash的使用 1.当前分支写了一半的代码,需要切到其他分支修复bug或者完成优先级较高的任务时 git stash 暂存分支进度 git stash list 查看草稿区 git stas ...

  6. pycharm 工具栏Tool中找不到Run manager.py Task

    pycharm 工具栏Tool中找不到Run manager.py Task 在做Django项目的过程中, 无法进入pycharm提供的Run manager.py Task交互环境 出现这种问题是 ...

  7. es与hive整合

    在hive classpath中添加elasticsearch-hadoop.jar,以下方法任一种均可: 1.启动hiveserver2 前,在hive-site.xml文件中更改hive.aux. ...

  8. DP Intro - poj 1947 Rebuilding Roads(树形DP)

    版权声明:本文为博主原创文章,未经博主允许不得转载. Rebuilding Roads Time Limit: 1000MS   Memory Limit: 30000K Total Submissi ...

  9. WebViewJavascriptBridge详细使用 iOS与H5交互的方案

    WebViewJavascriptBridge详细使用 源网址: https://www.cnblogs.com/jiang-xiao-yan/p/5345755.html    前言 WebView ...

  10. Python学习-基础知识-2

    目录 Python基础知识2 一.二进制 二.文字编码-基础 为什么要有文字编码? 有哪些编码格式? 如何解决不同国家不兼容的编码格式? unicode编码格式的缺点 如何既能全球通用还可以规避uni ...