【SQL边干边学系列】01介绍性问题

文章目录

  • 前言
  • 介绍性问题
    • 1.我们有哪些承运商?
    • 2. 从目录表中查询特定字段
    • 3.销售代表
    • 4.在美国的销售代表
    • 5.由特定员工ID下的订单
    • 6.供应商和联系人信息
  • 答案
    • 1.我们有哪些承运商?
    • 2. 从目录表中查询特定字段
    • 3.销售代表
    • 4.在美国的销售代表
    • 5.由特定员工ID下的订单
    • 6.供应商和联系人信息
  • 未完待续


前言

在这里插入图片描述
该系列教程,将会从实际问题出发,边干边学,逐步深入讲解SQL的各方面知识。

你需要完成所有的问题吗?绝对不是。介绍性的问题相当简单,所以你可以直接跳过到“中级问题”部分。如果你不是初学者,但不确定应该从哪里开始,请在“入门问题”部分看看问题和预期结果,并确保你理解这些概念。如果已经理解了这些概念,请开始阅读“中级问题”部分。

你想从这本书中复制代码并在你的服务器上运行?我建议你手动输入,而不是复制粘贴。为什么要去麻烦地重新打字呢?科学表明,打字的行为会在你的脑中留下更深刻的印象。当你只是复制和粘贴时,代码只是直接从你电脑里的一个窗口转到另一个窗口,而不会给你留下多少印象。但是当你把它打出来时,你必须集中精力,这非常有助于保留信息。

一旦你完成了所有的问题,将拥有一些在数据分析和高级Select语句使用方面非常有用的技能。当然,这并不是SQL的全部内容。还有修改数据(更新、插入、删除)、DDL(数据定义语言,即如何创建和修改数据库对象)、编程(如存储过程)和许多其他主题。

该系列教程中,只涉及到了使用Select语句检索数据的问题,这几乎是所有其他数据库主题的基础开端。


介绍性问题

1.我们有哪些承运商?

我们有一张表叫承运商(Shippers)。返回Shippers的所有行的所有字段。

-- 预期结果
ShipperID   CompanyName   Phone
----------- ------------- ------------------------
1 Speedy    Express       (503) 555-9831
2 United    Package       (503) 555-3199
3 Federal   Shipping      (503) 555-9931
(3 row(s) affected)

提示:返回所有列和所有行的的SELECT语句是“Select * from TableName”

2. 从目录表中查询特定字段

在“类别Categories”表中,使用此SQL选择所有字段:

Select * from Categories

…将返回4列。但是我们只想看到两列:类别名称(CategoryName)和描述(Description)。

-- 预期结果
CategoryName    Description
--------------- ----------------------------------------------------------
Beverages       Soft drinks, coffees, teas, beers, and ales
Condiments      Sweet and savory sauces, relishes, spreads, and seasonings
Confections     Desserts, candies, and sweet breads
Dairy Products  Cheeses
Grains/Cereals  Breads, crackers, pasta, and cereal
Meat/Poultry    Prepared meats
Produce         Dried fruit and bean curd
Seafood         Seaweed and fish
(8 row(s) affected)

提示:在Select语句中,使用逗号分隔的列名返回特定列的结果

3.销售代表

我们只想看看Employees表中所有头衔(Title)为销售代表(Sales Representative)的员工的FirstName、LastName和雇佣日期(HireDate)。编写一个只返回这些员工的SQL语句。

-- 预期结果
FirstName  LastName              HireDate
---------- -------------------- -----------------------
Nancy     Davolio               2010-05-01 00:00:00.000
Janet     Leverling             2010-04-01 00:00:00.000
Margaret  Peacock               2011-05-03 00:00:00.000
Michael   Suyama                2011-10-17 00:00:00.000
Robert    King                  2012-01-02 00:00:00.000
Anne      Dodsworth             2012-11-15 00:00:00.000
(6 row(s) affected)

提示:要从表中过滤掉某些行,请使用Where子句。带有字符串过滤器的where子句的格式为:Where FieldName = ‘Filter Text’

4.在美国的销售代表

现在我们希望看到与上面相同的列,但只针对那些既有销售代表头衔,所在国家(Country)为美国(USA)的员工。

-- 预期结果
FirstName  LastName              HireDate
---------- -------------------- -----------------------
Nancy      Davolio              2010-05-01 00:00:00.000
Janet      Leverling            2010-04-01 00:00:00.000
Margaret   Peacock              2011-05-03 00:00:00.000
(3 row(s) affected)

提示:要在where子句中应用多个过滤器,请使用“and”来连接过滤器。

5.由特定员工ID下的订单

显示Orders表中,特定员工所下的所有订单。该员工的EmployeeID为5。

-- 预期结果
OrderID      OrderDate
----------- -----------------------
10248       2014-07-04 08:00:00.000
10254       2014-07-11 02:00:00.000
10269       2014-07-31 00:00:00.000
10297       2014-09-04 21:00:00.000
10320       2014-10-03 12:00:00.000
10333       2014-10-18 18:00:00.000
10358       2014-11-20 05:00:00.000
10359       2014-11-21 14:00:00.000
10372       2014-12-04 10:00:00.000
10378       2014-12-10 00:00:00.000
10397       2014-12-27 17:00:00.000
10463       2015-03-04 13:00:00.000
10474       2015-03-13 16:00:00.000
10477       2015-03-17 02:00:00.000
10529       2015-05-07 01:00:00.000
10549       2015-05-27 03:00:00.000
10569       2015-06-16 15:00:00.000
10575       2015-06-20 22:00:00.000
10607       2015-07-22 09:00:00.000
10648       2015-08-28 22:00:00.000
10649       2015-08-28 00:00:00.000
10650       2015-08-29 06:00:00.000
10654       2015-09-02 07:00:00.000
10675       2015-09-19 06:00:00.000
10711       2015-10-21 03:00:00.000
10714       2015-10-22 03:00:00.000
10721       2015-10-29 08:00:00.000
10730       2015-11-05 07:00:00.000
10761       2015-12-02 08:00:00.000
10812       2016-01-02 02:00:00.000
10823       2016-01-09 17:00:00.000
10841       2016-01-20 21:00:00.000
10851       2016-01-26 00:00:00.000
10866       2016-02-03 01:00:00.000
10869       2016-02-04 09:00:00.000
10870       2016-02-04 12:00:00.000
10872       2016-02-05 06:00:00.000
10874       2016-02-06 14:00:00.000
10899       2016-02-20 09:00:00.000
10922       2016-03-03 02:00:00.000
10954       2016-03-17 16:00:00.000
11043       2016-04-22 17:00:00.000
(42 row(s) affected)

提示:“EmployeeID”是一个整数字段,而不是一个字符串字段。因此,值“5”不需要在where子句中被单引号包围。

6.供应商和联系人信息

在“Suppliers”表中,显示那些职位(ContactTitle)不是市场经理(Marketing Manager)的供应商的SupplierID、ContactName和ContactTitle。

-- 预期结果
SupplierID  ContactName                    ContactTitle
----------- ------------------------------ ------------------------------
1           Charlotte Cooper               Purchasing Manager
2           Shelley Burke                  Order Administrator
3           Regina Murphy                  Sales Representative
5           Antonio del Valle Saavedra     Export Administrator
6           Mayumi Ohno                    Marketing Representative
8           Peter Wilson                   Sales Representative
9           Lars Peterson                  Sales Agent
11          Petra Winkler                  Sales Manager
12          Martin Bein International      Marketing Mgr.
13          Sven Petersen                  Coordinator Foreign Markets
14          Elio Rossi                     Sales Representative
16          Cheryl Saylor                  Regional Account Rep.
17          Michael Björn                  Sales Representative
18          Guylène Nodier                 Sales Manager
19          Robb Merchant                  Wholesale Account Agent
20          Chandra Leka                   Owner
21          Niels Petersen                 Sales Manager
22          Dirk Luchte                    Accounting Manager
23          Anne Heikkonen                 Product Manager
24          Wendy Mackenzie                Sales Representative
26          Giovanni Giudici               Order Administrator
27          Marie Delamare                 Sales Manager
28          Eliane Noz                     Sales Representative
29          Chantal Goulet                 Accounting Manager
(24 row(s) affected)

答案

1.我们有哪些承运商?

答案

Select*
From Shippers

讨论
这是一个基本的选择语句,返回所有的行,只是为了让你进行热身。大多数时候,像这样的简单选择语句都写在一行上,像这样:

Select * From Shippers

2. 从目录表中查询特定字段

SelectCategoryName ,Description
from Categories

3.销售代表

答案

SelectFirstName,LastName,HireDate 
From Employees
WhereTitle = 'Sales Representative'

讨论
这是一个针对字符串数据类型的简单过滤器。在将值与字符串数据类型进行比较时,需要将该值括在单引号中。如果你不知道,会发生什么?尝试运行以下内容:

 FirstName,LastName,HireDate 
From Employees
WhereTitle = Sales Representative

请注意,SQL Server给出了以下错误:

Incorrect syntax near 'Representative'.

4.在美国的销售代表

答案

SelectFirstName,LastName,HireDate 
From Employees
WhereTitle = 'Sales Representative'and Country = 'USA'

讨论
你可以在where子句中使用尽可能多的过滤器。我通常会缩进所有的过滤器,并把它们放在新的行上,以便阅读。

5.由特定员工ID下的订单

答案

SelectOrderID,OrderDate
From Orders
WhereEmployeeID = 5

讨论
这个简单的查询使用“=”比较操作符筛选员工ID字段中的一个值。下面是另一组常用的比较运算符:> 大于, < 小于, >= 大于或等于, <= 小于或等于。

6.供应商和联系人信息

答案

SelectSupplierID,ContactName,ContactTitle 
From Suppliers
WhereContactTitle <> 'Marketing Manager'

讨论
另一种表达Not的方法是使用"!=",所以,下面的答案等效。

SelectCompanyName,ContactName,ContactTitle 
From Suppliers
WhereContactTitle != 'Marketing Manager'

未完待续

下一讲继续讨论剩余的介绍性问题。


如果喜欢这篇文章,请不要忘记关注🧡、点赞👍和收藏📔哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/846924.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Codes 重新定义 SaaS 模式的研发项目管理平台开源版 4.5.5 发布

一&#xff1a;简介 Codes 重新定义 SaaS 模式 云端认证 程序及数据本地安装 不限功能 30 人免费 Codes 是一个 高效、简洁、轻量的一站式研发项目管理平台。包含需求管理&#xff0c;任务管理&#xff0c;测试管理&#xff0c;缺陷管理&#xff0c;自动化测试&#xff0…

海外短剧的未来展望:创新与发展的方向

随着全球化的加速和互联网技术的飞速发展&#xff0c;海外短剧作为一种新兴的娱乐形式&#xff0c;正逐渐赢得广大观众的喜爱。在这个充满变革的时代&#xff0c;海外短剧面临着前所未有的机遇与挑战。本文将探讨海外短剧未来的创新与发展方向。 一、内容创新&#xff1a;打破传…

网络ip地址冲突会出现什么情况

在现代数字化社会中&#xff0c;网络IP地址扮演着至关重要的角色&#xff0c;它是设备在网络中唯一识别的标识。然而&#xff0c;当网络中出现IP地址冲突时&#xff0c;一系列问题便会随之而来。那么&#xff0c;网络ip地址冲突会出现什么情况呢&#xff1f;下面一起来跟虎观代…

k8s-部署对象存储minio

环境信息 minio版本 :最新 k8s 版本1.22 使用nfs作为共享存储 一.单节点安装包部署 脚本部署&#xff0c;一键部署&#xff0c;单节点应用于数据量小&#xff0c;一些缓存存储&#xff0c;比如gitlab-runner的产物数据&#xff0c;maven的打包依赖数据 #!/bin/bash# 步骤…

如何进行辐射抗扰度磁场测试?

一、为什么要进行闭环磁场测试&#xff1f; 辐射抗扰度测试中进行闭环磁场测试是为了评估设备在外部磁场影响下的性能表现。外部磁场可能来自各种源头&#xff0c;例如电力线、电动机、变压器等&#xff0c;这些磁场可能干扰设备的正常工作。闭环磁场测试通过模拟设备在实际工…

虾皮Lazada流量“滑铁卢”?自养号测评补单让你轻松翻盘!

当作为虾皮&#xff08;Shopee&#xff09;或Lazada平台的卖家时&#xff0c;密切关注流量数据是至关重要的。如果观察到店铺的流量出现下滑趋势&#xff0c;首要任务便是深入探究流量减少的根本原因。在明确了导致流量下滑的关键因素后&#xff0c;卖家便能更有针对性地采取措…

Java学习20——Map接口

目录 一.Map&#xff1a; 1.基本介绍&#xff1a; 2.Map常用方法&#xff1a; 3.Map的遍历方法&#xff1a; 4.HashMap: 1.基本介绍&#xff1a; 2.HashMap底层扩容机制&#xff1a; 5.Hashtable&#xff1a; 1.基本介绍&#xff1a; 2.HashMap和Hashtable的对比&…

Image Search-这是你的图像搜索

Image Search-这是你的图像搜索 什么是图像搜索图像搜索开通图像搜索商品图片搜索图片搜索图片新增批量操作OSS-创建bucket上传文件创建increment.meta并上传元信息导出 体验感受 什么是图像搜索 在接触一个新的产品时&#xff0c;我们首先要知道这款产品是什么&#xff1f;那…

ARM IHI0069F GIC architecture specification (8)

