declaración de consulta mysql seleccionar uso múltiple

1. Utilice seleccionar para ordenar por palabras clave.

seleccionar formato de sintaxis ordenado por palabras clave

SELECT column1 (campo 1), column2, ... FROM nombre de la tabla ORDER BY column1, column2, ... ASC | DESC;
1) Combine la instrucción ORDER BY para lograr la clasificación
2) La clasificación puede basarse en uno o más campos
3) ASC: Orden ascendente , Método de disposición predeterminado de Mysql, el sistema establece el orden ascendente por defecto si el método de disposición no se declara
4) DESC: orden descendente

Operación de ejemplo:
  • Ver el método de clasificación predeterminado de las tablas del sistema
mysql> select * from stu;    //查询数据库中stu表中的系统默认按主键升序排列方式
+----+---------+--------+-------+
| id | name    | score  | hoby |       //可以看到这个表由4个字段和六条记录组成
+----+---------+--------+-------+
|  1 | tianxia | 78.00 |    2 |
|  2 | diyi    | 89.00 |    1 |
|  3 | wode    | 55.00 |    1 |
|  4 | tade    | 57.00 |    3 |
|  5 | nida    | 66.00 |    1 |
|  6 | liushou | 55.00 |    3 |
+----+---------+-------+------+
6 rows in set (0.00 sec)
  • Cambie la tabla para ordenar en orden descendente según la identificación
mysql> select * from stu order by id desc;
+----+---------+--------+-------+
| id | name    | score  | hoby |
+----+---------+--------+-------+
|  6 | liushou | 55.00 |    3 |
|  5 | nida    | 66.00 |    1 |
|  4 | tade    | 57.00 |    3 |
|  3 | wode    | 55.00 |    1 |
|  2 | diyi    | 89.00 |    1 |
|  1 | tianxia | 78.00 |    2 |
+----+---------+-------+------+
6 rows in set (0.00 sec)
  • Primero, cambie la tabla para ordenar en orden descendente según el campo de puntuación, y ordénela según el campo hoby.
mysql> select * from stu order by score desc,hoby desc;
+----+---------+-------+------+
| id | name    | score | hoby |
+----+---------+-------+------+
|  2 | diyi    | 89.00 |    1 |
|  1 | tianxia | 78.00 |    2 |
|  5 | nida    | 66.00 |    1 |
|  4 | tade    | 57.00 |    3 |
|  6 | liushou | 55.00 |    3 |
|  3 | wode    | 55.00 |    1 |
+----+---------+-------+------+
6 rows in set (0.00 sec)

Inserte la descripción de la imagen aquí

Dos, use seleccionar para agrupar los resultados

seleccione el formato de sintaxis para agrupar los resultados

SELECT columna, función FROM nombre de tabla WHERE condición GROUP BY campo;
1) Use la instrucción GROUP BY para lograr la agrupación
2) Se puede usar junto con funciones, generalmente combinadas con el recuento de funciones agregadas (nombre de campo)
3) Los resultados se pueden calcular mediante uno o más campos Agrupación de filas

Operación de ejemplo
  • El número de personas de cada grupo en el campo hoby de la tabla de estadísticas.
mysql> select count(name),hoby from stu where hoby >= 1 group by hoby;
+-------------+------+
| count(name) | hoby |
+-------------+------+
|           3 |    1 |
|           1 |    2 |
|           2 |    3 |
+-------------+------+
3 rows in set (0.00 sec)
  • Cuente el número de personas de cada grupo en el campo hoby de la tabla y ordene el recuento (nombre) en orden descendente.
mysql> select count(name),hoby from stu group by hoby order by count(name) desc;
+-------------+------+
| count(name) | hoby |
+-------------+------+
|           3 |    1 |
|           2 |    3 |
|           1 |    2 |
+-------------+------+
3 rows in set (0.00 sec)

Tres, use la consulta de selección para limitar los resultados del artículo

Utilice la consulta de selección para limitar la estructura gramatical de los resultados de las entradas

SELECT column1, column2, ... FROM table name LIMIT [offset,] number;
1) [offset,] position offset, comenzando desde 0. Los corchetes se pueden omitir en la estructura gramatical.
2) número devuelve el número máximo de filas de registros.
3) A partir de la fila de posición de desplazamiento, consulte las filas de números hacia abajo.
4) La instrucción LIMIT se usa para restringir la lectura de registros.

