mysql数据库中实现内连接、左连接、右连接
                        
                            时间:2021-07-01 10:21:17
                            帮助过:5人阅读
							                        
                     
                    
                    
                    
Navicat MySQL Data Transfer
Source Server         : localhost_3306
Source Server Version : 50150
Source Host           : localhost:3306
Source Database       : store
Target Server Type    : MYSQL
Target Server Version : 50150
File Encoding         : 65001
Date: 2010-12-15 16:27:53
*/
SET FOREIGN_KEY_CHECKS
=0;
-- ----------------------------
-- Table structure for `grade`
-- ----------------------------
DROP TABLE IF EXISTS `grade`;
CREATE TABLE `grade` (
  `no` int(
11) 
NOT NULL AUTO_INCREMENT,
  `grade` int(
11) 
NOT NULL,
  PRIMARY KEY (`no`)
) ENGINE=InnoDB AUTO_INCREMENT
=4 DEFAULT CHARSET
=utf8;
-- ----------------------------
-- Records of grade
-- ----------------------------
INSERT INTO grade 
VALUES (
‘1‘, 
‘90‘);
INSERT INTO grade 
VALUES (
‘2‘, 
‘80‘);
INSERT INTO grade 
VALUES (
‘3‘, 
‘70‘);
-- ----------------------------
-- Table structure for `student`
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `no` int(
11) 
NOT NULL AUTO_INCREMENT,
  `name` varchar(
20) 
NOT NULL,
  PRIMARY KEY (`no`)
) ENGINE=InnoDB AUTO_INCREMENT
=5 DEFAULT CHARSET
=utf8;
-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO student 
VALUES (
‘1‘, 
‘a‘);
INSERT INTO student 
VALUES (
‘2‘, 
‘b‘);
INSERT INTO student 
VALUES (
‘3‘, 
‘c‘);
INSERT INTO student 
VALUES (
‘4‘, 
‘d‘);
student表中的字段分别是no和name,grade表中的字段是no和grade。两张表中的no都代表的是学生的学号。
查询student表的结果:
mysql> select * from grade;
+----+-------+
| no | grade |
+----+-------+
|  1 |    90 |
|  2 |    80 |
|  3 |    70 |
+----+-------+
rows in set
查询grade表的结果:
mysql> select * from student s inner join grade g on s.no=g.no;
 
+----+------+----+-------+
| no | name | no | grade |
+----+------+----+-------+
|  1 | a    |  1 |    90 |
|  2 | b    |  2 |    80 |
|  3 | c    |  3 |    70 |
+----+------+----+-------+
rows in set
左连接(左表中所有数据,右表中对应数据) 
mysql> select * from student as s left join grade as 
g on s.no=g.no; 
+----+------+------+-------+
| no | name | no   | grade |
+----+------+------+-------+
|  1 | a    |    1 |    90 |
|  2 | b    |    2 |    80 |
|  3 | c    |    3 |    70 |
|  4 | d    | NULL | NULL  |
+----+------+------+-------+
rows in set
右连接(右表中所有数据,左表中对应数据) 
mysql> select * from student as s right
 join grade as g on s.no=g.no; 
+----+------+----+-------+
| no | name | no | grade |
+----+------+----+-------+
|  1 | a    |  1 |    90 |
|  2 | b    |  2 |    80 |
|  3 | c    |  3 |    70 |
+----+------+----+-------+
rows in set
 
mysql数据库中实现内连接、左连接、右连接
标签:arch   字段   select   数据库   targe   arc   date   l数据库   bsp