#简单查询

#查询表中的所有数据
SELECT * FROM test;

#查询表中的指定列的数据
SELECT cid,cname FROM test;

#过滤重复的数据
SELECT DISTINCT category FROM test;

# 给表起别名(只是显示名改变实际名称未改变)
SELECT * FROM test AS te;
SELECT * FROM test te;

#给表中的字段起别名;若有想加入的数据有空格需引号引起来
SELECT cname AS 商品名称,cprice AS 商品价格 FROM test;
SELECT cname 商品名称1,cprice '商品 价格1' FROM test;

#查询 语句中 可以直接进行数据运算
SELECT (1+1);

#查询商品名称和商品的价格涨价 商品价格+1000
SELECT * FROM test;
SELECT cname,cprice+1000 AS cprice FROM test;
SELECT cid+1000 FROM test;

#分页查询
# 只要查询前6条
SELECT * FROM test LIMIT 6;
# 分页查询 每页显示五条 查询第一页
SELECT * FROM test LIMIT 0,5;
# 分页查询 每页显示五条 查询第二页
SELECT * FROM test LIMIT 5,5;
# 分页查询 每页显示五条 查询第二页
SELECT * FROM test LIMIT 10,5;

# 模糊查询

# 查询商品名称以‘海澜’开头的商品信息 %表示多个字符
SELECT * FROM test WHERE cname LIKE '海澜%';

# 查询商品名称以‘海澜’开头且后方有两个字符的商品信息
SELECT * FROM test WHERE cname LIKE '海澜__';

# 查询商品名称有三个字符的商品信息 _表示单个字符
SELECT * FROM test WHERE cname LIKE '___';

#若需查询带有%字符的信息,可以加转译字符\或者自定义转译字符
SELECT * FROM test WHERE cname LIKE '%:%%' ESCAPE ':';

#条件查询
#在查询语法中可以在后方加入 逻辑约束条件; 确定查询范围

#查询商品名称为海澜之家的商品的所有的信息
SELECT * FROM test WHERE cname='海澜之家';
#查询价格为5000的商品
SELECT * FROM test WHERE cprice=5000;
#查询价格不为5000的商品
SELECT * FROM test WHERE cprice!=5000;
SELECT * FROM test WHERE cprice<>5000;
#查询价格大于500的商品
SELECT * FROM test WHERE cprice>500;
#查询价格10-1000之间的商品
SELECT * FROM test WHERE cprice>=10 && cprice<=1000;
SELECT * FROM test WHERE cprice BETWEEN 10 AND 100;
#查询价格是10或者是46元的商品
SELECT * FROM test WHERE cprice IN(19,46);
SELECT * FROM test WHERE cprice=19 OR cprice=5000;
#按分类的不同查询
SELECT * FROM test WHERE category IS NULL;# 是空
SELECT * FROM test WHERE category IS NOT NULL;# 是不空
SELECT * FROM test WHERE NOT(category IS NULL);#与上一条效果相同

#查询某范围内的数可以用in
SELECT * FROM test WHERE cid IN(1,2,3,4);

#查询两种不同类型的限制可以用or,若需要同时满足两种用and即可
SELECT * FROM test WHERE cid IN(1,2,3,4) OR cname LIKE ('___');

#排序查询 ASC 升序 DESC 降序

#升序查询
SELECT * FROM product ORDER BY price ASC;
#默认排序查询,默认升序
SELECT * FROM product ORDER BY price;
#降序查询
SELECT * FROM product ORDER BY price DESC;

#显示价格 去掉重复的价格 并依照价格降序
SELECT DISTINCT price FROM product ORDER BY price DESC;

#对文本类型的分类也可以进行降序排序,不过规则不同
SELECT * FROM product ORDER BY category_id DESC;

#聚合(函数)查询

#count 统计指定列不为null 行数,不建议用COUNT(*),如果有需要用COUNT(1)效率高;
SELECT COUNT(cname) FROM test;

