MYSQL数据库的连接查询、常用子句的使用

导读:本篇文章讲解 MYSQL数据库的连接查询、常用子句的使用,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

查询:

1、笛卡尔积

这个概念在oracle里面也有,在这简单提一下。

概念:笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尓积(Cartesian product),又称直积,表示为X ×

Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员。

具体啥意思呢,举个栗子:新建A、B两张表并插入演示数据

create table A( 
	A_ID int primary key auto_increment, 
	A_NAME varchar(20) not null 
);
insert into A values(1,'apple'); 
insert into A values(2,'orange'); 
insert into A values(3,'banana'); 
create table B( 
	A_ID int primary key auto_increment, 
	B_PRICE double 
);
insert into B values(1,2.30); 
insert into B values(2,3.50);
根据sql实现一下: select * from A,B。这个结果应该有2*3=6条数据。
MYSQL数据库的连接查询、常用子句的使用
单纯的拿到笛卡尔积的结果意义不大,但是我们可以在其结果上进行一些过滤等操作。
 

2、内连接:

语法:select 列名 , 列名 …. from 表名1,表名2 where 表名1.列名 = 表名2.列名;

           select * from 表名1 inner join 表名2 on 条件
演示:
 
MYSQL数据库的连接查询、常用子句的使用
MYSQL数据库的连接查询、常用子句的使用
 

3、左外连接

左外连接:用左边表去右边表中查询对应记录,不管是否找到,都将显示左边表中的全部记录。
 
语法:select * from 表1 left outer join 表2 on 条件
 
演示:
 
MYSQL数据库的连接查询、常用子句的使用
 

4、右外连接

右外连接:用右边表去左边表查询对应记录,不管是否找到,右边表全部记录都将显示。

语法:select * from 表1 right outer join 表2 on 条件;
 
演示:
MYSQL数据库的连接查询、常用子句的使用
 

5、全连接

全外连接:左外连接和右外连接的结果合并,会去掉重复的记录。
语法:由于mysql不支持FULL JOIN的方式,可以使用union代替。随便提一嘴union关键字是用于将不同表中相同列中查询的数据展示出来;(不包括重复数据)。union all用于将不同表中相同列中查询的数据展示出来;(包括重复数据)
演示:
MYSQL数据库的连接查询、常用子句的使用
 

6、子查询

1、in和exist关键字的使用
in:使用在where后面,经常表示是一个列表中的数据,只要被查询的数据在这个列表中存在即可。
 
演示:
MYSQL数据库的连接查询、常用子句的使用
 
2、exists:表示存在,当子查询的结果存在,就会显示主查询中的所有数据。
也就是说子查询跟主查询在数据方面的关联不大,只存在逻辑上的关联。
演示:
MYSQL数据库的连接查询、常用子句的使用
 
3、case when语句的使用
 
语法结构:
 
CASE sex 

WHEN ‘1’ THEN ‘男’ 

WHEN ‘2’ THEN ‘女’ 

ELSE ‘其他’ 

END
 
演示:
MYSQL数据库的连接查询、常用子句的使用
 
 
 

MYSQL查询子句

1、where子句(条件查询):按照“条件表达式”指定的条件进行查询。

where子句经常跟下列运算符经常联合使用

常用运算符:

MYSQL数据库的连接查询、常用子句的使用

2、group by子句(分组):按照“属性名”指定的字段进行分组。group by子句通常和count()、sum()等聚合函数一起使用。

实例:

MYSQL数据库的连接查询、常用子句的使用

3、having子句(筛选):有group by才能having子句,只有满足“条件表达式”中指定的条件的才能够输出。

where和having子句的区别:

作用的对象不同。WHERE 子句作用于表和视图,HAVING 子句作用于组。
WHERE 在分组和聚集计算之前选取输入行(因此,它控制哪些行进入聚集计算), 而 HAVING 在分组和聚集之后选取分组的行。

实例:

MYSQL数据库的连接查询、常用子句的使用

4、order by子句(排序):按照“属性名”指定的字段进行排序。排序方式由“asc”和“desc”两个参数指出,默认是按照“asc”来排序,即升序。

实例:

MYSQL数据库的连接查询、常用子句的使用

5、limit(限制结果集)。

limit [offset,] N
offset 偏移量,可选,不写则相当于limit 0,N
N  取出条目

这个子句跟oracle里面ROWNUM的用法类似。

实例:

MYSQL数据库的连接查询、常用子句的使用

这一章就先记录到这了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/5266.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!