课 程 推 荐 我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈 PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)教程合集 👈👈 Oracle数据库教程:👉👉 Oracle数据库教程合集 👈👈 MySQL数据库教程:👉👉 MySQL数据库教程合集 👈👈 优 质 资 源 下 载 :👉👉 资源下载合集 👈👈 优 质 教 程 推 荐:👉👉 Python爬虫从入门到入狱系列 合集 👈👈 .
MySQL_连接查询
- 连接查询
连接查询
- 连接查询是将两个或两个以上的表按照某个条件连接起来,从中选取需要的数据
- 内连接查询
- 外连接查询
- 左连接查询
- 右连接查询
- 多条件连接查询
-
创建测试数据库,创建t_book表和t_bookType表并添加数据
CREATE DATABASE /*!32312 IF NOT EXISTS*/`db_book` /*!40100 DEFAULT CHARACTER SET utf8 */; USE `db_book`; /*Table structure for table `t_book` */ DROP TABLE IF EXISTS `t_book`; CREATE TABLE `t_book` ( `id` int(11) NOT NULL AUTO_INCREMENT, `bookName` varchar(20) DEFAULT NULL, `price` decimal(6,2) DEFAULT NULL, `author` varchar(20) DEFAULT NULL, `bookTypeId` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; /*Data for the table `t_book` */ insert into `t_book`(`id`,`bookName`,`price`,`author`,`bookTypeId`) values (1,'Java编程思想','100.00','埃史尔',1),(2,'Java从入门到精通','80.00','李钟尉',1),(3,'三剑客','70.00','大仲马',2),(4,'生理学(第二版)','24.00','刘先国',4); /*Table structure for table `t_booktype` */ DROP TABLE IF EXISTS `t_booktype`; CREATE TABLE `t_booktype` ( `id` int(11) NOT NULL AUTO_INCREMENT, `bookTypeName` varchar(20) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; /*Data for the table `t_booktype` */ insert into `t_booktype`(`id`,`bookTypeName`) values (1,'计算机类'),(2,'文学类'),(3,'教育类');
- 内连接查询
- 内连接查询是一种最常用的连接查询。内连接查询可以查询两个或者两个以上的表
SELECT tb.id,tb.bookName,tby.bookTypeName FROM t_book tb,t_bookType tby WHERE tb.booktypeid=tby.id
- 外连接查询(JOIN)
- 外连接可以查出某一张表的所有信息;
- 外连接查询,条件关键字不是where而是ON
- 使用外连接查询的两个表,必须有关联条件
- 语法
SELECT 属性名列表 FROM 表名1 LEFT|RIGHT JOIN 表名2 ON 表名1.属性名1=表名2.属性名2; -- LEFT:左连接——可以查询出“表名1”的所有记录,而“表名2”中,只能查询出匹配的记录; -- RIGHT:右连接——可以查询出“表名2”的所有记录,而“表名1”中,只能查询出匹配的记录;
- 左连接
SELECT a.id,a.bookname,b.bookTypeName bookTypeName FROM t_book a LEFT JOIN t_booktype b ON a.bookTypeId=b.id;
- 右连接
SELECT a.id,a.bookname,b.bookTypeName bookTypeName FROM t_book a RIGHT JOIN t_booktype b ON a.bookTypeId=b.id;
- 多条件连接查询
- 内连接
select 字段1,字段2,... from 表1,表2 where 条件表达式1 and 条件表达式2
- 外连接
select 字段1,字段2,... from 表1 [left|right] join 表2 on 条件表达式1 and 条件表达式2