Trabalho de consulta de várias tabelas de banco de dados

Trabalho de consulta de várias tabelas de banco de dados

insira a descrição da imagem aqui
insira a descrição da imagem aqui
insira a descrição da imagem aqui
Criar um banco de dados
insira a descrição da imagem aqui
e inserir dados

mysql> insert into student values(901,'张老大','男',1985,'计算机系','北京市海淀区'),
    -> (902,'张老二','男',1986,'中文系','北京市昌平市'),
    -> (903,'张三','女',1990,'中文系','湖南省永州市'),                                           -> (904,'李四','男',1990,'英语系','辽宁省阜新市'),                                           -> (905,'王五','女',1991,'英语系','福建省厦门市'),
    -> (906,'王六','男',1988,'计算机系','湖南省衡阳市');

mysql> insert into score 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);

insira a descrição da imagem aqui
1. Consultar todos os registros da tabela do aluno

mysql> select * from student;

insira a descrição da imagem aqui

2. Consulta do 2º ao 4º registro da tabela aluno

mysql> select * from student limit 1,3;

insira a descrição da imagem aqui


3. Consulte as informações do número do aluno (id), nome (nome) e departamento (departamento) de todos os alunos da tabela do aluno

mysql> select id as 学号,name as 姓名,department as 院系 from student;

insira a descrição da imagem aqui

4. Consultar as informações dos alunos do departamento de informática e do departamento de inglês da tabela do aluno

mysql> select * from student where department='计算机系' or department='英语系';

insira a descrição da imagem aqui

5. Consulte as informações dos alunos de 18 a 22 anos na tabela do aluno

mysql> select *,year(curdate())-birth as age from student where year(curdate())-birth between 18 and 22;

insira a descrição da imagem aqui

6. Consultar quantas pessoas há em cada departamento na tabela do aluno

mysql> select department as 院系,count(*) as 人数 from student group by department;

insira a descrição da imagem aqui

7. Consultar a pontuação mais alta de cada disciplina na tabela de pontuação

mysql> select c_name as 科目,max(grade) as 最高分 from score group by c_name;

insira a descrição da imagem aqui

8. Consultar os assuntos de teste de Li Si (c_name) e os resultados do teste (nota)

mysql> select name as 姓名,c_name as 科目,grade as 成绩 from student
    -> inner join score on student.id=score.stu_id
    -> where name='李四';

insira a descrição da imagem aqui

9. Consulte todas as informações do aluno e informações do teste conectando

mysql> select * from student iudent inner join score on student.id=score.stu_id;

insira a descrição da imagem aqui

10. Calcule a nota total de cada aluno

mysql> select name as 姓名,sum(grade) as 总成绩 from student
    -> inner join score on student.id=score.stu_id
    -> group by name;

insira a descrição da imagem aqui

11. Calcule a pontuação média de cada sujeito do teste

mysql> select avg(grade) from score group by c_name;

insira a descrição da imagem aqui

12. Consultar as informações dos alunos cujas pontuações de computador são inferiores a 95

mysql> select * from student
    -> inner join (select stu_id,c_name,grade from score where grade<95 and c_name='计算机') as stu
    -> on student.id=stu.stu_id;

insira a descrição da imagem aqui

13. Consultar as informações dos alunos que fazem exames de computador e inglês

Obtenha a carteira de estudante do computador e teste de inglês ao mesmo tempo

select * from score where c_name='英语') as sc2 where sc1.stu_id=sc2.stu_id

Obter informações do aluno por ID

mysql> select * from student inner join (select sc1.stu_id from (select * from score where c_name='计算机') as sc1,(select * from score where c_name='英语') as sc2 where sc1.stu_id=sc2.stu_id) as sc on student.id=sc.stu_id;

insira a descrição da imagem aqui

14. Classifique as pontuações dos testes de computador de alto a baixo

mysql> select * from score where c_name='计算机' order by grade desc;

insira a descrição da imagem aqui

15. Consulte o número de identificação do aluno na tabela do aluno e na tabela de pontuação e, em seguida, mescle os resultados da consulta

mysql> select student.id,score.stu_id from student inner join (select distinct stu_id from score) as score on student.id=score.stu_id;

insira a descrição da imagem aqui

16. Consultar o nome, departamento, disciplinas de exame e notas dos alunos de sobrenome Zhang ou Wang

mysql> select stu.name as 姓名, stu.department as 院系, score.c_name as 科目,score.grade as  成绩
    -> from score inner join
    -> (select * from student where name like '张%' or name like '王') as stu
    -> on score.stu_id=stu.id;

insira a descrição da imagem aqui

17. Consultar os nomes, idades, departamentos, disciplinas de exame e notas dos alunos de Hunan

mysql> select stu.name as 姓名,year(curdate())-stu.birth as age,stu.department as 院系,score.c_name as 科目,score.grade as 成绩
    -> from score
    -> inner join
    -> (select * from student where address like '%湖南%') as stu
    -> on score.stu_id=stu.id;

insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/weixin_55822200/article/details/131707252
Recomendado
Clasificación