Operación de ejemplo
  • Las primeras tres filas de la tabla de búsqueda
mysql> select * from stu limit 0,3;
+----+---------+-------+------+
| id | name    | score | hoby |
+----+---------+-------+------+
|  1 | tianxia | 78.00 |    2 |
|  2 | diyi    | 89.00 |    1 |
|  3 | wode    | 55.00 |    1 |
+----+---------+-------+------+
3 rows in set (0.00 sec)
  • 4 a 6 filas de la tabla de búsqueda
mysql> select * from stu limit 3,3;
+----+---------+-------+------+
| id | name    | score | hoby |
+----+---------+-------+------+
|  4 | tade    | 57.00 |    3 |
|  5 | nida    | 66.00 |    1 |
|  6 | liushou | 55.00 |    3 |
+----+---------+-------+------+
3 rows in set (0.00 sec)

Cuatro, use seleccionar para establecer un alias

Use select para establecer la estructura sintáctica del alias

SELECCIONAR columna (nombre de campo) AS columna (nombre de campo) FROM nombre de tabla

  1. Puede establecer alias para campos y tablas
  2. Cuando se usa la instrucción AS para establecer el alias, la palabra clave AS se puede omitir
  3. Al establecer alias, asegúrese de que no puedan entrar en conflicto con otros nombres de tabla o campo en la biblioteca.4
    ) AS se puede utilizar como una declaración de conexión además de establecer alias
Operación de ejemplo
  • Establezca estadísticas de alias para que el campo
    cuente el número de registros de campo mysql> seleccione contar (nombre) como de stu;
    ± - +
    | a |
    ± - +
    | 6 |
    ± - +
    1 fila en el conjunto (0.00 seg)
  • Establezca el alias de la tabla para ver la identificación de las primeras tres filas
    mysql> seleccione c.id de stu como c límite 3;
    ± - +
    | id |
    ± - +
    | 1 |
    | 2 |
    | 3 |
    ± - +
    3 filas en conjunto (0.00 segundo)
  • Use AS como la declaración de conexión
    Importe los datos de la tabla stu en la nueva tabla a través de la declaración de conexión AS
    mysql> create table xuexi as select * from stu donde score> = 80;
    Consulta OK, 1 fila afectada (0.00 seg)
    Registros: 1 Duplicados: 0 Advertencias: 0
mysql> desc stu;
+-------+--------------+------+-----+---------+----------------+
| Field | Type              | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | int(5)               | NO   | PRI | NULL    | auto_increment |
| name  | char(15)     | NO   |         | NULL    |                |
| score | decimal(5,2) | YES  |      | NULL    |                |
| hoby  | int(5)             | YES  |      | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

mysql> desc xuexi;
+-------+--------------+------+-----+---------+-------+
| Field | Type               | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(4)               | YES  |          | 0  |                |
| name  | char(15)      | NO   |         | NULL    |       |
| score | decimal(5,2) | YES  |        | NULL    |       |
| hoby  | int(5)             | YES  |        | NULL    |       |
+-------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

AS realmente define la estructura de la tabla de la nueva tabla y la tabla de conexión exactamente igual, e importa los datos de la tabla de conexión a la nueva tabla,
pero algunos tipos de restricciones de la nueva tabla no se definen de la misma manera que la tabla de conexión, por ejemplo, clave Clave principal, valor predeterminado predeterminado, atributos adicionales extendidos, etc.

Cinco, utilice comodines selectos de uso común

Comodines de uso común

SELECCIONE la columna (nombre del campo) DESDE el nombre de la tabla DONDE la columna COMO '_%'

  • % Significa cero, uno o más
  • _ Indica un solo carácter
    1) generalmente se usa para consultas difusas, no está claro acerca de los detalles, puede usarlo cuando solo conoce el general
    2) se usa para indicar algunos caracteres en el campo
    3) generalmente se usa junto con like, y completa la consulta con DONDE
Operación de ejemplo
  • El uso del carácter comodín '%'
    Consulta los registros que comienzan con w en el campo de nombre de la tabla stu
mysql> select * from stu where name like 'w%';
+----+------+-------+------+
| id | name | score | hoby |
+----+------+-------+------+
|  3 | wode | 55.00 |    1 |
+----+------+-------+------+
1 row in set (0.00 sec)
  • El uso del carácter comodín'_ '
    Consulta los registros en el campo de nombre de la tabla stu que están precedidos por dos caracteres arbitrarios y terminan con de
mysql> select * from stu where name like '__de';
+----+------+-------+------+
| id | name | score | hoby |
+----+------+-------+------+
|  3 | wode | 55.00 |    1 |
|  4 | tade | 57.00 |    3 |
+----+------+-------+------+
2 rows in set (0.00 sec)
  • El uso combinado del carácter comodín '_%'
    Consulta el registro en el campo de nombre de la tabla stu que está precedido por un carácter arbitrario con un carácter i en el medio y termina con de
mysql> select * from stu where name like '_i%';
+----+---------+-------+------+
| id | name    | score | hoby |
+----+---------+-------+------+
|  1 | tianxia | 78.00 |    2 |
|  2 | diyi    | 89.00 |    1 |
|  5 | nida    | 66.00 |    1 |
|  6 | liushou | 55.00 |    3 |
+----+---------+-------+------+
4 rows in set (0.00 sec)

Seis, use seleccionar subconsulta

Utilice la estructura de sintaxis común de la subconsulta de selección

SELECCIONAR columna DESDE el nombre de la tabla DONDE la columna EN (SELECCIONAR la columna DESDE el nombre de la tabla DONDE la columna EN (…));
1) La subconsulta también se llama consulta interna o consulta anidada
2) Se ejecuta antes de la consulta principal, y el resultado será Como condición de la consulta principal externa
3) Las subconsultas se pueden usar además, la eliminación, modificación y búsqueda.4
) Se admite el anidamiento de múltiples capas.5
) El método de lectura es leer desde la capa interna a la capa
externa.6) La declaración IN se usa para juzgar un cierto Si el valor está en el conjunto de resultados dado
7) El tipo de campo en la subconsulta debe ser el mismo que el tipo de campo de la consulta principal
8) Cuando el conjunto de resultados se usa como la tabla de la subconsulta, no se puede usar directamente y se debe crear un alias para el conjunto de resultados

Operación de ejemplo
  • Basado en la subconsulta de la tabla
    Consulta zhi table
    mysql> seleccionar * de zhi;
    ± ----- +
    | id |
    ± ----- +
    | 1 |
    | 3 |
    | 4 |
    | 5 |
    ± ----- +
    4 filas en la
    tabla de estu de consulta de conjunto (0.01 seg)
mysql> select * from stu;
+----+---------+-------+------+
| id | name    | score | hoby |
+----+---------+-------+------+
|  1 | tianxia | 78.00 |    2 |
|  2 | diyi    | 89.00 |    1 |
|  3 | wode    | 55.00 |    1 |
|  4 | tade    | 57.00 |    3 |
|  5 | nida    | 66.00 |    1 |
|  6 | liushou | 55.00 |    3 |
+----+---------+-------+------+
6 rows in set (0.01 sec)

Utilice el valor de id de la tabla zhi como condición de consulta de id de la tabla stu para consultar registros de la base de datos

mysql> select * from stu where id in (select id from zhi);
+----+---------+-------+------+
| id | name    | score | hoby |
+----+---------+-------+------+
|  1 | tianxia | 78.00 |    2 |
|  3 | wode    | 55.00 |    1 |
|  4 | tade    | 57.00 |    3 |
|  5 | nida    | 66.00 |    1 |
+----+---------+-------+------+
4 rows in set (0.00 sec)
  • Basado en la subconsulta del conjunto de resultados
    Consulta los registros de los dos campos en la tabla stu
    mysql> select id, score from stu;
    ± - ± ------ +
    | id | score |
    ± - ± ------ +
    | 1 | 78,00 |
    | 2 | 89,00 |
    | 3 | 55,00 |
    | 4 | 57,00 |
    | 5 | 66,00 |
    | 6 | 55,00 |
    ± - ± ------ +
    6 filas en conjunto (0,00 seg)
    encontrará Cuando el conjunto de resultados de se utiliza como una declaración de subconsulta, se debe establecer un alias
    mysql> select a.id from (select id, name from stu) a;
    ± - +
    | id |
    ± - +
    | 1 |
    | 2 |
    | 3 |
    | 4 |
    | 5 |
    | 6 |
    ± - +
    6 filas en conjunto (0,00 seg)

