龙空技术网

SQL查询及优化:Navicat及查询数据准备以及关于SELECT语句

Linf 209

前言:

如今朋友们对“navicat查询数据库版本”大体比较珍视,兄弟们都需要学习一些“navicat查询数据库版本”的相关内容。那么小编同时在网上收集了一些对于“navicat查询数据库版本””的相关资讯,希望你们能喜欢,你们一起来了解一下吧!

查询数据是数据库系统应用的主要内容,用数据库保存数据就是为了使用,要使用就要首先查找到需要的数据。数据库查询主要是根据用户提供的限定条件,从可用的数据库表返回符合限定条件的数据库记录,执行查询的语句是SELECT语句。

在讲述SELECT语句之前,需要运行Navicat查询器,在mooc数据库course表插入相关记录。启动Navicat连接mooc数据库,【单击】工具条的查询按钮,在工具条下方的导航条中选择【新建查询】,进入查询窗口,输入下面的查询语句。

下图是执行效果。

SELECT语句按照指定的条件从数据表中查找数据,它的语法结构包含如下的常用子句:SELECT子句、FROM子句、WHERE子句、GROUP BY子句、HAVING子句、ORDER BY子句,还有一些其它的关键字。对于了解英语的人书写SELECT语句并不困难。例如,由course表中查询出类别为“编程”的课程名称,可以使用下列的SELECT语句。

SELECT name FROM course WHERE category='编程'

SELECT语句的基本语法如下。

SELECT 列名的列表      [INTO 新表名]     [FROM 表名]     [WHERE 条件表达式]     [GROUP BY 列名的列表]     [HAVING 条件表达式]     [ORDER BY 列名1 [ASC|DESC], 列名2[ASC|DESC],……]

其中,SELECT子句用于指定查询的输出字段;INTO子句用于将查询到的结果数据按照原来的数据类型保存到一个新建的表中;FROM子句用于指定要查询的表或列,即数据的来源;WHERE子句用于指定记录的查询条件;ORDER BY子句用于将查询到的结果按指定的列排序;GROUP BY子句用于按指定的列进行分组,即列值相同的分为一组;HAVING子句用于指定对分组记录的过滤条件。

下面的案例来自mooc数据库的course表,下图是course表数据:

例1:从course表中查询分类(category)为机器学习,且按照价格升序排序。

要返回分类为机器学习并按价格升序排序的课程数据,可以联合使用WHERE子句和ORDER BY子句,WHERE子句设定查询条件,ORDER BY子句对查询的结果进行排序。在查询窗口输入下面的SQL语句。

SELECT * FROM course  where category='机器学习' order by price

SQL查询结果如下图所示。

例2:从course表中查询每位老师开设了多少门课程?

要查询每位老师开设了多少门课程,可以使用GROUP BY语句对teacher_number字段进行分组,使用count函数统计分组后记录数,在查询窗口输入下面的SQL语句。

SELECT COUNT(teacher_number) as course_num,teacher_number  from course GROUP BY teacher_number

SQL查询结果如下图所示。

从上图的查询结果可以看出,编号为0001的老师开设了2门课程,编号为0002的老师开设了3门课程,编号为0003的老师开设了2门课程。

例3:从course表中统计已开设课程的价格总和。

统计开设课程的价格总和,可以使用SUM函数求表中所有记录price字段的和,在这种情况下,查询结果仅输出一条记录。在查询窗口输入下面的SQL语句。

SELECT SUM(price) as all_price FROM course

SQL查询结果如下图所示。

如果对你有帮助,关注我,每天持续更新!!

标签: #navicat查询数据库版本