Estación de suministro para novatos de Java --- Suplemento de declaración SQL de la base de datos MySQL (1)

Tabla de contenido

Declaración SQL

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

Para los campos de crecimiento propio, después de truncar la tabla usando la declaración truncar, el valor se restaura al valor inicial

la declaración truncada no se puede revertir

seleccionar declaración

Resumen de declaraciones seleccionadas

seleccionar la lista de campos de la fuente de datos [donde la expresión condicional] [agrupar por campo de agrupación] [con expresión condicional]

                                              [ordenar por campo de clasificación {[asc] | desc}]

Utilice la cláusula de selección para especificar una lista de campos

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

Palabras clave especiales

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

Consulta de paginación

seleccionar lista de campos de la tabla nombre límite [inicio,] longitud;

Consulta de varias tablas

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

seleccionar la lista de caracteres de la tabla 1 [interior] unirse a la tabla 2 en las condiciones asociadas;

Alias ​​de la tabla

Nombre de tabla [como] alias

Una vez que asigne un alias a la tabla, solo podrá usar el alias en la declaración y el nombre de la tabla original dejará de ser válido.

Conexión de tres mesas

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;

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

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;

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

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;

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

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:

la diferencia:

Unión

unión de todos


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;
  

 

Supongo que te gusta

Origin blog.csdn.net/c202003/article/details/107231597
Recomendado
Clasificación