Página de inicio personal
: Columnas de la serie de la página de inicio personal: Base de datos MySQLJaja, esta es la tarea asignada por nuestro maestro, me pregunto si usarla o no para publicar un blog.
Finalmente lo pensé y lo publicamos, aunque es muy sencillo, puede ser practicado para aquellos amigos que recién están aprendiendo bases de datos. Porque no hay respuesta, no se si es correcto o no, si alguien encuentra un error que lo señale.
tema:
- Verifique el número de estudiante, la clase y el nombre de cada estudiante
- Encuentra toda la información sobre el curso.
- Consulta qué clases profesionales hay en la base de datos
- Consulta información sobre cursos con más de 60 créditos
- Consulta el número de alumno, nombre y fecha de nacimiento de los alumnos nacidos en 1986
- Consultar el número de alumnos y cursos cuyas puntuaciones están por encima de 80 para tres tareas
- Consulta el número de estudiante, el nombre y la clase principal del estudiante de apellido Zhang
- Consulta la información de los chicos del grado 05
Consultar identificaciones de estudiantes e identificaciones de cursos sin calificaciones de tareas
- Consulta la puntuación total de la tarea 1 del alumno cuyo número de alumno es 0538
- Consulta el número de alumnos que han realizado el curso K001
- Consultar cuantas clases hay en la base de datos
- Consulte el número de estudiantes y el puntaje promedio de la tarea 1, el puntaje promedio de la tarea 2 y el puntaje promedio de la tarea 3 para estudiantes que toman tres o más cursos (incluidos 3 cursos)
No importa si los amigos son base 0, mira el siguiente blog y luego haz las preguntas.
1. Crea una base de datos
create database if not exists db2 ;
Ok, la creación es exitosa, luego abrimos la consola
2. Crea la tabla
1. Crea una tabla de estudiantes
analizar:
ID de estudiante: tipo de carácter
nombre: personaje
género: tipo de carácter género es una palabra por lo que varchar(1)
Clase profesional: tipo de personaje
Fecha de nacimiento: hora tipo fecha
Número de teléfono de contacto: número de teléfono de caracteres con 11 dígitos varchar (11).
drop table if exists student;
create table student
(
id varchar(10) comment '学号',
name varchar(10) NOT NULL comment '姓名',
gender char(1) comment '性别',
class varchar(20) comment '专业班级',
date date comment '出生日期',
iphone varchar(11) comment '联系电话'
)
comment '学生表';
select * from student;
2. Crea un horario de clases
drop table if exists student_course;
create table student_course
(
course_id varchar(10) comment '课程号',
course_name varchar(15) comment '课程名',
course_number double unsigned comment '学分数',
student_time int unsigned comment '学时数',
teacher varchar(10) comment '任课教师'
)
comment '课程表';
select *
from student_course;
3. Hoja de trabajo del estudiante
drop table if exists student_homework;
create table student_homework
(
course_id varchar(10) comment '课程号',
id varchar(10) comment '学号',
homework_1 int comment '作业1成绩',
homework_2 int comment '作业2成绩',
homework_3 int comment '作业3成绩'
)
comment '学生作业表';
select *
from student_homework;
3. Agregar datos
Escríbalos uno por uno de acuerdo con los datos de la imagen, woo woo woo
1. Mesa de estudiante
insert into student
values ('0433', '张艳', '女', '生物04', '1986-9-13', null),
('0496', '李越', '男', '电子04', '1984-2-23', '1381290xxxx'),
('0529', '赵欣', '男', '会计05', '1984-1-27', '1350222xxxx'),
('0531', '张志国', '男', '生物05', '1986-9-10', '1331256xxxx'),
('0538', '于兰兰', '女', '生物05', '1984-2-20', '1331200xxxx'),
('0591', '王丽丽', '女', '电子05', '1984-3-20', '1332080xxxx'),
('0592', '王海强', '男', '电子05', '1986-11-1', null);
Échale un vistazo:
select * from student;
2. Horario de clases
INSERT INTO student_course
values ('K001', '计算机图形学', 2.5, 40, '胡晶晶'),
('K002', '计算机应用基础', 3, 48, '任泉'),
('K006', '数据结构', 4, 64, '马跃先'),
('M001', '政治经济学', 4, 64, '孔繁新'),
('S001', '高等数学', 3, 48, '赵晓尘');
Échale un vistazo:
select *
from student_course;
3. Hoja de trabajo del estudiante
insert into student_homework values
('K001','0433',60,75,75),
('K001','0529',70,70,60),
('K001','0531',70,80,80),
('K001','0591',80,90,90),
('K002','0496',80,80,90),
('K002','0529',70,70,85),
('K002','0531',80,80,80),
('K002','0538',65,75,85),
('K002','0592',75,85,85),
('K006','0531',80,80,90),
('K006','0591',80,80,80),
('M001','0496',70,70,80),
('M001','0591',65,75,75),
('S001','0531',80,80,80),
('S001','0538',60,null,80);
Échale un vistazo:
select *
from student_homework;
4. Empieza a hacer preguntas
1. Verifique el número de estudiante, la clase y el nombre de cada estudiante
select id,class,name from student;
2. Consulta toda la información del curso
select *
from student_course;
3. Consulta qué clases profesionales hay en la base de datos
select class from student;
4. Consultar información de cursos con más de 60 créditos
select course_id,course_name from student_course where student_time>60;
5. Consulta el número de estudiante, nombre y fecha de nacimiento de los estudiantes nacidos en 1986
select id,name,date from student where date>=('1986-1-1') AND date<('1987-1-1');
6. Pregunte sobre el número de estudiante y el número de curso de los tres puntajes de tarea por encima de 80 puntos
Al principio usé esta consulta de nuevo:
select * from student_homework where homework_1>80 and homework_2>80 and homework_3>80;
Descubrí que no había nada, así que miré los datos y descubrí que no hay tales datos para tres puntajes de tareas superiores a 80.
Por lo tanto, la pregunta: "Consulta sobre el número de estudiante y número de curso con un puntaje de 80 o más en tres tareas" debe incluir 80 puntos
Entonces, lo modifico:
select * from student_homework where homework_1>=80 and homework_2>=80 and homework_3>=80;
7. Consulte el número de estudiante, el nombre y la clase principal del estudiante de apellido Zhang
Ejemplo de error:
Como no he escrito SQL durante cientos de años, en realidad escribí (me abofeteo):
select id,name,class from student where name = '张%';
select id,name,class from student where name like '张%';
8. Consultar la información de los niños en el grado 05
select * from student where class like '%05' and gender='男';
9. Consulte el número de estudiante y el número de curso sin calificaciones de tarea
select id,course_id from student_homework where homework_1 is null or homework_2 is null or homework_3 is null ;
10. Consulta la puntuación total de la tarea 1 del alumno cuyo número de alumno es 0538
select sum(homework_1) '总分' from student_homework where id='0538';
11. Consultar el número de alumnos que han realizado el curso K001 como optativo
select count(*) from student_homework where course_id='K001';
12. Consulta cuántas clases hay en la base de datos
select count(*) from student where class is not null ;
13. Consulte el número de estudiantes y el puntaje promedio de la Tarea 1, el puntaje promedio de la Tarea 2 y el puntaje promedio de la Tarea 3 que han tomado tres o más cursos (incluidos 3 cursos)
select student.id, avg(homework_1), avg(homework_2), avg(homework_3)
from student
left join student_homework on student.id = student_homework.id
group by student.id
having count(course_id) >= 3;