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: