Agregar, eliminar, verificar
Tabla de contenido
- Agregar, eliminar, verificar
- Nuevo
- 1.1 Datos de una fila + inserción de columna completa
- 1.2 Datos de varias filas + inserción de columna especificada
- 2. Consulta
- 2.1 Consulta de columna completa
- 2.2 Especificar consulta de columna
- 2.3 Alias
- 2.4 Deduplicación: DISTINCT
- 2.5 Clasificación: ORDENAR POR
- 2.6 Consulta condicional: DÓNDE
- 3. Modificar (Actualizar)
Nuevo
Sintaxis:
INSERT [INTO] table_name
[(column [, column] ...)] VALUES (value_list) [, (value_list)] ...
value_list: value, [, value] ...
Caso:
- Crear un formulario de estudiante
CREATE TABLE student (
id INT,
sn INT comment '学号',
name VARCHAR(20) comment '姓名',
qq_mail VARCHAR(20) comment 'QQ邮箱'
);
1.1 Datos de una fila + inserción de columna completa
INSERT INTO student VALUES (100, 10000, '唐三藏', NULL);
1.2 Datos de varias filas + inserción de columna especificada
插入两条记录,value_list 数量必须和指定列数量及顺序一致
INSERT INTO student (id, sn, name) VALUES
(102, 20001, '曹孟德'),
(103, 20002, '孙仲谋');
2. Consulta
Sintaxis:
SELECT
[DISTINCT] {* | {column [, column] ...}
[FROM table_name]
[WHERE ...]
[ORDER BY column [ASC | DESC], ...]
LIMIT ...
Ejemplos:
2.1 Consulta de columna completa
Sintaxis:
select * from 表名(student);
2.2 Especificar consulta de columna
2.3 Alias
Sintaxis:
SELECT column [AS] alias_name [...] FROM table_name
Ejemplos:
DROP TABLE IF EXISTS exam_result;
CREATE TABLE exam_result (
id INT,
name VARCHAR(20),
chinese DECIMAL(3,1),
math DECIMAL(3,1),
english DECIMAL(3,1)
);
INSERT INTO exam_result (id,name, chinese, math, english) VALUES
-> (1,'唐三藏', 67, 98, 56),
-> (2,'孙悟空', 87.5, 78, 77),
-> (3,'猪悟能', 88, 98.5, 90),
-> (4,'曹孟德', 82, 84, 67),
-> (5,'刘玄德', 55.5, 85, 45),
-> (6,'孙权', 70, 73, 78.5),
-> (7,'宋公明', 75, 65, 30);
En el conjunto de resultados, el nombre de la columna del encabezado de tabla = alias
select id,name,chinese + math +english from exam_result;
2.4 Deduplicación: DISTINCT
Ejemplos:
SELECT math FROM exam_result;
Deduplicación:
select distinct math from exam_result;
2.5 Clasificación: ORDENAR POR
Sintaxis:
-- ASC 为升序(从小到大)
-- DESC 为降序(从大到小)
-- 默认为 ASC
SELECT ... FROM table_name [WHERE ...]
ORDER BY column [ASC|DESC], [...];
- Para consultas sin una cláusula ORDER BY, el pedido devuelto no está definido. Nunca confíe en este pedido
- La clasificación de datos NULL se considera menor que cualquier valor, el orden ascendente aparece en la parte superior, el orden descendente aparece en la parte inferior
查询ID和姓名,按ID进行排序
select id,name from student order by id;
2.6 Consulta condicional: DÓNDE
Operadores de comparación
Nota:
- WHERE las condiciones pueden usar expresiones, pero no pueden usar alias.
- La prioridad de AND es mayor que la de OR. Cuando se usa al mismo tiempo, debe usar paréntesis () para ajustar la parte de la ejecución de prioridad.
Caso:
consulta básica:
-- 查询英语不及格的同学及英语成绩 ( < 60 )
SELECT name, english FROM exam_result WHERE english < 60;
- Consultar estudiantes cuyos puntajes de idioma son mejores que el inglés
SELECT name, chinese, english FROM exam_result WHERE chinese > english;
- Consultar estudiantes con una puntuación total inferior a 200
SELECT name, chinese + math + english 总分 FROM exam_result
WHERE chinese + math + english < 200
AND y OR:
- Consulta a los estudiantes con una puntuación china superior a 80 puntos y una puntuación de inglés superior a 80 puntos
SELECT * FROM exam_result WHERE chinese > 80 and english > 80;
Consulta de rango: 1. ENTRE ... Y ...
select * from exam_result where chinese between 60 and 90;
Tenga en cuenta que van desde pequeñas a grandes lata solamente
2.IN
-- 查询数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩
SELECT name, math FROM exam_result WHERE math IN (58, 59, 98, 99);
Consulta de simulación: LIKE
select id,name from exam_result where name like '孙%';
- _ Coincide exactamente con un personaje arbitrario
select id,name from exam_result where name like '孙_';
3. Modificar (Actualizar)
Sintaxis:
UPDATE table_name SET column = expr [, column = expr ...]
[WHERE ...] [ORDER BY ...] [LIMIT ...]
Caso:
- Cambia el puntaje matemático de Sun Wukong a 80 puntos
UPDATE exam_result SET math = 80 WHERE name = '孙悟空';
- Cambió el puntaje matemático de Cao Mengde a 60 puntos y el puntaje chino a 70 puntos
UPDATE exam_result SET math = 60, chinese = 70 WHERE name = '曹孟德';
4. Eliminar
Sintaxis:
DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]
- Eliminar los puntajes de las pruebas de Zhu Wuneng
delete from exam_result where name = '猪悟能';