Siete, use la consulta de expresión regular compatible con select

Utilice la estructura gramatical de la consulta de expresión regular compatible con select

SELECT columna ... FROM nombre de tabla WHERE columna REGEXP ' Expresión regular '
1) De acuerdo con el modo de coincidencia especificado, haga coincidir los caracteres especiales que cumplen los requisitos en el registro
2) Utilice la palabra clave REGEXP para especificar el modo de coincidencia

Operación de ejemplo
  • Consultar registros cuyo campo de nombre comience con w
mysql> select * from stu where name regexp '^w';
+----+------+-------+------+
| id | name | score | hoby |
+----+------+-------+------+
|  3 | wode | 55.00 |    1 |
+----+------+-------+------+
1 row in set (0.00 sec)
  • Consultar los registros cuyo campo de nombre termine con de
mysql> select * from stu where name regexp 'de$';
+----+------+-------+------+
| id | name | score | hoby |
+----+------+-------+------+
|  3 | wode | 55.00 |    1 |
|  4 | tade | 57.00 |    3 |
+----+------+-------+------+
2 rows in set (0.00 sec)
  • Consultar el registro cuyo campo hoby es 1
mysql> select * from stu where hoby regexp '1';
+----+------+-------+------+
| id | name | score | hoby |
+----+------+-------+------+
|  2 | diyi | 89.00 |    1 |
|  3 | wode | 55.00 |    1 |
|  5 | nida | 66.00 |    1 |
+----+------+-------+------+
3 rows in set (0.00 sec)

Ocho, use select para determinar el valor de NULL

Vale la pena presentar NUll

1) Valor que definitivamente falta
2) Significa que los objetos vacíos ocupan espacio
3) Es diferente del número 0 o en blanco (espacios)
4) Use IS NULL o IS NOT NULL para juzgar
5) Diferencia entre el valor NUll y el valor nulo

  • La longitud del valor nulo es 0 y no ocupa espacio; la longitud del valor NULL es NULL, que ocupa espacio
  • IS NULL no puede determinar el valor nulo
  • Utilice "=" o "<> (no es igual a)" para manejar valores nulos
  • COUNT () Al calcular, NULL se ignorará y no se agregará a las estadísticas, y los valores vacíos se agregarán al cálculo
Operación de ejemplo
 mysql> select * from stu;
+----+---------+-------+------+------+
| id | name    | score | hoby | dizi |
+----+---------+-------+------+------+
|  1 | tianxia | 78.00 |    2 | nj   |
|  2 | diyi    | 89.00 |    1 | nj   |
|  3 | wode    | 55.00 |    1 | NULL |
|  4 | tade    | 57.00 |    3 | NULL |
|  5 | nida    | 66.00 |    1 | nj   |
|  6 | liushou | 55.00 |    3 |   |
+----+---------+-------+------+------+
6 rows in set (0.00 sec)
  • La consulta es NULL que vale la pena registrar
mysql> select * from stu where dizi is null;
+----+------+-------+------+------+
| id | name | score | hoby | dizi |
+----+------+-------+------+------+
|  3 | wode | 55.00 |    1 | NULL |
|  4 | tade | 57.00 |    3 | NULL |
+----+------+-------+------+------+
2 rows in set (0.00 sec)
  • La consulta NO es NULA, vale la pena registrarla
mysql> select * from stu where dizi is not null;
+----+---------+-------+------+------+
| id | name    | score | hoby | dizi |
+----+---------+-------+------+------+
|  1 | tianxia | 78.00 |    2 | nj   |
|  2 | diyi    | 89.00 |    1 | nj   |
|  5 | nida    | 66.00 |    1 | nj   |
|  6 | liushou | 55.00 |    3 |      |
+----+---------+-------+------+------+
4 rows in set (0.00 sec)
  • NULL no se agregará a las estadísticas
    mysql> seleccione count (dizi) de stu;
    ± ------------ +
    | count (dizi) |
    ± ------------ +
    | 4 |
    ± ------------ +
    1 fila en el conjunto (0.00 seg)
    Originalmente había seis registros, pero solo se contaron cuatro, porque COUNT () ignorará NULL y no agregará Estadísticas, los valores nulos se agregarán al cálculo

Supongo que te gusta

Origin blog.csdn.net/wulimingde/article/details/109074448
Recomendado
Clasificación