#简单查询

#查询表中的所有数据
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. CentOS环境下下调整home和根分区大小

    项目建设方给提供了3台CentOS的服务器,连接进去之后发现磁盘空间很大,但是都放在了home目录下,所以需要调整一下. 1.查看磁盘使用情况 [root@CentOS ~]# df -h Files ...

  2. 【Linux】Ubuntu下C语言访问MySQL数据库入门

    使用的系统是Ubuntu 11.10.数据库是MySQL. MySQL数据库环境配置 首先需要安装MySQL客户端和服务器,命令行安装方式为: sudo apt-get install mysql-s ...

  3. Win10 “此环境变量太大。此对话框允许将值设置为最长2047个字符。" 解决方法。

    打开注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment 双击右边的 Path (RE ...

  4. iOS布局分类

    1.线性布局: 2.集合布局: 3.单元布局: 需要考虑因素: 空间充足.空间不足时内容.尺寸的取舍.

  5. Spring框架系列(三)--Bean的作用域和生命周期

    Bean的作用域 Spring应用中,对象实例都是在Container中,负责创建.装配.配置和管理生命周期(new到finalize()) Spring Container分为两种: 1.BeanF ...

  6. 计算机网络(四)--全世界最好的TCP基础知识讲解

    TCP传输的数据单元是报文段,报文段分为首部.数据两部分 TCP首部 首部的前20字节是固定长度,后面的4n字节根据需要增加的选项 字段解释:图中标示单位为bit,不是byte 1.源端口.目的端口: ...

  7. 06C语言运算符

    C语言运算符 算术运算符 运算符 描述 + 把两个操作数相加 - 从第一个操作数中减去第二个操作数 * 把两个操作数相乘 / 分子除以分母 % 取模运算符,整除后的余数 ++ 自增运算符,整数值增加 ...

  8. HDU多校Round 6

    Solved:2 rank:452 I. Werewolf 没有铁人 找铁狼 如果一个环中只有一条狼人边那个人就是铁狼 说铁狼是好人的人也是铁狼 #include <bits/stdc++.h& ...

  9. POJ2152 Fire (树形DP)

    题意:n个城市n-1条边 组成一棵树 在每个城市修建消防站会有一个花费costi 每个城市能防火当且仅当地图上距离他最近的消防站距离小于di   问如何修建消防站 使地图上所有的城市都有预防火灾的能力 ...

  10. 3D NAND闪存是个啥?让国内如此疯狂

    Repost: https://news.mydrivers.com/1/477/477251.htm 上个月底武汉新芯科技主导的国家级存储器产业基地正式动工,在大基金的支持下该项目将投资240亿美元 ...