http://wiki.cabal.mx/index.php?title=Curso_de_MariaDB_Desde_la_Consola/Funciones_de_Informaci%C3%B3n&feed=atom&action=historyCurso de MariaDB Desde la Consola/Funciones de Información - Historial de revisiones2024-03-28T16:29:59ZHistorial de revisiones para esta página en el wikiMediaWiki 1.32.1http://wiki.cabal.mx/index.php?title=Curso_de_MariaDB_Desde_la_Consola/Funciones_de_Informaci%C3%B3n&diff=121434&oldid=prevRrc: /* VERSION */2016-07-20T19:28:51Z<p><span dir="auto"><span class="autocomment">VERSION</span></span></p>
<p><b>Página nueva</b></p><div>__NOTOC__<br />
* [[:#Funciones de Información | Funciones de Información]]<br />
* [[:#BENCHMARK | BENCHMARK]]<br />
* [[:#CHARSET | CHARSET]]<br />
* [[:#COLLATION | COLLATION]]<br />
* [[:#CONNECTION_ID | CONNECTION_ID]]<br />
* [[:#CURRENT_USER | CURRENT_USER]]<br />
* [[:#DATABASE | DATABASE]]<br />
* [[:#FOUND_ROWS | FOUND_ROWS]]<br />
* [[:#LAST_INSERT_ID | LAST_INSERT_ID]]<br />
* [[:#ROW_COUNT | ROW_COUNT]]<br />
* [[:#VERSION | VERSION]]<br />
<br />
= Funciones de Información =<br />
<br />
== BENCHMARK ==<br />
<br />
<b>Syntax:</b><br />
<br />
BENCHMARK( count, expr )<br />
<br />
<b>Descripción;</b><br />
<br />
La función BENCHMARK() ejecuta la expresión expr repetidamente count veces.<br />
Se puede utilizar en cuando la rapidez MariaDB procesa la expresión. <br />
El valor del resultado es siempre 0. El uso previsto es desde el cliente de MySQL,<br />
que informa de los tiempos de ejecución de la consulta.<br />
<br />
<b>Ejemplo;</b><br />
<br />
MariaDB [(none)]> SELECT BENCHMARK( 500000, MD5( "La frase que vamos encryptar" ) );<br />
+------------------------------------------------------------+<br />
| BENCHMARK( 500000, MD5( "La frase que vamos encryptar" ) ) |<br />
+------------------------------------------------------------+<br />
| 0 |<br />
+------------------------------------------------------------+<br />
1 row in set (0.23 sec)<br />
<br />
== CHARSET ==<br />
<br />
<b>Syntax:</b><br />
<br />
CHARSET( str )<br />
<br />
<b>Descripción;</b><br />
<br />
Devuelve el conjunto de caracteres del argumento de cadena.<br />
Si str no es una cadena, se considera como una cadena binaria<br />
(por lo que se devuelve la función binaria ''). <br />
Esto se aplica a NULL, también.<br />
El valor de retorno es una cadena en el conjunto de caracteres UTF-8.<br />
<br />
<b>Ejemplos;</b><br />
<br />
MariaDB [(none)]> SELECT CHARSET( 'El DEFAUT del sistema' );<br />
+------------------------------------+<br />
| CHARSET( 'El DEFAUT del sistema' ) |<br />
+------------------------------------+<br />
| utf8 |<br />
+------------------------------------+<br />
1 row in set (0.00 sec)<br />
<br />
<br />
MariaDB [(none)]> SELECT CHARSET( CONVERT( 'también' USING latin1 ) );<br />
+-----------------------------------------------+<br />
| CHARSET( CONVERT( 'también' USING latin1 ) ) |<br />
+-----------------------------------------------+<br />
| latin1 |<br />
+-----------------------------------------------+<br />
1 row in set (0.00 sec)<br />
<br />
== COLLATION ==<br />
<br />
<b>Syntax:</b><br />
<br />
COLLATION( str )<br />
<br />
<b>Descripción;</b><br />
<br />
Devuelve la colation de la cadena. Si str no es una cadena, se considera como una cadena binaria<br />
(por lo que se devuelve la función binaria '').<br />
Esto se aplica a NULL, también. <br />
El valor de retorno es una cadena en el conjunto de caracteres UTF-8.<br />
<br />
<b>Ejemplos;</b><br />
<br />
MariaDB [(none)]> SELECT COLLATION( 'El default de nuesto sistema' );<br />
+--------------------------------------------+<br />
| COLLATION( 'El default de nuesto sistema' ) |<br />
+--------------------------------------------+<br />
| utf8_general_ci |<br />
+--------------------------------------------+<br />
1 row in set (0.00 sec)<br />
<br />
MariaDB [(none)]> SELECT COLLATION( _latin1 'abc' );<br />
+----------------------------+<br />
| COLLATION( _latin1 'abc' ) |<br />
+----------------------------+<br />
| latin1_swedish_ci |<br />
+----------------------------+<br />
1 row in set (0.00 sec)<br />
<br />
== CONNECTION_ID ==<br />
<br />
<b>Syntax:</b><br />
<br />
CONNECTION_ID()<br />
<br />
<b>Descripción;</b><br />
Devuelve el identificador de conexión (ID del hilo) para la conexión.<br />
Cada hilo (incluyendo eventos) tiene un identificador que es único <br />
entre el conjunto de clientes conectados actualmente.<br />
<br />
<b>Ejemplo;</b><br />
<br />
MariaDB [(none)]> SELECT CONNECTION_ID();<br />
+-----------------+<br />
| CONNECTION_ID() |<br />
+-----------------+<br />
| 4 |<br />
+-----------------+<br />
1 row in set (0.00 sec)<br />
<br />
== CURRENT_USER ==<br />
<br />
<b>Syntax:</b><br />
<br />
CURRENT_USER, CURRENT_USER()<br />
<br />
<b>Descripción;</b><br />
<br />
Devuelve el nombre de usuario y nombre de host de la cuenta en MariaDB<br />
que el servidor utiliza para autenticar el cliente actual. Esta cuenta <br />
determina sus privilegios de acceso. <br />
El valor de retorno es una cadena en el conjunto de caracteres UTF-8.<br />
<br />
El valor de CURRENT_USER() puede ser diferente del valor de USER(). <br />
CURRENT_ROLE() devuelve el role activo actual. (Nuevo en 10.0.5)<br />
<br />
<b>Ejemplos;</b><br />
<br />
MariaDB [(none)]> SELECT CURRENT_USER, CURRENT_USER();<br />
+---------------+----------------+<br />
| CURRENT_USER | CURRENT_USER() |<br />
+---------------+----------------+<br />
| rrc@localhost | rrc@localhost |<br />
+---------------+----------------+<br />
1 row in set (0.00 sec)<br />
<br />
MariaDB [(none)]> select user(),current_user();<br />
+---------------+----------------+<br />
| user() | current_user() |<br />
+---------------+----------------+<br />
| rrc@localhost | rrc@localhost |<br />
+---------------+----------------+<br />
1 row in set (0.00 sec)<br />
<br />
MariaDB [(none)]> SELECT CURRENT_USER, CURRENT_USER(), CURRENT_ROLE();<br />
+---------------+----------------+----------------+<br />
| CURRENT_USER | CURRENT_USER() | CURRENT_ROLE() |<br />
+---------------+----------------+----------------+<br />
| rrc@localhost | rrc@localhost | NULL |<br />
+---------------+----------------+----------------+<br />
1 row in set (0.00 sec)<br />
<br />
MariaDB [mysql]> SELECT * FROM INFORMATION_SCHEMA.ENABLED_ROLES;<br />
+-----------+<br />
| ROLE_NAME |<br />
+-----------+<br />
| NULL |<br />
+-----------+<br />
1 row in set (0.00 sec)<br />
<br />
== DATABASE ==<br />
<br />
<b>Syntax:</b><br />
<br />
DATABASE()<br />
<br />
<b>Descripción;</b><br />
<br />
Devuelve el valor del Nombre de la base de datos seleccionada <br />
como una cadena en el conjunt de caracteres UTF-8. Si no hay <br />
una base de datos predeterminada, BASE DE DATOS() devuelve NULL. <br />
Dentro de una rutina almacenada, la base de datos por defecto es <br />
la base de datos que la rutina se asocia con, que no es necesariamente <br />
la misma que la base de datos que es el valor predeterminado en el <br />
contexto de llamada.<br />
<br />
Para seleccionar una base de datos por defecto, la sentencia USE se <br />
puede ejecutar. Otra forma de establecer la base de datos por defecto <br />
está especificando su nombre al iniciar el cliente de línea de <br />
comandos mysql.<br />
<br />
<b>Ejemplos;</b><br />
<br />
MariaDB [(none)]> SELECT DATABASE();<br />
+------------+<br />
| DATABASE() |<br />
+------------+<br />
| NULL |<br />
+------------+<br />
1 row in set (0.00 sec)<br />
<br />
MariaDB [(none)]> use Prueba1;<br />
Database changed<br />
MariaDB [Prueba1]> SELECT DATABASE();<br />
+------------+<br />
| DATABASE() |<br />
+------------+<br />
| Prueba1 |<br />
+------------+<br />
1 row in set (0.00 sec)<br />
<br />
== FOUND_ROWS ==<br />
<br />
<b>Syntax:</b><br />
<br />
FOUND_ROWS()<br />
<br />
<b>Descripción;</b><br />
<br />
Una instrucción SELECT puede incluir una cláusula LIMIT para restringir el número de filas el servidor<br />
devuelve al cliente. En algunos casos, es deseable saber cuántos registros habría retornado el comando<br />
sin el límite, pero sin correr el comunicado de nuevo. Para obtener este número de filas, incluir una<br />
opción SQL_CALC_FOUND_ROWS en la instrucción SELECT, y luego invocar FOUND_ROWS () después.<br />
<br />
También puede utilizar FOUND_ROWS () para obtener el número de filas devueltas por una instrucción SELECT<br />
que no contienen una cláusula LIMIT. En este caso no es necesario utilizar la opción SQL_CALC_FOUND_ROWS.<br />
Esto puede ser útil por ejemplo en un procedimiento almacenado.<br />
<br />
Además, esta función trabaja con algunas otras declaraciones que devuelven un conjunto de resultados,<br />
incluyendo SHOW, DESC y ayuda. Para ELIMINAR ... Volviendo se debe utilizar ROW_COUNT (). También funciona<br />
como una declaración preparada, o después de la ejecución de una declaración preparada.<br />
<br />
Declaraciones que no devuelven ningún resultado no afectan FOUND_ROWS () - todavía será devuelto el valor anterior.<br />
<br />
Advertencia: Cuando se utiliza después de una sentencia CALL, esta función devuelve el número de filas<br />
seleccionadas por la última consulta en el procedimiento, no por la totalidad del procedimiento.<br />
<br />
Declaraciones Uso de la función () FOUND_ROWS no son seguros para la replicación.<br />
<br />
<b>Ejemplos;</b><br />
<br />
MariaDB [(none)]> show engines;<br />
+--------------------+---------+----------------------------------------------------------------------------+<br />
| Engine | Support | Comment |<br />
+--------------------+---------+----------------------------------------------------------------------------+<br />
| CSV | YES | CSV storage engine |<br />
| MRG_MyISAM | YES | Collection of identical MyISAM tables |<br />
| MyISAM | YES | MyISAM storage engine |<br />
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) |<br />
| PERFORMANCE_SCHEMA | YES | Performance Schema |<br />
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables |<br />
| ARCHIVE | YES | Archive storage engine |<br />
| Aria | YES | Crash-safe tables with MyISAM heritage |<br />
| FEDERATED | YES | FederatedX pluggable storage engine |<br />
| InnoDB | DEFAULT | Percona-XtraDB, Supports transactions, row-level locking, and foreign keys |<br />
+--------------------+---------+----------------------------------------------------------------------------+<br />
10 rows in set (0.05 sec)<br />
<br />
MariaDB [(none)]> select found_rows();<br />
+--------------+<br />
| found_rows() |<br />
+--------------+<br />
| 10 |<br />
+--------------+<br />
1 row in set (0.00 sec)<br />
<br />
MariaDB [(none)]> use Prueba1;<br />
Database changed<br />
MariaDB [Prueba1]> show tables;<br />
+-------------------+<br />
| Tables_in_Prueba1 |<br />
+-------------------+<br />
| Competiciones |<br />
| Cursos |<br />
| Est_fruta |<br />
| Inv_fruta |<br />
| Log |<br />
| Usuarios |<br />
| color |<br />
| fruta |<br />
| inven |<br />
| personas |<br />
| t1 |<br />
+-------------------+<br />
11 rows in set (0.02 sec) <br />
<br />
MariaDB [Prueba1]> SELECT * FROM Cursos limit 3;<br />
+----+------------+<br />
| ID | Nombre |<br />
+----+------------+<br />
| 1 | HTML5 |<br />
| 2 | CSS3 |<br />
| 3 | JavaScript |<br />
+----+------------+<br />
3 rows in set (0.00 sec)<br />
<br />
MariaDB [Prueba1]> select FOUND_ROWS();<br />
+--------------+<br />
| FOUND_ROWS() |<br />
+--------------+<br />
| 3 |<br />
+--------------+<br />
1 row in set (0.00 sec)<br />
<br />
MariaDB [Prueba1]> SELECT SQL_CALC_FOUND_ROWS * FROM Cursos limit 3;<br />
+----+------------+<br />
| ID | Nombre |<br />
+----+------------+<br />
| 1 | HTML5 |<br />
| 2 | CSS3 |<br />
| 3 | JavaScript |<br />
+----+------------+<br />
3 rows in set (0.00 sec) <br />
<br />
MariaDB [Prueba1]> select FOUND_ROWS();<br />
+--------------+<br />
| FOUND_ROWS() |<br />
+--------------+<br />
| 6 |<br />
+--------------+<br />
1 row in set (0.00 sec)<br />
<br />
== LAST_INSERT_ID ==<br />
<br />
<b>Syntax</b><br />
<br />
LAST_INSERT_ID(), LAST_INSERT_ID(expr)<br />
<br />
<b>Description</b><br />
<br />
LAST_INSERT_ID() (sin argumentos) devuelve el primer valor generado automáticamente insertado<br />
con éxito para una columna AUTO_INCREMENT como resultado de la instrucción INSERT ejecutada más<br />
recientemente. El valor de LAST_INSERT_ID() permanece sin cambios si no hay filas se insertan<br />
correctamente.<br />
<br />
También puede usar LAST_INSERT_ID() para eliminar la última fila insertada.<br />
<br />
En MySQL 5.1.11 y anteriores, LAST_INSERT_ID() (sin argumentos) devuelve el primer valor generado<br />
de forma automática si las filas se insertan o actualizan correctamente. Esto significa que el<br />
valor devuelto puede ser un valor que no se ha insertado correctamente en la tabla. Si no hay<br />
filas se insertaron con éxito, LAST_INSERT_ID() devuelve 0.<br />
<br />
El valor de LAST_INSERT_ID() será consistente en todas las versiones, si todas las filas de la<br />
instrucción INSERT o UPDATE tuvieron éxito.<br />
<br />
Si una tabla contiene una columna AUTO_INCREMENT e INSERT ... EN DUPLICADO actualizaciones de<br />
actualización de la clave (en lugar de inserciones) una fila, el valor de LAST_INSERT_ID() no<br />
es significativa antes de MySQL 5.1.12.<br />
<br />
La declaración se está ejecutando actualmente no afecta al valor de LAST_INSERT_ID().<br />
Supongamos que usted genera un valor AUTO_INCREMENT con una declaración y, a continuación,<br />
se refieren a LAST_INSERT_ID () en una instrucción INSERT de varias filas que inserta filas en<br />
una tabla con su propia columna AUTO_INCREMENT. El valor de LAST_INSERT_ID() se mantendrá<br />
estable en la segunda sentencia; su valor para la segunda y posteriores filas no se ve afectada<br />
por las inserciones de filas anteriores. (Sin embargo, si se mezclan referencias a LAST_INSERT_ID()<br />
y LAST_INSERT_ID(expr), el efecto es indefinido.)<br />
<br />
Si la sentencia anterior devuelve un error, el valor de LAST_INSERT_ID() es indefinido. Para las<br />
tablas transaccionales, si la sentencia se revierte debido a un error, el valor de LAST_INSERT_ID()<br />
se deja sin definir. Para ROLLBACK manual, el valor de LAST_INSERT_ID() no se restablece a que antes<br />
de la transacción; sigue siendo como lo era en el momento de la restitución.<br />
<br />
Dentro del cuerpo de una rutina almacenada (procedimiento o función) o un disparador, el valor<br />
de LAST_INSERT_ID() cambia de la misma manera como para instrucciones ejecutadas fuera del cuerpo<br />
de este tipo de objetos. El efecto de una rutina de activación o almacenado en el valor<br />
de LAST_INSERT_ID() que es visto por las declaraciones siguientes depende del tipo de rutina:<br />
<br />
Si un procedimiento almacenado se ejecuta sentencias que cambian el valor de LAST_INSERT_ID(),<br />
el nuevo valor será visto por los estados que siguen la llamada de procedimiento.<br />
<br />
Para stored funciones y triggers que cambian el valor almacenado, el valor se restablece cuando<br />
termina la función o activación, por lo siguientes afirmaciones no verán un valor modificado.<br />
<br />
<b>ejemplos</b><br />
<br />
MariaDB [Prueba1]> select LAST_INSERT_ID();<br />
+------------------+<br />
| LAST_INSERT_ID() |<br />
+------------------+<br />
| 0 |<br />
+------------------+<br />
1 row in set (0.00 sec)<br />
<br />
MariaDB [Prueba1]> show create table Cursos;<br />
+--------+--------------------------------------------------------------------+<br />
| Table | Create Table |<br />
+--------+--------------------------------------------------------------------+<br />
| Cursos | CREATE TABLE `Cursos` (<br />
`ID` smallint(5) unsigned NOT NULL AUTO_INCREMENT,<br />
`Nombre` varchar(50) COLLATE utf8_unicode_ci NOT NULL,<br />
PRIMARY KEY (`ID`)<br />
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |<br />
+--------+--------------------------------------------------------------------+<br />
1 row in set (0.20 sec)<br />
<br />
MariaDB [Prueba1]> insert into Cursos values ( NULL, 'Ruby' );<br />
Query OK, 1 row affected (0.34 sec)<br />
<br />
MariaDB [Prueba1]> select LAST_INSERT_ID();<br />
+------------------+<br />
| LAST_INSERT_ID() |<br />
+------------------+<br />
| 7 |<br />
+------------------+<br />
1 row in set (0.00 sec) <br />
<br />
MariaDB [Prueba1]> select * from Cursos;<br />
+----+------------+<br />
| ID | Nombre |<br />
+----+------------+<br />
| 1 | HTML5 |<br />
| 2 | CSS3 |<br />
| 3 | JavaScript |<br />
| 4 | PHP |<br />
| 5 | MariaDB |<br />
| 6 | Python |<br />
| 7 | Ruby |<br />
+----+------------+<br />
7 rows in set (0.00 sec)<br />
<br />
MariaDB [Prueba1]> delete from Cursos where ID = LAST_INSERT_ID();<br />
Query OK, 1 row affected (0.13 sec)<br />
<br />
MariaDB [Prueba1]> select LAST_INSERT_ID();<br />
+------------------+<br />
| LAST_INSERT_ID() |<br />
+------------------+<br />
| 7 |<br />
+------------------+<br />
1 row in set (0.00 sec) <br />
<br />
MariaDB [Prueba1]> select * from Cursos;<br />
+----+------------+<br />
| ID | Nombre |<br />
+----+------------+<br />
| 1 | HTML5 |<br />
| 2 | CSS3 |<br />
| 3 | JavaScript |<br />
| 4 | PHP |<br />
| 5 | MariaDB |<br />
| 6 | Python |<br />
+----+------------+<br />
6 rows in set (0.00 sec)<br />
<br />
== ROW_COUNT ==<br />
<br />
<b>Sintaxis</b><br />
<br />
ROW_COUNT()<br />
<br />
<b>Descripción</b><br />
<br />
ROW_COUNT () devuelve el número de registros actualizados, insertados o eliminados por<br />
la declaración anterior. Este es el mismo que el número de registros que muestra el<br />
cliente mysql y el valor de los mysql_affected_rows() de la API C.<br />
<br />
En general:<br />
<br />
Para las sentencias que devuelven un conjunto de resultados (como SELECT, SHOW, DESC o HELP),<br />
devuelve -1, incluso cuando el conjunto de resultados está vacío. Esto también es cierto para<br />
las declaraciones administrativas, tales como optimizar.<br />
Para las sentencias DML que no sean SELECT y ALTER TABLE, devuelve el número de filas afectadas.<br />
Para las sentencias DDL (incluyendo TRUNCATE) y para otros estados que no devuelve ningún conjunto<br />
de resultados (como el uso, DO, señal o DEALLOCATE PREPARE), devuelve 0.<br />
<br />
Para REPLACE, también se cuentan las filas eliminadas. Por lo tanto, si Reemplazar elimina una<br />
fila y añade una nueva fila, ROW_COUNT () devuelve 2.<br />
<br />
Para INSERT ... EN clave duplicados, registros actualizados se cuentan dos veces. Por lo tanto,<br />
si INSERT añade una nueva filas y modifica otra fila, ROW_COUNT () devuelve 3.<br />
<br />
ROW_COUNT() no tiene en cuenta las filas que no se eliminan directamente / actualizados por la<br />
última declaración. Esto significa que las filas eliminadas por las teclas o desencadenantes<br />
extranjeros no se cuentan.<br />
<br />
Advertencia: Puede utilizar ROW_COUNT() con declaraciones preparadas, pero hay que llamarlo<br />
después de EXECUTE, no después de DEALLOCATE PREPARE, porque el número de filas para asignar<br />
prepararse es siempre 0.<br />
<br />
Advertencia: Cuando se utiliza después de una sentencia CALL, esta función devuelve el número de<br />
filas afectadas por la última instrucción en el procedimiento, no por la totalidad del procedimiento.<br />
<br />
Advertencia: Después de RETRASADO INSERT, ROW_COUNT () devuelve el número de filas que las<br />
intentado insertar, no el número de las escrituras de éxito.<br />
<br />
Esta información también se puede encontrar en el área de diagnóstico.<br />
<br />
Declaraciones usando la función ROW_COUNT () no son seguros para la replicación.<br />
<br />
<b>Ejemplos</b><br />
<br />
MariaDB [Prueba1]> CREATE TABLE t (A INT);<br />
Query OK, 0 rows affected (1.26 sec)<br />
<br />
MariaDB [Prueba1]> INSERT INTO t VALUES(1),(2),(3);<br />
Query OK, 3 rows affected (0.55 sec)<br />
Records: 3 Duplicates: 0 Warnings: 0<br />
<br />
MariaDB [Prueba1]> SELECT ROW_COUNT();<br />
+-------------+<br />
| ROW_COUNT() |<br />
+-------------+<br />
| 3 |<br />
+-------------+<br />
1 row in set (0.00 sec)<br />
<br />
MariaDB [Prueba1]> select * from t;<br />
+------+<br />
| A |<br />
+------+<br />
| 1 |<br />
| 2 |<br />
| 3 |<br />
+------+<br />
3 rows in set (0.00 sec)<br />
<br />
MariaDB [Prueba1]> DELETE FROM t WHERE A IN(1,2);<br />
Query OK, 2 rows affected (0.10 sec)<br />
<br />
MariaDB [Prueba1]> SELECT ROW_COUNT(); <br />
+-------------+<br />
| ROW_COUNT() |<br />
+-------------+<br />
| 2 |<br />
+-------------+<br />
1 row in set (0.00 sec)<br />
<br />
MariaDB [Prueba1]> select * from t;<br />
+------+<br />
| A |<br />
+------+<br />
| 3 |<br />
+------+<br />
1 row in set (0.00 sec)<br />
<br />
== VERSION ==<br />
<br />
<b>Syntax<br />
<br />
VERSION()<br />
<br />
<b>Description</b><br />
<br />
Devuelve una cadena que indica la versión del servidor MariaDB.<br />
La cadena utiliza el juego de caracteres UTF-8.<br />
<br />
<b>Examples</b><br />
<br />
MariaDB [Prueba1]> select VERSION();<br />
+-----------------+<br />
| VERSION() |<br />
+-----------------+<br />
| 10.0.25-MariaDB |<br />
+-----------------+<br />
1 row in set (0.00 sec)<br />
<br />
<br />
[[Category:MariaDB Desde la Consola]]<br />
[[Category: CursoMatiaDB]]</div>Rrc