使用SQL语句查询MySQL数据表

6.1 创建单表基本查询

1Select 语句的语法格式及其功能

1Select 语句的一般格式。

Select < 字段名称或表达式列表 >

From < 数据表名称或视图名称 >

[ Where < 条件表达式 > ]

[ Group By < 分组的字段名称或表达式 > ]

[ Having < 筛选条件 > ]

[ Order By < 排序的字段名称或表达式 > Asc | Desc ]

[ 数据表的别名 ]

2Select 语句的功能。

根据 Where 子句的条件表达式从 From 子句指定的数据表中找出满足条件的记录,再根据 Select 子句选出记录中的字段值,把查询结果以表格的形式返回。

3Select 语句的说明。

Select 关键字后面跟的是要检索的字段列表。SQL 查询子句的顺序为 SelectIntoFromWhereGroup ByHaving Order By

2SQL 的语言类型及常用的语句

SQL 的语言类型及常用的语句如表 6-1 所示。

任务 6-1】使用 Navicat for MySQL 实现查询操作

任务描述

Navicat for MySQL 中创建、运行查询,查询“用户信息”数据表中所有的记录,要求将该表各个字段的别名设置为“用户 ID”“用户编号”“用户名称”“密码”。

任务实施

打开数据库

启动图形管理工具 Navicat for MySQL,打开连接 MallConn,打开数据库 MallDB

显示查询对象

单击Navicat for MySQL】窗口工具栏中的查询按钮,显示查询对象。

显示对应的按钮

单击新建查询按钮,显示对应的按钮,如图 6-1 所示。

6-1  查询对应的按钮 

选择创建查询的数据表及其字段

查询创建工具窗口左侧的数据表列表中双击数据表“用户信息”,右上方将弹出“用户信息”数据表的字段列表,这里分别选择“UserID”“UserNumber”“Name”“UserPassword,窗口右侧区域自动生成了对应的 SQL 语句,如图 6-3 所示。

 6-3  查询创建工具窗口中选择创建查询的数据表和字段

在查询语句模板区域设置别名

目前“用户信息”的字段名称为英文,如果需要设置为中文名,可以在查询创建工具窗口的查询语句模板区域单击“< 别名 >”位置,在弹出的输入框中输入中文别名,然后单击确定按钮关闭输入框,这里分别输入“用户 ID”“用户编号”“用户名称”“密码”。查询“用户信息”数据表的 SQL 语句如下所示 :

Select

 ' 用户信息 '.UserID As ' 用户 ID',

 ' 用户信息 '.UserNumber As ' 用户编号 ',

 ' 用户信息 '.'Name' As ' 用户名称 ',

 ' 用户信息 '.UserPassword As ' 密码 '

From

 ' 用户信息 '

保存创建的查询

查询创建工具窗口中单击构建按钮,关闭该窗口。在工具栏中单击保存按钮,打开查询名对话框,在该对话框中输入查询名“查询 0601”,如图 6-4 所示,然后单击确定按钮保存刚才创建的查询。

6-4  【查询名对话框

 查看 SQL 语句

在工具栏中单击解释按钮,显示解释 1】选项卡,完整的 SQL 语句与解释 1】选项卡如图 6-5 所示。

6-5  完整的 SQL语句与解释 1】选项卡 

运行查询

在工具栏中单击运行按钮,运行“查询 0601”,运行结果如图 6-6 所示。

 任务 6-2】查询时选择与设置字段

Select 语句允许使用通配符“*”选择数据表中所有的字段,使用“All”选择所有记录,“All”一般省略不写。Select 关键字与第一个字段名称之间使用半角空格分隔,可以使用多个半角空格,其效果等效于使用一个空格。SQL 语句中各部分之间必须使用空格分隔(SQL语句中的空格必须是半角空格,如果输入全角空格,则会出现错误提示信息)。

