写在开头
MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的RDBMS (Relational Database Management System,关系数据库管理系统)应用软件之一。
MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL作为网站数据库。-----------------------------------------------------------------------------------------------------------摘选至百度百科-----------------------------------------------
而作为数据库的主要功能之一的数据库查询,对我们学习使用数据库有着非常重要的意义,嗯~十分有九的重要性。
数据库的查询主要分为两类:
一、单表查询。
二、多表查询。
单表查询主要是对一个数据库中存储的一个二维表进行内容的查询。类似与对一个excel表格进行处理,数据再多也局限于一个表内。
多表查询主要是对数据库中存在的多个表进行联合查询。
而在实际工作中对庞大数据量分为了多个表,再对这些表进行细致查询无疑是非常难的事情,所以多表查询又是学习数据库数据查询的重点以及难点。
懂得了以上知识,相信你对数据查询应该有了一定的基本认识,现在我们开始正式的学习吧。
一、单表查询
在数据库中我们的操作语句主要是select语句,这是贯穿我们数据查询的一个最重要的语句。
我们对数据库的全部查询都依靠这个语句。
打开数据库,进入”mysql“数据中(这个数据库是MySQL中自带的系统数据库,为避免数据损坏带来的使用问题,请不要对这个数据库进行除查询外的其他操作)在数据库命令行中输入:
select * from user;
这个语句是查询mysql库中的user表,相信英语好的同学发现了,这句话翻译成中文的原意是:挑选user中的 * 。因为在数据库中” * “是通配符,可以简单的理解为:所有的。所以那句话又可以翻译为:挑选user的所有。可以这样理解,即:挑选某个表中的全部信息。
要注意的是要具体对某个表进行查询处理,首先要进入这个表所属的数据库。
当然,这个简单的查询语句中的*符号也可以换成二维表中的列的列名。
以上就是简单的单表查询了
二、多表查询
在多表查询中进行查询时,需要将多个表进行连接,所以又将连接方式具体分为:
一、全连接。
二、内连接。
三、外连接。
一、全连接:
表1
T1 |
1 |
2 |
表2
B1 | B2 |
a | b |
A | B |
上图为表1和表2,我们进行全连接时,会得到一个不同的表(为了方便展示所以有新表的产生,在实际mysql中进行查询时不会有新表的产生)。将表1与表2进行全连接,会得到新的数据,即下图的表3。
表3
T1 | B1 | B2 |
1 | a | b |
2 | a | b |
1 | A | B |
2 | A | B |
观察上面三个图,我们可以得出以下结论:
全连接是指将每个表的每行都与其他表的每行交叉,以产生所有的组合。
二、内连接。
内连接又称等值连接,顾名思义就是通过特定的列进行连接,只要两个表中特定的行满足条件(即相等)才能进行连接。
内连接是数据查询经常用到的连接,但是也是最容易出错的连接。
三、外连接。
在我个人理解中,我将外连接又称为不平等连接。为何?因为外连接是以某个表要求另一个表,相当于。用一个表中的条件来筛选另一个表,第一个表中的数据全出现,而第二个表只有满足条件的数据才进行连接。
了解了数据库中基本的查询原理,我们可以使用join关键字进行实操了
join连接
join连接只能进行内连接以及外连接。不要问为什么没有全连接,因为用不到。
以下是join语句的格式:
select 表一.列名,表二.列名..... from 表一 join 表二 on 表一.列名=表二.列名;
语句中的标点符号均为英文符号,注意这个。以及on后的两表的列名是相等的。看到相等
两个字聪明的同学应该知道这个是内连接了,恭喜你答对了。那外连接呢?
只要在join关键字前加上left或者right就可以了, left join 左外连接 right join 右外连接
我们知道外连接是不平等连接,那左右连接的意思是什么呢。就是以哪个表为主的意思。
IN连接
in是什么意思呢?当然是在...中啦,在什么数据中查询什么数据,就是in连接的灵魂。主要的功能是在我们查询好的数据中再进行查询,即二次查询。
结尾
以上就是本博客的内容了,当然往后还有exists查询。但为了控制本文篇幅,请各位读者在网上进行查找,我们也可以将查询到的各个网站整理成表格,用以我们的实操。
读书百遍其义自现,掌握了理论知识还不够,数据库的学习更重要的是上手的实操。
所以为了更好的学习,我们要养成边看教程边打代码的习惯,当然,最主要的是思考以及尝试。