博主昵称:跳楼梯企鹅
博主主页面链接:博主主页传送门博主专栏页面连接:专栏传送门--网路安全技术
创作初心:本博客的初心为与技术朋友们相互交流,每个人的技术都存在短板,博主也是一样,虚心求教,希望各位技术友给予指导。
博主座右铭:发现光,追随光,成为光,散发光;
博主研究方向:渗透测试、机器学习 ;
博主寄语:感谢各位技术友的支持,您的支持就是我前进的动力 ;学习网站跳转链接:牛客刷题网
前言
给大家推荐一款很好的刷题软件牛客刷题网---一起学SQL
博主为什么喜欢用这个网站学习呢?
主要原因有三点:
1.内部含有大量面试题库
2.覆盖行业范围比较全面
3.刷题的题目是按照简单到难的过程
一、排序检索数据
简介:排序检索数据简单来说,就是检索数据的过程中,加入特定函数,使得需要查询的数据进行指定方式排列,是数据库的基础,也是常用的检索方式。
主要函数:排序检索数据Order by
方式:
1.数据排序
例如:
SELECT 字段名 FROM 表名 ORDER BY 字段名(同前);
2.多列排序
例如:
SELECT 字段1,字段2,字段3 FROM 表名 ORDER BY 字段1,字段2;
3.位置排序
例如:
SELECT 字段1,字段2,字段3 FROM 表名 ORDER BY 2,3;
4.指定排序
例如:
大小排序
SELECT 字段1,字段2,字段3 FROM 表名 ORDER BY 字段 DESC;
等等......
二、刷题
1.刷题一
(1)题目
题目:检索顾客名称并且排序
描述:有表Customers,cust_id代表客户id,cust_name代表客户姓名。
(2)难易程度
难易程度:中等
(3)示例
输入: DROP TABLE IF EXISTS `Customers`; CREATE TABLE IF NOT EXISTS `Customers`( cust_id VARCHAR(255) NOT NULL COMMENT '客户id', cust_name VARCHAR(255) NOT NULL COMMENT '客户姓名' ); INSERT `Customers` VALUES ('a1','andy'),('a2','ben'),('a3','tony'),('a4','tom'),('a5','an'),('a6','lee'),('a7','hex'); 输出: cust_name tony tom lee hex ben andy an
(4)代码
SELECT cust_name FROM Customers ORDER BY cust_name DESC;
(5)运行截图
2.刷题二
(1)题目
题目:对顾客ID和日期排序
描述:编写 SQL 语句,从 Orders 表中检索顾客 ID(cust_id)和订单号(order_num),并先按顾客 ID 对结果进行排序,再按订单日期倒序排列。
(2)难易程度
难易程度:简单
(3)示例
输入: DROP TABLE IF EXISTS `Orders`; CREATE TABLE IF NOT EXISTS `Orders` ( `cust_id` varchar(255) NOT NULL COMMENT '顾客 ID', `order_num` varchar(255) NOT NULL COMMENT '订单号', `order_date` timestamp NOT NULL COMMENT '订单时间' ); INSERT INTO `Orders` VALUES ('andy','aaaa','2021-01-01 00:00:00'), ('andy','bbbb','2021-01-01 12:00:00'), ('bob','cccc','2021-01-10 12:00:00'), ('dick','dddd','2021-01-11 00:00:00'); 输出: andy|bbbb andy|aaaa bob|cccc dick|dddd
(4)代码
select cust_id,order_num from Orders order by cust_id asc,order_date desc
(5)运行截图
3.刷题三
(1)题目
题目:按照数量和价格排序
描述:编写 SQL 语句,显示 OrderItems 表中的数量(quantity)和价格(item_price),并按数量由多到少、价格由高到低排序。
(2)难易程度
难易程度:简单
(3)示例
输入: DROP TABLE IF EXISTS `OrderItems`; CREATE TABLE IF NOT EXISTS `OrderItems` ( `quantity` INT(64) NOT NULL COMMENT '数量', `item_price` INT(64) NOT NULL COMMENT '订单价格' ); INSERT INTO `OrderItems` VALUES (1,100), (10,1003), (2,500); 输出: 10|1003 2|500 1|100
(4)代码
select quantity, item_price from OrderItems order by 1 desc, 2 desc
(5)运行截图
4.刷题四
(1)题目
题目:检查SQL语句
描述: 给的SQL 语句有问题吗?尝试将它改正确,使之能够正确运行,并且返回结果根据vend_name逆序排列
(2)难易程度
难易程度:简单
(3)示例
输入: DROP TABLE IF EXISTS `Vendors`; CREATE TABLE IF NOT EXISTS `Vendors` ( `vend_name` VARCHAR(255) NOT NULL COMMENT 'vend名称' ); INSERT INTO `Vendors` VALUES ('海底捞'), ('小龙坎'), ('大龙燚'); 输出: 海底捞 小龙坎 大龙燚
(4)代码
SELECT vend_name FROM Vendors ORDER BY vend_name DESC;
(5)运行截图
三、小结
本片文章为MySQL刷题系列文章,第八天!
欢迎小伙伴一起来刷题,点击右边链接牛客------刷题网