使用 Select 语句时,返回结果中的列标题与数据表或视图中的字段名称相同。查询时可以使用 As 关键字来为字段或表达式指定标题名称,这些名称既可以用来改善查询输出的外观,也可以用来为一般情况下没有标题名称的表达式分配名称(称为别名)。

任务 6-2-1】查询所有字段

任务描述

查询“用户类型”数据表中的所有字段。

任务实施

首先打开 Windows 命令行窗口,登录 MySQL 服务器,然后使用“Use MallDB ; ”语句选择数据库 MallDB

Select * From 用户类型 ;

任务 6-2-2】查询指定字段

任务描述

查询“用户注册信息”数据表中的所有记录,查询结果只包含“用户编号”“用户名称”“密码”3 列数据。

任务实施

查询对应的 SQL 语句如下 :

Select 用户编号 , 用户名称 , 密码 From 用户注册信息 ;

任务 6-2-3】查询经过计算后的字段。

任务描述

从“订购商品”数据表中查询订单商品应付金额,查询结果包含“订单编号”“商品编号”“购买数量”“优惠价格”“优惠金额”“应付金额”6 列数据。其中“应付金额”为计算字段,计算公式为“购买数量 * 优惠价格 - 优惠金额”。

任务实施

查询对应的 SQL 语句如下。

Select 订单编号 , 商品编号 , 购买数量 , 优惠价格 , 优惠金额 ,

                     购买数量 * 优惠价格 - 优惠金额 As 应付金额 From 订购商品 ;

任务 6-2-4】查询时为查询结果指定别名

任务描述

查询“用户信息”数据表中的全部用户数据,查询结果只包含“UserNumber”“Name”“UserPassword”3 列数据,要求这 3 个字段输出时分别以“用户编号”“用户名称”“密码”中文名称显示。

任务实施

查询对应的 SQL 语句如下。

Select UserNumber As 用户编号 , Name As 用户名称 , UserPassword As 密码

From 用户信息 ;

任务 6-3】查询时选择行

Where 子句后面是一个用逻辑表达式表示的条件,用来限制 Select 语句检索的记录,即查询结果中的记录都应该是满足该条件的记录。数据表中所有的字段都可以出现在 Where 子句的表达式中,不管它是否出现在要检索的字段列表中。

任务 6-3-1】Where 子句中使用比较查询筛选记录

任务描述

1)从“图书信息”数据表中检索作者为“陈承欢”的图书信息。

2)从“图书信息”数据表中检索 2020 年之后出版的图书信息。

任务实施

从“图书信息”数据表中检索作者为“陈承欢”的图书信息

1 项任务对应的 SQL 查询语句如下 :

从“图书信息”数据表中检索 2020 年之后出版的图书信息

2 项任务对应的 SQL 查询语句如下 :

任务 6-3-2】查询时去除重复项

任务描述

从“商品信息”数据表中检索所有商品的商品类型,并去除重复项。

任务实施

查询对应的 SQL 语句如下 :

任务 6-3-3】使用 Limit 关键字查询限定数量的记录

任务描述

1)从“图书信息”数据表中检索前 5 种图书的数据。

2)从“图书信息”数据表中检索第 2 种至第 4 种图书的数据。

以上两项查询的结果只需包含“商品编号”“图书名称”两个字段。

任务实施

从“图书信息”数据表中检索前 5 种图书的数据

从“图书信息”数据表中检索前 5 种图书的数据对应的 SQL 语句如下 :

从“图书信息”数据表中检索第 2 种至第 4 种图书的数据

从“图书信息”数据表中检索第 2 种至第 4 种图书的数据对应的 SQL 语句如下 :

Select 商品编号 , 图书名称 From 图书信息 Limit 1 , 3 ;

任务 6-3-4】使用 Between And 关键字创建范围查询

任务描述

从“图书信息”数据表中检索出版日期在“2019-10-1”和“2021-05-1”之间的图书信息,查询结果要求只需包含“商品编号”“图书名称”“出版日期”3 个字段。

任务实施

查询对应的 SQL 语句如下 :

