Operaciones de consulta rápida de MySQL sobre datos en tablas

Comprobación rápida de MySQL

Debido a que a menudo olvido algunas declaraciones, palabras clave, operaciones, etc. de MySQL en mi trabajo y estudio diario, recientemente me tomé un tiempo para escribir el siguiente contenido sobre MySQL. es como un diccionario


Restablecer contraseña de mysql Operadores
de tipo de datos Funciones comunes Integridad de datos Operaciones básicas de la base de datos Operaciones en la propia tabla Este artículo subconsulta conexión de múltiples tablas vista de índice preprocesamiento de sentencias SQL funciones personalizadas y procedimientos almacenados programación en MySQL













Insertar registro de tabla

{
   
   INSERT | REPLACE} [INTO] 表名
	[(字段名 [, 字段名, ...])]
    {
   
   VALUES | VALUE}
    ([,, ...])[,(,[,, ...]), ...]

例如向表t1插入值
表t1结构:
mysql> desc t1;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id    | int      | NO   | PRI | NULL    |       |
| name  | char(10) | YES  | UNI | NULL    |       |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.02 sec)

# 插入一行数据
mysql> insert into t1 value(1,'老李');
Query OK, 1 row affected (0.02 sec)

mysql> insert into t1(id) values(2);
Query OK, 1 row affected (0.01 sec)

# 插入多行
mysql> insert t1 values(3, 'ab'),(4,'cd');
Query OK, 2 rows affected (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 0

La diferencia entre insertar y reemplazar

Si uno o algunos campos de la tabla deben ser únicos (no repetibles), si utiliza insertar para insertar datos que ya existen en el campo correspondiente de la tabla, se informará un error, pero reemplazar primero eliminará el registro original. y luego inserte el nuevo registro de.

mysql> desc t1;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id    | int      | NO   | PRI | NULL    |       |
| name  | char(10) | YES  | UNI | NULL    |       |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.02 sec)
# 表t1中的id是主键,主键必须唯一

# 表中的已有的记录
mysql> select * from t1;
+----+--------+
| id | name   |
+----+--------+
|  2 | NULL   |
|  3 | ab     |
|  4 | cd     |
|  1 | 老李   |
+----+--------+
4 rows in set (0.00 sec)

# 这时候用insert插入会报错
mysql> insert into t1 value(2, '老王');
ERROR 1062 (23000): Duplicate entry '2' for key 't1.PRIMARY'

# 使用replace就能成功插入
mysql> replace into t1 value(2, '老王');
Query OK, 2 rows affected (0.00 sec)
# 改变后
mysql> select * from t1;
+----+--------+
| id | name   |
+----+--------+
|  3 | ab     |
|  4 | cd     |
|  1 | 老李   |
|  2 | 老王   |  # null变成了老王
+----+--------+
4 rows in set (0.00 sec)

Más

Eliminar registro de tabla

DELETE FROM 表名 
    [WHERE where_condition]


# 原来表中内容
mysql> select * from t1;
+----+--------+
| id | name   |
+----+--------+
|  3 | ab     |
|  4 | cd     |
|  1 | 老李   |
|  2 | 老王   |
+----+--------+
4 rows in set (0.00 sec)

# 删除t1表中id为4的记录
mysql> delete from t1 where id = 4;
Query OK, 1 row affected (0.00 sec)

mysql> select * from t1;
+----+--------+
| id | name   |
+----+--------+
|  3 | ab     |
|  1 | 老李   |
|  2 | 老王   |
+----+--------+
3 rows in set (0.00 sec)


# 如果不写where条件将会删除表中所有记录(但不会把表删除)
mysql> delete from t1;
Query OK, 3 rows affected (0.01 sec)

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

Más

Modificar registros de tabla

UPDATE  表名
    SET 字段名 =[, 字段名 =, ...]
    [WHERE where_condition]


# 原来的记录
mysql> select * from t1;
+----+--------+
| id | name   |
+----+--------+
|  2 | 阿七   |
|  1 | 老ok   |
+----+--------+
2 rows in set (0.00 sec)

# 将t1表中id为2的记录的name修改为‘老八’
mysql> update t1 set name = '老八' where id = 2;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from t1;
+----+--------+
| id | name   |
+----+--------+
|  1 | 老ok   |
|  2 | 老八   |
+----+--------+
2 rows in set (0.00 sec)

# 不加where条件的话将会修改表中所有记录
mysql> update t1 set name = '九哥';
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2  Changed: 2  Warnings: 0
# 注:被修改的字段不能是unique约束的,并且不能是有索引的,否则会报错.

Más

Consultar registros de la tabla.

SELECT [DISTINCT]
    select_expr [, select_expr,...] 
    [FROM 表名[, 表名,...]
    [WHERE 选择条件]
    [GROUP BY {字段名 | 表达式} [WITH ROLLUP]]
    [HAVING 选择条件]
    [ORDER BY {字段名 | 表达式} [ASC | DESC]]
    [LIMIT {
   
   [偏移量(起始行),] 行数 | 行数 OFFSET 偏移量}]]
select_expr:
	字段名 [[as] 显示的字段名]
	*
	select语句 [as]select语句取的名(当做字段名)
  • deduplicación distinta
  • donde filtrar (filtrar)
  • grupo por grupo
  • Tener filtro, generalmente usado junto con agrupar por. Se filtrará aún más después de donde se filtró.
  • El orden predeterminado es ascendente (asc), puede especificar asc (orden ascendente) o desc (orden descendente)
  • limit limita el número de filas
    a más
    distintas
    donde
    se agrupan por
    orden por
# 查询表t1中所有字段
mysql> select * from t1;
+----+--------+
| id | name   |
+----+--------+
|  1 | 九哥   |
|  2 | 九哥   |
+----+--------+
2 rows in set (0.00 sec)


# 查询表t1的记录,并限制只查一行
mysql> select * from t1 limit 1;
+----+--------+
| id | name   |
+----+--------+
|  1 | 九哥   |
+----+--------+
1 row in set (0.00 sec)

# 查询id为1的记录,并且只要name字段
mysql> select name from t1 where id = 1;
+--------+
| name   |
+--------+
| 九哥   |
+--------+
1 row in set (0.00 sec)

# 查询id大于0的记录,并降序显示
mysql> select * from t1 where id > 0 order by id desc;
+----+--------+
| id | name   |
+----+--------+
|  2 | 九哥   |
|  1 | 九哥   |
+----+--------+
2 rows in set (0.00 sec)

En artículos posteriores se introducirán consultas más complejas, como operaciones de unión de tablas, subconsultas, etc.

Supongo que te gusta

Origin blog.csdn.net/weixin_45345384/article/details/115680357
Recomendado
Clasificación