如何使用SQL系列 之 如何在SQL中使用嵌套查询

本文介绍了如何在SQL中使用嵌套查询,包括在SELECT,INSERT和DELETE语句中应用,以及如何结合聚合函数和WHERE/LIKE子句获取和操作数据。通过实例演示了如何找出频繁访问者、插入折扣会员信息和删除过多访问者的过程。

引言

结构化查询语言(SQL)用于管理关系型数据库管理系统(RDBMS)中的数据。SQL中一个有用的功能是在查询中创建查询,也称为* 子查询 嵌套查询 *。嵌套查询是一个SELECT语句,通常包含在括号中,并嵌入在主要的SELECTINSERTDELETE操作中。

在本教程中,你将使用SELECTINSERTDELETE语句的嵌套查询。你还将在嵌套查询中使用聚合函数来将数据值与你使用WHERELIKE子句指定的排序数据值进行比较。

前期准备

为了学习本指南,你需要一台运行某种使用SQL的关系数据库管理系统(RDBMS)的计算机。

注意:请注意,许多RDBMS使用它们自己独特的SQL实现。虽然本教程中概述的命令适用于大多数RDBMS,但如果你在MySQL以外的系统上测试它们,确切的语法或输出可能会有所不同。

你还需要一个装载了一些示例数据的数据库和表,可以在其中练习使用相关命令。

连接到MySQL并设置一个示例数据库

如果SQL数据库系统运行在远程服务器上,请从本地设备SSH到服务器

ssh sammy@your_server_ip

然后打开MySQL服务器提示符,将==sammy==替换为你的MySQL用户账户的名称

mysql -u sammy -p

创建一个名为zooDB的数据库

CREATE DATABASE zooDB;

如果数据库成功创建,您将收到这样的输出

OutputQuery OK, 1 row affected (0.01 sec)

要选择zooDB数据库,运行以下USE语句

USE zooDB;
OutputDatabase changed

选择数据库后,在其中创建一个表。在本教程的示例中,我们将创建一个表,用于存储参观动物园的游客的信息。这个表将包含以下7列

  • guest_id:存储参观动物园的游客的值,使用int数据类型。这也是表的* 主键 *,这意味着这一列中的每个值都是对应行的唯一标识符。
  • first_name:保存每个客人的名字,使用varchar数据类型,不超过30个字符。
  • last_name:使用varchar数据类型(最多30个字符)来存储每位客人的姓氏。
  • guest_type:包含每个使用varchar数据类型的客人的类型(成人或儿童),最多15个字符。
  • membership_type:表示每个客人拥有的会员类型,使用varchar数据类型来保存最多30个字符。
  • membership_cost:存储各种成员类型的开销。该列使用精度为5、刻度为2的decimal数据类型,这意味着该列中的值可以有5位数字,小数点右侧有2位数字。
  • total_visits:使用int数据类型记录每个客人的总访问次数。

运行下面的CREATE TABLE命令,创建一张名为guests的表,其中包含这些列

CREATE TABLE guests (
guest_id int, 
first_name varchar(30),
last_name varchar(30),
guest_type varchar(15),
membership_type varchar(30),
membership_cost decimal(5,2), 
total_visits int,
PRIMARY KEY (guest_id)
); 

接下来,向空表中插入一些示例数据

INSERT INTO guests
(guest_id, first_name, last_name, guest_type, membership_type, membership_cost, total_visits)
VALUES
(1, 'Judy', 'Hopps', 'Adult', 'Resident Premium Pass', 110.0, 168),
(2, 'Nick', 'Wilde', 'Adult', 'Day Pass', 62.0, 1),
(3, 'Duke', 'Weaselton', 'Adult', 'Resident Pass', 85.0, 4)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码觉客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值