MySQL之SELECT 语句详解

本文参考实验楼的SELECT 语句详解结合自己操作部分而写成。

注意:大多数系统中,SQL语句都是不区分大小写的,但是出于严谨和便于区分保留字和变量名,在书写的时,保留字应大写,而变量名应小写。所谓的保留字,即为:在高级语言中已定义过的字,使用者不能将这些字作为变量名和过程名使用。

1)SELECT语句的基本格式是:SELECT 查询的列名 FROM 表名 WHERE 限制条件;在上一篇博客创建一个简单的成绩管理系统 中,使用SELECT * FROM employee代表查询所有的列。例如,要查看employee表中的 name、age两列,可以使用:这里值得注意的是age和FROM之间没有逗号,很容易写的顺手了,就写上去了,只有列名之间需要逗号。

2)数学符号条件,SELECT 语句中常常会有WHERE 限制条件,用于实现更为精确的查找。WHERE限制条件可以有数学符号(=、>、<、>=、<=),例如,我们可以查找出employee表中,年龄大于25岁的人的名字,如图:

当WHERE后面不止一条限制时,可以使用OR(或)和AND(和)来实现相应要求,如求可以用OR来实现年龄小于25,和年龄大于30的这两部分人的名字;相应地,年龄在25和30之间的,可以使用AND 来实现,如图,

 求年龄在25和30之间的人名的另一种写法是:

3)关键词 IN 和 NOT IN用于刷选“在”和“不在”某一范围内的结果,如,要查找在部门3和部门4的人的姓名、年龄、电话,可以使用下面的方式:

4)通配符。关键字LIKE一般和通配符一起使用,通配符代表未知的字符。SQL中通配符是“ _”和“ %”,前者代表一个未指定的字符,后者代表不定个的未指定字符。如:仅仅知道电话的前四位,后两位未知,想获得相关信息,可以如下:值得注意的是,关键字和统配的相对位置

又如:仅知道姓名的首字符为‘J’想查询相关信息,可以如下:

5)为了是查询的结果显得更为顺眼,我们可能需要对结果按某一列进行排序。关键字是ORDER BY,默认的情况下,ORDER BY的结果是升序的,使用关键字ASCDESC可以指定升序降序。如工资的降序排列:

 

6)SQL的内置函数和计算。SQL有5个内置函数,如下:

其中,COUNT函数可以用于任何数据类型,SUM、AVG只能对数字类数据类型进行计算,MAX、MIN可用于数字、字符串和日期时间类型的计算。

如计算出salary的最大值、最小值,可以用:

其中,主要到两绿色椭圆的关系,通过关键词AS,MAX(salary)重命名为了max_salary。

7)在处理多个表时,子查询只有在结果来自一个表时才有用,若,需要显示两个表格或者多个表格的数据时,就要使用连接(join)操作。连接的基本思想是:把两个或多个表当做一个新的表格来操作。查询各员工所在部门的人数,其中员工的id和name来自employee表,people_num来自department表。如下:

另一种,连接语句的格式是JOIN ON语法,刚才的语句等价于:

 

posted @ 2017-06-23 00:35  王大咩的图书馆  阅读(821)  评论(0编辑  收藏  举报