Select 商品编号 , 图书名称 , 出版日期 From 图书信息

           Where 出版日期 Between '2019-10-01' And '2021-05-01' ;

任务 6-3-5】使用 In 关键字创建查询

任务描述

从“图书信息”数据表中检索出“陈承欢”“王振世”“王斌会”3 位作者编写的图书信息,查询结果要求只需包含“商品编号”“图书名称”“作者”3 个字段。

任务实施

查询对应的 SQL 语句如下 :

Select 商品编号 , 图书名称 , 作者 From 图书信息

            Where 作者 In (' 陈承欢 ',' 王振世 ',' 王斌会 ') ;

查询条件中的表达式“作者 In (' 陈承欢 ',' 陈启安 ',' 陈海林 ')”也可以用表达式“( 作者 ='陈承欢 ') Or ( 作者 =' 王振世 ') Or ( 作者 =' 王斌会 ')”代替,但使用 In 关键字时表达式简短且可读性更好。

任务 6-3-6】使用 Like 创建模糊匹配查询

任务描述

1)从“图书信息”数据表中检索出作者姓“郑”的图书信息。

2)从“图书信息”数据表中检索出作者不姓“陈”的图书信息。

3)从“图书信息”数据表中检索出作者姓名只有 3 个汉字并且姓“王”的图书信息。

任务实施

从“图书信息”数据表中检索出作者姓“郑”的图书信息

1 项任务对应的 SQL 查询语句如下 :

从“图书信息”数据表中检索出作者不姓“陈”的图书信息

2 项任务对应的 SQL 查询语句如下 :

Select 商品编号 , 图书名称 , 作者 From 图书信息 Where 作者 Not Like ' %' ;

从“图书信息”数据表中检索出作者姓名只有 3 个汉字并且姓“王”的图书信息

3 项任务对应的 SQL 查询语句如下 :

Select 商品编号 , 图书名称 , 作者 From 图书信息 Where 作者 Like ' __' ;

任务 6-3-7】创建搜索空值的查询

任务描述

从“图书信息”数据表中检索“版次”不为空的图书信息,查询结果只包含“商品编号”“图书名称”“版次”3 个字段。

任务实施

Where 子句中使用 Is Null 可以查询数据表中为 Null 的值,使用 Is Not Null 可以查询数据表中不为 Null 的值。

查询对应的 SQL 语句如下 :

Select 商品编号 , 图书名称 , 版次 From 图书信息 Where 版次 Is Not Null ;

任务 6-3-8】使用聚合函数进行查询

聚合函数用于对一组数据值进行计算并返回单一值,所以也被称为组合函数。Select 子句中可以使用聚合函数进行计算,计算结果作为新列出现在查询结果集中。聚合运算的表达式可以包含字段名称、常量以及由运算符连接起来的函数。

任务描述

1)从“图书信息”数据表中查询价格在 20 元至 45 元之间的图书种数。

2)从“订购商品”数据表中查询购买不同商品的种类数量。

3)从“图书信息”数据表中查询图书的最高价格、最低价格和平均价格。

4)从“订购商品”数据表中查询图书的总购买数量。

任务 6-3-9】使用 And 创建多条件查询

任务描述

从“图书信息”数据表中检索作者为“陈承欢”,并且出版日期在 2020 年之后的图书信息,查询结果要求只需包含“商品编号”“图书名称”“作者”“出版日期”4 个字段。

任务实施

查询对应的 SQL 语句如下 :

Select 商品编号 , 图书名称 , 作者 , 出版日期

           From 图书信息

           Where 作者 =' 陈承欢 ' And Year( 出版日期 )>2020 ;

任务 6-3-10】使用 Or 创建多条件查询

任务描述

从“图书信息”数据表中检索作者为“陈承欢”或者出版日期在“2020-5-1”年之后的图书信息,查询结果要求只需包含“商品编号”“图书名称”“作者”“出版日期”4 个字段。

任务实施

查询对应的 SQL 语句如下 :