#sum 指定列的数值和 如果指定的列不是数值类型 结果为0
SELECT SUM(cprice) FROM test;

#max指定列的最大值 如果指定的列是字符串类型 使用字符串排序运算
SELECT MAX(cprice) FROM test;

#min指定列的最小值 如果指定的列是字符串类型 使用字符串排序运算
SELECT MIN(cprice) FROM test;

#avg 平均值 如果指定的列不是数值类型 那么计算结果为零
SELECT AVG(cprice) FROM test;

#查询分别满足条件的值
#select count(字段|*),sum(字段),max(字段),min(字段),avg(字段)from 表名;
SELECT COUNT(cprice),SUM(cprice),MAX(cprice),MIN(cprice),AVG(cprice) FROM test;

#分类查询

#按商品的类别进行分组 统计各个分类商品的个数
SELECT category_id,COUNT(*) FROM product GROUP BY category_id;

#按商品的类别进行分组 统计各个分类商品的平均价格
SELECT category_id,AVG(price) FROM product GROUP BY category_id;

#where 用于分组前进行条件过滤
#having 用于分组后 对分完组的数据进行过滤

# 先按商品的类别分组 统计各个分组商品的个数 只查询每组商品大于200的商品
SELECT category_id,COUNT(*) FROM product WHERE price>200 GROUP BY category_id;

# 先按商品的类别分组 统计各个分组商品的个数 只显示统计个数等于三的信息
SELECT category_id,COUNT(*) FROM product GROUP BY category_id HAVING COUNT(*)=3;

#连接查询

#内连接,查询的数据在多个有关联的表中
SELECT cgtable.cid,test.cname,test.category
FROM test INNER JOIN cgtable#确定连接方式,inner为内连接,outer为外连接
ON test.cid=cgtable.cid;#确定连接条件

#外连接,又分为(左)右连接查询方式与内相同但结果记录不同
SELECT cgtable.cid,test.cname,test.category
FROM test LEFT JOIN cgtable
ON test.cid=cgtable.cid;

#在内连接中不满足条件的数据不显示,外连接则可以显示
#不过依据左右连接的不同,保留的数据不同,没有的数据显示为null

#自连接,可视为对两个相同的表进行连接查询
SELECT t.cid,t.cname,s.category
FROM test AS t,test AS s
WHERE t.cid=s.cid;

#等值连接,效果与内连接相同
SELECT cgtable.cid,test.cname,test.category
FROM test,cgtable
WHERE test.cid=cgtable.cid;

#非等值连接,返回所有匹配记录,所得行数=表a的行数*表b的行数
SELECT cgtable.cid,test.cname,test.category
FROM test,cgtable;

#子查询,即在WHERE内部嵌套另一个查询条件
SELECT cgtable.cid,test.cname,test.category
FROM test,cgtable
WHERE test.cid=(SELECT cid FROM test WHERE cid=4);

