本关任务:查询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",所以应该是这样
任务描述
本关任务:查询PetStore数据库account表中所有女性用户的姓名和email,结果中列的标题定义为“姓名”、“电子邮箱”。
其中account表结构如下:
为了完成本关任务,你需要掌握:select语句。
语法格式:
SELECT column_name [AS] column_alias
思路:这个可以这么理解你 首先确定表-> 确定条件->查找数据(如果设置别名用as别名)
测试如下:
任务描述
本关任务:查询PetStore数据库product商品表中商品名称和数量,对其库存数量按以下规则进行替换:若数量小于5,替换为“需进货”;若数量在5-50之间,替换为“库存正常”;若数量大于50,替换为“库存积压”。列标题更改为“库存”。
其中product表结构如下:
相关知识
为了完成本关任务,你需要掌握:select语句。
语法格式:
CASE
WHEN 条件1 THEN 表达式1
WHEN 条件2 THEN 表达式2
……
ELSE 表达式
END
思路:
这个的话按照语法格式来:
end as 别名
测试如下:
任务描述
本关任务:查询PetStore数据库lineitem订单详情表中每种商品在每个订单中的总价。
其中lineitem表结构如下:
####相关知识
为了完成本关任务,你需要掌握:select语句。
语法格式:
SELECT 计算列值的表达式1 [ , 计算列值的表达式2 ]
思路:这个也比较简单,按照语法格式来写
这里的话由于他是要你来求它的总量,那么你就要单价x数量得到总价,
测试如下
任务描述
本关任务:查询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这个去除重复;
测试如下:
任务描述
本关任务:
1.查询PetStore数据库中所有用户数(通过查询account表的行数可以确定用户数)。
2.查询商品表product中每种商品的平均标价和平均进价。
3.查询所有商品总数量(通过查询product表的qty列数值的总和可以确定商品总数量)。
其中account表结构如下:
####相关知识
为了完成本关任务,你需要掌握: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聚合函数分别求平均值和总和.很简单
任务描述
本关任务:
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,不是用的是<>或者!=都可以
测试如下:
任务描述
本关任务:查找用户号是’u0003’号顾客的姓名和所有订单的订单号、订单总价。
其中orders表结构如下:
account表结构如下:
####相关知识
为了完成本关任务,你需要掌握:select多表查询。
语法
SELECT的查询对象由FROM子句指定,其格式为:
FROM 表名1 [ [AS] 别名1 ] [ , 表名2[ [AS] 别名2]] … /查询表/
思路:这是一个简单的多表查询
很简单,记住防止有重复数据jiuok所以where后面要加上表1的id=表二的id,对应一下去掉重复
任务描述
本关任务:显示订单详情表lineitem中所有订单的订单编号orderid,商品名称name和购买数量quantity。
其中lineitem表结构如下:
product表结构如下:
####相关知识
为了完成本关任务,你需要掌握:select多表查询。
语法
SELECT的查询对象由FROM子句指定,其格式为:
FROM 表名1 [ [AS] 别名1 ] [ , 表名2[ [AS] 别名2]] … /查询表/
测试如下:
任务描述
本关任务:查找单个订单中订购数量大于5的用户名,订单id和商品名。
account表结构如下:
product表结构如下:
lineitem表结构如下:
####相关知识
为了完成本关任务,你需要掌握:select多表查询。
语法
SELECT的查询对象由FROM子句指定,其格式为:
FROM 表名1 [ [AS] 别名1 ] [ , 表名2[ [AS] 别名2]] … /查询表/
测试如下: