zoukankan      html  css  js  c++  java
  • MySQL/MariaDB数据库的多表查询操作

              MySQL/MariaDB数据库的多表查询操作

                                       作者:尹正杰

    版权声明:原创作品,谢绝转载!否则将追究法律责任。

     

    一.单表查询小试牛刀

    [root@node105.yinzhengjie.org.cn ~]# cat yinzhengjie_innodb.sql  
    -- MySQL dump 10.13  Distrib 5.5.33, for Linux (x86_64)
    --
    -- Host: localhost    Database: yinzhengjie
    -- ------------------------------------------------------
    -- Server version    5.5.33-log
    
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;
    /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
    /*!40103 SET TIME_ZONE='+00:00' */;
    /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
    /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
    /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
    /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
    
    --
    -- Current Database: `yinzhengjie`
    --
    
    CREATE DATABASE /*!32312 IF NOT EXISTS*/ `yinzhengjie` /*!40100 DEFAULT CHARACTER SET utf8 */;
    
    USE `yinzhengjie`;
    
    --
    -- Table structure for table `classes`
    --
    
    DROP TABLE IF EXISTS `classes`;
    /*!40101 SET @saved_cs_client     = @@character_set_client */;
    /*!40101 SET character_set_client = utf8 */;
    CREATE TABLE `classes` (
      `ClassID` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
      `Class` varchar(100) DEFAULT NULL,
      `NumOfStu` smallint(5) unsigned DEFAULT NULL,
      PRIMARY KEY (`ClassID`)
    ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
    /*!40101 SET character_set_client = @saved_cs_client */;
    
    --
    -- Dumping data for table `classes`
    --
    
    LOCK TABLES `classes` WRITE;
    /*!40000 ALTER TABLE `classes` DISABLE KEYS */;
    INSERT INTO `classes` VALUES (1,'Shaolin Pai',10),(2,'Emei Pai',7),(3,'QingCheng Pai',11),(4,'Wudang Pai',12),(5,'Riyue Shenjiao',31),(6,'Liansha
    n Pai',27),(7,'Ming Jiao',27),(8,'Xiaoyao Pai',15);/*!40000 ALTER TABLE `classes` ENABLE KEYS */;
    UNLOCK TABLES;
    
    --
    -- Table structure for table `coc`
    --
    
    DROP TABLE IF EXISTS `coc`;
    /*!40101 SET @saved_cs_client     = @@character_set_client */;
    /*!40101 SET character_set_client = utf8 */;
    CREATE TABLE `coc` (
      `ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `ClassID` tinyint(3) unsigned NOT NULL,
      `CourseID` smallint(5) unsigned DEFAULT NULL,
      PRIMARY KEY (`ID`)
    ) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8;
    /*!40101 SET character_set_client = @saved_cs_client */;
    
    --
    -- Dumping data for table `coc`
    --
    
    LOCK TABLES `coc` WRITE;
    /*!40000 ALTER TABLE `coc` DISABLE KEYS */;
    INSERT INTO `coc` VALUES (1,1,2),(2,1,5),(3,2,2),(4,2,6),(5,3,1),(6,3,7),(7,4,5),(8,4,2),(9,5,1),(10,5,9),(11,6,3),(12,6,4),(13,7,4),(14,7,3);
    /*!40000 ALTER TABLE `coc` ENABLE KEYS */;
    UNLOCK TABLES;
    
    --
    -- Table structure for table `courses`
    --
    
    DROP TABLE IF EXISTS `courses`;
    /*!40101 SET @saved_cs_client     = @@character_set_client */;
    /*!40101 SET character_set_client = utf8 */;
    CREATE TABLE `courses` (
      `CourseID` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
      `Course` varchar(100) NOT NULL,
      PRIMARY KEY (`CourseID`)
    ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
    /*!40101 SET character_set_client = @saved_cs_client */;
    
    --
    -- Dumping data for table `courses`
    --
    
    LOCK TABLES `courses` WRITE;
    /*!40000 ALTER TABLE `courses` DISABLE KEYS */;
    INSERT INTO `courses` VALUES (1,'Hamo Gong'),(2,'Kuihua Baodian'),(3,'Jinshe Jianfa'),(4,'Taiji Quan'),(5,'Daiyu Zanghua'),(6,'Weituo Zhang'),(7,
    'Dagou Bangfa');/*!40000 ALTER TABLE `courses` ENABLE KEYS */;
    UNLOCK TABLES;
    
    --
    -- Table structure for table `scores`
    --
    
    DROP TABLE IF EXISTS `scores`;
    /*!40101 SET @saved_cs_client     = @@character_set_client */;
    /*!40101 SET character_set_client = utf8 */;
    CREATE TABLE `scores` (
      `ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `StuID` int(10) unsigned NOT NULL,
      `CourseID` smallint(5) unsigned NOT NULL,
      `Score` tinyint(3) unsigned DEFAULT NULL,
      PRIMARY KEY (`ID`)
    ) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8;
    /*!40101 SET character_set_client = @saved_cs_client */;
    
    --
    -- Dumping data for table `scores`
    --
    
    LOCK TABLES `scores` WRITE;
    /*!40000 ALTER TABLE `scores` DISABLE KEYS */;
    INSERT INTO `scores` VALUES (1,1,2,77),(2,1,6,93),(3,2,2,47),(4,2,5,97),(5,3,2,88),(6,3,6,75),(7,4,5,71),(8,4,2,89),(9,5,1,39),(10,5,7,63),(11,6,
    1,96),(12,7,1,86),(13,7,7,83),(14,8,4,57),(15,8,3,93);/*!40000 ALTER TABLE `scores` ENABLE KEYS */;
    UNLOCK TABLES;
    
    --
    -- Table structure for table `students`
    --
    
    DROP TABLE IF EXISTS `students`;
    /*!40101 SET @saved_cs_client     = @@character_set_client */;
    /*!40101 SET character_set_client = utf8 */;
    CREATE TABLE `students` (
      `StuID` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `Name` varchar(50) NOT NULL,
      `Age` tinyint(3) unsigned NOT NULL,
      `Gender` enum('F','M') NOT NULL,
      `ClassID` tinyint(3) unsigned DEFAULT NULL,
      `TeacherID` int(10) unsigned DEFAULT NULL,
      PRIMARY KEY (`StuID`)
    ) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8;
    /*!40101 SET character_set_client = @saved_cs_client */;
    
    --
    -- Dumping data for table `students`
    --
    
    LOCK TABLES `students` WRITE;
    /*!40000 ALTER TABLE `students` DISABLE KEYS */;
    INSERT INTO `students` VALUES (1,'Shi Zhongyu',22,'M',2,3),(2,'Shi Potian',22,'M',1,7),(3,'Xie Yanke',53,'M',2,16),(4,'Ding Dian',32,'M',4,4),(5,
    'Yu Yutong',26,'M',3,1),(6,'Shi Qing',46,'M',5,NULL),(7,'Xi Ren',19,'F',3,NULL),(8,'Lin Daiyu',17,'F',7,NULL),(9,'Ren Yingying',20,'F',6,NULL),(10,'Yue Lingshan',19,'F',3,NULL),(11,'Yuan Chengzhi',23,'M',6,NULL),(12,'Wen Qingqing',19,'F',1,NULL),(13,'Tian Boguang',33,'M',2,NULL),(14,'Lu Wushuang',17,'F',3,NULL),(15,'Duan Yu',19,'M',4,NULL),(16,'Xu Zhu',21,'M',1,NULL),(17,'Lin Chong',25,'M',4,NULL),(18,'Hua Rong',23,'M',7,NULL),(19,'Xue Baochai',18,'F',6,NULL),(20,'Diao Chan',19,'F',7,NULL),(21,'Huang Yueying',22,'F',6,NULL),(22,'Xiao Qiao',20,'F',1,NULL),(23,'Ma Chao',23,'M',4,NULL),(24,'Xu Xian',27,'M',NULL,NULL),(25,'Sun Dasheng',100,'M',NULL,NULL);/*!40000 ALTER TABLE `students` ENABLE KEYS */;
    UNLOCK TABLES;
    
    --
    -- Table structure for table `teachers`
    --
    
    DROP TABLE IF EXISTS `teachers`;
    /*!40101 SET @saved_cs_client     = @@character_set_client */;
    /*!40101 SET character_set_client = utf8 */;
    CREATE TABLE `teachers` (
      `TID` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
      `Name` varchar(100) NOT NULL,
      `Age` tinyint(3) unsigned NOT NULL,
      `Gender` enum('F','M') DEFAULT NULL,
      PRIMARY KEY (`TID`)
    ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
    /*!40101 SET character_set_client = @saved_cs_client */;
    
    --
    -- Dumping data for table `teachers`
    --
    
    LOCK TABLES `teachers` WRITE;
    /*!40000 ALTER TABLE `teachers` DISABLE KEYS */;
    INSERT INTO `teachers` VALUES (1,'Song Jiang',45,'M'),(2,'Zhang Sanfeng',94,'M'),(3,'Miejue Shitai',77,'F'),(4,'Lin Chaoying',93,'F');
    /*!40000 ALTER TABLE `teachers` ENABLE KEYS */;
    UNLOCK TABLES;
    
    --
    -- Table structure for table `toc`
    --
    
    DROP TABLE IF EXISTS `toc`;
    /*!40101 SET @saved_cs_client     = @@character_set_client */;
    /*!40101 SET character_set_client = utf8 */;
    CREATE TABLE `toc` (
      `ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `CourseID` smallint(5) unsigned DEFAULT NULL,
      `TID` smallint(5) unsigned DEFAULT NULL,
      PRIMARY KEY (`ID`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    /*!40101 SET character_set_client = @saved_cs_client */;
    
    --
    -- Dumping data for table `toc`
    --
    
    LOCK TABLES `toc` WRITE;
    /*!40000 ALTER TABLE `toc` DISABLE KEYS */;
    /*!40000 ALTER TABLE `toc` ENABLE KEYS */;
    UNLOCK TABLES;
    /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
    
    /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
    /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
    /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
    /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
    
    -- Dump completed on 2013-09-03  2:51:27
    [root@node105.yinzhengjie.org.cn ~]# 
    [root@node105.yinzhengjie.org.cn ~]# cat yinzhengjie_innodb.sql
      导入yinzhengjie_innodb.sql生成数据库及相应的测试表数据信息,然后完成下面问题。
    [root@node105.yinzhengjie.org.cn ~]# mysql -uroot -pyinzhengjie -S /mysql/3306/socket/mysql.sock 
    Welcome to the MariaDB monitor.  Commands end with ; or g.
    Your MariaDB connection id is 17
    Server version: 10.2.19-MariaDB MariaDB Server
    
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    MariaDB [(none)]> 
    MariaDB [(none)]> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    +--------------------+
    rows in set (0.00 sec)
    
    MariaDB [(none)]> 
    MariaDB [(none)]> SOURCE yinzhengjie_innodb.sql
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 1 row affected (0.00 sec)
    
    Database changed
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 8 rows affected (0.01 sec)
    Records: 8  Duplicates: 0  Warnings: 0
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 14 rows affected (0.00 sec)
    Records: 14  Duplicates: 0  Warnings: 0
    
    Query OK, 0 rows affected (0.01 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 7 rows affected (0.00 sec)
    Records: 7  Duplicates: 0  Warnings: 0
    
    Query OK, 0 rows affected (0.01 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 15 rows affected (0.00 sec)
    Records: 15  Duplicates: 0  Warnings: 0
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.01 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 25 rows affected (0.00 sec)
    Records: 25  Duplicates: 0  Warnings: 0
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.01 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 4 rows affected (0.00 sec)
    Records: 4  Duplicates: 0  Warnings: 0
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SHOW DATABASES;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | yinzhengjie        |
    +--------------------+
    4 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SHOW TABLES;
    +-----------------------+
    | Tables_in_yinzhengjie |
    +-----------------------+
    | classes               |
    | coc                   |
    | courses               |
    | scores                |
    | students              |
    | teachers              |
    | toc                   |
    +-----------------------+
    7 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> 
    
     
    MariaDB [(none)]> SOURCE yinzhengjie_innodb.sql

    1>.在students表中,查询年龄大于25岁,且为男性的同学的名字和年龄

    MariaDB [yinzhengjie]> SELECT * FROM students;
    +-------+---------------+-----+--------+---------+-----------+
    | StuID | Name          | Age | Gender | ClassID | TeacherID |
    +-------+---------------+-----+--------+---------+-----------+
    |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
    |     2 | Shi Potian    |  22 | M      |       1 |         7 |
    |     3 | Xie Yanke     |  53 | M      |       2 |        16 |
    |     4 | Ding Dian     |  32 | M      |       4 |         4 |
    |     5 | Yu Yutong     |  26 | M      |       3 |         1 |
    |     6 | Shi Qing      |  46 | M      |       5 |      NULL |
    |     7 | Xi Ren        |  19 | F      |       3 |      NULL |
    |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
    |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
    |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |
    |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |
    |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |
    |    15 | Duan Yu       |  19 | M      |       4 |      NULL |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL |
    |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |
    |    20 | Diao Chan     |  19 | F      |       7 |      NULL |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL |
    |    24 | Xu Xian       |  27 | M      |    NULL |      NULL |
    |    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |
    +-------+---------------+-----+--------+---------+-----------+
    25 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT Name AS 姓名, Age AS 年龄 FROM students WHERE Age > 25 AND Gender = 'M'; 
    +--------------+--------+
    | 姓名         | 年龄   |
    +--------------+--------+
    | Xie Yanke    |     53 |
    | Ding Dian    |     32 |
    | Yu Yutong    |     26 |
    | Shi Qing     |     46 |
    | Tian Boguang |     33 |
    | Xu Xian      |     27 |
    | Sun Dasheng  |    100 |
    +--------------+--------+
    7 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT Name AS 姓名, Age AS 年龄 FROM students WHERE Age > 25 AND Gender = 'M';

    2>.以ClassID为分组依据,显示每组的平均年龄

    MariaDB [yinzhengjie]> SELECT * FROM students;
    +-------+---------------+-----+--------+---------+-----------+
    | StuID | Name          | Age | Gender | ClassID | TeacherID |
    +-------+---------------+-----+--------+---------+-----------+
    |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
    |     2 | Shi Potian    |  22 | M      |       1 |         7 |
    |     3 | Xie Yanke     |  53 | M      |       2 |        16 |
    |     4 | Ding Dian     |  32 | M      |       4 |         4 |
    |     5 | Yu Yutong     |  26 | M      |       3 |         1 |
    |     6 | Shi Qing      |  46 | M      |       5 |      NULL |
    |     7 | Xi Ren        |  19 | F      |       3 |      NULL |
    |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
    |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
    |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |
    |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |
    |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |
    |    15 | Duan Yu       |  19 | M      |       4 |      NULL |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL |
    |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |
    |    20 | Diao Chan     |  19 | F      |       7 |      NULL |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL |
    |    24 | Xu Xian       |  27 | M      |    NULL |      NULL |
    |    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |
    +-------+---------------+-----+--------+---------+-----------+
    25 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT ClassID,AVG(Age) FROM students GROUP BY ClassID;      #查询的结果NULL那一行始终在最上面
    +---------+----------+
    | ClassID | AVG(Age) |
    +---------+----------+
    |    NULL |  63.5000 |
    |       1 |  20.5000 |
    |       2 |  36.0000 |
    |       3 |  20.2500 |
    |       4 |  24.7500 |
    |       5 |  46.0000 |
    |       6 |  20.7500 |
    |       7 |  19.6667 |
    +---------+----------+
    8 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT ClassID,AVG(Age) FROM students GROUP BY -ClassID DESC;    #可以将NULL的结果放在最后一行输出
    +---------+----------+
    | ClassID | AVG(Age) |
    +---------+----------+
    |       1 |  20.5000 |
    |       2 |  36.0000 |
    |       3 |  20.2500 |
    |       4 |  24.7500 |
    |       5 |  46.0000 |
    |       6 |  20.7500 |
    |       7 |  19.6667 |
    |    NULL |  63.5000 |
    +---------+----------+
    8 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]>
    MariaDB [yinzhengjie]> SELECT ClassID,AVG(Age) FROM students GROUP BY -ClassID DESC;    #可以将NULL的结果放在最后一行输出

    3>.显示第2题中平均年龄大于30的分组及平均年龄

    MariaDB [yinzhengjie]> SELECT * FROM students;
    +-------+---------------+-----+--------+---------+-----------+
    | StuID | Name          | Age | Gender | ClassID | TeacherID |
    +-------+---------------+-----+--------+---------+-----------+
    |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
    |     2 | Shi Potian    |  22 | M      |       1 |         7 |
    |     3 | Xie Yanke     |  53 | M      |       2 |        16 |
    |     4 | Ding Dian     |  32 | M      |       4 |         4 |
    |     5 | Yu Yutong     |  26 | M      |       3 |         1 |
    |     6 | Shi Qing      |  46 | M      |       5 |      NULL |
    |     7 | Xi Ren        |  19 | F      |       3 |      NULL |
    |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
    |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
    |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |
    |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |
    |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |
    |    15 | Duan Yu       |  19 | M      |       4 |      NULL |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL |
    |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |
    |    20 | Diao Chan     |  19 | F      |       7 |      NULL |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL |
    |    24 | Xu Xian       |  27 | M      |    NULL |      NULL |
    |    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |
    +-------+---------------+-----+--------+---------+-----------+
    25 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT ClassID,AVG(Age) FROM students GROUP BY -ClassID DESC;
    +---------+----------+
    | ClassID | AVG(Age) |
    +---------+----------+
    |       1 |  20.5000 |
    |       2 |  36.0000 |
    |       3 |  20.2500 |
    |       4 |  24.7500 |
    |       5 |  46.0000 |
    |       6 |  20.7500 |
    |       7 |  19.6667 |
    |    NULL |  63.5000 |
    +---------+----------+
    8 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT ClassID,AVG(Age) AS age FROM students GROUP BY -ClassID DESC HAVING age >30;
    +---------+---------+
    | ClassID | age     |
    +---------+---------+
    |       2 | 36.0000 |
    |       5 | 46.0000 |
    |    NULL | 63.5000 |
    +---------+---------+
    3 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT ClassID,AVG(Age) AS age FROM students GROUP BY -ClassID DESC HAVING age >30;

    4>.显示以L开头的名字的同学的信息

    MariaDB [yinzhengjie]> SELECT * FROM students;
    +-------+---------------+-----+--------+---------+-----------+
    | StuID | Name          | Age | Gender | ClassID | TeacherID |
    +-------+---------------+-----+--------+---------+-----------+
    |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
    |     2 | Shi Potian    |  22 | M      |       1 |         7 |
    |     3 | Xie Yanke     |  53 | M      |       2 |        16 |
    |     4 | Ding Dian     |  32 | M      |       4 |         4 |
    |     5 | Yu Yutong     |  26 | M      |       3 |         1 |
    |     6 | Shi Qing      |  46 | M      |       5 |      NULL |
    |     7 | Xi Ren        |  19 | F      |       3 |      NULL |
    |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
    |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
    |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |
    |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |
    |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |
    |    15 | Duan Yu       |  19 | M      |       4 |      NULL |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL |
    |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |
    |    20 | Diao Chan     |  19 | F      |       7 |      NULL |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL |
    |    24 | Xu Xian       |  27 | M      |    NULL |      NULL |
    |    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |
    +-------+---------------+-----+--------+---------+-----------+
    25 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students WHERE Name RLIKE '^L';
    +-------+-------------+-----+--------+---------+-----------+
    | StuID | Name        | Age | Gender | ClassID | TeacherID |
    +-------+-------------+-----+--------+---------+-----------+
    |     8 | Lin Daiyu   |  17 | F      |       7 |      NULL |
    |    14 | Lu Wushuang |  17 | F      |       3 |      NULL |
    |    17 | Lin Chong   |  25 | M      |       4 |      NULL |
    +-------+-------------+-----+--------+---------+-----------+
    3 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students WHERE Name RLIKE '^L';

    5>.显示TeacherID非空的同学的相关信息

    MariaDB [yinzhengjie]> SELECT * FROM students;
    +-------+---------------+-----+--------+---------+-----------+
    | StuID | Name          | Age | Gender | ClassID | TeacherID |
    +-------+---------------+-----+--------+---------+-----------+
    |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
    |     2 | Shi Potian    |  22 | M      |       1 |         7 |
    |     3 | Xie Yanke     |  53 | M      |       2 |        16 |
    |     4 | Ding Dian     |  32 | M      |       4 |         4 |
    |     5 | Yu Yutong     |  26 | M      |       3 |         1 |
    |     6 | Shi Qing      |  46 | M      |       5 |      NULL |
    |     7 | Xi Ren        |  19 | F      |       3 |      NULL |
    |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
    |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
    |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |
    |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |
    |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |
    |    15 | Duan Yu       |  19 | M      |       4 |      NULL |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL |
    |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |
    |    20 | Diao Chan     |  19 | F      |       7 |      NULL |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL |
    |    24 | Xu Xian       |  27 | M      |    NULL |      NULL |
    |    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |
    +-------+---------------+-----+--------+---------+-----------+
    25 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students WHERE TeacherID IS NOT NULL;
    +-------+-------------+-----+--------+---------+-----------+
    | StuID | Name        | Age | Gender | ClassID | TeacherID |
    +-------+-------------+-----+--------+---------+-----------+
    |     1 | Shi Zhongyu |  22 | M      |       2 |         3 |
    |     2 | Shi Potian  |  22 | M      |       1 |         7 |
    |     3 | Xie Yanke   |  53 | M      |       2 |        16 |
    |     4 | Ding Dian   |  32 | M      |       4 |         4 |
    |     5 | Yu Yutong   |  26 | M      |       3 |         1 |
    +-------+-------------+-----+--------+---------+-----------+
    5 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students WHERE TeacherID IS NOT NULL;

    6>.以年龄排序后,显示年龄最大的前10位同学的信息

    MariaDB [yinzhengjie]> SELECT * FROM students;
    +-------+---------------+-----+--------+---------+-----------+
    | StuID | Name          | Age | Gender | ClassID | TeacherID |
    +-------+---------------+-----+--------+---------+-----------+
    |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
    |     2 | Shi Potian    |  22 | M      |       1 |         7 |
    |     3 | Xie Yanke     |  53 | M      |       2 |        16 |
    |     4 | Ding Dian     |  32 | M      |       4 |         4 |
    |     5 | Yu Yutong     |  26 | M      |       3 |         1 |
    |     6 | Shi Qing      |  46 | M      |       5 |      NULL |
    |     7 | Xi Ren        |  19 | F      |       3 |      NULL |
    |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
    |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
    |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |
    |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |
    |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |
    |    15 | Duan Yu       |  19 | M      |       4 |      NULL |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL |
    |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |
    |    20 | Diao Chan     |  19 | F      |       7 |      NULL |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL |
    |    24 | Xu Xian       |  27 | M      |    NULL |      NULL |
    |    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |
    +-------+---------------+-----+--------+---------+-----------+
    25 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students ORDER BY Age DESC LIMIT 10;
    +-------+--------------+-----+--------+---------+-----------+
    | StuID | Name         | Age | Gender | ClassID | TeacherID |
    +-------+--------------+-----+--------+---------+-----------+
    |    25 | Sun Dasheng  | 100 | M      |    NULL |      NULL |
    |     3 | Xie Yanke    |  53 | M      |       2 |        16 |
    |     6 | Shi Qing     |  46 | M      |       5 |      NULL |
    |    13 | Tian Boguang |  33 | M      |       2 |      NULL |
    |     4 | Ding Dian    |  32 | M      |       4 |         4 |
    |    24 | Xu Xian      |  27 | M      |    NULL |      NULL |
    |     5 | Yu Yutong    |  26 | M      |       3 |         1 |
    |    17 | Lin Chong    |  25 | M      |       4 |      NULL |
    |    23 | Ma Chao      |  23 | M      |       4 |      NULL |
    |    18 | Hua Rong     |  23 | M      |       7 |      NULL |
    +-------+--------------+-----+--------+---------+-----------+
    10 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students ORDER BY Age DESC LIMIT 10;

    7>.查询年龄大于等于20岁,小于等于25岁的同学的信息

    MariaDB [yinzhengjie]> SELECT * FROM students;
    +-------+---------------+-----+--------+---------+-----------+
    | StuID | Name          | Age | Gender | ClassID | TeacherID |
    +-------+---------------+-----+--------+---------+-----------+
    |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
    |     2 | Shi Potian    |  22 | M      |       1 |         7 |
    |     3 | Xie Yanke     |  53 | M      |       2 |        16 |
    |     4 | Ding Dian     |  32 | M      |       4 |         4 |
    |     5 | Yu Yutong     |  26 | M      |       3 |         1 |
    |     6 | Shi Qing      |  46 | M      |       5 |      NULL |
    |     7 | Xi Ren        |  19 | F      |       3 |      NULL |
    |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
    |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
    |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |
    |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |
    |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |
    |    15 | Duan Yu       |  19 | M      |       4 |      NULL |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL |
    |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |
    |    20 | Diao Chan     |  19 | F      |       7 |      NULL |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL |
    |    24 | Xu Xian       |  27 | M      |    NULL |      NULL |
    |    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |
    +-------+---------------+-----+--------+---------+-----------+
    25 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> SELECT * FROM students WHERE Age BETWEEN 20 AND 25;
    +-------+---------------+-----+--------+---------+-----------+
    | StuID | Name          | Age | Gender | ClassID | TeacherID |
    +-------+---------------+-----+--------+---------+-----------+
    |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
    |     2 | Shi Potian    |  22 | M      |       1 |         7 |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL |
    +-------+---------------+-----+--------+---------+-----------+
    10 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students WHERE Age BETWEEN 20 AND 25;
    MariaDB [yinzhengjie]> SELECT * FROM students;
    +-------+---------------+-----+--------+---------+-----------+
    | StuID | Name          | Age | Gender | ClassID | TeacherID |
    +-------+---------------+-----+--------+---------+-----------+
    |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
    |     2 | Shi Potian    |  22 | M      |       1 |         7 |
    |     3 | Xie Yanke     |  53 | M      |       2 |        16 |
    |     4 | Ding Dian     |  32 | M      |       4 |         4 |
    |     5 | Yu Yutong     |  26 | M      |       3 |         1 |
    |     6 | Shi Qing      |  46 | M      |       5 |      NULL |
    |     7 | Xi Ren        |  19 | F      |       3 |      NULL |
    |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
    |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
    |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |
    |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |
    |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |
    |    15 | Duan Yu       |  19 | M      |       4 |      NULL |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL |
    |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |
    |    20 | Diao Chan     |  19 | F      |       7 |      NULL |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL |
    |    24 | Xu Xian       |  27 | M      |    NULL |      NULL |
    |    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |
    +-------+---------------+-----+--------+---------+-----------+
    25 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students WHERE Age >= 20 AND AGE <= 25;
    +-------+---------------+-----+--------+---------+-----------+
    | StuID | Name          | Age | Gender | ClassID | TeacherID |
    +-------+---------------+-----+--------+---------+-----------+
    |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
    |     2 | Shi Potian    |  22 | M      |       1 |         7 |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL |
    +-------+---------------+-----+--------+---------+-----------+
    10 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students WHERE Age >= 20 AND AGE <= 25;

    二.多表查询(基于上面导入的"yinzhengjie_innodb.sql"数据进行演示) 

     

    博主推荐阅读:
      https://www.runoob.com/sql/sql-join.html

    1>.将两张表中个别字段联合显示(纵向合并)

    联合查询:UNION
      拥有自动去重的功能
    
      两张表中字段数量得相同
    
      示例:
          SELECT Name,Age FROM students UNION SELECT Name,Age FROM teachers;
    MariaDB [yinzhengjie]> SHOW TABLES;
    +-----------------------+
    | Tables_in_yinzhengjie |
    +-----------------------+
    | classes               |
    | coc                   |
    | courses               |
    | scores                |
    | students              |
    | teachers              |
    | toc                   |
    +-----------------------+
    7 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM teachers;
    +-----+---------------+-----+--------+
    | TID | Name          | Age | Gender |
    +-----+---------------+-----+--------+
    |   1 | Song Jiang    |  45 | M      |
    |   2 | Zhang Sanfeng |  94 | M      |
    |   3 | Miejue Shitai |  77 | F      |
    |   4 | Lin Chaoying  |  93 | F      |
    +-----+---------------+-----+--------+
    4 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students;
    +-------+---------------+-----+--------+---------+-----------+
    | StuID | Name          | Age | Gender | ClassID | TeacherID |
    +-------+---------------+-----+--------+---------+-----------+
    |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
    |     2 | Shi Potian    |  22 | M      |       1 |         7 |
    |     3 | Xie Yanke     |  53 | M      |       2 |        16 |
    |     4 | Ding Dian     |  32 | M      |       4 |         4 |
    |     5 | Yu Yutong     |  26 | M      |       3 |         1 |
    |     6 | Shi Qing      |  46 | M      |       5 |      NULL |
    |     7 | Xi Ren        |  19 | F      |       3 |      NULL |
    |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
    |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
    |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |
    |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |
    |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |
    |    15 | Duan Yu       |  19 | M      |       4 |      NULL |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL |
    |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |
    |    20 | Diao Chan     |  19 | F      |       7 |      NULL |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL |
    |    24 | Xu Xian       |  27 | M      |    NULL |      NULL |
    |    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |
    +-------+---------------+-----+--------+---------+-----------+
    25 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT StuID AS id ,Name AS 姓名 FROM students UNION SELECT TID,Name FROM teachers;
    +----+---------------+
    | id | 姓名          |
    +----+---------------+
    |  1 | Shi Zhongyu   |
    |  2 | Shi Potian    |
    |  3 | Xie Yanke     |
    |  4 | Ding Dian     |
    |  5 | Yu Yutong     |
    |  6 | Shi Qing      |
    |  7 | Xi Ren        |
    |  8 | Lin Daiyu     |
    |  9 | Ren Yingying  |
    | 10 | Yue Lingshan  |
    | 11 | Yuan Chengzhi |
    | 12 | Wen Qingqing  |
    | 13 | Tian Boguang  |
    | 14 | Lu Wushuang   |
    | 15 | Duan Yu       |
    | 16 | Xu Zhu        |
    | 17 | Lin Chong     |
    | 18 | Hua Rong      |
    | 19 | Xue Baochai   |
    | 20 | Diao Chan     |
    | 21 | Huang Yueying |
    | 22 | Xiao Qiao     |
    | 23 | Ma Chao       |
    | 24 | Xu Xian       |
    | 25 | Sun Dasheng   |
    |  1 | Song Jiang    |
    |  2 | Zhang Sanfeng |
    |  3 | Miejue Shitai |
    |  4 | Lin Chaoying  |
    +----+---------------+
    29 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT StuID AS id ,Name AS 姓名 FROM students UNION SELECT TID,Name FROM teachers;(UNION会自动去重)

    2>.笛卡尔乘积查询(又称交叉连接,横向合并,生成环境应该避免这种查询)

    MariaDB [yinzhengjie]> SELECT * FROM students;
    +-------+---------------+-----+--------+---------+-----------+
    | StuID | Name          | Age | Gender | ClassID | TeacherID |
    +-------+---------------+-----+--------+---------+-----------+
    |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
    |     2 | Shi Potian    |  22 | M      |       1 |         7 |
    |     3 | Xie Yanke     |  53 | M      |       2 |        16 |
    |     4 | Ding Dian     |  32 | M      |       4 |         4 |
    |     5 | Yu Yutong     |  26 | M      |       3 |         1 |
    |     6 | Shi Qing      |  46 | M      |       5 |      NULL |
    |     7 | Xi Ren        |  19 | F      |       3 |      NULL |
    |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
    |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
    |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |
    |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |
    |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |
    |    15 | Duan Yu       |  19 | M      |       4 |      NULL |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL |
    |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |
    |    20 | Diao Chan     |  19 | F      |       7 |      NULL |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL |
    |    24 | Xu Xian       |  27 | M      |    NULL |      NULL |
    |    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |
    +-------+---------------+-----+--------+---------+-----------+
    25 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM teachers;
    +-----+---------------+-----+--------+
    | TID | Name          | Age | Gender |
    +-----+---------------+-----+--------+
    |   1 | Song Jiang    |  45 | M      |
    |   2 | Zhang Sanfeng |  94 | M      |
    |   3 | Miejue Shitai |  77 | F      |
    |   4 | Lin Chaoying  |  93 | F      |
    +-----+---------------+-----+--------+
    4 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students CROSS JOIN teachers;      #笛卡尔积查询,生产环境应该避免这样的查询。
    +-------+---------------+-----+--------+---------+-----------+-----+---------------+-----+--------+
    | StuID | Name          | Age | Gender | ClassID | TeacherID | TID | Name          | Age | Gender |
    +-------+---------------+-----+--------+---------+-----------+-----+---------------+-----+--------+
    |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |   1 | Song Jiang    |  45 | M      |
    |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |   2 | Zhang Sanfeng |  94 | M      |
    |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |   3 | Miejue Shitai |  77 | F      |
    |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |   4 | Lin Chaoying  |  93 | F      |
    |     2 | Shi Potian    |  22 | M      |       1 |         7 |   1 | Song Jiang    |  45 | M      |
    |     2 | Shi Potian    |  22 | M      |       1 |         7 |   2 | Zhang Sanfeng |  94 | M      |
    |     2 | Shi Potian    |  22 | M      |       1 |         7 |   3 | Miejue Shitai |  77 | F      |
    |     2 | Shi Potian    |  22 | M      |       1 |         7 |   4 | Lin Chaoying  |  93 | F      |
    |     3 | Xie Yanke     |  53 | M      |       2 |        16 |   1 | Song Jiang    |  45 | M      |
    |     3 | Xie Yanke     |  53 | M      |       2 |        16 |   2 | Zhang Sanfeng |  94 | M      |
    |     3 | Xie Yanke     |  53 | M      |       2 |        16 |   3 | Miejue Shitai |  77 | F      |
    |     3 | Xie Yanke     |  53 | M      |       2 |        16 |   4 | Lin Chaoying  |  93 | F      |
    |     4 | Ding Dian     |  32 | M      |       4 |         4 |   1 | Song Jiang    |  45 | M      |
    |     4 | Ding Dian     |  32 | M      |       4 |         4 |   2 | Zhang Sanfeng |  94 | M      |
    |     4 | Ding Dian     |  32 | M      |       4 |         4 |   3 | Miejue Shitai |  77 | F      |
    |     4 | Ding Dian     |  32 | M      |       4 |         4 |   4 | Lin Chaoying  |  93 | F      |
    |     5 | Yu Yutong     |  26 | M      |       3 |         1 |   1 | Song Jiang    |  45 | M      |
    |     5 | Yu Yutong     |  26 | M      |       3 |         1 |   2 | Zhang Sanfeng |  94 | M      |
    |     5 | Yu Yutong     |  26 | M      |       3 |         1 |   3 | Miejue Shitai |  77 | F      |
    |     5 | Yu Yutong     |  26 | M      |       3 |         1 |   4 | Lin Chaoying  |  93 | F      |
    |     6 | Shi Qing      |  46 | M      |       5 |      NULL |   1 | Song Jiang    |  45 | M      |
    |     6 | Shi Qing      |  46 | M      |       5 |      NULL |   2 | Zhang Sanfeng |  94 | M      |
    |     6 | Shi Qing      |  46 | M      |       5 |      NULL |   3 | Miejue Shitai |  77 | F      |
    |     6 | Shi Qing      |  46 | M      |       5 |      NULL |   4 | Lin Chaoying  |  93 | F      |
    |     7 | Xi Ren        |  19 | F      |       3 |      NULL |   1 | Song Jiang    |  45 | M      |
    |     7 | Xi Ren        |  19 | F      |       3 |      NULL |   2 | Zhang Sanfeng |  94 | M      |
    |     7 | Xi Ren        |  19 | F      |       3 |      NULL |   3 | Miejue Shitai |  77 | F      |
    |     7 | Xi Ren        |  19 | F      |       3 |      NULL |   4 | Lin Chaoying  |  93 | F      |
    |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |   1 | Song Jiang    |  45 | M      |
    |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |   2 | Zhang Sanfeng |  94 | M      |
    |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |   3 | Miejue Shitai |  77 | F      |
    |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |   4 | Lin Chaoying  |  93 | F      |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |   1 | Song Jiang    |  45 | M      |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |   2 | Zhang Sanfeng |  94 | M      |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |   3 | Miejue Shitai |  77 | F      |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |   4 | Lin Chaoying  |  93 | F      |
    |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |   1 | Song Jiang    |  45 | M      |
    |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |   2 | Zhang Sanfeng |  94 | M      |
    |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |   3 | Miejue Shitai |  77 | F      |
    |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |   4 | Lin Chaoying  |  93 | F      |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |   1 | Song Jiang    |  45 | M      |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |   2 | Zhang Sanfeng |  94 | M      |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |   3 | Miejue Shitai |  77 | F      |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |   4 | Lin Chaoying  |  93 | F      |
    |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |   1 | Song Jiang    |  45 | M      |
    |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |   2 | Zhang Sanfeng |  94 | M      |
    |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |   3 | Miejue Shitai |  77 | F      |
    |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |   4 | Lin Chaoying  |  93 | F      |
    |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |   1 | Song Jiang    |  45 | M      |
    |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |   2 | Zhang Sanfeng |  94 | M      |
    |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |   3 | Miejue Shitai |  77 | F      |
    |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |   4 | Lin Chaoying  |  93 | F      |
    |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |   1 | Song Jiang    |  45 | M      |
    |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |   2 | Zhang Sanfeng |  94 | M      |
    |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |   3 | Miejue Shitai |  77 | F      |
    |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |   4 | Lin Chaoying  |  93 | F      |
    |    15 | Duan Yu       |  19 | M      |       4 |      NULL |   1 | Song Jiang    |  45 | M      |
    |    15 | Duan Yu       |  19 | M      |       4 |      NULL |   2 | Zhang Sanfeng |  94 | M      |
    |    15 | Duan Yu       |  19 | M      |       4 |      NULL |   3 | Miejue Shitai |  77 | F      |
    |    15 | Duan Yu       |  19 | M      |       4 |      NULL |   4 | Lin Chaoying  |  93 | F      |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |   1 | Song Jiang    |  45 | M      |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |   2 | Zhang Sanfeng |  94 | M      |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |   3 | Miejue Shitai |  77 | F      |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |   4 | Lin Chaoying  |  93 | F      |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL |   1 | Song Jiang    |  45 | M      |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL |   2 | Zhang Sanfeng |  94 | M      |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL |   3 | Miejue Shitai |  77 | F      |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL |   4 | Lin Chaoying  |  93 | F      |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL |   1 | Song Jiang    |  45 | M      |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL |   2 | Zhang Sanfeng |  94 | M      |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL |   3 | Miejue Shitai |  77 | F      |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL |   4 | Lin Chaoying  |  93 | F      |
    |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |   1 | Song Jiang    |  45 | M      |
    |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |   2 | Zhang Sanfeng |  94 | M      |
    |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |   3 | Miejue Shitai |  77 | F      |
    |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |   4 | Lin Chaoying  |  93 | F      |
    |    20 | Diao Chan     |  19 | F      |       7 |      NULL |   1 | Song Jiang    |  45 | M      |
    |    20 | Diao Chan     |  19 | F      |       7 |      NULL |   2 | Zhang Sanfeng |  94 | M      |
    |    20 | Diao Chan     |  19 | F      |       7 |      NULL |   3 | Miejue Shitai |  77 | F      |
    |    20 | Diao Chan     |  19 | F      |       7 |      NULL |   4 | Lin Chaoying  |  93 | F      |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL |   1 | Song Jiang    |  45 | M      |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL |   2 | Zhang Sanfeng |  94 | M      |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL |   3 | Miejue Shitai |  77 | F      |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL |   4 | Lin Chaoying  |  93 | F      |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |   1 | Song Jiang    |  45 | M      |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |   2 | Zhang Sanfeng |  94 | M      |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |   3 | Miejue Shitai |  77 | F      |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |   4 | Lin Chaoying  |  93 | F      |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL |   1 | Song Jiang    |  45 | M      |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL |   2 | Zhang Sanfeng |  94 | M      |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL |   3 | Miejue Shitai |  77 | F      |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL |   4 | Lin Chaoying  |  93 | F      |
    |    24 | Xu Xian       |  27 | M      |    NULL |      NULL |   1 | Song Jiang    |  45 | M      |
    |    24 | Xu Xian       |  27 | M      |    NULL |      NULL |   2 | Zhang Sanfeng |  94 | M      |
    |    24 | Xu Xian       |  27 | M      |    NULL |      NULL |   3 | Miejue Shitai |  77 | F      |
    |    24 | Xu Xian       |  27 | M      |    NULL |      NULL |   4 | Lin Chaoying  |  93 | F      |
    |    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |   1 | Song Jiang    |  45 | M      |
    |    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |   2 | Zhang Sanfeng |  94 | M      |
    |    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |   3 | Miejue Shitai |  77 | F      |
    |    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |   4 | Lin Chaoying  |  93 | F      |
    +-------+---------------+-----+--------+---------+-----------+-----+---------------+-----+--------+
    100 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students CROSS JOIN teachers;      #笛卡尔积查询,生产环境应该避免这样的查询。

    3>.内连接查询

      等值连接:让表之间的字段以“等值”建立连接关系;
    
      不等值连接  

      自然连接:去掉重复列的等值连接

      自连接
    MariaDB [yinzhengjie]> SELECT * FROM students;
    +-------+---------------+-----+--------+---------+-----------+
    | StuID | Name          | Age | Gender | ClassID | TeacherID |
    +-------+---------------+-----+--------+---------+-----------+
    |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
    |     2 | Shi Potian    |  22 | M      |       1 |         7 |
    |     3 | Xie Yanke     |  53 | M      |       2 |        16 |
    |     4 | Ding Dian     |  32 | M      |       4 |         4 |
    |     5 | Yu Yutong     |  26 | M      |       3 |         1 |
    |     6 | Shi Qing      |  46 | M      |       5 |      NULL |
    |     7 | Xi Ren        |  19 | F      |       3 |      NULL |
    |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
    |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
    |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |
    |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |
    |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |
    |    15 | Duan Yu       |  19 | M      |       4 |      NULL |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL |
    |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |
    |    20 | Diao Chan     |  19 | F      |       7 |      NULL |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL |
    |    24 | Xu Xian       |  27 | M      |    NULL |      NULL |
    |    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |
    +-------+---------------+-----+--------+---------+-----------+
    25 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM teachers;
    +-----+---------------+-----+--------+
    | TID | Name          | Age | Gender |
    +-----+---------------+-----+--------+
    |   1 | Song Jiang    |  45 | M      |
    |   2 | Zhang Sanfeng |  94 | M      |
    |   3 | Miejue Shitai |  77 | F      |
    |   4 | Lin Chaoying  |  93 | F      |
    +-----+---------------+-----+--------+
    4 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students,teachers WHERE students.TeacherID = teachers.TID;    #该写法太老,不推荐使用
    +-------+-------------+-----+--------+---------+-----------+-----+---------------+-----+--------+
    | StuID | Name        | Age | Gender | ClassID | TeacherID | TID | Name          | Age | Gender |
    +-------+-------------+-----+--------+---------+-----------+-----+---------------+-----+--------+
    |     5 | Yu Yutong   |  26 | M      |       3 |         1 |   1 | Song Jiang    |  45 | M      |
    |     1 | Shi Zhongyu |  22 | M      |       2 |         3 |   3 | Miejue Shitai |  77 | F      |
    |     4 | Ding Dian   |  32 | M      |       4 |         4 |   4 | Lin Chaoying  |  93 | F      |
    +-------+-------------+-----+--------+---------+-----------+-----+---------------+-----+--------+
    3 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students,teachers WHERE students.TeacherID = teachers.TID;    #该写法太老,不推荐使用
    MariaDB [yinzhengjie]> SELECT * FROM students;
    +-------+---------------+-----+--------+---------+-----------+
    | StuID | Name          | Age | Gender | ClassID | TeacherID |
    +-------+---------------+-----+--------+---------+-----------+
    |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
    |     2 | Shi Potian    |  22 | M      |       1 |         7 |
    |     3 | Xie Yanke     |  53 | M      |       2 |        16 |
    |     4 | Ding Dian     |  32 | M      |       4 |         4 |
    |     5 | Yu Yutong     |  26 | M      |       3 |         1 |
    |     6 | Shi Qing      |  46 | M      |       5 |      NULL |
    |     7 | Xi Ren        |  19 | F      |       3 |      NULL |
    |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
    |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
    |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |
    |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |
    |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |
    |    15 | Duan Yu       |  19 | M      |       4 |      NULL |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL |
    |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |
    |    20 | Diao Chan     |  19 | F      |       7 |      NULL |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL |
    |    24 | Xu Xian       |  27 | M      |    NULL |      NULL |
    |    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |
    +-------+---------------+-----+--------+---------+-----------+
    25 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM teachers;
    +-----+---------------+-----+--------+
    | TID | Name          | Age | Gender |
    +-----+---------------+-----+--------+
    |   1 | Song Jiang    |  45 | M      |
    |   2 | Zhang Sanfeng |  94 | M      |
    |   3 | Miejue Shitai |  77 | F      |
    |   4 | Lin Chaoying  |  93 | F      |
    +-----+---------------+-----+--------+
    4 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students INNER JOIN teachers ON students.TeacherID = teachers.TID;  #内连接查询,推荐使用该写法
    +-------+-------------+-----+--------+---------+-----------+-----+---------------+-----+--------+
    | StuID | Name        | Age | Gender | ClassID | TeacherID | TID | Name          | Age | Gender |
    +-------+-------------+-----+--------+---------+-----------+-----+---------------+-----+--------+
    |     5 | Yu Yutong   |  26 | M      |       3 |         1 |   1 | Song Jiang    |  45 | M      |
    |     1 | Shi Zhongyu |  22 | M      |       2 |         3 |   3 | Miejue Shitai |  77 | F      |
    |     4 | Ding Dian   |  32 | M      |       4 |         4 |   4 | Lin Chaoying  |  93 | F      |
    +-------+-------------+-----+--------+---------+-----------+-----+---------------+-----+--------+
    3 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students INNER JOIN teachers ON students.TeacherID = teachers.TID;  #内连接查询,推荐使用该写法
    MariaDB [yinzhengjie]> SELECT * FROM students;
    +-------+---------------+-----+--------+---------+-----------+
    | StuID | Name          | Age | Gender | ClassID | TeacherID |
    +-------+---------------+-----+--------+---------+-----------+
    |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
    |     2 | Shi Potian    |  22 | M      |       1 |         7 |
    |     3 | Xie Yanke     |  53 | M      |       2 |        16 |
    |     4 | Ding Dian     |  32 | M      |       4 |         4 |
    |     5 | Yu Yutong     |  26 | M      |       3 |         1 |
    |     6 | Shi Qing      |  46 | M      |       5 |      NULL |
    |     7 | Xi Ren        |  19 | F      |       3 |      NULL |
    |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
    |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
    |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |
    |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |
    |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |
    |    15 | Duan Yu       |  19 | M      |       4 |      NULL |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL |
    |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |
    |    20 | Diao Chan     |  19 | F      |       7 |      NULL |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL |
    |    24 | Xu Xian       |  27 | M      |    NULL |      NULL |
    |    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |
    +-------+---------------+-----+--------+---------+-----------+
    25 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM teachers;
    +-----+---------------+-----+--------+
    | TID | Name          | Age | Gender |
    +-----+---------------+-----+--------+
    |   1 | Song Jiang    |  45 | M      |
    |   2 | Zhang Sanfeng |  94 | M      |
    |   3 | Miejue Shitai |  77 | F      |
    |   4 | Lin Chaoying  |  93 | F      |
    +-----+---------------+-----+--------+
    4 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT stuid,s.name AS 学生姓名 ,tid,t.name AS 老师姓名 FROM students AS s INNER JOIN teachers AS t ON s.TeacherID = t.TID;      #查询制定者字段并设置字段别名,也为表名设置别名进行调用。
    +-------+--------------+-----+---------------+
    | stuid | 学生姓名     | tid | 老师姓名      |
    +-------+--------------+-----+---------------+
    |     5 | Yu Yutong    |   1 | Song Jiang    |
    |     1 | Shi Zhongyu  |   3 | Miejue Shitai |
    |     4 | Ding Dian    |   4 | Lin Chaoying  |
    +-------+--------------+-----+---------------+
    3 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT stuid,s.name AS 学生姓名 ,tid,t.name AS 老师姓名 FROM students AS s INNER JOIN teachers AS t ON s.TeacherID = t.TID;      #查询制定者字段并设置字段别名,也为表名设置别名进行调用。(一旦为表设置别名就不能在调用该表原来的名称)
    MariaDB [yinzhengjie]> CREATE TABLE emp(id int,name char(3),leaderid int);
    Query OK, 0 rows affected (0.01 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> DESC emp;
    +----------+---------+------+-----+---------+-------+
    | Field    | Type    | Null | Key | Default | Extra |
    +----------+---------+------+-----+---------+-------+
    | id       | int(11) | YES  |     | NULL    |       |
    | name     | char(3) | YES  |     | NULL    |       |
    | leaderid | int(11) | YES  |     | NULL    |       |
    +----------+---------+------+-----+---------+-------+
    rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> INSERT INTO emp VALUES(1,'张无忌',null),(2,'杨逍',1),(3,'范遥',2),(4,'殷天正',2),(5,'韦一笑',2);
    Query OK, 5 rows affected (0.00 sec)
    Records: 5  Duplicates: 0  Warnings: 0
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM emp;
    +------+-----------+----------+
    | id   | name      | leaderid |
    +------+-----------+----------+
    |    1 | 张无忌    |     NULL |
    |    2 | 杨逍      |        1 |
    |    3 | 范遥      |        2 |
    |    4 | 殷天正    |        2 |
    |    5 | 韦一笑    |        2 |
    +------+-----------+----------+
    rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT a.name,b.name AS 领导 FROM emp AS a LEFT OUTER JOIN emp AS b ON a.leaderid = b.id;          #同一张表查询数据,查询每个人及其领导的姓名。(自连接查询)
    +-----------+-----------+
    | name      | 领导      |
    +-----------+-----------+
    | 杨逍      | 张无忌    |
    | 范遥      | 杨逍      |
    | 殷天正    | 杨逍      |
    | 韦一笑    | 杨逍      |
    | 张无忌    | NULL      |
    +-----------+-----------+
    rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT a.name,b.name AS 领导 FROM emp AS a LEFT OUTER JOIN emp AS b ON a.leaderid = b.id; #同一张表查询数据,查询每个人及其领导的姓名。(自连接查询)

    4>.子查询

      子查询:在查询语句嵌套着查询语句,性能较差
        基于某语句的查询结果再次进行的查询

      用在WHERE子句中的子查询
        用于比较表达式中的子查询;子查询仅能返回单个值
          SELECT Name,Age FROM students WHERE Age>(SELECT avg(Age) FROM students);
        用于IN中的子查询:子查询应该单键查询并返回一个或多个值从构成列表
          SELECT Name,Age FROM students WHERE Age IN (SELECT Age FROM teachers);
        用于EXISTS

      用于FROM子句中的子查询
        使用格式:SELECT tb_alias.col1,... FROM (SELECT clause) AS tb_alias WHERE Clause;
        示例:
          SELECT s.aage,s.ClassID FROM (SELECT avg(Age) AS aage,ClassID FROM students WHERE ClassID IS NOT NULL GROUP BY ClassID) AS s WHERE s.aage>30;

    MariaDB [yinzhengjie]> SELECT AVG(age) FROM students;
    +----------+
    | AVG(age) |
    +----------+
    |  27.4000 |
    +----------+
    row in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM teachers;
    +-----+---------------+-----+--------+
    | TID | Name          | Age | Gender |
    +-----+---------------+-----+--------+
    |   1 | Song Jiang    |  45 | M      |
    |   2 | Zhang Sanfeng |  94 | M      |
    |   3 | Miejue Shitai |  77 | F      |
    |   4 | Lin Chaoying  |  93 | F      |
    +-----+---------------+-----+--------+
    rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM teachers WHERE age > (SELECT AVG(age) FROM students) * 2;
    +-----+---------------+-----+--------+
    | TID | Name          | Age | Gender |
    +-----+---------------+-----+--------+
    |   2 | Zhang Sanfeng |  94 | M      |
    |   3 | Miejue Shitai |  77 | F      |
    |   4 | Lin Chaoying  |  93 | F      |
    +-----+---------------+-----+--------+
    rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]>
    MariaDB [yinzhengjie]> SELECT * FROM teachers WHERE age > (SELECT AVG(age) FROM students) * 2;     #查询老师年龄大于学生平均年龄的2倍的人

    5>.外连接查询

    左外连接:
      FROM tb1 LEFT JOIN tb2 ON tb1.col=tb2.col
    
    右外连接   
    FROM tb1 RIGHT JOIN tb2 ON tb1.col=tb2.col
    MariaDB [yinzhengjie]> SELECT * FROM teachers;
    +-----+---------------+-----+--------+
    | TID | Name          | Age | Gender |
    +-----+---------------+-----+--------+
    |   1 | Song Jiang    |  45 | M      |
    |   2 | Zhang Sanfeng |  94 | M      |
    |   3 | Miejue Shitai |  77 | F      |
    |   4 | Lin Chaoying  |  93 | F      |
    +-----+---------------+-----+--------+
    4 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students;
    +-------+---------------+-----+--------+---------+-----------+
    | StuID | Name          | Age | Gender | ClassID | TeacherID |
    +-------+---------------+-----+--------+---------+-----------+
    |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
    |     2 | Shi Potian    |  22 | M      |       1 |         7 |
    |     3 | Xie Yanke     |  53 | M      |       2 |        16 |
    |     4 | Ding Dian     |  32 | M      |       4 |         4 |
    |     5 | Yu Yutong     |  26 | M      |       3 |         1 |
    |     6 | Shi Qing      |  46 | M      |       5 |      NULL |
    |     7 | Xi Ren        |  19 | F      |       3 |      NULL |
    |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
    |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
    |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |
    |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |
    |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |
    |    15 | Duan Yu       |  19 | M      |       4 |      NULL |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL |
    |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |
    |    20 | Diao Chan     |  19 | F      |       7 |      NULL |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL |
    |    24 | Xu Xian       |  27 | M      |    NULL |      NULL |
    |    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |
    +-------+---------------+-----+--------+---------+-----------+
    25 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students AS s LEFT OUTER JOIN teachers AS t ON s.TeacherID = t.TID;    #左外连接,以students表(在左边)记录为校验
    +-------+---------------+-----+--------+---------+-----------+------+---------------+------+--------+
    | StuID | Name          | Age | Gender | ClassID | TeacherID | TID  | Name          | Age  | Gender |
    +-------+---------------+-----+--------+---------+-----------+------+---------------+------+--------+
    |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |    3 | Miejue Shitai |   77 | F      |
    |     2 | Shi Potian    |  22 | M      |       1 |         7 | NULL | NULL          | NULL | NULL   |
    |     3 | Xie Yanke     |  53 | M      |       2 |        16 | NULL | NULL          | NULL | NULL   |
    |     4 | Ding Dian     |  32 | M      |       4 |         4 |    4 | Lin Chaoying  |   93 | F      |
    |     5 | Yu Yutong     |  26 | M      |       3 |         1 |    1 | Song Jiang    |   45 | M      |
    |     6 | Shi Qing      |  46 | M      |       5 |      NULL | NULL | NULL          | NULL | NULL   |
    |     7 | Xi Ren        |  19 | F      |       3 |      NULL | NULL | NULL          | NULL | NULL   |
    |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL | NULL | NULL          | NULL | NULL   |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL | NULL | NULL          | NULL | NULL   |
    |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL | NULL | NULL          | NULL | NULL   |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL | NULL | NULL          | NULL | NULL   |
    |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL | NULL | NULL          | NULL | NULL   |
    |    13 | Tian Boguang  |  33 | M      |       2 |      NULL | NULL | NULL          | NULL | NULL   |
    |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL | NULL | NULL          | NULL | NULL   |
    |    15 | Duan Yu       |  19 | M      |       4 |      NULL | NULL | NULL          | NULL | NULL   |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL | NULL | NULL          | NULL | NULL   |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL | NULL | NULL          | NULL | NULL   |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL | NULL | NULL          | NULL | NULL   |
    |    19 | Xue Baochai   |  18 | F      |       6 |      NULL | NULL | NULL          | NULL | NULL   |
    |    20 | Diao Chan     |  19 | F      |       7 |      NULL | NULL | NULL          | NULL | NULL   |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL | NULL | NULL          | NULL | NULL   |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL | NULL | NULL          | NULL | NULL   |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL | NULL | NULL          | NULL | NULL   |
    |    24 | Xu Xian       |  27 | M      |    NULL |      NULL | NULL | NULL          | NULL | NULL   |
    |    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL | NULL | NULL          | NULL | NULL   |
    +-------+---------------+-----+--------+---------+-----------+------+---------------+------+--------+
    25 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students AS s LEFT OUTER JOIN teachers AS t ON s.TeacherID = t.TID;    #左外连接,以students表(在左边)记录为校验
    MariaDB [yinzhengjie]> SELECT * FROM teachers;
    +-----+---------------+-----+--------+
    | TID | Name          | Age | Gender |
    +-----+---------------+-----+--------+
    |   1 | Song Jiang    |  45 | M      |
    |   2 | Zhang Sanfeng |  94 | M      |
    |   3 | Miejue Shitai |  77 | F      |
    |   4 | Lin Chaoying  |  93 | F      |
    +-----+---------------+-----+--------+
    4 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students;
    +-------+---------------+-----+--------+---------+-----------+
    | StuID | Name          | Age | Gender | ClassID | TeacherID |
    +-------+---------------+-----+--------+---------+-----------+
    |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
    |     2 | Shi Potian    |  22 | M      |       1 |         7 |
    |     3 | Xie Yanke     |  53 | M      |       2 |        16 |
    |     4 | Ding Dian     |  32 | M      |       4 |         4 |
    |     5 | Yu Yutong     |  26 | M      |       3 |         1 |
    |     6 | Shi Qing      |  46 | M      |       5 |      NULL |
    |     7 | Xi Ren        |  19 | F      |       3 |      NULL |
    |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
    |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
    |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |
    |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |
    |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |
    |    15 | Duan Yu       |  19 | M      |       4 |      NULL |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL |
    |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |
    |    20 | Diao Chan     |  19 | F      |       7 |      NULL |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL |
    |    24 | Xu Xian       |  27 | M      |    NULL |      NULL |
    |    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |
    +-------+---------------+-----+--------+---------+-----------+
    25 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students AS s RIGHT OUTER JOIN teachers AS t ON s.TeacherID = t.TID;    #右外连接,以"teachers"(在右边)表记录为校验
    +-------+-------------+------+--------+---------+-----------+-----+---------------+-----+--------+
    | StuID | Name        | Age  | Gender | ClassID | TeacherID | TID | Name          | Age | Gender |
    +-------+-------------+------+--------+---------+-----------+-----+---------------+-----+--------+
    |     1 | Shi Zhongyu |   22 | M      |       2 |         3 |   3 | Miejue Shitai |  77 | F      |
    |     4 | Ding Dian   |   32 | M      |       4 |         4 |   4 | Lin Chaoying  |  93 | F      |
    |     5 | Yu Yutong   |   26 | M      |       3 |         1 |   1 | Song Jiang    |  45 | M      |
    |  NULL | NULL        | NULL | NULL   |    NULL |      NULL |   2 | Zhang Sanfeng |  94 | M      |
    +-------+-------------+------+--------+---------+-----------+-----+---------------+-----+--------+
    4 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students AS s RIGHT OUTER JOIN teachers AS t ON s.TeacherID = t.TID;    #右外连接,以"teachers"(在右边)表记录为校验
    MariaDB [yinzhengjie]> SELECT * FROM students AS s LEFT OUTER JOIN teachers AS t ON s.TeacherID = t.TID;
    +-------+---------------+-----+--------+---------+-----------+------+---------------+------+--------+
    | StuID | Name          | Age | Gender | ClassID | TeacherID | TID  | Name          | Age  | Gender |
    +-------+---------------+-----+--------+---------+-----------+------+---------------+------+--------+
    |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |    3 | Miejue Shitai |   77 | F      |
    |     2 | Shi Potian    |  22 | M      |       1 |         7 | NULL | NULL          | NULL | NULL   |
    |     3 | Xie Yanke     |  53 | M      |       2 |        16 | NULL | NULL          | NULL | NULL   |
    |     4 | Ding Dian     |  32 | M      |       4 |         4 |    4 | Lin Chaoying  |   93 | F      |
    |     5 | Yu Yutong     |  26 | M      |       3 |         1 |    1 | Song Jiang    |   45 | M      |
    |     6 | Shi Qing      |  46 | M      |       5 |      NULL | NULL | NULL          | NULL | NULL   |
    |     7 | Xi Ren        |  19 | F      |       3 |      NULL | NULL | NULL          | NULL | NULL   |
    |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL | NULL | NULL          | NULL | NULL   |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL | NULL | NULL          | NULL | NULL   |
    |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL | NULL | NULL          | NULL | NULL   |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL | NULL | NULL          | NULL | NULL   |
    |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL | NULL | NULL          | NULL | NULL   |
    |    13 | Tian Boguang  |  33 | M      |       2 |      NULL | NULL | NULL          | NULL | NULL   |
    |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL | NULL | NULL          | NULL | NULL   |
    |    15 | Duan Yu       |  19 | M      |       4 |      NULL | NULL | NULL          | NULL | NULL   |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL | NULL | NULL          | NULL | NULL   |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL | NULL | NULL          | NULL | NULL   |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL | NULL | NULL          | NULL | NULL   |
    |    19 | Xue Baochai   |  18 | F      |       6 |      NULL | NULL | NULL          | NULL | NULL   |
    |    20 | Diao Chan     |  19 | F      |       7 |      NULL | NULL | NULL          | NULL | NULL   |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL | NULL | NULL          | NULL | NULL   |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL | NULL | NULL          | NULL | NULL   |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL | NULL | NULL          | NULL | NULL   |
    |    24 | Xu Xian       |  27 | M      |    NULL |      NULL | NULL | NULL          | NULL | NULL   |
    |    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL | NULL | NULL          | NULL | NULL   |
    +-------+---------------+-----+--------+---------+-----------+------+---------------+------+--------+
    25 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students AS s LEFT OUTER JOIN teachers AS t ON s.TeacherID = t.TID WHERE t.tid IS NULL;      #对左外连接再次进行过滤,将两个表中重复的数据剔除。
    +-------+---------------+-----+--------+---------+-----------+------+------+------+--------+
    | StuID | Name          | Age | Gender | ClassID | TeacherID | TID  | Name | Age  | Gender |
    +-------+---------------+-----+--------+---------+-----------+------+------+------+--------+
    |     2 | Shi Potian    |  22 | M      |       1 |         7 | NULL | NULL | NULL | NULL   |
    |     3 | Xie Yanke     |  53 | M      |       2 |        16 | NULL | NULL | NULL | NULL   |
    |     6 | Shi Qing      |  46 | M      |       5 |      NULL | NULL | NULL | NULL | NULL   |
    |     7 | Xi Ren        |  19 | F      |       3 |      NULL | NULL | NULL | NULL | NULL   |
    |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL | NULL | NULL | NULL | NULL   |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL | NULL | NULL | NULL | NULL   |
    |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL | NULL | NULL | NULL | NULL   |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL | NULL | NULL | NULL | NULL   |
    |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL | NULL | NULL | NULL | NULL   |
    |    13 | Tian Boguang  |  33 | M      |       2 |      NULL | NULL | NULL | NULL | NULL   |
    |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL | NULL | NULL | NULL | NULL   |
    |    15 | Duan Yu       |  19 | M      |       4 |      NULL | NULL | NULL | NULL | NULL   |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL | NULL | NULL | NULL | NULL   |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL | NULL | NULL | NULL | NULL   |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL | NULL | NULL | NULL | NULL   |
    |    19 | Xue Baochai   |  18 | F      |       6 |      NULL | NULL | NULL | NULL | NULL   |
    |    20 | Diao Chan     |  19 | F      |       7 |      NULL | NULL | NULL | NULL | NULL   |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL | NULL | NULL | NULL | NULL   |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL | NULL | NULL | NULL | NULL   |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL | NULL | NULL | NULL | NULL   |
    |    24 | Xu Xian       |  27 | M      |    NULL |      NULL | NULL | NULL | NULL | NULL   |
    |    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL | NULL | NULL | NULL | NULL   |
    +-------+---------------+-----+--------+---------+-----------+------+------+------+--------+
    22 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students AS s LEFT OUTER JOIN teachers AS t ON s.TeacherID = t.TID WHERE t.tid IS NULL;    #对左外连接再次进行过滤,将两个表中重复的数据剔除。(左外连接特例)
    MariaDB [yinzhengjie]> SELECT * FROM teachers;
    +-----+---------------+-----+--------+
    | TID | Name          | Age | Gender |
    +-----+---------------+-----+--------+
    |   1 | Song Jiang    |  45 | M      |
    |   2 | Zhang Sanfeng |  94 | M      |
    |   3 | Miejue Shitai |  77 | F      |
    |   4 | Lin Chaoying  |  93 | F      |
    +-----+---------------+-----+--------+
    4 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students;
    +-------+---------------+-----+--------+---------+-----------+
    | StuID | Name          | Age | Gender | ClassID | TeacherID |
    +-------+---------------+-----+--------+---------+-----------+
    |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
    |     2 | Shi Potian    |  22 | M      |       1 |         7 |
    |     3 | Xie Yanke     |  53 | M      |       2 |        16 |
    |     4 | Ding Dian     |  32 | M      |       4 |         4 |
    |     5 | Yu Yutong     |  26 | M      |       3 |         1 |
    |     6 | Shi Qing      |  46 | M      |       5 |      NULL |
    |     7 | Xi Ren        |  19 | F      |       3 |      NULL |
    |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
    |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
    |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |
    |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |
    |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |
    |    15 | Duan Yu       |  19 | M      |       4 |      NULL |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL |
    |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |
    |    20 | Diao Chan     |  19 | F      |       7 |      NULL |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL |
    |    24 | Xu Xian       |  27 | M      |    NULL |      NULL |
    |    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |
    +-------+---------------+-----+--------+---------+-----------+
    25 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students AS s RIGHT OUTER JOIN teachers AS t ON s.TeacherID = t.TID;
    +-------+-------------+------+--------+---------+-----------+-----+---------------+-----+--------+
    | StuID | Name        | Age  | Gender | ClassID | TeacherID | TID | Name          | Age | Gender |
    +-------+-------------+------+--------+---------+-----------+-----+---------------+-----+--------+
    |     1 | Shi Zhongyu |   22 | M      |       2 |         3 |   3 | Miejue Shitai |  77 | F      |
    |     4 | Ding Dian   |   32 | M      |       4 |         4 |   4 | Lin Chaoying  |  93 | F      |
    |     5 | Yu Yutong   |   26 | M      |       3 |         1 |   1 | Song Jiang    |  45 | M      |
    |  NULL | NULL        | NULL | NULL   |    NULL |      NULL |   2 | Zhang Sanfeng |  94 | M      |
    +-------+-------------+------+--------+---------+-----------+-----+---------------+-----+--------+
    4 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students AS s RIGHT OUTER JOIN teachers AS t ON s.TeacherID = t.TID WHERE s.teacherid IS NULL;      #对右外连接再次进行过滤,将重复的数据剔除掉。
    +-------+------+------+--------+---------+-----------+-----+---------------+-----+--------+
    | StuID | Name | Age  | Gender | ClassID | TeacherID | TID | Name          | Age | Gender |
    +-------+------+------+--------+---------+-----------+-----+---------------+-----+--------+
    |  NULL | NULL | NULL | NULL   |    NULL |      NULL |   2 | Zhang Sanfeng |  94 | M      |
    +-------+------+------+--------+---------+-----------+-----+---------------+-----+--------+
    1 row in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students AS s RIGHT OUTER JOIN teachers AS t ON s.TeacherID = t.TID WHERE s.teacherid IS NULL;      #对右外连接再次进行过滤,将重复的数据剔除掉。
    MariaDB [yinzhengjie]> SELECT * FROM teachers;
    +-----+---------------+-----+--------+
    | TID | Name          | Age | Gender |
    +-----+---------------+-----+--------+
    |   1 | Song Jiang    |  45 | M      |
    |   2 | Zhang Sanfeng |  94 | M      |
    |   3 | Miejue Shitai |  77 | F      |
    |   4 | Lin Chaoying  |  93 | F      |
    +-----+---------------+-----+--------+
    4 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students;
    +-------+---------------+-----+--------+---------+-----------+
    | StuID | Name          | Age | Gender | ClassID | TeacherID |
    +-------+---------------+-----+--------+---------+-----------+
    |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
    |     2 | Shi Potian    |  22 | M      |       1 |         7 |
    |     3 | Xie Yanke     |  53 | M      |       2 |        16 |
    |     4 | Ding Dian     |  32 | M      |       4 |         4 |
    |     5 | Yu Yutong     |  26 | M      |       3 |         1 |
    |     6 | Shi Qing      |  46 | M      |       5 |      NULL |
    |     7 | Xi Ren        |  19 | F      |       3 |      NULL |
    |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
    |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
    |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |
    |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |
    |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |
    |    15 | Duan Yu       |  19 | M      |       4 |      NULL |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL |
    |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |
    |    20 | Diao Chan     |  19 | F      |       7 |      NULL |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL |
    |    24 | Xu Xian       |  27 | M      |    NULL |      NULL |
    |    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |
    +-------+---------------+-----+--------+---------+-----------+
    25 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students AS s FULL OUTER JOIN teachers AS t ON s.teacherid = t.tid;        #MySQL/MariaDB不支持完全外连接查询
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax t
    o use near 'FULL OUTER JOIN teachers AS t ON s.teacherid = t.tid' at line 1
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students AS s LEFT OUTER JOIN teachers AS t ON s.TeacherID = t.TID UNION SELECT * FROM students AS s RIGHT O
    UTER JOIN teachers AS t ON s.TeacherID = t.TID;          #由于MySQL/MariaDB不支持完全外连接查询,但是我们可以使用左外连接与右外连接的查询结果通过UNION去重功能实现完全外连接查询功能。
    +-------+---------------+------+--------+---------+-----------+------+---------------+------+--------+
    | StuID | Name          | Age  | Gender | ClassID | TeacherID | TID  | Name          | Age  | Gender |
    +-------+---------------+------+--------+---------+-----------+------+---------------+------+--------+
    |     1 | Shi Zhongyu   |   22 | M      |       2 |         3 |    3 | Miejue Shitai |   77 | F      |
    |     2 | Shi Potian    |   22 | M      |       1 |         7 | NULL | NULL          | NULL | NULL   |
    |     3 | Xie Yanke     |   53 | M      |       2 |        16 | NULL | NULL          | NULL | NULL   |
    |     4 | Ding Dian     |   32 | M      |       4 |         4 |    4 | Lin Chaoying  |   93 | F      |
    |     5 | Yu Yutong     |   26 | M      |       3 |         1 |    1 | Song Jiang    |   45 | M      |
    |     6 | Shi Qing      |   46 | M      |       5 |      NULL | NULL | NULL          | NULL | NULL   |
    |     7 | Xi Ren        |   19 | F      |       3 |      NULL | NULL | NULL          | NULL | NULL   |
    |     8 | Lin Daiyu     |   17 | F      |       7 |      NULL | NULL | NULL          | NULL | NULL   |
    |     9 | Ren Yingying  |   20 | F      |       6 |      NULL | NULL | NULL          | NULL | NULL   |
    |    10 | Yue Lingshan  |   19 | F      |       3 |      NULL | NULL | NULL          | NULL | NULL   |
    |    11 | Yuan Chengzhi |   23 | M      |       6 |      NULL | NULL | NULL          | NULL | NULL   |
    |    12 | Wen Qingqing  |   19 | F      |       1 |      NULL | NULL | NULL          | NULL | NULL   |
    |    13 | Tian Boguang  |   33 | M      |       2 |      NULL | NULL | NULL          | NULL | NULL   |
    |    14 | Lu Wushuang   |   17 | F      |       3 |      NULL | NULL | NULL          | NULL | NULL   |
    |    15 | Duan Yu       |   19 | M      |       4 |      NULL | NULL | NULL          | NULL | NULL   |
    |    16 | Xu Zhu        |   21 | M      |       1 |      NULL | NULL | NULL          | NULL | NULL   |
    |    17 | Lin Chong     |   25 | M      |       4 |      NULL | NULL | NULL          | NULL | NULL   |
    |    18 | Hua Rong      |   23 | M      |       7 |      NULL | NULL | NULL          | NULL | NULL   |
    |    19 | Xue Baochai   |   18 | F      |       6 |      NULL | NULL | NULL          | NULL | NULL   |
    |    20 | Diao Chan     |   19 | F      |       7 |      NULL | NULL | NULL          | NULL | NULL   |
    |    21 | Huang Yueying |   22 | F      |       6 |      NULL | NULL | NULL          | NULL | NULL   |
    |    22 | Xiao Qiao     |   20 | F      |       1 |      NULL | NULL | NULL          | NULL | NULL   |
    |    23 | Ma Chao       |   23 | M      |       4 |      NULL | NULL | NULL          | NULL | NULL   |
    |    24 | Xu Xian       |   27 | M      |    NULL |      NULL | NULL | NULL          | NULL | NULL   |
    |    25 | Sun Dasheng   |  100 | M      |    NULL |      NULL | NULL | NULL          | NULL | NULL   |
    |  NULL | NULL          | NULL | NULL   |    NULL |      NULL |    2 | Zhang Sanfeng |   94 | M      |
    +-------+---------------+------+--------+---------+-----------+------+---------------+------+--------+
    26 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students AS s LEFT OUTER JOIN teachers AS t ON s.TeacherID = t.TID UNION SELECT * FROM students AS s RIGHT O UTER JOIN teachers AS t ON s.TeacherID = t.TID;          #由于MySQL/MariaDB不支持完全外连接查询,但是我们可以使用左外连接与右外连接的查询结果通过UNION去重功能实现完全外连接查询功能。
    MariaDB [yinzhengjie]> SELECT * FROM students;
    +-------+---------------+-----+--------+---------+-----------+
    | StuID | Name          | Age | Gender | ClassID | TeacherID |
    +-------+---------------+-----+--------+---------+-----------+
    |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
    |     2 | Shi Potian    |  22 | M      |       1 |         7 |
    |     3 | Xie Yanke     |  53 | M      |       2 |        16 |
    |     4 | Ding Dian     |  32 | M      |       4 |         4 |
    |     5 | Yu Yutong     |  26 | M      |       3 |         1 |
    |     6 | Shi Qing      |  46 | M      |       5 |      NULL |
    |     7 | Xi Ren        |  19 | F      |       3 |      NULL |
    |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
    |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
    |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |
    |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |
    |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |
    |    15 | Duan Yu       |  19 | M      |       4 |      NULL |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL |
    |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |
    |    20 | Diao Chan     |  19 | F      |       7 |      NULL |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL |
    |    24 | Xu Xian       |  27 | M      |    NULL |      NULL |
    |    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |
    +-------+---------------+-----+--------+---------+-----------+
    25 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM teachers;
    +-----+---------------+-----+--------+
    | TID | Name          | Age | Gender |
    +-----+---------------+-----+--------+
    |   1 | Song Jiang    |  45 | M      |
    |   2 | Zhang Sanfeng |  94 | M      |
    |   3 | Miejue Shitai |  77 | F      |
    |   4 | Lin Chaoying  |  93 | F      |
    +-----+---------------+-----+--------+
    4 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM (SELECT stuid,s.name AS student_name,s.age AS student_age,s.gender AS student_gender,classid,teacherid,tid,t.name AS teacher_name,t.age AS teacher_age,t.gender AS teacher_gender FROM students AS s LEFT OUTER JOIN teachers AS t ON s.TeacherID = t.TID UNION SELECT stuid,s.name AS student_name,s.age AS student_age,s.gender AS student_gender,classid,teacherid,tid,t.name AS teacher_name,t.age AS teacher_age,t.gender AS teacher_gender  FROM students AS s RIGHT OUTER JOIN teachers AS t ON s.TeacherID = t.TID) AS f WHERE f.teacherid IS NULL OR f.tid IS NULL;          #将间接实现完全外连接查询结果再次进行过滤,查询出完全外连接中过滤掉两表重复的数据。
    +-------+---------------+-------------+----------------+---------+-----------+------+---------------+-------------+----------------+
    | stuid | student_name  | student_age | student_gender | classid | teacherid | tid  | teacher_name  | teacher_age | teacher_gender |
    +-------+---------------+-------------+----------------+---------+-----------+------+---------------+-------------+----------------+
    |     2 | Shi Potian    |          22 | M              |       1 |         7 | NULL | NULL          |        NULL | NULL           |
    |     3 | Xie Yanke     |          53 | M              |       2 |        16 | NULL | NULL          |        NULL | NULL           |
    |     6 | Shi Qing      |          46 | M              |       5 |      NULL | NULL | NULL          |        NULL | NULL           |
    |     7 | Xi Ren        |          19 | F              |       3 |      NULL | NULL | NULL          |        NULL | NULL           |
    |     8 | Lin Daiyu     |          17 | F              |       7 |      NULL | NULL | NULL          |        NULL | NULL           |
    |     9 | Ren Yingying  |          20 | F              |       6 |      NULL | NULL | NULL          |        NULL | NULL           |
    |    10 | Yue Lingshan  |          19 | F              |       3 |      NULL | NULL | NULL          |        NULL | NULL           |
    |    11 | Yuan Chengzhi |          23 | M              |       6 |      NULL | NULL | NULL          |        NULL | NULL           |
    |    12 | Wen Qingqing  |          19 | F              |       1 |      NULL | NULL | NULL          |        NULL | NULL           |
    |    13 | Tian Boguang  |          33 | M              |       2 |      NULL | NULL | NULL          |        NULL | NULL           |
    |    14 | Lu Wushuang   |          17 | F              |       3 |      NULL | NULL | NULL          |        NULL | NULL           |
    |    15 | Duan Yu       |          19 | M              |       4 |      NULL | NULL | NULL          |        NULL | NULL           |
    |    16 | Xu Zhu        |          21 | M              |       1 |      NULL | NULL | NULL          |        NULL | NULL           |
    |    17 | Lin Chong     |          25 | M              |       4 |      NULL | NULL | NULL          |        NULL | NULL           |
    |    18 | Hua Rong      |          23 | M              |       7 |      NULL | NULL | NULL          |        NULL | NULL           |
    |    19 | Xue Baochai   |          18 | F              |       6 |      NULL | NULL | NULL          |        NULL | NULL           |
    |    20 | Diao Chan     |          19 | F              |       7 |      NULL | NULL | NULL          |        NULL | NULL           |
    |    21 | Huang Yueying |          22 | F              |       6 |      NULL | NULL | NULL          |        NULL | NULL           |
    |    22 | Xiao Qiao     |          20 | F              |       1 |      NULL | NULL | NULL          |        NULL | NULL           |
    |    23 | Ma Chao       |          23 | M              |       4 |      NULL | NULL | NULL          |        NULL | NULL           |
    |    24 | Xu Xian       |          27 | M              |    NULL |      NULL | NULL | NULL          |        NULL | NULL           |
    |    25 | Sun Dasheng   |         100 | M              |    NULL |      NULL | NULL | NULL          |        NULL | NULL           |
    |  NULL | NULL          |        NULL | NULL           |    NULL |      NULL |    2 | Zhang Sanfeng |          94 | M              |
    +-------+---------------+-------------+----------------+---------+-----------+------+---------------+-------------+----------------+
    23 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM (SELECT stuid,s.name AS student_name,s.age AS student_age,s.gender AS student_gender,classid,teacherid,tid,t.name AS teacher_name,t.age AS teacher_age,t.gender AS teacher_gender FROM students AS s LEFT OUTER JOIN teachers AS t ON s.TeacherID = t.TID UNION SELECT stuid,s.name AS student_name,s.age AS student_age,s.gender AS student_gender,classid,teacherid,tid,t.name AS teacher_name,t.age AS teacher_age,t.gender AS teacher_gender FROM students AS s RIGHT OUTER JOIN teachers AS t ON s.TeacherID = t.TID) AS f WHERE f.teacherid IS NULL OR f.tid IS NULL;          #将间接实现完全外连接查询结果再次进行过滤,查询出完全外连接中过滤掉两表重复的数据。

    6>.自连接查询

    MariaDB [yinzhengjie]> CREATE TABLE emp(id int,name char(3),leaderid int);
    Query OK, 0 rows affected (0.01 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> DESC emp;
    +----------+---------+------+-----+---------+-------+
    | Field    | Type    | Null | Key | Default | Extra |
    +----------+---------+------+-----+---------+-------+
    | id       | int(11) | YES  |     | NULL    |       |
    | name     | char(3) | YES  |     | NULL    |       |
    | leaderid | int(11) | YES  |     | NULL    |       |
    +----------+---------+------+-----+---------+-------+
    rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> INSERT INTO emp VALUES(1,'张无忌',null),(2,'杨逍',1),(3,'范遥',2),(4,'殷天正',2),(5,'韦一笑',2);
    Query OK, 5 rows affected (0.00 sec)
    Records: 5  Duplicates: 0  Warnings: 0
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM emp;
    +------+-----------+----------+
    | id   | name      | leaderid |
    +------+-----------+----------+
    |    1 | 张无忌    |     NULL |
    |    2 | 杨逍      |        1 |
    |    3 | 范遥      |        2 |
    |    4 | 殷天正    |        2 |
    |    5 | 韦一笑    |        2 |
    +------+-----------+----------+
    rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT a.name,b.name AS 领导 FROM emp AS a LEFT OUTER JOIN emp AS b ON a.leaderid = b.id;          #同一张表查询数据,查询每个人及其领导的姓名。
    +-----------+-----------+
    | name      | 领导      |
    +-----------+-----------+
    | 杨逍      | 张无忌    |
    | 范遥      | 杨逍      |
    | 殷天正    | 杨逍      |
    | 韦一笑    | 杨逍      |
    | 张无忌    | NULL      |
    +-----------+-----------+
    5 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT a.name,b.name AS 领导 FROM emp AS a LEFT OUTER JOIN emp AS b ON a.leaderid = b.id; #同一张表查询数据,查询每个人及其领导的姓名。

    三.SELECT语句(单表操作)执行流程

    四.小试牛刀(本案例使用3张表,仍基于上面导入的"yinzhengjie_innodb.sql"数据进行演示)

    MariaDB [yinzhengjie]> SELECT * FROM students;
    +-------+---------------+-----+--------+---------+-----------+
    | StuID | Name          | Age | Gender | ClassID | TeacherID |
    +-------+---------------+-----+--------+---------+-----------+
    |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
    |     2 | Shi Potian    |  22 | M      |       1 |         7 |
    |     3 | Xie Yanke     |  53 | M      |       2 |        16 |
    |     4 | Ding Dian     |  32 | M      |       4 |         4 |
    |     5 | Yu Yutong     |  26 | M      |       3 |         1 |
    |     6 | Shi Qing      |  46 | M      |       5 |      NULL |
    |     7 | Xi Ren        |  19 | F      |       3 |      NULL |
    |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
    |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
    |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |
    |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |
    |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |
    |    15 | Duan Yu       |  19 | M      |       4 |      NULL |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL |
    |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |
    |    20 | Diao Chan     |  19 | F      |       7 |      NULL |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL |
    |    24 | Xu Xian       |  27 | M      |    NULL |      NULL |
    |    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |
    +-------+---------------+-----+--------+---------+-----------+
    25 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM students;
    MariaDB [yinzhengjie]> SELECT * FROM courses;
    +----------+----------------+
    | CourseID | Course         |
    +----------+----------------+
    |        1 | Hamo Gong      |
    |        2 | Kuihua Baodian |
    |        3 | Jinshe Jianfa  |
    |        4 | Taiji Quan     |
    |        5 | Daiyu Zanghua  |
    |        6 | Weituo Zhang   |
    |        7 | Dagou Bangfa   |
    +----------+----------------+
    7 rows in set (0.01 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM courses;
    MariaDB [yinzhengjie]> SELECT * FROM scores;
    +----+-------+----------+-------+
    | ID | StuID | CourseID | Score |
    +----+-------+----------+-------+
    |  1 |     1 |        2 |    77 |
    |  2 |     1 |        6 |    93 |
    |  3 |     2 |        2 |    47 |
    |  4 |     2 |        5 |    97 |
    |  5 |     3 |        2 |    88 |
    |  6 |     3 |        6 |    75 |
    |  7 |     4 |        5 |    71 |
    |  8 |     4 |        2 |    89 |
    |  9 |     5 |        1 |    39 |
    | 10 |     5 |        7 |    63 |
    | 11 |     6 |        1 |    96 |
    | 12 |     7 |        1 |    86 |
    | 13 |     7 |        7 |    83 |
    | 14 |     8 |        4 |    57 |
    | 15 |     8 |        3 |    93 |
    +----+-------+----------+-------+
    15 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT * FROM scores;

    1>.查询学生姓名,考试科目以及对应的成绩

    MariaDB [yinzhengjie]> SELECT a.name AS 姓名,c.course AS 课程,b.score AS 分数 FROM students AS a  INNER JOIN scores AS b ON a.stuid = b.id INNER JOIN courses AS c ON b.courseid = c.courseid;
    +---------------+----------------+--------+
    | 姓名          | 课程           | 分数   |
    +---------------+----------------+--------+
    | Shi Zhongyu   | Kuihua Baodian |     77 |
    | Shi Potian    | Weituo Zhang   |     93 |
    | Xie Yanke     | Kuihua Baodian |     47 |
    | Ding Dian     | Daiyu Zanghua  |     97 |
    | Yu Yutong     | Kuihua Baodian |     88 |
    | Shi Qing      | Weituo Zhang   |     75 |
    | Xi Ren        | Daiyu Zanghua  |     71 |
    | Lin Daiyu     | Kuihua Baodian |     89 |
    | Ren Yingying  | Hamo Gong      |     39 |
    | Yue Lingshan  | Dagou Bangfa   |     63 |
    | Yuan Chengzhi | Hamo Gong      |     96 |
    | Wen Qingqing  | Hamo Gong      |     86 |
    | Tian Boguang  | Dagou Bangfa   |     83 |
    | Lu Wushuang   | Taiji Quan     |     57 |
    | Duan Yu       | Jinshe Jianfa  |     93 |
    +---------------+----------------+--------+
    15 rows in set (0.00 sec)
    
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> 
    MariaDB [yinzhengjie]> SELECT a.name AS 姓名,c.course AS 课程,b.score AS 分数 FROM students AS a INNER JOIN scores AS b ON a.stuid = b.id INNER JOIN courses AS c ON b.courseid = c.courseid;

    2>.以ClassID分组,显示每班的同学的人数

    3>.以Gender分组,显示其年龄之和

    4>.以ClassID分组,显示其平均年龄大于25的班级

    5>.以Gender分组,显示各组中年龄大于25的学员的年龄之和

    6>.显示前5位同学的姓名、课程及成绩

    7>.显示其成绩高于80的同学的名称及课程

    8>.取每位同学各门课的平均成绩,显示成绩前三名的同学的姓名和平均成绩

    9>.显示每门课程课程名称及学习了这门课的同学的个数

    10>.显示其年龄大于平均年龄的同学的名字

    11>.显示其学习的课程为第1、2,4或第7门课的同学的名字

    12>.显示其成员数最少为3个的班级的同学中年龄大于同班同学平均年龄的同学

    13>.统计各班级中年龄大于全校同学平均年龄的同学

  • 相关阅读:
    应该选取表中哪些字段作为索引?
    maven聚合(依赖聚合)
    maven(1)
    maven打包记录1
    tomcat 日志(2)
    tomcat日志(1)
    存储过程
    EXISTS的用法介绍
    学习笔记-移动设备的处理器指令集 armv6 armv7 armv7s arm64
    学习笔记-nil NULL NSNull Nil的区别
  • 原文地址:https://www.cnblogs.com/yinzhengjie/p/11746233.html
Copyright © 2011-2022 走看看