Adición, eliminación, modificación y consulta de tablas en el Capítulo 4
- Uno, crear (aumentar)
- Dos, Recuperar (consulta)
-
- 1, seleccione
- 2, donde
-
- (1) Operador
- (2) donde el propósito
- (3) Gramática
- (4) Ejemplos
-
- Estudiantes que fallan en inglés y sus puntajes en inglés ( < 60 )
- Estudiantes con puntajes de chino en [80, 90] y sus puntajes de chino
- Estudiantes cuyos puntajes de matemáticas son 58 o 59 o 98 o 99 y sus puntajes de matemáticas
- compañero de clase de apellido sol
- compañero de clase sol
- Estudiantes con una puntuación total de 200 o menos
- consulta por NULL
- 3. Clasificación de resultados
- 4. Filtrar resultados de paginación
- 3. Actualizar (actualizar/modificar)
- Cuatro, Eliminar (eliminar)
- 5. Insertar resultados de consulta
Cubrimos la creación y modificación de bibliotecas y tablas en los dos capítulos anteriores. Luego, este capítulo explica cómo insertar datos, cambiar datos, eliminar datos y consultar datos en la tabla después de crear la biblioteca y la tabla.
Uno, crear (aumentar)
Primero vamos a crear una tabla de estudiantes.
Hay tres variables en esta tabla, el número de estudiante del estudiante (id), el nombre del estudiante (nombre) y el buzón del estudiante (correo electrónico).
1. Datos de una sola fila + inserción de columna completa
(1) Gramática
insert into 表的名称 values (变量1的值,变量2的值...);
(2) Ejemplo
2. Datos de varias filas + inserción de columna completa
(1) Gramática
insert into 表的名称 values (变量1的值,变量2的值...),(变量1的值,变量2的值...),(变量1的值,变量2的值...)....;
(2) Ejemplo
3. Inserte la columna especificada
(1) Gramática
insert into 表的名称(变量1,变量2...) values (变量1的值,变量2的值...),(变量1的值,变量2的值...)...;
(2) Ejemplo
4. Actualizar los datos insertados
Cuando insertamos datos, la inserción suele fallar porque el valor correspondiente a la clave principal o la clave única ya existe. En este punto, podemos usar algunas operaciones gramaticales para permitir que nuestra inserción actualice los datos existentes.
(1) Gramática
在插入数据的语句后方加上:on duplicate key update 变量1 = 更新值1, 变量2 = 更新值2....;
(2) Ejemplo
Cuando ingresamos la declaración de inserción, si la inserción es exitosa, mysql nos dará retroalimentación, es decir Query OK, 2 rows affected (0.08 sec)
. Luego, las pocas filas aquí se actualizan, lo que en realidad puede indicar si nuestros datos se actualizan después de un conflicto o si se insertan directamente.
-- 0 row affected: 表中有冲突数据,但冲突数据的值和 update 的值相等
-- 1 row affected: 表中没有冲突数据,数据被插入
-- 2 row affected: 表中有冲突数据,并且数据已经被更新
5. Reemplazar datos
Hay dos categorías para discutir aquí. Si los datos que insertamos no entran en conflicto con la clave principal y la clave única, los datos se insertan directamente. Si nuestros datos insertados entran en conflicto con la clave principal y la clave única, elimine los datos originales y luego insértelos.
(1) Gramática
replace into 表的名称 (变量1,变量2...) values (变量值1,变量值2...);
(2) Contenido
en:
-- 1 row affected: 表中没有冲突数据,数据被插入
-- 2 row affected: 表中有冲突数据,删除后重新插入
Dos, Recuperar (consulta)
1, seleccione
(1) Consulta de columna completa
select * from 表的名称;
(2) Consulta de columna especificada
select 变量1,变量2... from 表的名称;
(3) Expresiones como columnas de consulta
select 变量1,变量2...表达式1,表达式2... from 表的名称;
(4) Especifique un alias para el resultado de la consulta
select 变量1 别名1,变量2 别名2...from 表的名称;
(5) Deduplicación de resultados
select distinct 变量1,变量2.... from 表的名称;
2, donde
Antes de introducir la sentencia where, vamos a crear una tabla de calificaciones e insertar algunos datos. La sentencia es la siguiente:
Crear una tabla:
create table exam_result (
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL COMMENT '同学姓名',
chinese float DEFAULT 0.0 COMMENT '语文成绩',
math float DEFAULT 0.0 COMMENT '数学成绩',
english float DEFAULT 0.0 COMMENT '英语成绩'
);
Insertar datos:
insert into exam_result (name, chinese, math, english) VALUES
('唐三藏', 67, 98, 56),
('孙悟空', 87, 78, 77),
('猪悟能', 88, 98, 90),
('曹孟德', 82, 84, 67),
('刘玄德', 55, 85, 45),
('孙权', 70, 73, 78),
('宋公明', 75, 65, 30);
(1) Operador
operador de comparación
Operadores logicos
(2) donde el propósito
Where suele ir seguido de determinadas declaraciones condicionales para filtrar datos específicos que cumplen las condiciones.
(3) Gramática
select * from 表的名称 where 数据满足的条件;
(4) Ejemplos
Estudiantes que fallan en inglés y sus puntajes en inglés ( < 60 )
select * from exam_result where english < 60;
Estudiantes con puntajes de chino en [80, 90] y sus puntajes de chino
方法1:
select * from exam_result where chinese >= 80 and chinese <= 90;
方法2:
select * from exam_result where chinese between 80 and 90;
Estudiantes cuyos puntajes de matemáticas son 58 o 59 o 98 o 99 y sus puntajes de matemáticas
方法1:
select * from exam_result where math = 58 or math = 59 or math = 98 or math = 99;
方法2:
select * from exam_result where math in (58, 59, 98, 99);
compañero de clase de apellido sol
select * from exam_result where name like '孙%';
compañero de clase sol
select * from exam_result where name like '孙_';
Estudiantes con una puntuación total de 200 o menos
select name, chinese+math+english 总分 from exam_result where chinese+math+english < 200;
consulta por NULL
Aquí se utiliza la tabla stu creada anteriormente.
select * from stu where email is not null;
select * from stu where email is null;
3. Clasificación de resultados
(1) Gramática
orden ascendente
select * from 表的名称 order by 变量名(或者表达式) asc
orden descendiente
select * from 表的名称 order by 变量名(或者表达式) desc
Si no escribimos asc o desc, mysql se establece por defecto en orden ascendente.
(2) Ejemplo
select * from exam_result order by chinese asc;
select name 姓名, chinese+math+english 总分 from exam_result order by chinese+math+english desc;
4. Filtrar resultados de paginación
(1) Gramática
- A partir de 0, filtrar n resultados
select 语句后面加 limit n;
- A partir de s, filtrar n resultados
select 语句后面加 limit s, n;
- A partir de s, filtrar n resultados, que es más específico que el segundo uso, se recomienda utilizar
select 语句后面加 limit n offset s;
(2) Ejemplo
Seleccione al alumno con la puntuación total más alta.
3. Actualizar (actualizar/modificar)
1. Gramática
update 表的名称 set 变量1=更新值1,变量2=更新值2... [where...] [order by...] [limit ..]
[ ] los corchetes son opciones opcionales.
Si no filtramos los datos más tarde, la declaración actualizará los datos en toda la tabla.
2. Ejemplos
Cambie la puntuación de matemáticas de Cao Mengde a 60 puntos y la puntuación de chino a 70 puntos
Cuatro, Eliminar (eliminar)
1, eliminar
(1) Gramática
delete from 表的名称 [where...] [order by...] [limit...];
[ ] Los corchetes son opciones opcionales. Si no agregamos ninguna condición, la declaración eliminará los datos de toda la tabla.
(2) Ejemplo
Eliminar los puntajes de las pruebas de Sun Wukong
2, truncar
(1) Gramática
truncate 表的名称;
(2) La diferencia entre truncar y borrar
-
delete puede eliminar datos filtrados específicos, pero truncar solo puede eliminar toda la tabla.
-
eliminar no restablecerá el valor de auto_increment, pero truncar restablecerá auto_increment
(3) Ejemplo
Probemos el punto aquí: si restablecer auto_increment.
Antes de la prueba, primero creamos una tabla T con solo variables de identificación. De la siguiente manera:
Luego inserte varios datos:
Veamos primero la declaración de eliminación:
primero use eliminar para eliminar los datos en toda la tabla.
Luego insertamos un dato para ver cuál es el valor agregado por el sistema por defecto.
Encontramos que 4 fue insertado por defecto, no 1.
También podemos verificar el valor autocreciente mirando la declaración al crear la tabla.
4 debería haberse mostrado aquí, pero después de que lo eliminamos, insertamos otro número, por lo que se muestra 5 aquí.
Luego miramos la declaración truncada:
Vamos a crear otra tabla T2, que todavía tiene solo una identificación de variable autocreciente.
Luego eliminamos la tabla con la instrucción truncada.
Luego eliminamos esta tabla y luego insertamos datos vacíos para ver por qué el crecimiento propio asignará un valor a los datos.
En este momento, se inserta 1, lo que indica que truncar de hecho ha restablecido el atributo de crecimiento propio.
5. Insertar resultados de consulta
Podemos usar la instrucción insert para insertar datos, y también podemos usar select para consultar datos. Entonces, ¿podemos insertar los datos consultados?
La respuesta es sí.
1. Gramática
insert into 表的名称[变量1,变量2....] select ...
2. Ejemplos
Primero cree una tabla ordinaria T3.
Luego, inserte varios conjuntos de datos.
Luego insertamos 1 nuevamente.
Verifique si insertamos correctamente: