【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,一经查实,立即删除!

相关文章

FFmpeg PCM编码为AAC

使用FFmpeg库把PCM文件编码为AAC文件&#xff0c;FFmpeg版本为4.4.2-0 代码如下&#xff1a; #include <stdio.h> #include <stdlib.h> #include <string.h> #include <libavcodec/avcodec.h> #include <libavformat/avformat.h> #include <…

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

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

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

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

Oracle操作扩可变字符长度交易影响分析-较小

使用AI帮助学习知识 以下知识来至AI oracle 一张大表&#xff0c;对可变字符串长度从10扩到20位&#xff0c;oracle底层存储是否会发生变化&#xff0c;先锁表&#xff0c;更新表字典信息&#xff0c;然后会不会重新整理表&#xff0c;在有交易的情况下导致大量交易失效&#…

日常开发坑记录

hutool工具类转换,anInt可能为负数(队列散列需求遇到)long l = RandomUtil.randomLong(0, 9999999999L);Integer anInt = Convert.toInt(l);System

wandb上传整个项目代码

wandb.run.log_code上传整个项目代码 wandb一般只能保存训练代码文件 用了这个函数并且指定文件格式&#xff0c;就能保存指定文件当git来用了 import wandbwandb.init(project"latent-diffusion") wandb.run.log_code(".", include_fnlambda path: path.e…

docker --network host,仍然无法使用127.0.0.1连接数据库,改用宿主机ip后可以连接

有两个docker容器&#xff0c;一个是mysql&#xff0c;一个是java服务。两个都是host网络模式。 宿主机上可以连mysql&#xff0c;java服务也可以通过wget检测能连上mysql端口。 外部网络也能连上mysql。只有这个java服务无法连接mysql&#xff0c;java服务是用是127.0.0.1&…

网络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的对比&…

JSON字符串

在Python中&#xff0c;你可以使用内置的json模块将JSON字符串解析为Python对象&#xff08;如字典、列表等&#xff09;。以下是一个简单的示例&#xff0c;说明如何将JSON字符串解析为Python字典&#xff1a; python复制代码 import json # JSON字符串 json_string {"…

Python环境变量设置Win7:深度解析与实用指南

Python环境变量设置Win7&#xff1a;深度解析与实用指南 在Windows 7操作系统中设置Python环境变量&#xff0c;是每位Python开发者都需要掌握的一项基本技能。它不仅能够使我们在命令行中直接运行Python脚本&#xff0c;还能够确保Python相关的库和工具能够被系统正确识别和使…

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">…