mysql常见的过滤,子查询,联结表,表别名,组合查询等方法

最近几天一直在复习mysql数据库,从他的安装,SQLyog工具的安装,以及基础sql语句的使用。

昨天从网上下载了一本书:《Mysql必知必会》,这本书非常适合入门学习数据库的基础知识。

我复习mysql数据库的基础知识,主要是为下周复习jmeter数据库的参数化和断言做铺垫的。

今天就简单讲下mysql数据库的一些过滤,子查询,联结表,表别名,组合查询的方法。

如下是我自己简单的做了一个表格:表名:biyadi3,数据库名:biyadi

 

1,过滤条件:where

select name from biyadi3 where age=35;

1.1:查询年龄等于35岁的人的名字。

 

1.2: 增加难度:

需求:查询最大年龄的人的性别

 

 其实这个需求,有多种方法可以找出来,我只是通过了子查询的方法找出来的。

1.3:再增加难度:

查询出年龄最大的人的姓名和所有姓chen的人。

 

 这个需求无非就是在前面一个需求的后面增加了一个模糊匹配,增加了一个,or,和like,%的用法。

这3个都是配合where过滤条件,类似于高级搜索的条件了。

 

2.子查询

子查询的用法也不难,如果没有子查询,我们在查询的时候,会非常的费脑,逻辑

就拿前面的例子来说,如果没有子查询,我们要找最大年龄的人的姓名,就相对来说有点麻烦了。

2.1:需求:查询最大年龄的人的姓名

分析:确认要查询的结果是:姓名,条件是:最大年龄。

最大年龄的人好找,一条sql语句就能找出来,姓名也好找,一条sql语句就能找出来。

但是,一条sql语句找出最大年龄的人的姓名,就不好找。当然了,也可以找的出来。只是逻辑上有点费脑。

 

 当然了,还有别的sql 语句也可以实现,不过效果没有子查询来的直接和简单。

 

 虽然查询出来了,但是,不准确,年龄最大的有两个人,我只查询出了一个人,并且我在查询开始前并不知道年龄最大的有多少人,所以,我不推荐用这个方法。

直接用子查询,简单,粗暴,准确。

3.联结表;

主要是用于多张表之间查询的。

我写条sql语句:select name ,s_id from biyadi3,guihuayuan where biyadi3.id=guihuayuan.s_id;

关于联结表的内容,大家可以去看看我推荐的哪本书籍,《Mysql必知必会》,书上比我讲的清楚多了。

 

4,表别名:

就是给表换个简单的别名,具体原因,看书,《Mysql必知必会》。

例子:select name,s_id from biyadi3 as bi,guihuayuan as gui where bi.id=gui.s_id;

注意书写规范,区分出逗号和点号。

5,组合查询

例子:select name from biyadi3 union select max(age) from biyadi3;

 

 通过查看到查询出的结果,我们可以看出,组合查询类似于or的查询结果。

 

 

如上,就是一些基本的mysql SQL语句的用法,希望大家自己多练习,多使用。

这样,工作中碰到了数据库相关的知识,就不会措手不及了,

另外,后面复习jmeter读取数据库,写入数据到数据库等方面的学习奠定基础。

 

posted @ 2020-08-28 11:45  知识在于点滴的积累  阅读(596)  评论(0编辑  收藏  举报