原文:http://www.cnblogs.com/xwdreamer/archive/2010/12/15/2297058.html

内连接:把两个表中数据对应的数据查出来 
外连接:以某个表为基础把对应数据查出来

首先创建数据库中的表,数据库代码如下:

  1. /*
  2. Navicat MySQL Data Transfer
  3. Source Server : localhost_3306
  4. Source Server Version : 50150
  5. Source Host : localhost:3306
  6. Source Database : store
  7. Target Server Type : MYSQL
  8. Target Server Version : 50150
  9. File Encoding : 65001
  10. Date: 2010-12-15 16:27:53
  11. */
  12. SET FOREIGN_KEY_CHECKS=0;
  13. -- ----------------------------
  14. -- Table structure for `grade`
  15. -- ----------------------------
  16. DROP TABLE IF EXISTS `grade`;
  17. CREATE TABLE `grade` (
  18. `no` int(11) NOT NULL AUTO_INCREMENT,
  19. `grade` int(11) NOT NULL,
  20. PRIMARY KEY (`no`)
  21. ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
  22. -- ----------------------------
  23. -- Records of grade
  24. -- ----------------------------
  25. INSERT INTO grade VALUES ('', '');
  26. INSERT INTO grade VALUES ('', '');
  27. INSERT INTO grade VALUES ('', '');
  28. -- ----------------------------
  29. -- Table structure for `student`
  30. -- ----------------------------
  31. DROP TABLE IF EXISTS `student`;
  32. CREATE TABLE `student` (
  33. `no` int(11) NOT NULL AUTO_INCREMENT,
  34. `name` varchar(20) NOT NULL,
  35. PRIMARY KEY (`no`)
  36. ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
  37. -- ----------------------------
  38. -- Records of student
  39. -- ----------------------------
  40. INSERT INTO student VALUES ('', 'a');
  41. INSERT INTO student VALUES ('', 'b');
  42. INSERT INTO student VALUES ('', 'c');
  43. INSERT INTO student VALUES ('', 'd');

student表中的字段分别是no和name,grade表中的字段是no和grade。两张表中的no都代表的是学生的学号。

查询student表的结果:

  1. mysql> select * from grade;
  2. +----+-------+
  3. | no | grade |
  4. +----+-------+
  5. | 1 | 90 |
  6. | 2 | 80 |
  7. | 3 | 70 |
  8. +----+-------+
  9. rows in set

查询grade表的结果:

  1. mysql> select * from student s inner join grade g on s.no=g.no;
  2.  
  3. +----+------+----+-------+
  4. | no | name | no | grade |
  5. +----+------+----+-------+
  6. | 1 | a | 1 | 90 |
  7. | 2 | b | 2 | 80 |
  8. | 3 | c | 3 | 70 |
  9. +----+------+----+-------+
  10. rows in set

左连接(左表中所有数据,右表中对应数据)

  1. mysql> select * from student as s left join grade as
  2. g on s.no=g.no;
  3. +----+------+------+-------+
  4. | no | name | no | grade |
  5. +----+------+------+-------+
  6. | 1 | a | 1 | 90 |
  7. | 2 | b | 2 | 80 |
  8. | 3 | c | 3 | 70 |
  9. | 4 | d | NULL | NULL |
  10. +----+------+------+-------+
  11. rows in set

右连接(右表中所有数据,左表中对应数据)

  1. mysql> select * from student as s right
  2. join grade as g on s.no=g.no;
  3. +----+------+----+-------+
  4. | no | name | no | grade |
  5. +----+------+----+-------+
  6. | 1 | a | 1 | 90 |
  7. | 2 | b | 2 | 80 |
  8. | 3 | c | 3 | 70 |
  9. +----+------+----+-------+
  10. rows in set

mysql数据库中实现内连接、左连接、右连接的更多相关文章

  1. 【转】mysql数据库中实现内连接、左连接、右连接

    [转]mysql数据库中实现内连接.左连接.右连接 内连接:把两个表中数据对应的数据查出来 外连接:以某个表为基础把对应数据查出来 首先创建数据库中的表,数据库代码如下: /* Navicat MyS ...

  2. mysql数据库中的多表查询(内连接,外连接,子查询)

    用两个表(a_table.b_table),关联字段a_table.a_id和b_table.b_id来演示一下MySQL的内连接.外连接( 左(外)连接.右(外)连接.全(外)连接). MySQL版 ...

  3. 通过JSP网页连接MySQL数据库,从MySQL数据库中读出一张表并显示在JSP网页中

    1.安装所需软件 ①安装java和tomcat,建立JSP网页最基础的软件②安装MySQL数据库(下载地址:https://www.mysql.com/)③安装Navicat Premium来查看数据 ...

  4. Mysql一个非常有用的内置函数今天碰到要把MySQL数据库中的varchar转换成date类型进

    Mysql一个非常有用的内置函数 今天碰到要把MySQL数据库中的varchar转换成date类型进行时间的比较和查询.在网上找了找,发现MySQL也跟其他数据库一样有自己内置的转换函数:str_to ...

  5. Linux系统下 MYSQL数据库中的数据库文件在本机内迁移 (需暂停服务的方式)

    Linux系统下 MYSQL数据库中的数据库文件在本机内迁移 本机采用Ubuntu16.04系统,tar方式安装MySQL5.7.21 数据库安装文件夹为    /home/devil/mysql 现 ...

  6. PHP往mysql数据库中写入中文失败

    该类问题解决办法就是 在建立数据库连接之后,将该连接的编码方式改为中文. 代码如下: $linkID=@mysql_connect("localhost","root&q ...

  7. MySQL存储引擎的实际应用以及对MySQL数据库中各主要存储引擎的独特特点的描述

    MySQL存储引擎的实际应用以及对MySQL数据库中各主要存储引擎的独特特点的描述: 1.MySQL有多种存储引擎: MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB(Berk ...

  8. C#实现MySQL数据库中的blob数据存储

    在MySQL数据库中,有一种blob数据类型,用来存储文件.C#编程语言操作MySQL数据库需要使用MySQL官方组件MySQL.Data.dll. Mysql.Data.dll(6.9.6)组件下载 ...

  9. 用JDBC把Excel中的数据导入到Mysql数据库中

    步骤:0.在Mysql数据库中先建好table 1.从Excel表格读数据 2.用JDBC连接Mysql数据库 3.把读出的数据导入到Mysql数据库的相应表中 其中,步骤0的table我是先在Mys ...

随机推荐

  1. web-day16

    第16章WEB16-Listener&Filter篇 今日任务 使用过滤器完成自动登录的案例 使用过滤器统一网站的字符集编码 教学导航 教学目标 了解常见的监听器 理解过滤器的生命周期 能够使 ...

  2. noip第13课作业

    1.    排身高 [问题描述] 鹏鹏的班上一共有 n 个学生.刚好每个同学的身高互不相同.鹏鹏想知道,所有同学中身高第二高的是谁. 输入格式:输入共两行,第一行有一个整数 n(2≤n≤100),表示 ...

  3. 23种设计模式(1)-Facade设计模式

    前记 曾经我遇见的一个需求是这样的,接口A有个方法void methodA(),类B需要实现接口A的methodA()方法,并且在类B中需要把methodA()方法内部处理逻辑获得的结果利用C类实例的 ...

  4. Xcode常见快捷键

    在项目工作中,你每天都要和这些视图互动,所有这些视图在Xode中都是必不可少的.所以接下来江哥将教你如何快速通过热键来配置你的工作空间. Command (⌘):用来导航,主要用来控制导航区域. Al ...

  5. hdu 4542 打表+含k个约数最小数

    http://acm.hdu.edu.cn/showproblem.php?pid=4542 给出一个数K和两个操作 如果操作是0,就求出一个最小的正整数X,满足X的约数个数为K. 如果操作是1,就求 ...

  6. django后台admin管理布局

    在model模块里设置 class pc_info(models.Model): ip = models.CharField(max_length=64) sn = models.CharField( ...

  7. AngularJS $observe $watch

    $observe $watch都可以用来监听值的变化,但是他们有显著的区别.$observe是用来监视DOM属性值的变化,而 $watch监视scope属性值的变化.AngularJS中的监听,都知道 ...

  8. spring中的两个数据库事务DataSourceTransactionManager 和 JtaTransactionManager区别

    在spring与数据框架(mybatis或hibernate)容器的配置文件中通常会有 <!-- (事务管理)transaction manager, use JtaTransactionMan ...

  9. 从0开始学Python---01

    1.开始 Vim  test.py #!/usr/bin/python print "hello,world!"; chmod +x test.py ./test.py 2.基本知 ...

  10. cxgrid显示海量数据

    cxgrid显示海量数据 在默认情况下,cxgrid显示几万条以上的数据会很慢.怎么办? 交下面的属性设为TRUE以后,速度飞快. 但速度是快了,自动计算列的合计值这些功能却失效了,正所谓有得必有失!