【SQL自学打卡|DAY9】——二更!

前言

  今天二更!

SLogan:利用有限的时间,撸起袖子加油干!

一、用通配符进行过滤

【SQL自学打卡|DAY9】——二更!_第1张图片


【SQL75】检索产品名称和描述(一)
【SQL自学打卡|DAY9】——二更!_第2张图片

解题思路:
题目限定条件:仅返回描述中包含 toy 一词的产品名称
这就需要用到字符匹配 LIKE
%:匹配0个或多个字符;
代码如下:

SELECT prod_name,prod_desc
FROM Products
WHERE prod_desc LIKE '%toy'

结果:
【SQL自学打卡|DAY9】——二更!_第3张图片

【SQL76】检索产品名称和描述(二)
【SQL自学打卡|DAY9】——二更!_第4张图片

解题思路:
本题和上一题的区别在于:仅返回描述中未出现 toy 一词的产品,那就用 NOT LIKE即可。
代码如下:

SELECT prod_name,prod_desc
FROM Products
WHERE prod_desc NOT LIKE'%toy'

结果:
【SQL自学打卡|DAY9】——二更!_第5张图片

【SQL77】检索产品名称和描述(三)
【SQL自学打卡|DAY9】——二更!_第6张图片
解题思路:
本题的限定条件:仅返回描述中同时出现 toy 和 carrots 的产品
使用AND 和两个LIKE比较
代码如下:

SELECT prod_name,prod_desc
FROM Products
WHERE prod_desc LIKE'%toy%' AND prod_desc LIKE '%carrots%'

结果:
【SQL自学打卡|DAY9】——二更!_第7张图片

【SQL78】检索产品名称和描述(四)
【SQL自学打卡|DAY9】——二更!_第8张图片

解题思路:
本题限定条件:仅返回在描述中以先后顺序同时出现 toy 和 carrots 的产品,题目也有提示,只需要三个%符号即可。
代码如下:

SELECT prod_name,prod_desc
FROM Products
WHERE prod_desc LIKE'%toy%carrots%'

结果:
【SQL自学打卡|DAY9】——二更!_第9张图片



二、 创建计算字段

【SQL自学打卡|DAY9】——二更!_第10张图片


【SQL79】别名
【SQL自学打卡|DAY9】——二更!_第11张图片

解题思路:
题目很长,看完之后发现考的就是重命名的知识点,用AS就好了。
不要看漏了,还有一个条件,按照供应商名称进行升序排序。
代码如下:

SELECT vend_id,
vend_name AS vname,
vend_address AS vaddress,
vend_city AS vcity
FROM Vendors
ORDER BY vname ASC

结果:
【SQL自学打卡|DAY9】——二更!_第12张图片

【SQL80】打折
【SQL自学打卡|DAY9】——二更!_第13张图片

解题思路:
这个和上一题一样,也需要用到AS,在用到AS之前还有一步折扣的计算,题目有了提示,大家可以自己积累一下。
代码如下:

SELECT prod_id,prod_price,
prod_price * 0.9 AS sale_price
FROM Products

结果:
【SQL自学打卡|DAY9】——二更!_第14张图片

三、使用函数处理数据【SQL自学打卡|DAY9】——二更!_第15张图片

【SQL81】顾客登录名
【SQL自学打卡|DAY9】——二更!_第16张图片
【SQL自学打卡|DAY9】——二更!_第17张图片

解题思路:
这道题有三个需要注意的点:

1、字符串的截取:substring(字符串,起始位置,截取字符数)
2、字符串的拼接:concat(字符串1,字符串2,字符串3,…)
3、字母大写:upper(字符串)

代码如下:

SELECT cust_id,cust_name,
UPPER(CONCAT(SUBSTRING(cust_name,1,2),SUBSTRING(cust_city,1,3))) AS user_login
FROM Customers

结果:
【SQL自学打卡|DAY9】——二更!_第18张图片

【SQL82】返回2020年1月的所有订单的订单号和订单日期
【SQL自学打卡|DAY9】——二更!_第19张图片
解题思路:
这里会需要用到日期函数,并且表达的方式也不知我这里示例的一种,我将多列几种方式(均已验证)
正确代码如下:

SELECT order_num,order_date
FROM Orders
WHERE YEAR(order_date)=2020 AND MONTH(order_date)=1
ORDER BY order_date ASC

切割字符串

WHERE left(order_date, 7) = ‘2020-01’

用like来查找

WHERE order_date LIKE ‘2020-01%’

结果:
【SQL自学打卡|DAY9】——二更!_第20张图片

总结

  希望大家一键三连呀!!谢谢!!!
  今天没什么事,二更啦!
  明天就是中秋节啦,在这里提前预祝各位中秋快乐!明天也是教师节,在这里也预祝各位美丽,帅气的老师们节日快乐!!

你可能感兴趣的:(MySQL数据库学习,sql,算法,c++)