Tabla de contenido
La declaración truncada no es una declaración DML
1> El papel del nombre truncado
2> Sintaxis: truncar el nombre de la tabla de la tabla
3> La diferencia entre y eliminar declaración
la declaración truncada no se puede revertir
Resumen de declaraciones seleccionadas
[ordenar por campo de clasificación {[asc] | desc}]
Utilice la cláusula de selección para especificar una lista de campos
Campo o expresión [como] alias
seleccione versión () como número de versión, ahora () hora actual del servidor;
Declaración de consulta básica
distinto eliminar filas duplicadas
seleccione una lista de campos distintos del nombre de la tabla;
Use limit para limitar el número de filas mostradas
seleccionar lista de campos de la tabla nombre límite [inicio,] longitud;
Tipos de consulta de varias tablas
Si desea mostrar todo el contenido de las dos tablas en el conjunto de resultados
Conexión externa completa --- MySQL no admite sintaxis
MySQL admite la declaración de unión gramatical union all statement
Declaración SQL
truncar
La declaración truncada no es una declaración DML
1> El papel del nombre truncado
2> Sintaxis: truncar el nombre de la tabla de la tabla
3> La diferencia entre y eliminar declaración
- La declaración truncar no se puede utilizar en la tabla principal (incluso si no hay datos en la tabla secundaria
- truncar tabla alumno; # // No hay datos de la tabla elegir
- eliminar tabla alumno; # // correcto
Para los campos de crecimiento propio, después de truncar la tabla usando la declaración truncar, el valor se restaura al valor inicial
insert into exam values(null,90); stu_no 8
truncate table exam;
insert into exam values(null,90); stu_no 1
la declaración truncada no se puede revertir
seleccionar declaración
Resumen de declaraciones seleccionadas
gramática
seleccionar lista de campos de la fuente de datos [donde expresión condicional] [agrupar por campo de agrupación] [tener expresión condicional] [ordenar por campo de clasificación {[asc] | desc}]
entre ellos
- Lista de campos: formular campos de búsqueda
- Fuente de datos: tabla o vista recuperada
- cláusula where : formular condiciones de filtro para filas de datos
- Agrupar por cláusula: según el campo de agrupación, las filas de datos se dividen en varios grupos y se realizan estadísticas de resumen
- tener cláusula: filtrar los datos agrupados
- ordenar por cláusula: ordena el conjunto de resultados, el valor predeterminado es el orden ascendente
Utilice la cláusula de selección para especificar una lista de campos
Cómo especificar la lista de campos
- *: Representa todos los campos de la fuente de datos
- Lista de campos : Una lista de campos separados por comas para especificar el número de campos que deben ser recuperada
- Nombre de la tabla. * : En la consulta de varias tablas, especifique todos los campos de una tabla
- Nombre de la tabla. Campo : en la consulta de varias tablas, especifique un campo en una tabla
- Expresión : la expresión puede contener operaciones aritméticas, funciones, etc.
Ejemplo
Recuperar el número de versión de MySQL. Hora del servidor
select version(),now();
Alias con nombre
Campo o expresión [como] alias
seleccione versión () como número de versión, ahora () hora actual del servidor;
Declaración de consulta básica
gramática:
seleccione la lista de campos del nombre de la tabla;
Ejemplos:
Enumere todos los campos de la tabla
SELECT * FROM student;
Enumere algunos campos en la tabla
select student_no,student_name,student_contact from student;
Campo para nombrar alias
select student_no as 学号,student_name 姓名,student_contact 联系方式 from student;
Usar expresión
select stu_no 学号,score 卷面成绩,score*0.7+30 综合成绩 from exam;
Palabras clave especiales
distinto eliminar filas duplicadas
gramática:
seleccione una lista de campos distintos del nombre de la tabla;
Ejemplo:
select class_no from student;
Clasificación de una sola columna
select distinct class_no from student;
Ordenar por varias columnas
use information schema;
show tables; --显示当前数据库中所有表的名字
desc tables; -- 查看表tables的表结构
select table schema 数据库名,table name 表名,table type 表类型from infomation schea table;
select distinct table schema数据库名from information schema . tables;
select distinct table_ type from information schema. tables;
select distinct table_ schema 数据库名,table_ type 表的类型
information schema . tables;
Use limit para limitar el número de filas mostradas
Consulta de paginación
gramática:
seleccionar lista de campos de la tabla nombre límite [inicio,] longitud;
entre ellos
inicio : Indica desde las primeras líneas para iniciar la búsqueda, el valor predeterminado es 0, lo que significa la primera línea
longitud: indica cuántas filas recuperar
Ejemplo
Enumere las primeras 10 filas en la tabla information_schema.tables para mostrar table_schema, table_name ;
select table_schema 数据库名,table_name 表名 from information_schema.tables limit 10;
Ejercicio: muestre 10 filas por página, enumere la página 7 en la tabla de tablas
select table_schema 数据库名,table_name 表名 from information_schema.tables limit 60,10;
Consulta de varias tablas
Requisitos: enumere los estudiantes y la información de su clase, incluida la identificación del estudiante, el nombre y el nombre de la clase
Identificación de estudiante, nombre: estudiante
Nombre de clase: clases
Campos asociados: student.class_no, classes.class_no,
Condiciones de asociación: student.class_no = classes.class_no,
Tipos de consulta de varias tablas
Conexión interna: se recuperan las filas de datos que cumplen con las condiciones de asociación y se filtran las que no cumplen con las condiciones de asociación
Unión externa: el conjunto de resultados de la combinación externa = el conjunto de resultados de la combinación interna + la fila de datos que no coincide
Conexión interna
gramática
seleccionar la lista de caracteres de la tabla 1 [interior] unirse a la tabla 2 en las condiciones asociadas;
Requisitos: enumere los estudiantes y la información de su clase, incluida la identificación del estudiante, el nombre y el nombre de la clase
Identificación de estudiante, nombre: estudiante
Nombre de clase: clases
Campos asociados: student.class_no, classes.class_no,
Condiciones de asociación: student.class_no = classes.class_no;
select student.student_no,student.student_name,classes.class_no
from student join classes on student.class_no=classes.class_no;
Insertar una fila de datos en la tabla de estudiantes sin clase
insert into student values('2018006','小明','20000000',null);
Insertar una fila de datos en la tabla de clases
insert into classes(null,'2018机械自动化2班','机电工程');
La conexión interna no coincide con los datos no se mostrarán
select student.student_no 学号,student.student_name 姓名,classes.class_no 班级名称
from student join classes on student.class_no=classes.class_no;
Alias de la tabla
Nombre de tabla [como] alias
select s.student_no 学号,s.student_name 姓名,c.class_no 班级名称
from student s join classes c on s.class_no=c.class_no;
Presentación de errores
A la tabla una vez que el nombre de alias, solo puede usar el alias en la declaración, el nombre de la tabla original en la falla
select student.student_no 学号,s.student_name 姓名,c.class_no 班级名称
from student s join classes c on s.class_no=c.class_no;
Si se unen más de una tabla, no se pueden omitir campos con el mismo nombre antes del nombre de la tabla de campos o las deficiencias de alias modificadas reducirán la eficiencia de la declaración de consulta SQL
select student no 学号,student name 姓名,class name 班级
from student s join classes c on s.class_no=c.class_no;
Conexión de tres mesas
Inserte los datos de la prueba en la tabla de selección de cursos elija
estudiante_no curso_no puntaje () elige_tiempo
La declaración SQL es la siguiente
insertar en elegir valores (...);
gramática
seleccionar lista de campos
de la tabla 1 [interior] se une a la tabla 2 en la condición de asociación 1 [interior] se une a la tabla 3 en la condición de asociación 2;
Ejemplo;
select s.student_on 学号,s.student_name 姓名, cs.course_name 课程 ,ch.score 成绩
from student s join choose ch on s.student_no = ch.student_on join course cs on cs.course_on = ch.course_on;
Ejercicio:
Enumere la información del maestro y los cursos impartidos , incluido el número de trabajo del maestro, el nombre, el nombre del curso y el número máximo de personas.
select t.teacher_on 教师工号,t.teacher_name 姓名,c.course_name 课程,c.up_limit 人数
from teacher t join course c on t.teacher_on=c.teacher_on;
La identificación del trabajo del maestro, el nombre, el nombre del curso y la identificación del estudiante que tomó el curso.
select t.teacher_on 教师工号,t.teacher_name 姓名,c.course_name 课程,c.up_limit 人数
from teacher t join course c on t.teacher_on=c.teacher_on join choose ch on c.course_on = ch.coure_on;
Unión externa
Conexión exterior izquierda:
Conjunto de resultados de la combinación externa izquierda = conjunto de resultados de la combinación interna + datos no coincidentes en la tabla de la izquierda
gramática
seleccionar lista de campos
de la tabla de la izquierda izquierda [externa] unirse a la tabla de la derecha en las condiciones de asociación;
Ejemplo:
Enumere todos los estudiantes y la información de su clase
select s.student_on 学号,s.student_name 姓名,c.calss_name 班级
from student s left join classes c on s.class_on = c.class_on;
Conexión exterior derecha:
Conjunto de resultados de combinación externa derecha = conjunto de resultados de combinación interna + datos no coincidentes en la tabla de la derecha
gramática:
seleccionar lista de campos
de la tabla de la izquierda a la derecha [externa] unirse a la tabla de la derecha en las condiciones de asociación;
Ejemplo:
Enumere todos los estudiantes y la información de su clase
select s.student_on 学号,s.student_name 姓名,c.calss_name 班级
from classes c right join student s on s.class_on = c.class_on;
Si desea mostrar todo el contenido de las dos tablas en el conjunto de resultados
Conexión externa completa --- MySQL no admite sintaxis
Conjunto de resultados de combinación externa completo = conjunto de resultados de combinación interna + datos que no coinciden en las dos tablas
Sintaxis:
seleccionar lista de campos
de la tabla de la izquierda completa [externa] unirse a la tabla de la derecha en las condiciones de asociación;
MySQL admite la declaración de unión gramatical union all statement
efecto:
Muestra los resultados de las dos selecciones como un todo.
Se cumplen las condiciones: 1. El número de columnas en las dos consultas seleccionadas debe ser el mismo;
2. El tipo de datos de cada columna debe ser similar;
la diferencia:
Union all es la unión de los resultados de dos declaraciones selectas. Union es eliminar los datos duplicados bajo el resultado de union all
Unión
Use union para lograr las funciones anteriores
select s.student_on 学号,s.student_name 姓名,c.calss_name 班级
from student s left join classes c on s.class_on = c.class_on
union
select s.student_on 学号,s.student_name 姓名,c.calss_name 班级
from student s right join classes c on s.class_on = c.class_on;
Si el número de listas de campos de las dos tablas conectadas por unión es inconsistente, puede asignar un valor nulo a la tabla con menos listas de campos, y si no asigna un valor, se informará un error.
select * from student union select *,null from teacher;
unión de todos
select s.student_on 学号,s.student_name 姓名,c.calss_name 班级
from student s left join classes c on s.class_on = c.class_on
union all
select s.student_on 学号,s.student_name 姓名,c.calss_name 班级
from student s right join classes c on s.class_on = c.class_on;