数据库系统原理与应用教程(063)—— MySQL 练习题:操作题 39-50

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

39、SQL 基本语法练习(1)

题目:编写 SQL 语句,从 Customers 表中检索所有的 cust_id。

返回结果如下:

cust_id
A
B
C

表结构及数据如下:

/\*
DROP TABLE IF EXISTS `Customers`;

CREATE TABLE IF NOT EXISTS `Customers`(
 cust\_id VARCHAR(255) DEFAULT NULL
);

INSERT `Customers` VALUES ('A'),('B'),('C');
\*/

解答:

mysql> select cust_id from Customers;
+---------+
| cust_id |
+---------+
| A       |
| B       |
| C       |
+---------+
3 rows in set (0.00 sec)

40、SQL 基本语法练习(2)

表 OrderItems 含有非空的列 prod_id 代表商品 id,包含了所有已订购的商品(有些商品已被订购多次)。

prod_id
a1
a2
a3
a4
a5
a6
a7

【问题】编写 SQL 语句,检索并列出所有已订购商品(prod_id)的去重后的清单。

表结构及数据如下:

/\*
DROP TABLE IF EXISTS `OrderItems`;
CREATE TABLE IF NOT EXISTS `OrderItems`(
 prod\_id VARCHAR(255) NOT NULL COMMENT '商品id'
);
INSERT `OrderItems` VALUES ('a1'),('a2'),('a3'),('a4'),('a5'),('a6'),('a6');
\*/

解答:

mysql> select distinct prod_id from OrderItems;
+---------+
| prod_id |
+---------+
| a1      |
| a2      |
| a3      |
| a4      |
| a5      |
| a6      |
+---------+
6 rows in set (0.00 sec)

41、SQL 基本语法练习(3)

有 Customers 表(表中含有列 cust_id 代表客户 id,cust_name 代表客户姓名),数据如下:

cust_idcust_name
a1andy
a2ben
a3tony
a4tom
a5an
a6lee
a7hex

【问题】编写 SQL语句,检索所有列。查询结果如下:

cust_idcust_name
a1andy
a2ben
a3tony
a4tom
a5an
a6lee
a7hex

表结构及数据如下:

/\*

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');
\*/

解答:

mysql> select \* from Customers;
+---------+-----------+
| cust_id | cust_name |
+---------+-----------+
| a1      | andy      |
| a2      | ben       |
| a3      | tony      |
| a4      | tom       |
| a5      | an        |
| a6      | lee       |
| a7      | hex       |
+---------+-----------+
7 rows in set (0.00 sec)

42、数据排序(1)

有数据表 Customers,其中 cust_id 代表客户 id,cust_name 代表客户姓名。

cust_idcust_name
a1andy
a2ben
a3tony
a4tom
a5an
a6lee
a7hex

【问题】从 Customers 中检索所有的顾客名称(cust_name),并按从 Z 到 A 的顺序显示结果。查询结果如下:

cust_name
tony
tom
lee
hex
ben
andy
an

解答:

mysql> select cust_name from Customers order by cust_name desc;
+-----------+
| cust_name |
+-----------+
| tony      |
| tom       |
| lee       |
| hex       |
| ben       |
| andy      |
| an        |
+-----------+
7 rows in set (0.00 sec)

43、数据排序(2)

有数据表:Orders,表中数据如下:

cust_idorder_numorder_date
andyaaaa2021-01-01 00:00:00
andybbbb2021-01-01 12:00:00
bobcccc2021-01-10 12:00:00
dickdddd2021-01-11 00:00:00

【问题】编写 SQL 语句,从 Orders 表中检索顾客 ID(cust_id)和订单号(order_num),并先按顾客 ID 对结果进行排序,再按订单日期倒序排列。查询结果如下:

cust_idorder_num
andybbbb
andyaaaa
bobcccc
dickdddd

表结构及数据如下:

/\*
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');
\*/

解答:

mysql> select cust_id, order_num
    -> from Orders order by cust_id, order_date desc;
+---------+-----------+
| cust_id | order_num |
+---------+-----------+
| andy    | bbbb      |
| andy    | aaaa      |
| bob     | cccc      |
| dick    | dddd      |
+---------+-----------+
4 rows in set (0.00 sec)

44、数据排序(3)

有一个数据表:OrderItems,表中数据如下:

quantityitem_price
1100
101003
2500

【问题】编写 SQL 语句,显示 OrderItems 表中的数量(quantity)和价格(item_price),并按数量由多到少、价格由高到低排序。查询结果如下:

表结构及数据如下:

/\*
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);
\*/

解答:

/\*
select quantity, item\_price
from OrderItems
order by quantity desc, item\_price desc;
\*/
mysql> select quantity, item_price
    -> from OrderItems
    -> order by quantity desc, item_price desc;
+----------+------------+
| quantity | item_price |
+----------+------------+
|       10 |       1003 |
|        2 |        500 |
|        1 |        100 |
+----------+------------+
3 rows in set (0.00 sec)

45、使用条件过滤数据(1)

有数据表:Products,表中数据如下:

prod_idprod_nameprod_price
a0018sockets9.49
a0019iphone13600
b0018gucci t-shirts1000

【问题】从 Products 表中检索产品 ID(prod_id)和产品名称(prod_name),只返回价格为 9.49 元的产品。查询结果如下:

prod_idprod_name
a0018sockets

表结构及数据如下:

/\*
DROP TABLE IF EXISTS `Products`;
CREATE TABLE IF NOT EXISTS `Products` (
 `prod\_id` VARCHAR(255) NOT NULL COMMENT '产品 ID',
 `prod\_name` VARCHAR(255) NOT NULL COMMENT '产品名称',
 `prod\_price` DOUBLE NOT NULL COMMENT '产品价格'
);
INSERT INTO `Products` VALUES ('a0018','sockets',9.49),
('a0019','iphone13',600),
('b0019','gucci t-shirts',1000);
\*/

解答:

mysql> select prod_id, prod_name from Products where prod_price = 9.49;
+---------+-----------+
| prod_id | prod_name |
+---------+-----------+
| a0018   | sockets   |
+---------+-----------+
1 row in set (0.01 sec)

46、使用条件过滤数据(2)

有数据表:Products,表中数据如下:

prod_idprod_nameprod_price
a0018sockets9.49
a0019iphone13600
b0019gucci t-shirts1000

【问题】编写 SQL 语句,从 Products 表中检索产品 ID(prod_id)和产品名称(prod_name),只返回价格为 9 元或更高的产品。查询结果如下:

| prod_id | prod_name |

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

0 |
| b0019 | gucci t-shirts | 1000 |

【问题】编写 SQL 语句,从 Products 表中检索产品 ID(prod_id)和产品名称(prod_name),只返回价格为 9 元或更高的产品。查询结果如下:

| prod_id | prod_name |

[外链图片转存中…(img-GEs6pVHH-1715808785122)]
[外链图片转存中…(img-ue1oSrSg-1715808785122)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值