1.DQL语句

DQL:数据查询语言

操作对象:数据库记录

关键词:select

格式:select...from 表名 where 条件 group by 分组字段  having 条件 order by 排序字段 asc|desc

2.DQL查询

2.1 基本查询

[1]查询所有的商品

select * from products;

[2]查询商品名和商品价格

--查看指定的字段

--格式:select 字段名1,字段名2,...,字段名n from 表名;

select pname ,  price from products ;

[3]查询所有商品都有哪些价格

--去重操作:distinct

--格式:select distinct 字段名1,字段名2,...,字段名n  from 表名

select distinct price from products;

[4]将所有商品价格+10元进行显示。(别名)

--方式1:可以在查询的结果之上进行运算,该运算不影响数据库中的内容。

select price + 10 from products ;

---方式2:给列起别名

格式:字段名 [as] 别名,

SQL语句的书写方式大同小异,归类如下:

select price+10 新价格 from products;

select price+10 '新价格' from products;

select price+10 新  价  格 from products;【加空格将报错】

select price+10 '新  价  格' from products;

select price+10 `新  价  格` from products;

2.2 条件查询

[1]查询商品名称为十三香的商品所有信息

select * from products where pname='十三香';

[2]查询商品价格>60元的所有的商品信息

select * from products where price > 60;

[3]查询商品名称中包含“新”的商品

---模糊匹配

---格式:字段名 like "匹配规则";

---匹配内容%

"龙":值为龙

“%龙”:值以龙结尾

“龙%”:值以龙开头

“%龙%”:值包含龙

---匹配个数 like  "_ _"占两个位置

select * from products where pname like '%新%';

[4]查询价格为38,68,98的商品

select * from products where price =38 or price = 68 or price = 98;

select * from products where price in (38, 68,98);

2.3 总结

where后的条件写法:

*>,<,=,>=,<=,<>

*like使用占位符_和%,_表示一个字符,%表示任意个字符

select * from products where pname like '%新%';

*in在某个范围中获得值

select * from where products where pid in(2,5,8);

*between较小值 and 较大值

select * from products where pname between 50 and 70;

2.4 高级查询

[1]排序查询:

*查询所有的商品,按价格进行排序(asc---升序,desc---降序)

select * from products order by price;(默认按照升序排列)

select * from products order by price desc;(按照降序排列)

*查询名称有新的商品的信息并按价格降序排序。

select * from products where pname like '%新%' order by price desc;(按照降序排列)

[2]聚合函数:

聚合函数就是对一列数值进行计算,返回值将是计算的结果值。(会忽略null值)

*sum(),avg(),min().count()

*获得所有商品的价格的总和

select sum(price) from products;

*获得商品表中价格的平均数

select avg(price) from products;

四舍五入保留小数位:round(值,保留小数位)

select round(avg(price),2) from products;

*获得商品表中有多少条记录

select count(*) from products;

select count(pid) from products;

[3]分组:使用group by

*根据cno字段分组,分组后统计商品的个数。

select cno,count(*) from products group by cno;

*根据cno分组,分组后统计每组商品的总数量,并且总数量>200;

select cno,sum(pnum) from products group by cno;

select cno,sum(pnum) from products group by cno having sum(pnum) > 200;

注意:

where语句与having语句的区别

1.where是对分组前的数据进行过滤(在聚合前就对记录进行过滤);

having是对分组后的数据进行过滤(对分类后的结果再进行条件的过滤);

2.where后面不能使用聚合函数,但是having可以使用聚合函数。

3.在逻辑允许的情况下,我们尽可能使用where优先过滤记录,这样因为结果集减小,将对聚合的效率大大提高,最后再根据逻辑看是否使用having进行再过滤。


人的一生中,最光辉的一天并非是功成名就那天,而是从悲叹与绝望中产生对人生的挑战,以勇敢迈向意志那天。愿你就像早晨八九点钟的太阳,活力十足,永远年轻。

MySQL(5)-----DQL语句的基本查询与高级查询相关推荐

  1. MySQL之DQL(数据查询语言)- 表连接查询

    目录 一.简介 1.1.男生表 1.2.女生表 二.左连接查询(左外连接) 三.右连接查询(右外连接) 四.内连接查询 五.全连接查询 五.自连接查询 六.子查询 七.伪表查询 学习计划: 一.简介 ...

  2. mysql属于dql语句的是_4.MySql中的SQL语句(三):DQL

    DQL数据查询语言 数据库执行DQL语句不会对数据进行改变,而是让数据库发送结果集给客户端. 查询返回的结果集是一张虚拟表. 查询关键字:SELECT 语法:SELECT列名FROM表名 [WHERE ...

  3. mysql 最值复杂查询_MySQL高级查询

    我们使用SQL查询不能只使用很简单.最基础的SELECT语句查询.如果想从多个表查询比较复杂的信息,就会使用高级查询实现.常见的高级查询包括多表连接查询.内连接查询.外连接查询与组合查询等,今天我们先 ...

  4. mysql lambda查询_MySQL高级查询和编程基础

    学习概述 随着数据库管理信息系统的日益复杂和庞大,软件应用系统对数据库设计.数据存储.数据查询和数据维护等提出了更高的要求.本书主要介绍数据库设计的方法和技术.子查询技术.MySQL编程基础知识和存储 ...

  5. 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·010【高级查询】

    文章目录 一.分组函数(聚合函数) 1.介绍 2.格式 3.常用函数 (1).MIN函数.MAX函数 (2).SUM函数.AVG函数 (3).COUNT函数 4.group by子句 5.having ...

  6. mysql 层次化查询_SQL高级查询(层次化查询,递归)

    SQL 高级查询 层次化查询 层次化结构可以理解为树状数据结构,由节点构成.比如常见的组织结构由一个总经理,多个副总经理,多个部门部长组成.再比如在生产制造中一件产品会有多个子零件组成.举个简单的例子 ...

  7. mysql多类型查询_MYSQL中的多类型查询及高级查询操作

    离散查询 select * from car where price=30 or price=40 or price=50 or price=60; select * from car where p ...

  8. java高级查询_SQL高级查询(转载)

    transact---sql高级查询(下) 5:使用having关键字来筛选结果 6:使用compute和compute by子句 7:使用嵌套查询 8:分布式查询 E:使用having关键字来筛选结 ...

  9. mysql属于dql语句的是_mysql学习日记——DQL语句

    # # DQL:查询语句 select字段列表from表名列表where条件列表group by分组字段having分组之后的条件order by排序 limit 分页限定 基础查询: 1. 多个字段 ...

  10. mysql中grade字段降序排列_mysql高级查询

    [聚合函数] 统计记录的条数 select count(*) from 表名; 求某个字段所有值的总和 select sum(字段名) from 表名; 求某个字段所有值的平均值 select avg ...

最新文章

  1. 不能交换到解决jenkins用户的问题
  2. 黄雷:展开数据的翅膀,在更宽广的路上飞驰人生 | 提升之路系列(三)
  3. php定时爬虫,thinkphp5使用workerman定时器定时爬取站点内容的代码
  4. leetcode 212. Word Search II | 212. 单词搜索 II(Trie,回溯,DFS)
  5. 前端HTML5CSS3动画
  6. git pull不同步_git回退版本,再返回最新分支git pull失败的解决经验
  7. php create()方法,ThinkPHP中create()方法自动验证实例
  8. 设置MAC 下 Vim 语法高亮显示
  9. UCloud基于Linux内核新特性的下一代外网网关设计及相关开源工作
  10. (8). 使用JPA保存数据【从零开始学Spring Boot】
  11. 0x3a能否作为c语言常量,C语言编程遇到了宏定义的问题,求解答,万分感谢
  12. 反激式开关电源设计资料
  13. Ubuntu下全命令行部署Android模拟器
  14. C++ 图书馆管理系统
  15. linux平台基于python语言的MYO手环手势识别开发(二)
  16. 卫星高度角和方位角的计算
  17. 【全文翻译】YOLOv4:目标检测的最佳速度和准确性
  18. 明港镇计算机培训班,平桥区建筑工匠培训班在明港新集村开班
  19. unity_在canvas中修改text和text到底是什么
  20. CBM2198A - [2013-06-06]量产工具可用CBM2098_V6007工具解决

热门文章

  1. c语言如何交替打印大小写字母,C/C++语言实现两个线程交替打印奇偶数
  2. SpringBoot常见面试题总结一
  3. CentOS Linux解决Device eth0 does not seem to be pres
  4. Mac Appium 安装
  5. mysql 主从故障恢复
  6. 控制Arduino的利器-Windows Remote Arduino
  7. html list列表
  8. 部署war包到tomcat根目录
  9. Backup--BUFFERSIZE 和BUFFERCOUNT
  10. 网络基础知识(黑马教程笔记)-7-异步编程和Promise