Base de datos MySQL (3): uso de declaraciones de filas de tablas

El concepto básico de base de datos para principiantes
Uso de base de datos MySQL (1) - Adición, eliminación, modificación y consulta de base de datos
Uso de base de datos MySQL (2) - Adición, eliminación, modificación y consulta de tablas

prefacio

Continuando con el uso de SQL basado en el contenido de ayer, el contenido principal es cómo agregar contenido a la tabla, eliminar, cambiar, ver, etc., así como algunos tipos de uso común.
Las declaraciones, oraciones y palabras clave se pueden escribir en mayúsculas o minúsculas. No importa. Si escribe de forma estándar, puede usar mayúsculas, pero el nombre de la tabla, el nombre de la base de datos y la información de la columna solo se pueden escribir en minúsculas. .

1. Tipo de datos

Los tipos de datos son las reglas básicas que definen qué datos se pueden almacenar en una columna y cómo se almacenan realmente;

Los tipos de datos se utilizan para los siguientes propósitos:
los tipos de datos permiten limitar los datos que se pueden almacenar en una columna;
los tipos de datos permiten que los datos se almacenen internamente de manera más eficiente;
los tipos de datos permiten transformar el orden de clasificación.

Por lo tanto, cuando se utilizan tipos de datos, a menudo es necesario prestar atención a la selección del tipo de datos correcto y apropiado para evitar desperdiciar el rendimiento del sistema y la posibilidad de no poder escribir contenido.


Los tipos de datos se dividen en cuatro categorías, una es el tipo numérico, la otra es el tipo de cadena, la otra es el tipo de fecha y la otra es el tipo de datos binarios.

1.1 Tipos numéricos

Tipo numérico
inserte la descripción de la imagen aquí
Supongo que nadie realmente memorizará los números anteriores. Aunque el tipo es un elemento relativamente importante, de hecho, solo necesita saber qué tipo de valor numérico se usa en qué situación. Cuando necesite usarlo, puede mira hacia atrás. .

Las columnas con tipos numéricos no necesitan agregar comillas simples al agregar contenido.Puedes entender esto.

1.2 Tipo de cadena

Tipo de cadena: (directamente arriba)
inserte la descripción de la imagen aquí

Hay dos puntos importantes en el tipo de cadena. El primero es que el contenido insertado debe estar entre comillas simples, de lo contrario, la base de datos informará un error. El segundo es que al configurar el tipo de campo, debe completar el información de longitud del contenido, en caso contrario también aparecerá en caso de error.

ejemplo:
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

1.3 Tipos de fecha y hora

Tipo de fecha y hora:
inserte la descripción de la imagen aquí
este tipo se utiliza especialmente para almacenar valores de fecha y hora.

1.4 Tipos binarios

El tipo de datos binarios puede almacenar cualquier dato (incluida la información binaria), como imágenes, multimedia, documentos de procesamiento de texto y otra información.
inserte la descripción de la imagen aquí


Sigamos hablando sobre el uso de agregar datos a la base de datos.

2. Agregar contenido

2.1 Añadir el contenido de la línea

Para agregar el contenido de una fila a la tabla, debe usar insertla declaración al principio

insert into 表名 values(内容1,内容2);

ejemplo:

mysql> create table students(id int,name varchar(30));
Query OK, 0 rows affected (0.19 sec)

mysql> insert into students values(1,'zhangsan');
Query OK, 1 row affected (0.06 sec)

mysql> select * from students;
+------+----------+
| id   | name     |
+------+----------+
|    1 | zhangsan |
+------+----------+
1 row in set (0.00 sec)

Un registro de la base de datos se ha insertado correctamente en la tabla; si necesita continuar agregando contenido, aún puede usar esta declaración.

mysql> insert into students values(2,'lisi');
Query OK, 1 row affected (0.00 sec)

mysql> select * from students;
+------+----------+
| id   | name     |
+------+----------+
|    1 | zhangsan |
|    2 | lisi     |
+------+----------+
2 rows in set (0.00 sec)