Select 商品编号 , 图书名称 , 作者 , 出版日期

          From 图书信息

          Where 作者 =' 陈承欢 ' Or 出版日期 >'2020-05-01' ;

任务 6-3-11】将查询结果保存到另一个数据表中

任务描述

对“订购商品”数据表中从各个出版社购买图书的数量合计、金额合计进行统计,并将出版社名称、数量合计、金额合计和图书名称列表等数据存储到数据表“图书汇总信息”中。

任务实施

首先创建一个数据表“图书汇总信息”,对应的 SQL 语句如下 :

Create Table 图书汇总信息 ( 出版社名称 varchar(16) , 数量合计 int ,

                                             金额合计 decimal(10,2) , 图书名称列表 varchar(100)) ;

然后向数据表“图书汇总信息”中插入查询语句的执行结果,对应的 SQL 语句如下 :

Insert Into 图书汇总信息

       Select 出版社信息 . 出版社名称 ,

                Sum( 订购商品 . 购买数量 ) ,

                Sum( 订购商品 . 购买数量 * 订购商品 . 优惠价格 - 优惠金额 ) ,

                Group_Concat( 图书信息 . 图书名称 )

       From   订购商品 , 图书信息 , 出版社信息

       Where 订购商品 . 商品编号 = 图书信息 . 商品编号

                  And 图书信息 . 出版社 = 出版社信息 . 出版社 ID

       Group By 出版社信息 . 出版社名称 ;

任务 6-4】对查询结果进行排序

任务实施

任务 6-5】分组进行数据查询

任务实施

6.2 创建多表连接查询

实现从两个或两个以上数据表中查询数据且结果集中出现的字段来自两个或两个以上的数据表的检索操作称为连接查询。连接查询实际上是通过各个数据表之间的共同字段的相关性来查询数据,首先要在这些数据表之间建立连接,然后再从数据表中查询数据。连接的类型分为内连接、外连接和交叉连接,其中外连接包括左外连接、右外连接和全外连接两种。连接查询的格式有两种 :

2 项任务对应的 SQL 查询语句如下 :

任务 6-6】创建基本连接查询

任务实施

任务 6-7】创建内连接查询

内连接是组合两个数据表的常用方法。

任务实施

任务 6-8】使用 Union 语句创建多表联合查询

其语法格式如下 :

Select 语句 1

               Union | Union All

Select 语句 2

               Union | Union All

Select 语句 n ;

使用 Union 运算符将两个或多个 Select 语句的执行结果组合成一个结果集时,可以使用关键字“All”指定结果集中将包含所有记录而不删除重复的记录 ;如果省略 All,将从结果集中删除重复的记录。

使用 Union 联合查询时,结果集的字段名称与 Union 运算符中第 1 Select 语句的结果集中的字段名称相同,另一个 Select 语句的结果集的字段名称将被忽略。

 任务描述

数据库 MallDB 的“订购商品”数据表中的数据主要包括“商品”和“图书”两大类,在 MallDB 数据库中已有“商品信息”数据表和“图书信息”数据表,其中两个数据表包括4 个公共字段,分别为“商品编号”“商品名称”“商品类型”“价格”。使用联合查询将两个数据表的数据合并(商品数据在前,图书数据在后),联合查询时会增加一个新列“商品分类”,其值分别为“非图书商品”和“图书”。

任务实施

对应的 SQL 查询语句如下 :

Select 商品编号 , 商品名称 , 商品类型 As 商品类型编号 , 价格 ,

   ' 非图书商品 ' As 商品分类

From 商品信息

Union All

Select 商品编号 , 图书名称 , 商品类型 As 商品类型编号 , 价格 , ' 图书 '

From 图书信息 ;

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

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

相关文章

xss-labs-master通关教程

一.level1 先来进行一下代码审计 <?php ini_set("display_errors", 0);//关闭错误显示 $str $_GET["name"]; //接受URL来的get形式的name传参 echo "<h2 aligncenter>欢迎用户".$str."</h2>";//在网页输出&#x…

