mysql数据库 数据查询闯关(头哥)
第1关:简单的单表查询
本关任务:查询PetStore数据库中用户表account中的用户编号是u0001的用户姓名fullname和电话号码phone。
其中account表结构如下:
相关知识
为了完成本关任务,你需要掌握:select。
语法格式:
SELECT [ALL | DISTINCT] 输出列表达式, ...
[FROM 表名1 [ , 表名2] …] /FROM子句/ [WHERE 条件] /WHERE子句/ [GROUP BY {列名 | 表达式 | 列编号}
[ASC | DESC], ... /* GROUP BY 子句*/
[HAVING 条件] /* HAVING 子句*/
[ORDER BY {列名 | 表达式 | 列编号}
[ASC | DESC] , ...] /ORDER BY子句/ [LIMIT {[偏移量,] 行数|行数OFFSET偏移量}] /LIMIT子句/
顺序严格地排序。例如,一个HAVING子句必须位于GROUP BY子句之后,并位于ORDER BY子句之前。
首先他要求市查询用户表account中的用户编号是u0001的用户姓名fullname和电话号码phone。
这是有条件的查询字段;由于他的用户编号是"u0001",所以应该是这样
第2关:定义列别名
任务描述
本关任务:查询PetStore数据库account表中所有女性用户的姓名和email,结果中列的标题定义为“姓名”、“电子邮箱”。
其中account表结构如下:
####相关知识
为了完成本关任务,你需要掌握:select语句。
语法格式:
SELECT column_name [AS] column_alias
思路:这个可以这么理解你 首先确定表-> 确定条件->查找数据(如果设置别名用as别名)
测试如下:
第3关:case
任务描述
本关任务:查询PetStore数据库product商品表中商品名称和数量,对其库存数量按以下规则进行替换:若数量小于5,替换为“需进货”;若数量在5-50之间,替换为“库存正常”;若数量大于50,替换为“库存积压”。列标题更改为“库存”。
其中product表结构如下:
相关知识
为了完成本关任务,你需要掌握:select语句。
语法格式:
CASE
WHEN 条件1 THEN 表达式1
WHEN 条件2 THEN 表达式2
……
ELSE 表达式
END
思路:
这个的话按照语法格式来:
注:select 字段1,字段2,#这里最后一个一定要记得加上,
end as 别名
测试如下:
第4关:计算列值
任务描述
本关任务:查询PetStore数据库lineitem订单详情表中每种商品在每个订单中的总价。
其中lineitem表结构如下:
####相关知识
为了完成本关任务,你需要掌握:select语句。
语法格式:
SELECT 计算列值的表达式1 [ , 计算列值的表达式2 ]
思路:这个也比较简单,按照语法格式来写
这里的话由于他是要你来求它的总量,那么你就要单价x数量得到总价,
测试如下
第5关:消除结果集重复行
任务描述
本关任务:查询PetStore数据库account用户表中的用户地址address,注意重复的不显示。
其中account表结构如下:
####相关知识
为了完成本关任务,你需要掌握:select语句。
语法格式:
SELECT [ALL | DISTINCT] 输出列表达式, ...
[FROM 表名1 [ , 表名2] …] /FROM子句/ [WHERE 条件] /WHERE子句/ [GROUP BY {列名 | 表达式 | 列编号}
[ASC | DESC], ... /* GROUP BY 子句*/
[HAVING 条件] /* HAVING 子句*/
[ORDER BY {列名 | 表达式 | 列编号}
[ASC | DESC] , ...] /ORDER BY子句/ [LIMIT {[偏移量,] 行数|行数OFFSET偏移量}] /LIMIT子句/
注:顺序严格地排序。例如,一个HAVING子句必须位于GROUP BY子句之后,并位于ORDER BY子句之前
思路:这个主要用到distinct这个去除重复;
测试如下:
第6关:聚合函数
任务描述
本关任务:
1.查询PetStore数据库中所有用户数(通过查询account表的行数可以确定用户数)。
2.查询商品表product中每种商品的平均标价和平均进价。
3.查询所有商品总数量(通过查询product表的qty列数值的总和可以确定商品总数量)。
其中account表结构如下:
product表结构如下:
####相关知识
为了完成本关任务,你需要掌握:select语句。
语法格式:
1.COUNT ( { [ ALL | DISTINCT ] expression } | * )
其中,expression是一个表达式,其数据类型是除BLOB或TEXT之外的任何类型。ALL表示对所有值进行运算,DISTINCT表示去除重复值,默认为ALL。使用COUNT(*)时将返回检索行的总数目,不论其是否包含 NULL值。
2.MAX和MIN分别用于求表达式中所有值项的最大值与最小值,语法格式为:
MAX / MIN ( [ ALL | DISTINCT ] expression )
其中,expression是常量、列、函数或表达式,其数据类型可以是数字、字符和时间日期 类型。
3.SUM和AVG分别用于求表达式中所有值项的总和与平均值,语法格式为:
SUM / AVG ( [ ALL | DISTINCT ] expression )
其中,expression是常量、列、函数或表达式,其数据类型只能是数值型。
思路:
因为他查询的是所有用户数所以count(*),然后用avg和sum聚合函数分别求平均值和总和.很简单
第7关:where子句
任务描述
本关任务:
1.查找订单表orders中订单金额(totalprice)大于300的所有订单的用户号(userid)、订单金额(totalprice)和订单状态(status)。
2.在订单表orders中查找用户号(userid)为u0003号顾客的所有订单情况。
3.在用户表account中查找所有地址address是’广东深圳市’的女性用户信息。
4.在用户表account中查找所有姓刘的用户的电话号码和地址。
5.在商品表product中查找标价listprice在1000-2000之间的商品信息。
6.在用户表account中查找地址address不是’广东广州市’的用户信息。
其中orders表结构如下:
account表结构如下:
product表结构如下:
表中的数据如下:
相关知识
为了完成本关任务,你需要掌握:where
语法
1.WHERE子句必须紧跟FROM子句之后,在WHERE子句中,使用一个条件从FROM子句的中间结果中选取行。其基本格式为:
WHERE 列 运算符 值
2.逻辑运算:
通过逻辑运算符(AND、OR、XOR和NOT)组成更为复杂的查询条件。逻辑运算操作的结果是“1”或“0”,分别表示“true”或“false”。
思路:
写这个不能急要理清思路;否则越写越烦躁;
首先1,他是要求orders中totalprice大于300的所有订单所以where后面就是totalprice大于300
然后就很简单.
2,这个很简单有条件的在表中查询
3,这个稍微加了一点难度,多条件查询,记住中间用and,or之一,
4,这个用到了模糊查询like记住它的格式
select 字段1...from 表名 where 字段 like 条件
like中%是代表多个字符,_代表一个字符
5,between and 记住数字放两边左边小右边大就OK
6,不是用的是<>或者!=都可以
测试如下:
第8关:多表查询1
任务描述
本关任务:查找用户号是’u0003’号顾客的姓名和所有订单的订单号、订单总价。
其中orders表结构如下:
account表结构如下:
####相关知识
为了完成本关任务,你需要掌握:select多表查询。
语法
SELECT的查询对象由FROM子句指定,其格式为:
FROM 表名1 [ [AS] 别名1 ] [ , 表名2[ [AS] 别名2]] … /查询表/
- | JOIN子句 /连接表/ ● 引用单个表的两种方式:
可以用两种方式引用一个表,第一种方式是使用USE语句让一个数据库成为当前数据库,在这种情况下,如果在FROM子句中指定表名,则该表应该属于当前数据库。第二种方式是指定的时候在表名前带上表所属数据库的名字。例如,假设当前数据库是db1,现在要显示数据库db2里的表tb的内容,使用如下语句:
SELECT * FROM db2.tb;
当然,在SELECT关键字后指定列名的时候也可以在列名前带上所属数据库和表的名字,但是一般来说,如果选择的字段在各表中是唯一的,就没有必要去特别指定。
思路:这是一个简单的多表查询
很简单,记住防止有重复数据jiuok所以where后面要加上表1的id=表二的id,对应一下去掉重复
第9关:多表查询2
任务描述
本关任务:显示订单详情表lineitem中所有订单的订单编号orderid,商品名称name和购买数量quantity。
其中lineitem表结构如下:
product表结构如下:
####相关知识
为了完成本关任务,你需要掌握:select多表查询。
语法
SELECT的查询对象由FROM子句指定,其格式为:
FROM 表名1 [ [AS] 别名1 ] [ , 表名2[ [AS] 别名2]] … /查询表/
- | JOIN子句 /连接表/ ● 引用单个表的两种方式:
可以用两种方式引用一个表,第一种方式是使用USE语句让一个数据库成为当前数据库,在这种情况下,如果在FROM子句中指定表名,则该表应该属于当前数据库。第二种方式是指定的时候在表名前带上表所属数据库的名字。例如,假设当前数据库是db1,现在要显示数据库db2里的表tb的内容,使用如下语句:
SELECT * FROM db2.tb;
当然,在SELECT关键字后指定列名的时候也可以在列名前带上所属数据库和表的名字,但是一般来说,如果选择的字段在各表中是唯一的,就没有必要去特别指定。
测试如下:
第10关:多表查询进阶版1
任务描述
本关任务:查找单个订单中订购数量大于5的用户名,订单id和商品名。
其中orders表结构如下:
account表结构如下:
product表结构如下:
lineitem表结构如下:
####相关知识
为了完成本关任务,你需要掌握:select多表查询。
语法
SELECT的查询对象由FROM子句指定,其格式为:
FROM 表名1 [ [AS] 别名1 ] [ , 表名2[ [AS] 别名2]] … /查询表/
- | JOIN子句 /连接表/ ● 引用单个表的两种方式:
可以用两种方式引用一个表,第一种方式是使用USE语句让一个数据库成为当前数据库,在这种情况下,如果在FROM子句中指定表名,则该表应该属于当前数据库。第二种方式是指定的时候在表名前带上表所属数据库的名字。例如,假设当前数据库是db1,现在要显示数据库db2里的表tb的内容,使用如下语句:
SELECT * FROM db2.tb;
当然,在SELECT关键字后指定列名的时候也可以在列名前带上所属数据库和表的名字,但是一般来说,如果选择的字段在各表中是唯一的,就没有必要去特别指定。
测试如下:
mysql数据库 数据查询闯关(头哥)相关推荐
- MySQL数据库——数据查询(三)
目录 一.单表查询 1.选择字段 1.1.查询指定字段 1.2.查询所有字段 1.3.查询经过计算的值 1.4.定义字段的别名 2.选择指定记录 2.1.比较大小 2.2.带BETWEEN...AND ...
- java查询mysql装载bean_jsp与javabean链接mysql数据库并查询数据表的简单实例源码
jsp与javabean链接mysql数据库并查询数据表的简单实例源码.这个简单的实例是给新手学习的,或者一些高手临时忘记怎么使用jsp操作mysql数据库时候查找的,包括了建立mysql数据库连接的 ...
- php 查看mysql连接数据库_php基础之连接mysql数据库和查询数据
php基础之连接mysql数据库和查询数据 文章主要介绍了php连接mysql数据库和查询数据的方法和示例,需要的朋友可以参考下,就跟随百分网小编一起去了解下吧,想了解更多相关信息请持续关注我们应届毕 ...
- php如何查询数据库,如何在php中查询mysql数据库数据
如何在php中查询mysql数据库数据 发布时间:2020-07-21 09:23:55 来源:亿速云 阅读:81 作者:Leah 本篇文章给大家分享的是有关如何在php中查询mysql数据库数据,小 ...
- php查询mysql数据库_php中如何查询mysql数据库数据?
php中查询mysql数据库数据的方法:首先用navicat新建数据库并建表:然后添加数据并与数据库连接:接着用[mysql_select_db]函数选择要查询的数据库:最后将文件在浏览器中打开即可. ...
- Mysql数据库数据拆分之分库分表总结
Mysql数据库分库和分表方式,涉及到mysql数据库相关知识,对mysql数据库分库分表相关知识感兴趣的朋友一起学习吧 分库 场景: 分表能够解决单表数据量过大带来的查询效率下降的问题,但是,却无法 ...
- MySQL——MySQL的数据查询功能
MySQL的数据查询功能 SQL查询的7个关键词--以链家二手房数据为例 在实际工作中,使用最多的就是数据库的查询功能了.在数据查询过程中,通常会用到以下7个核心关键词: SELECT <sel ...
- 查询 oracle_关于oracle和mysql数据库的查询问题
近期在写mysql数据库报表时,需要给查询排序后的数据增加一列序号,用来统计查询数据的排名,在这里遇到一个视图和排序冲突的问题. Part 1 在oracle数据库中可以直接给查询语句增加一列ROWN ...
- 基于springboot项目中使用docker-compose+es+kibana+logstash+mysql 提高数据查询效率
基于springboot项目中使用docker-compose+es+kibana+logstash+mysql 提高数据查询效率 1.拉取logstash,kibana,es,mysql镜像 #命令 ...
最新文章
- JavaScript引擎V8 5.1遵循了更多的ECMAScript规范并支持WASM
- 797C C. Minimal string
- 视觉SLAM总结——视觉SLAM十四讲笔记整理
- python数据库密码如何加密_MySQL怎么设置密码
- 2018到2008,10年CVPR/NIPS/ECCV/ICML顶会精选论文+代码集合资源
- vue - blog开发学习3
- java redis 数据自过期_Java架构-Redis的内存回收策略和Key过期策略,看这篇就够了...
- ASP.NET Core 中的管道机制
- SAP License:SAP IDES常用功能及测试环境
- [转载]用户(User)和用户组(Grou…
- 编程获取中国股市行业分类并作图--使用python、tushare、pyecharts实现
- powerbi导入地图_在Microsoft Power BI中创建地图的10种方法
- “无法访问 您可能没有权限使用网络资源”解决办法
- 【数字化常识】有关专利分析的一二事
- 云计算技术实际上就是计算机网络的,浅析计算机网络的云计算技术.doc
- Verilog 按键消抖的一些分析和想法
- 模拟电话交换机和IPPBX之间进行连接
- 【错误解决】SELECT list is not in GROUP BY clause and contains nonaggregated column
- 数商云工业制造行业B2B电商平台解决方案
- Android集成百度人脸识别(一)基础版SDK