最新公告
  • 本站一直秉承服务宗旨:履行“站长”责任,销售只是起点 服务永无止境!”的经营理念立即加入
  • MySQL多表查询

    目录

    1、创建class数据库

    2、创建student和score表

    3、向student表插入记录的INSERT语句

    4、向score表插入记录的INSERT语句

    5、查询student表的所有记录

    6、查询student表的第2条到4条记录

    7、从student表查询所有学生的学号(id)、姓名(name)和院系(department)的信息

    8、从student表中查询计算机系和英语系的学生的信息

    9、从student表中查询年龄30~35岁的学生信

    10、从student表中查询每个院系有多少人

    11、从score表中查询每个科目的高分

    12、查询李四的考试科目(c_name)和考试成绩(grade)

    13、用连接的方式查询所有学生的信息和考试信息

    14、计算每个学生的总成绩

    15、计算每个考试科目的平均成绩

    16、查询计算机成绩低于95的学生信息

    17、查询同时参加计算机和英语考试的学生的信息

    18、将计算机考试成绩按从高到低进行排序

    19、从student表和score表中查询出学生的学号,然后合并查询结果

    20、查询姓张或者姓王的同学的姓名、院系和考试科目及成绩

    21、查询都是湖南的学生的姓名、年龄、院系和考试科目及成绩


    1、创建class数据库

    /*创建class数据库*/ CREATE DATABASE class;

    执行结果:

    MySQL多表查询插图

    2、创建student和score表

    /*创建student和score表*/ CREATE TABLE student( id INT(10) NOT NULL UNIQUE PRIMARY KEY, NAME VARCHAR(20) NOT NULL, sеx VARCHAR(4), birth YEAR, department VARCHAR(20), address VARCHAR(50) );ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; CREATE TABLE score( id INT(10) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT, stu_id INT(10) NOT NULL, c_name VARCHAR(20), grade INT(10) );ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

    执行结果:

    MySQL多表查询插图1

    3、向student表插入记录的INSERT语句

    /*向student表插入记录的INSERT语句*/ INSERT INTO student VALUES( 901,'张老大', '男',1985,'计算机系', '北京市海淀区'); INSERT INTO student VALUES( 902,'张*', '男',1986,'中文系', '北京市昌平区'); INSERT INTO student VALUES( 903,'张三', '女',1990,'中文系', '湖南省永州市'); INSERT INTO student VALUES( 904,'李四', '男',1990,'英语系', '辽宁省阜新市'); INSERT INTO student VALUES( 905,'王五', '女',1991,'英语系', '福建省厦门市'); INSERT INTO student VALUES( 906,'王六', '男',1988,'计算机系', '湖南省衡阳市'); 

    执行结果:

    MySQL多表查询插图2

    4、向score表插入记录的INSERT语句

    /*向score表插入记录的INSERT语句*/ INSERT INTO score VALUES(NULL,901, '计算机',98); INSERT INTO score VALUES(NULL,901, '英语', 80); INSERT INTO score VALUES(NULL,902, '计算机',65); INSERT INTO score VALUES(NULL,902, '中文',88); INSERT INTO score VALUES(NULL,903, '中文',95); INSERT INTO score VALUES(NULL,904, '计算机',70); INSERT INTO score VALUES(NULL,904, '英语',92); INSERT INTO score VALUES(NULL,905, '英语',94); INSERT INTO score VALUES(NULL,906, '计算机',90); INSERT INTO score VALUES(NULL,906, '英语',85); 

    执行结果:

    MySQL多表查询插图3

    5、查询student表的所有记录

    /*查询student表的所有记录*/ SELECT * FROM student; 

    执行结果:

    MySQL多表查询插图4

    6、查询student表的第2条到4条记录

    /*查询student表的第2条到4条记录*/ SELECT * FROM student LIMIT 1,3;

    执行结果:

    MySQL多表查询插图5

    7、从student表查询所有学生的学号(id)、姓名(name)和院系(department)的信息

    /*从student表查询所有学生的学号(id)、姓名(name)和院系(department)的信息*/ SELECT id,NAME,department FROM student;

    执行结果:

    MySQL多表查询插图6

    8、从student表中查询计算机系和英语系的学生的信息

    /*从student表中查询计算机系和英语系的学生的信息*/ SELECT * FROM student WHERE department='计算机系' OR department='英语系';

    执行结果:

    MySQL多表查询插图7

    9、从student表中查询年龄30~35岁的学生信息

    /*从student表中查询年龄30~35岁的学生信息*/ SELECT *,YEAR(NOW())-birth age FROM student WHERE (YEAR(NOW())-birth) BEТWEEN 30 AND 35;

    执行结果:

    MySQL多表查询插图8

    10、从student表中查询每个院系有多少人

    /*从student表中查询每个院系有多少人*/ SELECT department,COUNT(id) 人数 FROM student GROUP BY department;

    执行结果:

    MySQL多表查询插图9

    11、从score表中查询每个科目的高分

    /*从score表中查询每个科目的高分*/ SELECT c_name,MAX(grade) FROM score GROUP BY c_name;

    执行结果:

    MySQL多表查询插图10

    12、查询李四的考试科目(c_name)和考试成绩(grade)

    /*查询李四的考试科目(c_name)和考试成绩(grade)*/ SELECT s.`c_name`,s.`grade` FROM score s LEFT OUTER JOIN student st ON s.stu_id = st.id WHERE NAME = '李四'; 

    执行结果:

    MySQL多表查询插图11

    13、用连接的方式查询所有学生的信息和考试信息

    /*用连接的方式查询所有学生的信息和考试信息*/ SELECT * FROM score s LEFT OUTER JOIN student st ON s.stu_id = st.id;

    执行结果:

    MySQL多表查询插图12

    14、计算每个学生的总成绩

    /*计算每个学生的总成绩*/ SELECT st.name,SUM(s.grade) AS 学生总成绩 FROM score s LEFT JOIN student st ON s.stu_id = st.id GROUP BY st.id;

    执行结果:

    MySQL多表查询插图13

    15、计算每个考试科目的平均成绩

    /*计算每个考试科目的平均成绩*/ SELECT c_name,АVG(grade) AS 科目平均成绩 FROM score GROUP BY c_name;

    执行结果:

    MySQL多表查询插图14

    16、查询计算机成绩低于95的学生信息

    /*查询计算机成绩低于95的学生信息*/ SELECT st.* FROM score s LEFT JOIN student st ON s.stu_id = st.id WHERE s.c_name='计算机' AND s.grade<95;

    执行结果:

    MySQL多表查询插图15

    17、查询同时参加计算机和英语考试的学生的信息

    /*查询同时参加计算机和英语考试的学生的信息*/ SELECT st.* FROM student st ,score s ,score s1 WHERE st.id=s.stu_id AND s.c_name='计算机' AND st.id=s1.stu_id AND s1.c_name='英语';

    执行结果:

    MySQL多表查询插图16

    18、将计算机考试成绩按从高到低进行排序

    /*将计算机考试成绩按从高到低进行排序*/ SELECT grade FROM score WHERE c_name='计算机' ORDER BY grade DESC;

    执行结果:

    MySQL多表查询插图17

    19、从student表和score表中查询出学生的学号,然后合并查询结果

    /*从student表和score表中查询出学生的学号,然后合并查询结果*/ SELECT GROUP_CONCAT(s.`stu_id`,st.`id`) FROM score s LEFT JOIN student st ON s.stu_id = st.id;

    执行结果:

    MySQL多表查询插图18

    20、查询姓张或者姓王的同学的姓名、院系和考试科目及成绩

    /*查询姓张或者姓王的同学的姓名、院系和考试科目及成绩*/ SELECT NAME,department,c_name,grade FROM score,(SELECT * FROM student WHERE NAME LIKE '张%' OR NAME LIKE '王%')st WHERE stu_id=st.id; 

    执行结果:

    MySQL多表查询插图19

    21、查询都是湖南的学生的姓名、年龄、院系和考试科目及成绩

    /*查询都是湖南的学生的姓名、年龄、院系和考试科目及成绩*/ SELECT NAME,(YEAR(NOW())-birth)AS'age',department,c_name,grade FROM score,(SELECT * FROM student WHERE address LIKE'湖南%')st WHERE stu_id=st.id; 

    执行结果:

    MySQL多表查询插图20

    原文链接:https://blog.csdn.net/m0_63069714/article/details/127494502

    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
    3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如有侵权麻烦联系邮箱2697381891@qq.com删除文章!

    源码库 » MySQL多表查询
    • 3029会员总数(位)
    • 37685资源总数(个)
    • 586本周发布(个)
    • 102 今日发布(个)
    • 1171稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情