El funcionamiento básico de los datos en la séptima parte de la tabla.

1. Búsqueda de texto completo

Introducción: aunque la palabra clave LIKE puede usar comodines para hacer coincidir el texto, las expresiones regulares pueden coincidir con los valores de columna y, por lo tanto, buscar la información que necesitamos. Pero tienen varias limitaciones importantes, una es el rendimiento. La coincidencia de comodines y expresiones regulares generalmente requiere que MySQL intente hacer coincidir todas las filas de la tabla. Si el número de filas de búsqueda continúa aumentando, estas búsquedas pueden llevar mucho tiempo. Segundo, control claro. Al usar comodines y la coincidencia de expresiones regulares, es difícil controlar explícitamente qué coincide y qué no coincide. Por ejemplo, al especificar una palabra debe coincidir, una palabra no debe coincidir y una palabra solo puede coincidir si la primera palabra coincide O puede que no coincida. Tercero, el resultado de la inteligencia. Aunque la búsqueda basada en comodines y expresiones regulares proporciona una búsqueda muy flexible, ninguno de ellos puede proporcionar una forma inteligente de seleccionar resultados. Por ejemplo, una búsqueda de una palabra en particular devolverá todas las líneas que contienen la palabra, sin distinguir entre las líneas que contienen una sola coincidencia y las líneas que contienen múltiples coincidencias. Del mismo modo, una búsqueda de una palabra en particular no encontrará líneas que no contengan la palabra pero contengan otras palabras relacionadas. Debido a esto, la búsqueda de texto completo puede resolver estas limitaciones. Cuando se utiliza la búsqueda de texto completo, MySQL no necesita ver cada fila por separado, y no necesita analizar y procesar cada palabra por separado. De esta manera, MySQL puede decidir rápida y efectivamente qué palabras coinciden, qué palabras no coinciden, con qué frecuencia coinciden, etc. Para realizar una búsqueda de texto completo, la columna buscada debe indexarse ​​y debe reindexarse ​​continuamente a medida que cambian los datos.

1. Habilite la búsqueda de texto completo : generalmente habilite la búsqueda de texto completo al crear una tabla. Después de la indexación, use dos funciones Match () y Against () para realizar una búsqueda de texto completo, donde Match () especifica la columna buscada, Against () Especifique la expresión de búsqueda a utilizar.

Ejemplo 1: cree una tabla de notas de producto y enumere las columnas que contiene e indexe la columna note_text para realizar una búsqueda de texto completo.

Instrucción SQL:

CREAR TABLA productnotes

(

note_id int NO NULL AUTO_INCREMENT,

prod_id char (10) NO NULL,

note_data datatime NOT NULL,

note_test text NULL,

CLAVE PRIMARIA (note_id),

FULLTEXT (note_text)

) MOTOR = MyISAM;

Ejemplo 2: recupere la columna especificada note_text, y especifique la palabra conejo como texto de búsqueda, y devuelva la fila que contiene conejo.

SQL : : SELECCIONAR nota_texto DE las notas del producto DONDE Emparejar (nota_texto) Contra ('conejo');

SQL : : SELECCIONAR nota_texto DE las notas del producto DONDE nota_texto COMO '% conejo%';

2. Expansión de consulta: la expansión de consulta se utiliza para intentar relajar el rango de resultados de búsqueda de texto completo devueltos.

Ejemplo: encuentre todos los comentarios que mencionen yunques y otras líneas que puedan ser relevantes para su búsqueda, incluso si no contienen la palabra yunques.

SQL : : SELECCIONA note_text FROM productnotes WHERE Match (note_text) Against ('yunques' WITH QUERY EXPANSION);

3. Búsqueda de texto booleano: proporcione una consulta de texto completo sobre los detalles, incluso si el índice FULLTEXT no está definido, también se puede utilizar.

Ejemplo 1: búsqueda de texto completo para todas las líneas que contienen la palabra pesado

SQL : : SELECCIONAR nota_texto DE las notas del producto DONDE Emparejar (nota_texto) Contra ('pesado' EN MODO BOOLEO);

Ejemplo 2: coincide con líneas que contienen pesadas pero que no contienen palabras que comiencen con cuerda

SQL: : SELECCIONAR nota_texto DE las notas del producto DONDE Emparejar (nota_texto) Contra ('cuerda pesada *' EN MODO BOOLEANO);

 