STM32 之 SDRAM 详解

目录 前言 一、SDRAM 简介 二、SDRAM的组成原理 2.1存储单元阵列 2.1.1地址译码 2.1.2存储电容 2.2控制逻辑 2.2.1时钟同步 2.2.2命令解码 2.2.3模式寄存器 2.3数据输入 / 输出缓冲 2.3.1数据总线 2.3.2数据锁存 2.4刷新电路 2.4.1自动刷新 2.4.2自刷新 三、S…

SaaS化多租户实现的两种方法

SaaS化多租户实现的两种方法 SaaS系统的定义 SaaS&#xff0c;全称为Software-as-a-Service&#xff08;软件即服务&#xff09;&#xff0c;是一种基于云计算的软件交付模式。而SaaS系统&#xff0c;即是通过这种模式提供给用户的软件系统。即多租户系统&#xff0c;每个租户…

腾讯云升级多个云存储解决方案 以智能化存储助力企业增长

9月6日&#xff0c;在腾讯数字生态大会腾讯云储存专场上&#xff0c;腾讯云升级多个存储解决方案&#xff1a;Data Platform 数据平台解决方案重磅发布&#xff0c;数据加速器 GooseFS、数据处理平台数据万象、日志服务 CLS、高性能并行文件存储 CFS Turbo 等多产品全新升级&am…

TypeScript 扩展

扩展 ?:可选参数 可选链事实上并不是TypeScript独有的特性&#xff0c;它是ES11&#xff08;ES2020&#xff09;中增加的特性 可选链使用可选链操作符 ? 作用是当对象的属性不存在时&#xff0c;会短路&#xff0c;直接返回undefined&#xff0c;如果存在&#xff0c;那么…

SpringCloud集成ELK

1、添加依赖 <dependency><groupId>net.logstash.logback</groupId><artifactId>logstash-logback-encoder</artifactId><version>6.1</version> </dependency>2、在logback-spring.xml中添加配置信息&#xff08;logback-sp…

Android SystemUI组件(06)导航栏创建分析虚拟按键

该系列文章总纲链接&#xff1a;专题分纲目录 Android SystemUI组件 本章关键点总结 & 说明&#xff1a; 说明&#xff1a;本章节持续迭代之前章节的思维导图&#xff0c;主要关注左侧SystemBars分析中导航栏部分即可。 1 导航栏创建之makeStatusBarView 通过上一篇文章的…

前端 + 接口请求实现 vue 动态路由

前端 接口请求实现 vue 动态路由 在 Vue 应用中&#xff0c;通过前端结合后端接口请求来实现动态路由是一种常见且有效的权限控制方案。这种方法允许前端根据用户的角色和权限&#xff0c;动态生成和加载路由&#xff0c;而不是在应用启动时就固定所有的路由配置。 实现原理…

el-tree父子不互相关联时,手动实现全选、反选、子级全选、清空功能

el-tree父子不互相关联时&#xff0c;手动实现全选、反选、子级全选、清空功能 1、功能实现图示 2、实现思路 当属性check-strictly为true时&#xff0c;父子节点不互相关联&#xff0c;如果需要全部选中或选择某一节点下的全部节点就必须手动选择每个节点&#xff0c;十分麻…

【mysql】逻辑运算符

逻辑运算符 逻辑运算符主要是为了判断表达式的真假,返回结果也是1,0,null OR 这里面或就是两个条件或的关系,比如我要department_id等于10和等于20的情况就可以使用或. SELECT last_name,salary,department_id FROM employees WHERE department_id10 OR department_id20 …

CTF——简单的《WEB》

文章目录 一、WEB1、easysql2、baby_web3、baby_sql4、upload_easy5、easygame拓展1.1拓展1.2 6、ht_ssti7、包容乃大 一、WEB 1、easysql 题目描述&#xff1a; sql注入漏洞 1.常用的sql注入测试语句 2.sql注入bypass 解题思路 这边提示基本给的也很完整的&#xff0c;不…

