Preguntas de práctica sobre la base de datos MySQL (conexión interna)

Uno, crea una base de datos

1. Abra la ventana cmd y ejecute el comando:

mysql -u root -p

Presione Enter e ingrese la contraseña para iniciar sesión en el entorno MySQL

2. Ejecute el siguiente comando para crear una base de datos, el nombre de la base de datos es: prueba (no distingue entre mayúsculas y minúsculas)

CREATE DATABASE test character set gbk;

3. Ejecute los siguientes comandos para utilizar la base de datos de prueba creada

use test;

4. Ingrese el directorio de datos en el directorio de instalación de MySQL y verá una base de datos de prueba creada

5. Conéctese a Navicat, también puede ver la base de datos de prueba creada

Dos, crea una tabla de datos

1. Crea una tabla de estudiantes

(1) Ingrese el siguiente comando para crear una tabla de estudiantes

CREATE TABLE students(
id INT NOT NULL PRIMARY KEY,
name CHAR(20) NOT NULL,
score INT,
class INT);

(2) Conecte Navicat para ver la tabla de estudiantes creada

(3) Inserte datos en la tabla de estudiantes creada

INSERT INTO students VALUES
(1,'张三',80,1),
(2,'李四',70,2),
(3,'王五',90,1),
(4,'赵七',60,2);

(4) Conecte Navicat para ver los registros después de insertar datos en la tabla de estudiantes

2. Crea una tabla de disciplina

(1) Ingrese el siguiente comando para crear una tabla de materias de la clase

CREATE TABLE class(
id INT NOT NULL PRIMARY KEY,
name CHAR(20) NOT NULL
);

(2) Conéctese a Navicat y vea la tabla de disciplina de clase creada

(3) Inserte datos en la tabla de materias de la clase creada

INSERT INTO class VALUES
(1,'语文'),
(2,'数学');

(4) Conecte Navicat para ver los registros después de insertar datos en la tabla de materias de la clase

Tres, preguntas de práctica

Descubra el alumno con la puntuación más alta en cada asignatura

(1) Ingrese el siguiente comando para ejecutar el resultado de la consulta

SELECT C.name AS class,S.name,S.score
FROM students AS S 
	JOIN class AS C
	ON S.class = C.id
WHERE score IN(
	SELECT MAX(score)
	FROM students
	GROUP BY class);

(2) Conéctese a Navicat, ejecute la declaración de consulta y vea el resultado de la consulta.

Cuatro, análisis

SELECCIONE C.name AS class, S.name, S.score

-> AS aquí significa cambiar el nombre. Es decir, la letra mayúscula C se utiliza como tabla de materias de la clase y la letra S mayúscula se utiliza para representar la tabla de estudiantes.
C.name significa la columna de nombre en la tabla de materias de la clase.
S.name significa la columna de nombre en la tabla de estudiantes.
S.score significa la columna de puntaje en la tabla de datos de estudiantes.

 

DE estudiantes AS S     

           ÚNETE a la clase AS C

           ON S.class = C.id

-> El conocimiento gramatical de inner join se usa aquí: se usa la palabra clave inner join, y inner se puede omitir.

Sintaxis: display inner join: seleccione * from A inner join B on condition;

El significado de esta oración es usar JOIN para conectar la tabla de estudiantes y la tabla del plan de estudios de la clase, donde la letra S mayúscula representa la tabla de estudiantes de estudiantes y la letra C mayúscula representa la tabla de materias de la clase.

-> El ON aquí es seguido por la condición de la consulta de unión interna. La condición aquí es: el valor del campo de clase en la tabla de estudiantes es igual al valor del campo de identificación en la tabla de materias de la clase.

 

DONDE puntuar EN (

-> Aquí está la condición de la consulta, la condición es: puntuación

 

             SELECCIONAR MAX (puntuación)

             DE estudiantes

-> MAX () aquí es una función de base de datos utilizada para encontrar el registro máximo en un conjunto de registros. SELECT se usa nuevamente aquí, lo que indica que se trata de una consulta anidada, es decir, el registro con la puntuación más alta (puntuación) se consulta desde la tabla de estudiantes.

 

GROUP BY class);
-> Aquí, GROUP BY significa agrupación de consulta y visualización, y la condición de agrupación es: clase. Después de encontrar el registro más grande, utilice el método de agrupación GROUP BY para agruparlo y mostrarlo de acuerdo con el registro de clase.

● Si no agrega GROUP BY clase ), esta oración no se mostrará en grupos según ninguna condición, y se mostrarán todos los registros de puntajes (puntaje). Los resultados son los siguientes:

 

● Si agrega GRUPO POR clase ); esta oración, aquí mostrará el registro de puntaje máximo (puntaje) de cada departamento, el resultado es el siguiente:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Supongo que te gusta

Origin blog.csdn.net/weixin_43184774/article/details/106142266
Recomendado
Clasificación