3.2中断旁路支持 CPU interface可以支持中断信号旁路&#xff0c;使得当接口发出的中断信号被禁用时&#xff0c;传统中断信号被传递到PE上的中断请求输入&#xff0c;从而绕过GIC功能。 是否支持旁路由实际设计决定。 用于确定是否使用GICv3 FIQ和IRQ输出或旁路信号的控制取决…

英伟达在2024台北电脑展上推出NIM云原生微服务

&#x1f989; AI新闻 &#x1f680; 英伟达推出NIM云原生微服务&#xff0c;助力生成式AI发展 摘要&#xff1a;在2024台北电脑展上&#xff0c;黄仁勋介绍了生成式人工智能将推动软件全栈重塑&#xff0c;并展示了Nvidia Inference Microservices&#xff08;NIM&#xff0…

《2024快手未成年人保护报告》发布:八大功能保护未成年人隐私信息

5月31日&#xff0c;快手发布《2024快手未成年人保护报告》&#xff08;下文简称《报告》&#xff09;。《报告》显示&#xff0c;快手在2023年持续升级未成年人保护机制&#xff0c;在不断提升平台保障能力和未成年人使用体验的同时&#xff0c;针对未成年人隐私信息保护持续优…

区间预测 | Matlab实现GRU-Attention-KDE核密度估计多置信区间多变量回归区间预测

区间预测 | Matlab实现GRU-Attention-KDE核密度估计多置信区间多变量回归区间预测 目录 区间预测 | Matlab实现GRU-Attention-KDE核密度估计多置信区间多变量回归区间预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现GRU-Attention-KDE门控循环单元注意力…

【JS实战02】轮播图

一&#xff1a;HTML页面结构 1 整体外观 2 HTML结构以及CSS样式 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">…

HTML:认识HTML与基本语法的学习

前言 HTML&#xff08;超文本标记语言&#xff09;是用于创建网页的标记语言&#xff0c;由一系列标签组成&#xff0c;定义网页中的元素。由蒂姆伯纳斯 - 李于1990年代初发明&#xff0c;最初用于科研机构间共享文档&#xff0c;迅速演变为Web开发基础。无论是电商、博客、新…

2024 年适用于 Mac 的 5 大免费录屏软件

要成为Mac的优秀屏幕录像机&#xff0c;捕获视频的高清质量和易于操作的界面是两个主要重要因素。此外&#xff0c;Mac上的付费屏幕录像机不仅可以输出高质量的屏幕捕获视频。您也可以在免费的视频捕获软件中获得类似的桌面录制服务。因此&#xff0c;如果您不需要以专业的方式…

UE5增强输入系统入门

UE4直接在项目设置里设置的轴映射和操作映射在UE5中被标记为废弃&#xff0c;改为使用增强输入系统。 这两天学习了下蓝图和c中增强输入系统的使用&#xff0c;在这里分享一下。 学习使用的模板是第三人称模板(蓝图/c)&#xff0c;代码蓝图都参考的模板。 增强输入系统 UE5…

简单、实用、免费、无广告的图片自由分割工具

一、简介 1、是来自 Github 的一款简单、实用、免费、无广告的图片自由分割工具。它安装包大小在 4.5MB 左右,目前仅支持 Windows 和 Web 平台。 2、基本功能:支持图片自由纵向分割,横向分割,宫格分割,低仿 wps 看图图片分割,分割完成后,打开电脑的下载目录即可查看包含…

python-旋转字符串

问题描述&#xff1a;给定一个字符串&#xff08;以字符串数组的形式&#xff09;和一个偏移量&#xff0c;根据偏移量从左到右地旋转字符数组。 问题示例&#xff1a;输入str”abcdefg”,offset3,输出“efgabcd”。输入str”abcdefg”,offset0,输出“abcdefg”。&#xff08;返…

clion配置ssh隧道转发 实现远程主机功能

clion配置ssh隧道转发 clion自带的ssh配置只能配置主机和用户名的格式来实现ssh&#xff0c;因此如果需要通过中间设备来访问调试主机的话就无法使用了。 配置ssh隧道的方式有两种&#xff0c;一种是直接配置 ~/.ssh/config 配置文件&#xff0c;一种是使用跳板机工具。clion…

Python热重载调试新利器

你一定遇到过这种情况&#xff1a;Python脚本已经运行&#xff0c;却发现自己忘记打印输出需要记录的信息(比如for循环中打印更多详细信息)。 此时&#xff0c;如若暂停运行的代码&#xff0c;修改补充再重新运行整个代码&#xff0c;尤其对于已经运行数多个小时的模型训练来说…