MYSQL中的主要查询方法的更多相关文章

  1. sql判断以逗号分隔的字符串中是否包含某个字符串--------MYSQL中利用select查询某字段中包含以逗号分隔的字符串的记录方法

    sql判断以逗号分隔的字符串中是否包含某个字符串---------------https://blog.csdn.net/wttykj/article/details/78520933 MYSQL中利 ...

  2. mysql中的模糊查询

    转载自:http://www.letuknowit.com/archives/90/ MySQL中实现模糊查询有2种方式:一是用LIKE/NOT LIKE,二是用REGEXP/NOT REGEXP(或 ...

  3. MySQL中的模糊查询和通配符转义

    MySQL中实现模糊查询有2种方式:一是用LIKE/NOT LIKE,二是用REGEXP/NOT REGEXP(或RLIKE/NOT RLIKE,它们是同义词). 第一种是标准的SQL模式匹配.它有2 ...

  4. MySQL中的模糊查询 like 和 Oracle中的 instr() 函数有同样的查询效果

    注:MySQL中的模糊查询 like 和 Oracle中的 instr() 函数有同样的查询效果: 如下所示: MySQL: select * from tableName where name li ...

  5. mysql中RAND()随便查询记录效率问题和解决的方法分享

    在我们做开发的中效率一直是个问题,特别是对于非常多大数据量操作,今天我们碰到一个要随机查询数据,一開始我们可能想到最简单的order by rand() 来操作但效率不敢恭维啊 近期因为须要大概研究了 ...

  6. mysql中删除binlog的方法?mysql中如何删除binlog?

    需求描述: 在mysql中如何删除binlog,因为随着数据库的运行,mysql中产生的binlog会越来越大,有可能把磁盘撑爆了,所以记录下删除 binlog的方法. 操作过程: 1.通过系统参数控 ...

  7. 在MySQL中使用explain查询SQL的执行计划

    1.什么是MySQL执行计划 要对执行计划有个比较好的理解,需要先对MySQL的基础结构及查询基本原理有简单的了解. MySQL本身的功能架构分为三个部分,分别是 应用层.逻辑层.物理层,不只是MyS ...

  8. elasticsearch 7.x 如何满足mysql中的模糊查询功能(like)

    业务场景:筛选项原功能是用mysql左模糊进行过滤查询,现业务要用es,怎么样才能满足原功能,又不损性能. elasticsearch中有关于模糊查询的操作:wildcard 文档:https://b ...

  9. 如何在MySQL中使用explain查询SQL的执行计划?

    1.什么是MySQL执行计划 要对执行计划有个比较好的理解,需要先对MySQL的基础结构及查询基本原理有简单的了解. MySQL本身的功能架构分为三个部分,分别是 应用层.逻辑层.物理层,不只是MyS ...

随机推荐

  1. Windows平台下Oracle 11g R2监听文件日志过大,造成客户端无法连接的问题处理

    近期部署在生产环境的应用突然无法访问,查看应用日志发现无法获取数据库连接. SystemErr R Caused by: oracle.net.ns.NetException: The Network ...

  2. CSS 样式的优先级小结

    1. 同一元素引用了多个样式时,排在后面的样式属性的优先级高 例如,下面的 div,同时引用了 [.default] 和 [.user] 中的样式,其中 [.user] 样式中的 width 属性会替 ...

  3. Entityframework Code First 系列

    总篇, 下面会添加每个小篇的链接. 目录如下: 项目搭建 ……

  4. php函数的定义和声明

    1.函数的定义 函数是一个被命名的独立的代码段,它执行特定任务,并可以给调用它的程序返回值. 2.函数的优点 提高程序的重用性 提高程序的可维护性 可以提高软件的开发效率 提高软件的可靠性 控制程序的 ...

  5. [ NOI 2001 ] 食物链

    \(\\\) Description 有三类动物 \(A,B,C\),满足\(A\) 吃 \(B\),\(B\)吃 \(C\),\(C\) 吃 \(A\). 现有 \(N\) 个动物,以 \(1 - ...

  6. [ SPOJ PT07J ] Query on a tree III

    \(\\\) Description 其实这题才是正版的 Qtree3...... 给定 \(n\) 个点,以 \(1\) 号节点为根的树,点有点权. \(m\) 次询问 以 \(x\) 为根的子树内 ...

  7. poj1787 Charlie's Change

    思路: 完全背包,记录路径. 实现: #include <bits/stdc++.h> using namespace std; const int INF = 0x3f3f3f3f; ] ...

  8. Protocol(协议)

    Protocol(协议) (一) (1)简介 1.Protocol:就一个用途,用来声明一大堆的方法(不能声明成员变量),不能写实现.看起来类似于一个类的接口, 不同的是协议没有父类,也不能定义实例变 ...

  9. sql IIF函数的应用

    工作中由于用各种框架,业务也不是很复杂,一直没怎么写过复杂的sql,今天写了一个 数据如下 代码如下 Sub 班级分数等级分析(shname) Dim Con As Object, rs As Obj ...

  10. nodejs连接数据库

    var express = require("express");var query = require("querystring");var mysql = ...