测试开发笔记-数据库例题(二)

  • Post author:
  • Post category:其他



创建如下数据表

 CREATE TABLE student2(
 id INT(10)PRIMARY key ,
 name VARCHAR(20)NOT NULL,
 sex VARCHAR(4),
 birth YEAR,
 department VARCHAR(20)NOT NULL,
 address VARCHAR(50)
 )ENGINE=InnoDB DEFAULT CHARSET=GB2312;
CREATE TABLE score2(
 id INT(10)PRIMARY key AUTO_INCREMENT,
 stu_id INT(10)NOT NULL,
 c_name VARCHAR(20),
 grade INT(10),
 UNIQUE KEY id (id)
 )ENGINE=InnoDB DEFAULT CHARSET=GB2312;
 INSERT INTO student2 (id,name,sex,birth,department,address) VALUES
 (901,'张老大','男',1985,'计算机系','北京市海淀区'),
 (902,'张老二','男',1986,'中文系','北京市昌平区'),
 (903,'张三','女',1990,'中文系','湖南省永州市'),
 (904,'李四','男',1990,'英语系','辽宁省阜新市'),
 (905,'王五','女',1991,'英语系','福建省厦门市'),
 (906,'王六','男',1988,'计算机系','湖南省衡阳市');
 INSERT INTO score2 (id,stu_id,c_name,grade) VALUES
 (NULL,901,'计算机',98),
 (NULL,901,'英语',80),
 (NULL,902,'计算机',65),
 (NULL,902,'中文',88),
 (NULL,903,'中文',95),
 (NULL,904,'计算机',70),
 (NULL,904,'英语',92),
 (NULL,905,'英语',94),
 (NULL,906,'计算机',90),
 (NULL,906,'英语',85);

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

SELECT * FROM student2 LIMIT 1,3;

20200603_190758_275.png

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

SELECT id 学号, name 姓名, department 院系 FROM student2;

在这里插入图片描述

7.从student表中查询年龄18~22岁的学生信息

SELECT * FROM student2 WHERE 2010-birth BETWEEN 18 AND 22;

在这里插入图片描述

8.从student表中查询每个院系有多少人

SELECT department, count(id) FROM student2 GROUP BY department;

在这里插入图片描述

9.从score表中查询每个科目的最高分

SELECT c_name,max(grade) FROM score2 GROUP BY c_name;

在这里插入图片描述

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

SELECT c_name,grade FROM score2 WHERE stu_id=(
SELECT id FROM student2 WHERE name='李四' );

在这里插入图片描述

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

SELECT student2.id,student2.name,student2.sex,student2.birth,student2.department, student2.address,score2.c_name,score2.grade 
FROM student2,score2 WHERE student2.id=score2.stu_id;

在这里插入图片描述

12.计算每个学生的总成绩

SELECT stu_id,sum(grade) FROM score2 GROUP BY stu_id

在这里插入图片描述

13.计算每个考试科目的平均成绩

SELECT c_name,AVG(grade) FROM score2 GROUP BY c_name

在这里插入图片描述

14.查询计算机成绩低于95的学生信息

SELECT * FROM score2 WHERE c_name='计算机' AND grade<95;

在这里插入图片描述

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

SELECT * FROM student2 WHERE id=ANY(
SELECT stu_id FROM score2 WHERE stu_id in
(SELECT stu_id FROM score2 WHERE c_name='计算机') AND c_name='英语');  

在这里插入图片描述

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

SELECT * FROM score2 WHERE c_name='计算机' ORDER BY grade DESC

在这里插入图片描述

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

SELECT id FROM student2  UNION all SELECT stu_id FROM score2 ;

在这里插入图片描述

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

SELECT student2.name,student2.department,score2.c_name,score2.grade
 FROM student2,score2 WHERE student2.id=score2.stu_id AND
( student2.name LIKE '张%' OR student2.name LIKE '王%')

在这里插入图片描述

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

SELECT student2.name,(2010-student2.birth) AS 年龄,student2.department,score2.c_name,score2.grade
 FROM student2,score2 WHERE student2.id=score2.stu_id AND
(student2.address LIKE '湖南%')

在这里插入图片描述



版权声明:本文为Myhappinessisyou原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。