Cómo insertar varias filas a la vez;

mysql> insert into students values(3,'wangwu'),(4,'chenliu'),(5,'wangqi');
Query OK, 3 rows affected (0.04 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> insert into students values(6,'tangba'),
    -> (7,'lijiu');
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

Puede escribirlos uno al lado del otro a la vez, o puede cambiar a la siguiente línea para escribir. En general, si hay mucho contenido, puede escribir en una nueva línea, siempre que agregue una coma después de cada uno. línea.


2.2 Valor por defecto del campo

Agregar contenido a una columna solo

mysql> insert into students(name) values('葫芦娃1号');
Query OK, 1 row affected (0.01 sec)

mysql> select * from students;
+------+---------------+
| id   | name          |
+------+---------------+
|    1 | zhangsan      |
|    2 | lisi          |
|    3 | wangwu        |
|    4 | chenliu       |
|    5 | wangqi        |
|    6 | tangba        |
|    7 | lijiu         |
| NULL | 葫芦娃1号     |
+------+---------------+
8 rows in set (0.00 sec)

¿Por qué aparece la palabra NULL? El contenido no está vacío, porque nameel contenido solo se agregó al campo antes de nuevo. De hecho, esto se debe a que el valor predeterminado de Default es NULL.
Entonces, ¿es posible modificar este valor de contenido? El resultado es definitivamente posible. idA continuación, modificaremos el valor predeterminado, y idse mostrará cuando no se agregue esta columna 20.

mysql> alter table students modify id int(11) default '20';
Query OK, 0 rows affected, 1 warning (0.07 sec)
Records: 0  Duplicates: 0  Warnings: 1

mysql> desc students;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int         | YES  |     | 20      |       |
| name  | varchar(30) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

Ok, se ha establecido idel valor predeterminado del campo , continuemos;

mysql> insert into students(name) values('葫芦娃二号');
Query OK, 1 row affected (0.02 sec)

mysql> select * from students;
+------+-----------------+
| id   | name            |
+------+-----------------+
|    1 | zhangsan        |
|    2 | lisi            |
|    3 | wangwu          |
|    4 | chenliu         |
|    5 | wangqi          |
|    6 | tangba          |
|    7 | lijiu           |
| NULL | 葫芦娃1号       |
|   20 | 葫芦娃二号      |
+------+-----------------+
9 rows in set (0.00 sec)

Cuando no se llena id, el valor predeterminado se convierte en 20.


2.3 NULL valor vacío

Hay otra forma de hacer que el campo sea obligatorio, es decir, no puede mostrar sí null(valor nulo); se puede usar 'not null', modifiquemos el campo de nombre esta vez para que sea un campo obligatorio.

mysql> alter table students modify name varchar(30) not null;
Query OK, 0 rows affected (0.35 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc students;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int         | YES  |     | 20      |       |
| name  | varchar(30) | NO   |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

Después de la modificación null, verifique la línea de información de campo nuevamente namey nullcambie sí a no, y continúe con la prueba;

mysql> insert into students(name) values('');
Query OK, 1 row affected (0.00 sec)

mysql> insert into students(name) values('葫芦娃三号');
Query OK, 1 row affected (0.00 sec)

mysql> insert into students(id) values(10);
ERROR 1364 (HY000): Field 'name' doesn't have a default value

mysql> select * from students;
+------+-----------------+
| id   | name            |
+------+-----------------+
|    1 | zhangsan        |
|    2 | lisi            |
|    3 | wangwu          |
|    4 | chenliu         |
|    5 | wangqi          |
|    6 | tangba          |
|    7 | lijiu           |
| NULL | 葫芦娃1号       |
|   20 | 葫芦娃二号      |
|   20 |                 |
|   20 | 葫芦娃三号      |
+------+-----------------+
11 rows in set (0.00 sec)

null(空值)Es muy extraño ver esto, ¿no es cierto que el contenido no estará vacío después de la modificación , pero hay un contenido vacío en una línea?
El valor vacío en la base de datos en realidad se refiere al nullcontenido que está vacío en su forma. En realidad, todavía tiene contenido, pero no se puede mostrar.


2.4 Restricciones de campo

De hecho, podemos establecer una clave principal para que su valor sea único.Cuando hemos jugado King of Glory o algunos juegos, todos sabemos que al escribir un nombre, a veces es el mismo que el nombre de otra persona, y le indicará que el nombre ya existe y necesita ser reemplazado Nombre, de hecho, esto es equivalente a establecer una clave principal para que el resultado sea único, así que veamos cómo usar esto.
Recreamos una nueva tabla;

mysql> create table store(id int not null auto_increment primary key,shop varchar(30) not null);
Query OK, 0 rows affected (0.07 sec)

mysql> desc store;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int         | NO   | PRI | NULL    | auto_increment |
| shop  | varchar(30) | NO   |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

escribir contenido en él;

mysql> desc store;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int         | NO   | PRI | NULL    | auto_increment |
| shop  | varchar(30) | NO   |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

mysql> insert into store(shop) values('apple');
Query OK, 1 row affected (0.02 sec)

mysql> select * from store;
+----+-------+
| id | shop  |
+----+-------+
|  1 | apple |
+----+-------+
1 row in set (0.00 sec)

Puede ver que el valor de ID se genera como 1 de forma predeterminada, así que continúe escribiendo así

mysql> insert into store(shop) values('pear');
Query OK, 1 row affected (0.01 sec)

mysql> insert into store(shop) values('banana');
Query OK, 1 row affected (0.02 sec)

mysql> select * from store;
+----+--------+
| id | shop   |
+----+--------+
|  1 | apple  |
|  2 | pear   |
|  3 | banana |
+----+--------+
3 rows in set (0.00 sec)

Viendo que el resultado siempre es de la n+1forma actual, siempre será el número anterior más uno, y le definimos uno en el cuarto contenido id, a ver si va según su forma o la nuestra.

mysql> insert into store(id,shop) values(10,'orange');
Query OK, 1 row affected (0.00 sec)

mysql> select * from store;
+----+--------+
| id | shop   |
+----+--------+
|  1 | apple  |
|  2 | pear   |
|  3 | banana |
| 10 | orange |
+----+--------+
4 rows in set (0.00 sec)

Se puede ver que la prioridad de la definición manual es mayor que la de la definición del sistema.
Si continúa escribiendo contenido en este momento, ¿debería escribir sobre la base de id 3, o continuar comenzando desde 10 y bajar a n+1?

mysql> insert into store(shop) values('Black brin');
Query OK, 1 row affected (0.02 sec)

mysql> select * from store;
+----+------------+
| id | shop       |
+----+------------+
|  1 | apple      |
|  2 | pear       |
|  3 | banana     |
| 10 | orange     |
| 11 | Black brin |
+----+------------+
5 rows in set (0.00 sec)

El resultado es obvio, continúa a +1 sobre la base de 10.


Si se vacían los registros de la tabla, ¿ auto_incrementcontinuará bajando el valor n+1?
Echemos un vistazo a dos formas diferentes de borrar

2.4.1 Cómo usar eliminar

primer vistazo a deletela
declaración de camino

delete from 表名;

ejemplo:

mysql> delete from store;
Query OK, 5 rows affected (0.00 sec)

mysql> select * from store;
Empty set (0.00 sec)

mysql> insert into store(shop) values('Codlin');
Query OK, 1 row affected (0.02 sec)

mysql> select * from store;
+----+--------+
| id | shop   |
+----+--------+
| 12 | Codlin |
+----+--------+
1 row in set (0.00 sec)

deleteNo hay forma de borrar auto_incrementel valor, y este valor continúa superponiéndose a n+1.


2.4.2 Formas de usar truncar

oración

truncate table 表名;

ejemplo:

mysql> truncate table store;
Query OK, 0 rows affected (0.11 sec)

mysql> desc store;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int         | NO   | PRI | NULL    | auto_increment |
| shop  | varchar(30) | NO   |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.01 sec)

mysql> select * from store;
Empty set (0.01 sec)

mysql> insert into store(shop) values('Cumquat');
Query OK, 1 row affected (0.00 sec)

mysql> select * from store;
+----+---------+
| id | shop    |
+----+---------+
|  1 | Cumquat |
+----+---------+
1 row in set (0.00 sec)

Vuelva a escribir una fila de información, el resultado del valor de id es 1y el valor truncatese puede restablecer utilizando la declaración auto_increment.
Nota: truncar borrará todos los datos de la tabla. No use este comando si solo desea borrar el valor de auto_incremento a cero.

Desde el principio hasta el final, solo hay una sintaxis para escribir contenido, y hay muchas oraciones y palabras para ver el contenido en la siguiente. Tenga paciencia y mírelo. Intentaré dividir el directorio en más, para que sea más conveniente consultar al mirar hacia atrás en las oraciones.


3. Recuperar el contenido de la fila

3.1 Recuperar contenido en una tabla

El contenido de la tabla de recuperación se usa con más frecuencia, especialmente en la etapa posterior. Creo que se usa más comúnmente que crear una nueva, así que hablemos de ello en detalle y escríbalo de simple a difícil.
recuperar el contenido de una columna;

mysql> select id from store;
+----+
| id |
+----+
|  1 |
+----+
1 row in set (0.00 sec)

Recuperar múltiples columnas de contenido;

mysql> select id,shop from store;
+----+---------+
| id | shop    |
+----+---------+
|  1 | Cumquat |
+----+---------+
1 row in set (0.00 sec)

Recupera el contenido de todas las columnas.

mysql> select * from store;
+----+---------+
| id | shop    |
+----+---------+
|  1 | Cumquat |
+----+---------+
1 row in set (0.00 sec)

Use el comodín * para mostrar todo el contenido, y parte del contenido en Linux también es aplicable en mysql.


3.2 Recuperar diferentes filas (deduplicación)

Usando la declaración anterior select, el valor predeterminado es mostrar todo el contenido. Si hay duplicados en el contenido, o si hay varias líneas de duplicados, puede usar DISTINCTpalabras clave para eliminar los duplicados.
declaración

select distinct 字段 from 表名;

ejemplo:

mysql> select * from store;
+------+--------+
| id   | name   |
+------+--------+
|    2 | apache |
|    3 | pear   |
|    4 | orange |
|    3 | apple  |
|    5 | banana |
|    4 | orange |
+------+--------+
6 rows in set (0.00 sec)

mysql> select distinct id from store ;
+------+
| id   |
+------+
|    2 |
|    3 |
|    4 |
|    5 |
+------+
4 rows in set (0.00 sec)

Hay contenido duplicado arriba y solo se muestra una línea. Si hay dos columnas de información de campo, en qué circunstancias no se mostrarán los duplicados.

mysql> select distinct * from store ;
+------+--------+
| id   | name   |
+------+--------+
|    2 | apache |
|    3 | pear   |
|    4 | orange |
|    3 | apple  |
|    5 | banana |
+------+--------+
5 rows in set (0.03 sec)

Hay una línea que no se muestra Comparado con la información anterior, es el contenido con id 4. El mismo contenido duplicado debe aparecer en ambas líneas para distinctdeduplicar.


3.3 Limitación de los resultados mostrados

selectLa declaración devuelve todas las filas coincidentes, que pueden ser todas las filas de la tabla especificada.Para devolver la primera fila o las primeras filas, se puede usar la cláusula LIMIT;

select 列 from 表名 LIMIT 显示多少行;

ejemplo:

mysql> SELECT * FROM books LIMIT 3;
+-----+-----------------------------+---------+-----------------------------+-------+------------+-----------+------------+
| bId | bName                       | bTypeId | publishing                  | price | pubDate    | author    | ISBN       |
+-----+-----------------------------+---------+-----------------------------+-------+------------+-----------+------------+
|   1 | 网站制作直通车              | 2       | 电脑爱好者杂志社            |    34 | 2004-10-01 | 苗壮      | 7505380796 |
|   2 | 黑客与网络安全              | 6       | 航空工业出版社              |    41 | 2002-07-01 | 白立超    | 7121010925 |
|   3 | 网络程序与设计-asp         | 2       | 北方交通大学出版社          |    43 | 2005-02-01 | 王玥      | 75053815x  |
+-----+-----------------------------+---------+-----------------------------+-------+------------+-----------+------------+
3 rows in set (0.00 sec)

Esta declaración usa selectla declaración para recuperar todas las columnas, LIMIT 3instruyendo a MySQL para que no devuelva más de 3 filas de contenido.
Si desea mostrar cinco líneas de contenido a partir de la tercera línea, LIMITtambién es posible utilizar palabras;

mysql> SELECT bid,bName,price FROM books LIMIT 2,5;
+-----+---------------------------------+-------+
| bid | bName                           | price |
+-----+---------------------------------+-------+
|   3 | 网络程序与设计-asp             |    43 |
|   4 | pagemaker 7.0短期培训教程       |    43 |
|   5 | 黑客攻击防范秘笈                |    44 |
|   6 | Dreamweaver 4入门与提高         |    44 |
|   7 | 网页样式设计-CSS               |    45 |
+-----+---------------------------------+-------+
5 rows in set (0.00 sec)

Use LIMITseguido de 2, 5 para mostrar el contenido de 5 líneas desde la 3 hasta la siguiente. Esto se debe a que el número real que se escribirá en la primera línea es 0, y el número que se escribirá en la segunda línea es 1.


3.4 Usar nombres de tabla completos

El nombre de la tabla completamente calificado es usar el nombre de la tabla y la columna para recuperar el contenido, lo que es equivalente a la recuperación de la ruta completa; veamos la declaración juntos

SELECT 表名.列名 FROM 数据库名.表名;
mysql> SELECT books.bname FROM book.books LIMIT 3;
+-----------------------------+
| bname                       |
+-----------------------------+
| 网站制作直通车              |
| 黑客与网络安全              |
| 网络程序与设计-asp         |
+-----------------------------+
3 rows in set (0.00 sec)

Puede haber algunas situaciones que requieran el uso de nombres totalmente calificados más adelante, por lo que puede conocer su uso con anticipación.


3.3 Clasificación de datos

Deje que el contenido de la tabla de datos se ordene de acuerdo con la forma en que configuramos, puede usar order byesta oración para recuperar los datos correspondientes de acuerdo con el contenido que debe ordenarse.

SELECT 列名 FROM 表名 ORDER BY 列名;

ejemplo:

mysql> SELECT bid,bname FROM books ORDER BY bid LIMIT 3;
+-----+-----------------------------+
| bid | bname                       |
+-----+-----------------------------+
|   1 | 网站制作直通车              |
|   2 | 黑客与网络安全              |
|   3 | 网络程序与设计-asp         |
+-----+-----------------------------+
3 rows in set (0.01 sec)

El contenido está ordenado de forma ascendente por defecto, es decir, de menor a mayor, por supuesto, también se puede agregar ASC, lo que también significa ascendente;

mysql> SELECT bid,bname FROM books ORDER BY bid asc LIMIT 3;
+-----+-----------------------------+
| bid | bname                       |
+-----+-----------------------------+
|   1 | 网站制作直通车              |
|   2 | 黑客与网络安全              |
|   3 | 网络程序与设计-asp         |
+-----+-----------------------------+
3 rows in set (0.02 sec)

Para ordenar en orden descendente, debe usar DESCesta palabra clave

mysql> SELECT bid,bname FROM books ORDER BY bid DESC LIMIT 3;
+-----+----------------------------------------------------+
| bid | bname                                              |
+-----+----------------------------------------------------+
|  44 | XML 完全探索                                       |
|  43 | ASP 3初级教程                                      |
|  42 | SQL Server 7.0数据库系统管理与应用开发             |
+-----+----------------------------------------------------+
3 rows in set (0.00 sec)

Si desea ordenar en orden descendente en varias columnas, debe especificar DESCpalabras clave para cada columna;

mysql> SELECT bid,bname,btypeid FROM books ORDER BY bid DESC,btypeid DESC LIMIT 3;
+-----+----------------------------------------------------+---------+
| bid | bname                                              | btypeid |
+-----+----------------------------------------------------+---------+
|  44 | XML 完全探索                                       | 2       |
|  43 | ASP 3初级教程                                      | 2       |
|  42 | SQL Server 7.0数据库系统管理与应用开发             | 1       |
+-----+----------------------------------------------------+---------+
3 rows in set (0.00 sec)

3.4 Filtrar datos

3.4.1 Uso de la cláusula where

Filtrar datos es lo mismo que usar selectesta declaración, más WHEREpalabras para especificar las condiciones de búsqueda.

SELECT 列名 FROM 表名 WHERE 列名 操作符 值;

Mirándolo de esta manera, la declaración no es muy clara, así que use un caso para ilustrar;
ejemplo:

mysql> SELECT bid,bname FROM books WHERE BID=20;
+-----+-------------------------+
| bid | bname                   |
+-----+-------------------------+
|  20 | Auto CAD 3D模型大师     |
+-----+-------------------------+
1 row in set (0.00 sec)

Se muestra BIDel contenido de 20 ;
además del =operador, en realidad hay muchos operadores que se utilizan para filtrar datos, como se muestra en el gráfico:

operador ilustrar
= igual
<> no igual a
!= no igual a
< menos que
<= Menos que o igual a
> más que el
>= mayor o igual a
ENTRE entre los dos valores especificados

Con el operador, demos algunos ejemplos más para facilitar la comprensión wheredel uso de las palabras;

mysql> SELECT bid,bname,btypeid FROM books WHERE btypeid > 3;
+-----+----------------------------------------+---------+
| bid | bname                                  | btypeid |
+-----+----------------------------------------+---------+
|   2 | 黑客与网络安全                         | 6       |
|   4 | pagemaker 7.0短期培训教程              | 9       |
|   5 | 黑客攻击防范秘笈                       | 6       |
|   8 | Internet操作技术                       | 7       |
|  11 | Auto CAD职业技能培训教程               | 10      |
|  13 | 自己动手建立企业局域网                 | 8       |
|  16 | Illustrator 10完全手册                 | 9       |
|  17 | FreeHand 10基础教程                    | 9       |
|  20 | Auto CAD 3D模型大师                    | 10      |
|  21 | Linux傻瓜书                            | 4       |
|  24 | Auto CAD 2000 应用及实例基集锦         | 10      |
|  27 | Delphi 5程序设计与控件参考             | 5       |
|  28 | 活学活用Delphi5                        | 5       |
|  33 | Auto CAD R14 中文版实用教程            | 10      |
|  39 | lllustrator 9宝典                      | 9       |
+-----+----------------------------------------+---------+
15 rows in set (0.00 sec)

mysql> SELECT bid,bname,btypeid FROM books WHERE btypeid < 2;
+-----+----------------------------------------------------+---------+
| bid | bname                                              | btypeid |
+-----+----------------------------------------------------+---------+
|  25 | Access 2000应用及实例基集锦                        | 1       |
|  41 | SQL Server 2000 从入门到精通                       | 1       |
|  42 | SQL Server 7.0数据库系统管理与应用开发             | 1       |
+-----+----------------------------------------------------+---------+
3 rows in set (0.00 sec)

Mostrar Btypeidcontenido excepto 2

mysql> SELECT bid,bname,btypeid FROM books WHERE btypeid <> 2 LIMIT 3;
+-----+---------------------------------+---------+
| bid | bname                           | btypeid |
+-----+---------------------------------+---------+
|   2 | 黑客与网络安全                  | 6       |
|   4 | pagemaker 7.0短期培训教程       | 9       |
|   5 | 黑客攻击防范秘笈                | 6       |
+-----+---------------------------------+---------+
3 rows in set (0.00 sec)

También se puede usar para mostrar una variedad de contenido, mostrando Bidcontenido del 1 al 5.

mysql> SELECT bid,bname,btypeid FROM books WHERE bid BETWEEN 1 AND 5;
+-----+---------------------------------+---------+
| bid | bname                           | btypeid |
+-----+---------------------------------+---------+
|   1 | 网站制作直通车                  | 2       |
|   2 | 黑客与网络安全                  | 6       |
|   3 | 网络程序与设计-asp             | 2       |
|   4 | pagemaker 7.0短期培训教程       | 9       |
|   5 | 黑客攻击防范秘笈                | 6       |
+-----+---------------------------------+---------+
5 rows in set (0.05 sec)

3.4.2 Operador NO

Para mostrar otro contenido que no sea este rango, puede BETWEENagregar NOT delante, lo que equivale a invertir el valor mostrado.

mysql> SELECT bid,bname,btypeid FROM books WHERE bid NOT BETWEEN 1 AND 5 LIMIT 3;
+-----+------------------------------+---------+
| bid | bname                        | btypeid |
+-----+------------------------------+---------+
|   6 | Dreamweaver 4入门与提高      | 2       |
|   7 | 网页样式设计-CSS            | 2       |
|   8 | Internet操作技术             | 7       |
+-----+------------------------------+---------+
3 rows in set (0.00 sec)

3.4.3 Operador Y

El mismo uso, de hecho, solo el uso ANDtambién puede lograr este efecto, echemos un vistazo a esta declaración juntos;

mysql> SELECT bid,bname,btypeid FROM books WHERE bid >= 1 AND bid <= 5;
+-----+---------------------------------+---------+
| bid | bname                           | btypeid |
+-----+---------------------------------+---------+
|   1 | 网站制作直通车                  | 2       |
|   2 | 黑客与网络安全                  | 6       |
|   3 | 网络程序与设计-asp             | 2       |
|   4 | pagemaker 7.0短期培训教程       | 9       |
|   5 | 黑客攻击防范秘笈                | 6       |
+-----+---------------------------------+---------+
5 rows in set (0.00 sec)

3.4.4 Operador O

También se puede lograr mostrar el contenido de varios valores fijos, puede usar oresta palabra clave; el contenido
se muestra bidcomo 10,20,30

mysql> SELECT bid,bname,btypeid FROM books WHERE bid = 10 or bid = 20 or bid =30;
+-----+-------------------------------+---------+
| bid | bname                         | btypeid |
+-----+-------------------------------+---------+
|  10 | 3D MAX 3.0 创作效果百例       | 3       |
|  20 | Auto CAD 3D模型大师           | 10      |
|  30 | 3DS MAX 4横空出世             | 3       |
+-----+-------------------------------+---------+
3 rows in set (0.00 sec)

3.4.5 Operador ENTRADA

orComo se muestra arriba , puede usar inoraciones clave, que son más fáciles de usar y no es necesario escribir repetidamente el valor para ser igual.

mysql> SELECT bid,bname,btypeid FROM books WHERE bid IN (10,20,30);
+-----+-------------------------------+---------+
| bid | bname                         | btypeid |
+-----+-------------------------------+---------+
|  10 | 3D MAX 3.0 创作效果百例       | 3       |
|  20 | Auto CAD 3D模型大师           | 10      |
|  30 | 3DS MAX 4横空出世             | 3       |
+-----+-------------------------------+---------+
3 rows in set (0.00 sec)

3.5 Usando el operador LIKE

Todos los operadores introducidos anteriormente se filtran por elementos conocidos. Pero si no sabe cómo escribir qué valor o simplemente recuerda un prefijo aproximado, puede usar el operador LIKE para recuperarlo.

3.5.1 % comodín

Este comodín se usa junto con LIKE (%)Al buscar contenido, se puede usar % para identificar el número de ocurrencias de cualquier carácter.

Por ejemplo, si quiero encontrar un libro sobre un Linuxlibro, pero no sé su nombre completo, puedo usarlo likepara recuperar contenido relacionado;

mysql> SELECT bid,bname,btypeid FROM books WHERE bname LIKE '%linux%';
+-----+----------------+---------+
| bid | bname          | btypeid |
+-----+----------------+---------+
|  21 | Linux傻瓜书    | 4       |
+-----+----------------+---------+
1 row in set (0.00 sec)

3.5.2 _ comodín

Otro comodín es el guión bajo _. El guión bajo tiene el mismo propósito %que , pero el guión bajo solo coincide con un solo carácter en lugar de varios caracteres.

mysql> SELECT bid,bname,btypeid FROM books WHERE bname LIKE '____防范秘笈';
+-----+--------------------------+---------+
| bid | bname                    | btypeid |
+-----+--------------------------+---------+
|   5 | 黑客攻击防范秘笈         | 6       |
+-----+--------------------------+---------+
1 row in set (0.00 sec)

Lo anterior utiliza cuatro guiones bajos, _que solo pueden coincidir con un carácter, ni más ni menos.


3.6 Subconsultas

Otro método de consulta es la subconsulta, que se puede obtener consultando el contenido de otra tabla y mostrar el valor que se consultará anteriormente, veamos cómo usarlo juntos.

mysql> select bid,bname from books where bid=(select btypeid from category where btypename='网络技术');
+-----+--------------------------+
| bid | bname                    |
+-----+--------------------------+
|   7 | 网页样式设计-CSS        |
+-----+--------------------------+
1 row in set (0.00 sec)

4. Actualizar contenido

4.1 Usando la instrucción UPDATE

Si la información del registro en la tabla está mal escrita, no necesita ejecutar la declaración de eliminación, puede actualizarla directamente para reemplazarla con otro contenido. Veamos cómo usarlo juntos.

UPDATE 表名 SET 列='要修改的内容' where 第几行; 

ejemplo:
ID为4modificar el contenido paraBryony

mysql> UPDATE store SET name ='Bryony' where id=4;
Query OK, 0 rows affected (0.01 sec)
Rows matched: 2  Changed: 0  Warnings: 0

mysql> desc store;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int         | YES  |     | NULL    |       |
| name  | varchar(30) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql> select * from store;
+------+--------+
| id   | name   |
+------+--------+
|    2 | apache |
|    3 | pear   |
|    4 | Bryony |
|    3 | apple  |
|    5 | banana |
|    4 | Bryony |
+------+--------+
6 rows in set (0.00 sec)

5. Eliminar el contenido de la línea

5.1 Usando la sentencia DELETE

El contenido de la línea eliminada es la deletedeclaración de uso, echemos un vistazo a su uso.

DELETE FROM 表名 WHERE 删除的行;

ejemplo:
eliminar namela línea con apache;

mysql> DELETE FROM store WHERE name='apache';
Query OK, 1 row affected (0.02 sec)

mysql> select * from store;
+------+--------+
| id   | name   |
+------+--------+
|    3 | pear   |
|    4 | Bryony |
|    3 | apple  |
|    5 | banana |
|    4 | Bryony |
+------+--------+
5 rows in set (0.00 sec)

También se puede utilizar para eliminar un cierto rango de valores, eliminar el valor de 4-5;

mysql> DELETE FROM store WHERE id BETWEEN 4 and 5;
Query OK, 3 rows affected (0.03 sec)

mysql> select * from store;
+------+-------+
| id   | name  |
+------+-------+
|    3 | pear  |
|    3 | apple |
+------+-------+
2 rows in set (0.00 sec)

Resumir

Aunque todavía hay mucho contenido en la fila de la tabla de la base de datos, no debe terminarse de una vez. La base de datos también puede usar expresiones regulares para calcular directamente campos, cursores, activadores, etc. en la base de datos. Sí, puede admitir con un pulgar hacia arriba!
inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/rhn_111/article/details/129597933
Recomendado
Clasificación