C++开发基础之理解 CUDA 编译配置:`compute_XX` 和 `sm_XX` 的作用

前言 在 CUDA 编程中&#xff0c;确保代码能够在不同的 NVIDIA GPU 上高效运行是非常重要的。为了实现这一点&#xff0c;CUDA 编译器 (nvcc) 提供了多种配置选项&#xff0c;其中 compute_XX 和 sm_XX 是两个关键的编译选项。本文将深入探讨这两个选项的作用及其配置顺序&…

大一新生以此篇开启你的算法之路

各位大一计算机萌新们&#xff0c;你们好&#xff0c;本篇博客会带领大家进行算法入门&#xff0c;给各位大一萌新答疑解惑。博客文章略长&#xff0c;可根据自己的需要观看&#xff0c;在博客中会有给大一萌新问题的解答&#xff0c;请不要错过。 入门简介&#xff1a; 算法…

可信的人类与人工智能协作:基于人类反馈和物理知识的安全自主驾驶强化学习

可信的人类与人工智能协作&#xff1a;基于人类反馈和物理知识的安全自主驾驶强化学习 Abstract 在自动驾驶领域&#xff0c;开发安全且可信赖的自动驾驶策略仍然是一项重大挑战。近年来&#xff0c;结合人类反馈的强化学习&#xff08;RLHF&#xff09;因其提升训练安全性和…

中国银河资产笔试25届考什么?如何通过考试|附真题库面试攻略

嘿&#xff0c;各位小伙伴们&#xff01;我是职小豚&#xff0c;今天就带大家一起探秘中国银河资产 25 届秋招&#xff0c;为大家揭开这场金融之旅的神秘面纱。 一、中国银河资产介绍 中国银河资产&#xff0c;那可是金融领域的璀璨巨星&#xff01;它就像一座闪耀着智慧光芒…

unity安装配置和vs2022联动教程

目录 1.选择vs2022配置 2.安装unity 2.1安装unity hub 2.2注册个人账号 2.3安装编辑器 2.4修改为简体中文 2.5添加许可证 2.6安装位置修改 3.项目的创建 3.1如何创建 3.2如何选择 3.3配置语言 3.4去哪里找语言包 4.unity编辑器窗口的介绍 4.1游戏的运行和停止 4…

11、Hive+Spark数仓环境准备

1、 Hive安装部署 1&#xff09;把hive-3.1.3.tar.gz上传到linux的/opt/software目录下 2&#xff09;解压hive-3.1.3.tar.gz到/opt/module/目录下面 [shuidihadoop102 module]$ tar -zxvf /opt/software/hive-3.1.3.tar.gz -C /opt/module/ 3&#xff09;修改hive-3.1.3-b…

《深度学习》深度学习 框架、流程解析、动态展示及推导

目录 一、深度学习 1、什么是深度学习 2、特点 3、神经网络构造 1&#xff09;单层神经元 • 推导 • 示例 2&#xff09;多层神经网络 3&#xff09;小结 4、感知器 神经网络的本质 5、多层感知器 6、动态图像示例 1&#xff09;一个神经元 相当于下列状态&…

安卓开发板_联发科MTK开发评估套件串口调试

串口调试 如果正在进行lk(little kernel ) 或内核开发&#xff0c;USB 串口适配器&#xff08; USB 转串口 TTL 适配器的简称&#xff09;对于检查系统启动日志非常有用&#xff0c;特别是在没有图形桌面显示的情况下。 1.选购适配器 常用的许多 USB 转串口的适配器&#xf…

通过nginx代理转发实现共用80和443端口

目录 项目场景&#xff1a; 问题&#xff1a;怎么实现端口共用&#xff1f; 一、域名解析到nginx服务器 二、创建vhost解析到实际的服务器 三、防火墙的配置 项目场景&#xff1a; 公司自建服务器&#xff0c;有一条专线带有公网IP&#xff0c;如何满足不同的域名解析共用…