Ejemplo 3 : busque líneas que contengan conejo y cebo.

SQL: : SELECCIONA note_text FROM productnotes WHERE Match (note_text) Against ('+ rabbit + bait' EN MODO BOOLEAN);

Ejemplo 4 : sin especificar un operador, busque líneas que coincidan al menos con una de conejo y cebo.

SQL : : SELECCIONAR nota_texto DE las notas del producto DONDE Emparejar (nota_texto) Contra ('cebo de conejo' EN MODO BOOLEO);

Ejemplo 5: busque la frase correspondiente cebo de conejo en lugar de las dos palabras conejo y cebo.

SQL: : SELECCIONAR nota_texto DE las notas del producto DONDE Emparejar (nota_texto) Contra ('"cebo de conejo"' EN MODO BOOLEANO);

Ejemplo 6: Haga coincidir el conejo y la zanahoria, aumente el nivel de la primera y disminuya el nivel de la segunda.

SQL语句:SELECT note_text FROM productnotes WHERE Match(note_text) Against('>rabbit <carrot' IN BOOLEAN MODE);

示例7:搜索匹配词safe和combination,降低后者的等级。

SQL语句:SELECT note_text FROM productnotes WHERE Match(note_text) Against('+safe +(<combination)' IN BOOLEAN MODE);

二、插入数据

使用INSERT语句插入数据到数据库表中。插入可以用以下几种方式

  • 插入完整的行;
  • 插入行的一部分;
  • 插入多行;
  • 插入某些查询的结果。

1.插入完整的行

示例:插入一个新客户到customers表。

SQL语句:INSERT INTO customers VALUES(NULL,'pe','199 main','Los');

SQL语句:INSERT INTO customers(cust_name,cust_addr,cust_city,cust_nn) VALUES(NULL,'pe','199 main','Los');

2.插入多行

示例:插入多行信息到customers表。

SQL语句:INSERT INTO customers(cust_name,cust_addr,cust_city,cust_nn) VALUES(NULL,'pe','199 main','Los'),(NULL,'OO','19 main','Ls');

3.插入检索出的数据

示例:将表custnew的信息合并到customers表。

SQL语句:INSERT INTO customers(cust_id,cust_contact,cust_email,cust_name,cust_addr,cust_city) SELECT cust_id,cust_contact,cust_email,cust_name,cust_addr,cust_city FROM custnew;

三、更新和删除数据

使用UPDATE语句更新或者修改表中的数据,DELETE语句删除表中的数据。其中,更新操作包括对表中特定的行更新以及更新表中所有行,在更新表中特定行时,不可省略WHERE子句。

1.更新操作

UPDATE操作包括三部分,即要更新的表、列名和它们的新值、以及确定要更新行的过滤条件。

示例1:更新客户1005的信息

SQL语句:UPDATE customers SET cust_email = '[email protected]' WHERE cust_id = 1005;

SQL语句:UPDATE customers SET cust_email='[email protected]', cust_name = 'zhang san' WHERE cust_id = 1005;

示例2:删除cust_email列的值,并将它设置为NULL

SQL语句:UPDATE customers SET cust_email = NULL WHERE cust_id = 1005;

2.删除操作

删除操作包括两种方式,即从表中删除特定的行和删除所有行。

示例1:删除表customers中的一行

SQL语句:DELETE FROM customers WHERE cust_id = 1006;

示例2:删除表customers中的所有行

SQL语句:DELETE FROM customers;

SQL语句:TRUNCATE TABLE customers;

DELETE和TRUNCATE区别:

参考博客https://www.cnblogs.com/zhizhao/p/7825469.html

注意事项:

使用UPDATE或DELETE时需要遵循的习惯

  • 除非确实打算更新和删除每一行,否则绝对不要使用不带WHERE子句的UPDATE或DELETE语句;
  • 保证每个表都有主键,尽可能像WHERE子句那样使用它,可以指定各主键、多个值或值的范围;
  • 在对UPDATE或DELETE语句使用WHERE子句前,应该先用SELECT进行测试,保证它过滤的是正确的记录,以防编写的WHERE子句不正确;
  • 使用强制实施引用完整性的数据库,这样MySQL将不允许删除具有与其它表相关联的数据的行。

Supongo que te gusta

Origin www.cnblogs.com/wzw0625/p/12683111.html
Recomendado
Clasificación