Guia de referencia de la de
MySQL
En este apendic e se incluyen incluyen las instrucciones y la SQL utilizadas en la version 4.0 de MySQL. Para versiones posteriores es aconsejable consultar la correspondiente a su o vis it ar el si ti o de MyS QL (w (www. m m y s q l . La
utilizada utiliza da a lo largo de Los corchetes ( [ ) indican un SELECT expresion [FROM
apendices es la siguiente: opcional. Por ejemplo: [WHERE
indica que la expresion es obligatoria (por ejemplo SELECT 4 2 10) y que puede puede existir exis tir si existe WHERE es opcional la FROM n o m b r e d e t a b l a (podriamos tener no ya que tl, ces la nombre d e t a b l a ) . Una barra vertical ( ) separa las distintas alternativas. Por ejemplo: CREATE [UNIQUE FULLTEXT] INDEX indica que UNIQUE y son opciones distintas.
Las llaves ( { ) ) indican indican que es necesario seleccionar seleccionar una de las la s opciones. Por ejemplo: CREATE TABLE
...
[TYPE
=
I
HEAP I
I
InnoDB I MERGE I
MRG
se especifica TYPE TYPE,, sera necesario especificar una de siguientes opciones: BDB, HEAP, InnoDB, MERGE, MRG
Tres puntos
indican que la
se puede repetir. Por ejemplo:
.. .
SELECT expresion,
indica que la expresion se puede repetir (separada por una coma), indica a SELECT f
se
ALTER La
de
ALTER
es
ALTER [IGNORE] [IGNORE] TABLE especificacion-alter-
La tes:
especif
...
de e s p e c i
t e r puede
ser una de las siguien -
ADD AD D [COLUMN] [COLUMN] definition-create [FIRST AFTER nombre-de-campo ADD [COLUMN] [COLUMN] (definition-create definition-create, ADD AD D INDEX INDE X [nom [nombre bre-de-indice] ... ADD KEY ... ) ADD UNIQUE (nombre-de-indice, ) ADD (nombre-de-indice, .) ADD [CONSTRAINT [CONSTRAINT simbolo] FOREIGN KEY (nombre-de-indice, ALTER ALTE R [COLUMN] nombre-de-campo SET DEFAULT literal I DROP ,
...
..
DEFAULT definition-create [FIRST I CHANGE CHAN GE [COLUMN] [COLUMN] AFTER AFTE R nombre nombre-de-campo] MODIFY MODI FY [COLUMN] [COLUMN] definition-create [FIRST AFTER nombre DROP [COLUMN] nombre-de-campo DROP PRIMARY KEY DROP INDEX nombre nombre-de-indice DISABLE KEYS ENABLE KEYS RENAME RENA ME [TO] [TO] ORDER BY nombre nombre-de-campo ALTER
de aiiadir
TABLE
cambiar de una tabla tabl a existente existente.. ( A D D ), cambiar definiciones y nombres de
( CHANGE), modificar definiciones de sin cambiar el nombre FY), eliminar o indices ( DROP), cambiar el nombre nombre de de las tablas ( RENAME ) , ordenar datos ( ORDER ) asi activar ( ENABLE ) y desactivar ( DISABLE) indices. Una extension que no sea ANSI es que ALTER TABLE puede contener varios componentes (CHANGE, AND, etc.) en una instruccion. Necesitara ALTER, I N S E R T y CREATE en tabla para ALTER TABLE. que MySQL registros I G N O R E (extension MySQL no ANSI) que puedan generar una clave principal o duplicada. dupli cada. Normalmente MySQL MySQL y ALTER FIRST y ADD...AFTER especificar donde donde se debe aiiadir un po a la definicion.
ANALYZE TABLE A N A L Y Z E T A B L E
.
En tablas y BDB, analiza y almacena la de claves de las tablas especificadas. Bloquea Bloquea tablas con un bloqueo de lectura durante la de la
BACKUP BACKUP TABLE TABLE BACKUP TABLE
En tablas copia directorio de copias de seguridad.
.
TO
de datos y de d e definicion de de datos en el
BEGIN BEGIN
La instruccion B E G I N una transaccion o un de instrucciones. La transacci tr ansaccion on permanece abierta abie rta hasta has ta la l a siguiente instruccion COMMIT o ROLLBACK.
CHECK TABLE TABLE CHECK TABLE
..
.
La opcion puede ser una de las siguientes: CHANGED EXTENDED FAST MEDIUM QUICK
Comprueba la presencia de en una tabla o BDB y, en tablas actualiza las estadisticas del La opcion QUICK no las filas para comprobar enlaces. La opcion FAST solamente comprueba las tablas que no se cerraron correctamente. opcion CHANGED es que FAST comprueba las tablas que desde la ultima comprobacion. La opcion MEDIUM verifica que enlaces eliminados son correctos y opcion EXTENDED realiza una busqueda completa de todas las claves de todas filas.
COMMIT COMMIT
La nes y vuelca
una resultados en disco.
o un
COMMIT
de
CREATE La
de CREATE puede ser una de
siguientes:
CREATE DATABASE [IF NOT EXISTS CREATE [UNIQUEIFULLTEXT] INDEX
ON
[ (longitud) ) CREATE [TEMPORARY] TA BLE [IF NOT EXISTS] definicion, )
...
. ..
La
de
crear
tipo
(crear
[instruction-select] definic i [NOT NULL
puede ser una de las siguientes:
NULL] [DEFAULT
[AUTO -INCREMENT] [PRIMARY KEY] PRIMARY KEY KEY INDEX UNIQUE [INDEX] [INDEX]
...
[CONSTRAINT simbolo] FOREIGN KEY
...
CHECK
La
de type puede ser una de las siguientes:
TINYINT [ (longitud) [UNSIGNED] [ZEROFILL] SMALLINT [ (longitud) [UNSIGNED] [ZEROFILL] MEDIUMINT [ (longitud) [UNSIGNED] [ZEROFILL] [UNSIGNED] [ZEROFILL] [UNSIGNED] [ZEROFILL] BIGINT [ (longitud) [UNSIGNED] [ZEROFILL] REAL [ (longitud,decimales) [UNSIGNED] [ZEROFILL] [UNSIGNED] [ZEROFILL] [UNSIGNED] [ZEROFILL] [UNSIGNED] [ZEROFILL] [UNSIGNED] [ZEROFILL] CHAR(longitud) [BINARY] VARCHAR(longitud) [BINARY] DATE TIME TIMESTAMP TINYBLOB BLOB MEDIUMBLOB TINYTEXT TEXT MEDIUMTEXT
... La
de nombre de campo de
es la siguiente:
[ (longitud)
La
de
de referencia es la siguiente:
...
REFERENCES [MATCH FULL I MATCH PARTIAL] [ON DELETE
La
de
RESTRICT
La
de referencia es la siguiente:
CASCADE I SET NULL
NO ACTION
SET DEFAULT
de opciones de tabla puede ser una de las siguientes:
TYPE = (BDB I HEAP AUTO-INCREMENT = # =
CHECKSUM =
[ON UPDATE
I
#
MERGE I
1 en tablas MyISAM CHECKSUM se puede definir quiere una comprobacion de todas las tablas, lo que facilita la de la tabla en de que este daiiada aunque tambien reduce su velocidad. COMMENT es un comentario de hasta 60 caracteres. numero maximo y de MAX ROWS y M I N ROWS especifican que se a en la tabla. PASSWORD codifica el de de datos (. rm) con una
DELAY
KEY
hace que MySQL espere hasta que se cierre una tabla actualizar el lo que aumenta la velocidad de
WRITE
MyISAM nes INSERT y UPDATE. ROW FORMAT especifica
una tabla
debe ser FIXED o DYNAMIC.
DELETE La
de DELETE puede ser una de
DELET E [LOW - PRIORITY I QUI CK] FROM nombre-de-tabla [WHER E clausula- where] [ORDER BY
...
[LIMIT filas]
DELET E [LOW - PRIORITY I QUI CK] nombre-de-tabla [ , nombre- de -tabla
[ *]
.
.. .
.
*
FROM referencias de tablas [WH ERE
clausula - where]
- PRIORITY DELETE [LOW
..
QUICK] FROM tabla [ *] , [tabla [
.
. *]
USING referencias de tabla [WHERE clausula- where]
La
DELETE borra registros de la tabla (o tablas) que cumplen la
w h e r e (o todos registros no existe esta clausula). La clave LOW P R I O R I T Y hace que DELETE espere hasta que no haya ningun cliente leyendo la tabla antes de procesarla. La clave hace que MySQL no combine hojas de te DELETE, que en ocasiones mas rapido. L I M I T determina el numero maximo de registros que se pueden eliminar. La clausula ORDER BY hace que MySQL borre registros en un determinado (lo que muy con una clausula LIMIT). clausula
DESC DESC
a DESCRIBE
DESCRIBE DESC RIBE nombre- de-tabla
comodin)
DESCRIBE devuelve la de la tabla y campos especificados que SHOW COLUMNS FROM n o m b r e d e Se puede utilizar un comodin de y puede ser un signo % que equivale a un numero de caracteres o un guion bajo que equivale a un caracter.
La
de
es l a siguiente:
DO expresion, [expresion,
tiene el sultados (lo que lo DO
. . .]
efecto que SELECT, a ligeramente mas rapido).
de que no devuelve re -
DROP La
de DROP es la siguiente:
DROP DATABASE [ IF EXISTS] DROP TABLE [IF EXISTS] [RESTRICT DROP INDEX
[,
nombre- de - tabla,
...]
CASCADE] ON
DATABASE elimina la base de datos y todas sus tablas. DROP TABLE elimina tabla especificada. DROP I N D E X elimina el especificado. devuelve un error si la base de datos no existe, a que se utilice STS. IF DROP TABLE confirma, automaticamente, transacciones RESTRICT y CASCADE no se implementan actualmente. DROP
EXPLAIN EXPLAIN EXPLAIN consults-select ta
es la misma que la que especificamos en la descrip -
de El uso de EXPL AIN con un nombre de tabl a equivale a DE SC RI BE nombre de El uso de EXPLAIN con una consulta proporciona se la consulta, lo que resulta muy par a optimizar la consulta y aprovechar maximo indices asociados.
FLUSH
...
La
FLUSH puede ser una de las siguientes:
HOSTS LOGS QUERY CACHE PRIVILEGES STATUS TABLES [TABLE
TABLES]
TABLES WITH READ LOCK USER-RESOURCES
DE . vaciar DE K E Y FIELDS se a HOSTS se del servidor (que, por se de cambiar direcciones IP). vaciar registros (LOGS), se cierran y se ven a abrir de registro y se el registro binario. vaciar cache de vaciar PRIVILEGES QUERY CACHE se defragmenta se vuelven a las tablas de permisos desde la base de datos mysql. vaciar STATUS se restablecen variables de estado. vaciar TABLES de mismo que vaciar QUERY CACHE, tambien se cierran todas tablas abiertas. Solamente se pueden especificar determinadas tablas para ser vaciadas. Puede aiiadir un READ LOCK a tablas, que resulta muy para bloquear un de tablas por motivos de de copias de seguridad. vaciar USER RE SOURCES se restablecen recursos de usuario (utilizados para limitar consultas, conexiones y actualizaciones por hora).
GRANT GRANT
. ..]
[, I
ON
*
I
*.*
TO
[IDENTIFIED BY [PASSWORD] 'contrasefia'] [ , [IDENTIFIED BY 'contrasefia']
I [ISSUER
[REQUIRE NONE I
[CIPHER cifrado
[AND]] [SUBJECT
MAX QUERIES PER HOUR #
[WITH [GRANT OPTION
I MAX UPDATES
-
-PER-HOUR #
otorga a un usuario un determinado tipo de se incluye la de privilegios disponibles. GRANT
En la tabla A.1
Tabla
ALL
Privilegios
Concede todos
ALL PRIVILEGES
permisos basicos.
que ALL.
ALTER
para cambiar la estructura de una tabla (una instruccion ALTER) a excepcion de indices.
CREATE
para crear bases de datos y tablas, a cepcion de indices.
CREATE TEMPORARY TABLES
para crear una tabla temporal.
DELETE
para eliminar registros de una tabla (una instruccion DELETE).
DROP
para eliminar bases de datos o tablas, a excepcion de indices.
EXECUTE
para procedimientos almacenados (previsto para MySQL 5).
FILE
para leery escribir archivos en el servidor LOAD DATA SELECT INTO OUTFILE). archivos que el usuario mysql pueda leer son legibles.
INDEX
para crear, modificar o borrar indices. para nuevos registros a la tabla (una instruccion INSERT).
INSERT
LOCK
TABLES
para bloquear una tabla para la que el rio tiene
SE L E C T.
PROCESS
para ver procesos MySQL o para eliminar procesos MySQL (para instrucciones SHOW PROCESSLISTOKILL SQL).
REFERENCES
No se utiliza actualmente en MySQL. Se ofrece para compatibilidad con SQL (se aplica uso de claves secundarias).
RELOAD
para volver a la base de datos (una o FL U S H o una recarga, vaciado emitido desde mysqladmin).
REPLICATION
para preguntar
CLIENT
esclavos y principales
de SHOW
DATABASES
para ve r todas las bases de datos.
acepta cualquiera de
siguientes
para
JOIN:
nombre-de-tabla, nombre -de-tabla nombre-de-tabla [CROSS] JOIN nombre -de-tabla nombre-de-tabla INNER JOIN condicion nombre -de-tabla nombre-de-tabla STRAIGHT -JOIN nombre -de-tabla LEFT [OUTER] JOIN condicion nombre -de-tabla nombre-de-tabla LEFT [OUTER] JOIN nombre -de-tabla abla NATURAL [LEFT [OUTER] JOIN nombre -de-tabla LEFT OUTER JO IN nombre -de-tabla ON expresion condicional RIGHT [OUTER] JOIN condicibn nombre -de-tabla nombre-de-tabla RIGHT [OUTER] JOIN nombre -de-tabla nombre-de-tabla NATURAL [RIGHT [OUTER] JOIN nombre -de-tabla
La tabla puede ser simplemente n o m b r e d e t a b l a , utilizar un alias (con AS) o especificar o ignorar indices (con IG NORE). La de es la siguiente: ON
USING
es lo mismo que lo que puede incluir una
expres WHERE.
KILL KILL id -subproceso
Elimina el subproceso especificado. Puede utilizar SHOW PROCESSLIST para identificar Id. de subprocesos. Se necesita el SUPER para eliminar subprocesos que no propiedad de la actual.
LOAD DATA La
de LOAD
DATA
es
LOAD DATA [LOW -PRIORITY CONCURRENT] [LOCAL] [REPLACE I IGNORE] INTO TABLE nombre -de-tabla [FIELDS [TERMINATED BY [[OPTIONALLY] ENCLOSED BY [ESCAPED BY [LINES TERMINATED BY [IGNORE numero LINES] [
. ..
lee datos de un de texto y aiiade a una tabla. Es una mas rapida de aiiadir grandes volumenes de datos que por medio de INSERT. LOAD
DATA
que READ a de que se que escriban otras conexiones no conflictivas) o WRITE (que bloquea la lectura y la escritura desde otras conexiones). el bloqueo W R I T E es LOW PRIORITY, bloqueos READ se antes. Normalmente bloqueos W R I T E una mayor prioridad. LOCAL
OPTIM IZE TA BLE nombr nombre e-de -tabla
.. .
nombre- de - tabla]
En tablas ordena el actualiza estadisticas y desfragmenta desfragmenta el archivo de datos. En tablas BDB, es que ANALYZE TABLE. Bloquea la tabla durante la de la (que puede llevar su tiempo).
La
de R E N AM E es la siguiente:
RENAM E TABL E nombr nombre e- de - tabla T O
[,
TO
le
asignar un nuevo nombre a una tabla
o
de
tablas. Tambien puede cambiar una tabla a una nueva base de datos si especifica n o m b r e de b a s e de d a t o s . n o m b r e de t a b l a , siempre que la base de datos se mismo disco. Necesita permisos A L T E R y DROP en tabla antigua, y permisos nueva. CREATE e I N S E R T en
REPAIR TABLE ...
REPAIR TABL E nombr nombre e- de - tabla
[EXTENDED]
[QUIC K] [USE [USE
- FRM]
para el
una tabla de indices. EXTENDED,
se en este totalmente totalmente
Con la
QUICK,
solamente se re-
se a crear a USER FRM, del archivo de datos (para cuando falte o
REPLACE La
de REPLACE puede ser una de las siguientes:
REPLACE [LOW-PRIORITY I DELAYED] DELA YED] [INTO] nombre-de-tabla VALUES (expresion,. . [ (nombre-de-campo, . REPLACE [LOW-PRIORITY DELAYED] DELA YED] [INTO] nombre-de-tabla
.
.
,
,
...
...
[ (nombre-de-campo, . ) REPLACE [LOW-PRIORITY nombre-de-campo
SELECT DELAYED] [INTO] nombre nombre-de-tabla SET nombre-de-campo
..
...
REPLACE es exactamente
que INSERT, a de que cuando encuentra un registro registro con una clave principal o exclusiva que ya existe, la elimina y la reemplaza.
RESET [,option-reset] . . .
RESET reset
puede ser una de las siguientes:
MASTER QUERY CACHE SLAVE
RESET MASTER todos registros binarios y vacia registros regis tros binarios. binar ios. RESET SLAVE restablece restab lece la de un de un principal. RESET QUERY CACHE vacia la cache de tas.
de en la
RESTORE TAB TABLE LE RESTORE TABLE TAB LE nombre-de-tabla
FROM
una tabla tab la de la l a que se ha creado una copia de segurida seguridad d con BACKUP TABLE.
No sobrescribe sobrescribe las l as tablas existentes. existentes.
REVOKE REVOKE
...
ON {nombre {nombre-de-tabla
FROM [,
...
*
*.*
Elimina
privilegios concedidos previamente a t ipo de privi legio puede ser cualquiera de para GRANT.
usuarios privilegios enumerados
ROLLBACK ROLLBACK
ROLLBACK La una transaccion o nes, y deshace todas las l as instrucciones instrucciones de esa esa transaccion. transaccion.
de
SELECT La
de SELECT es
siguiente:
SELECT [STRAIGH [STRAIGHT T-JOIN] I
[HIGH-PRIORITY PRIORITY] ] [DISTINCT [DISTIN CT I DISTINCTROW I ALL] expresion, . [INTO I DUMPFILE) [FROM [WHERE [GROUP BY {entero {entero-sin-firma formula ) [ASC [ASC DESC], [HAVING I formula) [ORDER BY (entero-sin-firma formula) formula ) [ASC [ASC I DESC] [LIMIT [PROCEDURE UPDATE LOCK IN SHARE SHAR E MODE]
..
,
... .. .
[FOR
Las instrucciones SELECT devuelven datos de tablas. expre 6n suele ser una lista de campos (con una funcion en caso de que sea necesario) tambien puede ser un calculo o funcion que no tiene nada que ver con pos. Por Por SELECT VERSION
o, como se indica a SELECT 42/10;
Los campos se pueden especificar
no mb r e d e cam p o nombre d e de nombre de base de datos nombre de tabla. nombre nombre de campo. mas
.
son necesarias en caso de ambigiiedad. A la expresion tambien se le puede asignar un alias con la Por SELECT
AS about-pi
clave
,
La expresion puede utilizarse en cualquier de la (pero no en clausula WHERE, que se determina en primer La clausula n o m b r e s de t a b l a es una lista de las tablas que se utilizan en la separadas por comas. Tambien puede utilizar un alias. Por ejemplo: SELE CT watts FROM wind -water-solar- power AS n;
Tambien puede controlar el uso de indices de MySQL si no le convence la opcion de MySQL (que puede ver si utiliza EXPLAIN ) y utilizar las clausulas U S E I N D E X e I G N O R E I N D E X despues del nombre de la tabla. La es la siguiente: [ [AS] alias] [USE INDEX (li sta de indices)
[IGNORE INDEX (list a de indices)
La clausula O R D E R BY ordena resultados devueltos en ascendente (opcion predeterminada o utilizar la clave o descendente No es necesario que utilice elementos devueltos explicitamente en la expresion. Por ejemplo:
- name FROM results O RDER BY po in ts DE SC SELE CT team La clausula WHERE esta formada por condiciones (que pueden contener funciones) que debe cumplir una fila para poder ser devuelta:
- name FROM results WHERE points SELECT team
10
muy cuando se una funcion agregada. dos extensiones MySQL no ANSI que puede utilizar con G R O U P BY : ASC y D E S C . Tambien puede utilizar campos en expresion que no se mencionen en ejemplo: GROUP BY. GROUP
BY agrupa filas de resultados, que
SEL ECT team -name, team - address, -name DESC team
FROM teams GROUP
BY
La clausula H A V I N G tambien es una se en ultimo lugar para que pueda aplicarla a elementos que agrupa. Por ejemplo: SELE CT team - name, SUM (poi nts) FROM teams GROUP > 20
BY
-name HAVI NG team
No lo utilice sustituto de la clausula WHERE, ya que reduce la velocidad de consultas. D I S T I N C T y su sinonimo, DISTINCTROW, indica que devuelta debe ser exclusiva. (la opcion predeterminada), devuelve todas las filas, o no exclusivas. no ANSI) otorga a S E L E C T una prioH I G H P R I O R I T Y (extension que a cualquier no ANSI) SQL B I G RESULT y SQL SMALL RESULT (extensiones de y el tamaiio de resultados antes
de que el procesamiento. se utilizan con clausulas GROUP BY y DISTINCT, y normalmente hacen que MySQL utilice una tabla temporal para obtener mayor velocidad. SQL BUFFER RESULT (extension MySQL no ANSI) hace que MySQL en una tabla temporal. LI MI T ado pta uno o dos argumentos p ar a limitar el numero de filas devuelta s. Si es un argumento, s era el numero maximo de filas que se devuelven; si son dos, el se corresponde desplazamiento y el segundo numero maximo de filas que se devuelven. Si el segundo argumento es -1, MySQL devolvera todas las filas desde el desplazamiento especificado hasta el final. Por ejemplo, pa ra devolver desde l a fila 2 adelante, utilice lo siguiente: SELECT
FROM
LIMIT 1,- 1
SQL CALC FOUND ROWS hace que MySQL el numero de filas que se no hubiera una LIM IT. Esta cifra se puede obtener con ayuda de la SELECT FOUND ROWS ) . SQL CACHE hace que MySQL almacene el resultado la de consultas y, no -NO-CACHE, que no lo haga. Se trata de dos extensiones ANSI. STRAIGHT J O I N (una extension MySQL no ANSI) hace que el optimizador combine las tablas en el en el que aparecen en la FROM, lo que puede aumentar la velocidad de las consultas si las tablas se de una que no sea opt ima (utilice EXPLAIN par a comprobarlo). SELECT...INTO OU T FILE nombre de archivo escribe tados en un nuevo archivo (que el leer) en el servidor. Necesita FILE para de LOAD DATA y utiliza las mismas opciones. en el archivo, sin I N T O DUMPFILE, MySQL escribe una o terminaciones de linea y sin conversiones de escape. Con tablas y BDB, la clausula FOR UPDATE escribe bloqueos en las filas. "
SET SET [GLOBAL
I
SESSION]
[[GLOBAL
I
SESSION I LOCAL
SET le definir valores de variables. I O N (o LOCAL, un sinoni mo) es el valor predeterminado y define el valor mientras dure la ac tual. GLOBAL requiere el SUPER y define la variable para todas nuevas conexiones hasta que se reinicie el servidor. Tendra que definirla en el archivo de para que la permanezca activa una vez reiniciado
L O utilizan programas Microsoft Access y otros que se conectan a traves de ODBC. SQL BIG SELECTS 3 1-1
SQL BUFFER RESULT 0
SQL LOG OFF
=
1
=
SQL LOG UPDATE
Si se configura (1, el predeterminado), MySQL mite consultas de gran tamario. Si no se configura (0), no permitira las consultas en las que tenga que examinar mas filas del valormax join sizerows. Resulta muy util para evitar accio peligrosas que puedan colapsar el dor.
=
Si se configura MySQL almacena resultados de las consultas en tablas temporales (en algunos aumenta el rendimiento ya que bloqueos de tabla). Si se configura MySQL no registra el cliente (no se trata del registro de Se necesita S UPER . el Si no se configura (0), MySQL no utilizara el registro de actualizaciones en el cliente. Se necesita el
=
SUPER.
Si se configura (1, el predeterminado), MySQL dira comillas a nombres de tablas y nas.
SQL QUOTE SHOW C R EA T E I =
SQL SAFE UPDATES
=
0
SQL SELECT LIMIT DEFAULT
=
TIMESTAMP valor marca de tiempo I DEFAULT =
La antigua utilizarla mas.
de
Si se configura MySQL no ejecutara nes UPDATE o DELETE que no utilicen un o una clausula LIMIT, que contribuye a evitar acci dentes no deseados. Determina el numero maximo de registros (de predeterminada, ilimitado) que se pueden devolver con SELECT. LIMIT tiene preferencia una esta variable. Define el tiempo para el cliente. Se puede utilizar para obtener la marca de tiempo original cuando se el registro de actualizaciones para cer filas. es una ca de tiempo de la epoca de Unix. SET
OPT I O N se ha eliminado, por lo que no deberia
SET TRANSACTION SET [GLOBAL I
SESSION] TRANSACTION ISOLATION LEVEL
READ UNCOMMITTED
READ COMMITTED I REPEATABLE READ I SERIALIZABLE
Define el nivel de aislamiento de transacciones. De predeterminada, solamente se apli ca a la siguiente transaccion, a que se utilicen las S E S S I O N o GLOBAL (que determinan el nivel de todas bras ciones en la actual o en todas transacciones de las nuevas conexiones).
SHOW La
de
puede ser una de las siguientes:
SHOW DATABASES [LIKE expresion] SHOW [OPEN] TABLES [FROM SHOW [FULL] COLUMNS FROM [FROM [LIKE expresion] SHOW SHOW SHOW SHOW SHOW SHOW
INDEX FROM [FROM TABLE STATUS [FROM STATUS [LIKE expresion] VARIABLES [LIKE expresion] LOGS [FULL] PROCESSLIST
[LIKE expresion]
[LIKE expresion]
SHOW GRANTS FOR usuario SHOW CREATE TABLE SHOW MASTER STATUS SHOW MASTER LOGS SHOW SLAVE STATUS
enumera bases de datos, tablas o o proporciona cion de estado el servidor. El comodin puede del nombre de la base de datos, tabla o vo, y puede ser un simbolo que equivale a una serie de caracteres o un guion que equivale a un caracter.
TRUNCATE TRUNCATE TABLE nombre-de-tabla
La TRUNCATE todos registros de una tabla. Es mas rapida que DELETE ya que DROP y CREATE en la tabl a. No resulta segura par a las transacciones (por lo que devolvera un error si hay alguna transaccion o algun bloqueo
SELECT
. ..
UNION
combina varios resultados en uno. clave ALL, filas son exclusivas.
Sin la
UNION [ALL] SELECT
.. .
[UNION SELECT
. ..
UNLOCK TABLES UNLOCK TABLES
todas las tablas de la
actual.
UPDATE UPDAT E [LOW -PRIORITY] [IGNORE ]
SET
[,
[WHERE
[LIMIT #]
UPDATE La contenidos de filas existentes en base de datos. La SET especifica que campos se y nue vos valores. c a u s u l a where proporciona las condiciones que debe cumplir la fila para poder I G N O R E hace que ignore actualizaciones que una clave principal o exclusiva en lugar de cancelarlas. La clave LOW P R I O R I T Y que la espere hasta que no haya clientes leyendo la tabla antes de procesarla. La expresion puede adoptar el valor actual de un campo; por ejemplo, para aiiadir 5 a las comisiones de todos empleados, utilizar lo siguiente: UPDATE employee SET
LIMIT determina el numero maximo de registros que se va a actualizar
USE USE
Cambia la base de datos actualmente activa por la base de datos especifica da.
Funciones y operadores de MySQL
MySQL dispone de una gr an de operadores y funciones. Los operadores son uno de elementos basicos de MySQL sin que no podra avanzar mucho. Por otra muchas y complejas funciones, algunas de las cuales nunca utilizara, pero merece la pena repasar la lista completa ya que puede encontrar funciones que le de utilidad y otras que guarde en la recamara para utilizarlas mas adelante.
Operadores Los operadores o booleanos, comprueban si algo es verdadero o falso. Devuelven si la expresion es falsa y 1 es verdadera. Los valores nulos se procesan de distintas en funcion del operador. Normalmente devuelven un valor NULL.
AND, && valorl valorl
AND
valorl valor2
Devuelven verdadero (1) si ambos valores son verdaderos
Por ejemplo: SELECT
AND
+
+
I
I + SELECT
valorl
valor2
OR
valorl
valor 2
Devuelven verdadero verdadero. Por ejemplo: SELECT 1 OR
si alguno de
dos valores,
es
1;
+
+
I
I + SELECT
1= 2
NOT, ! NOT
!
valorl
valorl
Devuelven lo contrario del que es verdadero si falso si es verdadero. Por ejemplo: SELECT
+
+
-
!l;
es falso
y
SELECT
NOT
+ I
I +
---
+
I
I +
Operadores aritmeticos Los operadores aritmeticos realizan calculos matematicos basicos. Si alguno de valores es resultados de toda la tambien lo seran. Por motivos del calculo, las se convierten en numeros. Algunas se convierten numero equivalente (como las '1' y '33'); otras se convierten en (como las 'uno' y 'abc').
valorl
+
valor2
Suma dos valores. Por SELECT +
+
-
+ +
+ +
valorl
SELECT
-
valor2
Resta valor2 de Por ejemplo: SELECT
valorl.
1- 9;
valorl
*
valor2
Multiplica dos valores. Por ejemplo: 12
SELECT
10;
+
*
12
10
+
I
12 0
+
valorl
Divide
valor2
por
valor
Por ejemplo:
SELECT
2.00
SELECT
+
+
Devuelve el modulo (el resto que se obtiene despues de dividir Por ejemplo:
por
SELECT
3 %2
I
Operadores de comparacion Los operadores de comparacion comparan valores y devuelven verdadero o falso ( 1 o en de resultados. Si hay un valor en la de
el operador devolvera el valor NULL. Se pueden comparar distintos tipos (cadenas, numeros, fechas, etc.) aunque si tipos son diferentes tendra que pres tar especial atencion. tipos a su equivalente lo bien que puede. Si se t rata de comparar se comparan sin distinguir entre BINARY.Por y a que es mismo que a , BINARY no es mismo que BINARY a. En este vienen por que BINARY es qu e BINARY a. Del mismo modo, cadena 10 es que la cadena 2 porque, ser una cadena, se compara de izquierda a derecha. La comprobacion e s ver 1 es que 2 y, como si lo es, la comprobacion se detiene en ese (lo mismo que az es anterior a b ) .
valorl
=
valor2
Verdadero si devolvera NULL. Por
valorl
como
valor2
SELECT 1= 2
+
+
-
SELECT
' a 1;
=
+
I +
I
I +
SELECT BINARY +
+ BINARY
'A'
+
+
I +
+
SELECT +
+
---
+ NULL
+
valorl
<>
valor2
valorl
!
valor2
=
'a'
=
' A 1;
son iguales. Si alguno es
Verdadero valor no es igual a Por ejemplo: SELECT +
'a'
valor 2 .
'A';
!=
+
---
+
I + SELECT +
BINARY
'a' <>
'A';
+
I
'A '
BINARY 'a'
+
I
+
I
I
+
+
valor2
Verdadero si valor es mayor que va Por ejemplo:
or2.
SELECT +
+
+
+
-
SELECT
+
+
valor2
Verdadero si valor es Por ejemplo: SELECT
que valor 2 .
<
+ <
+
I
I + SELECT
+
-------
+
<
;
valor2
>=
Verdadero si v a l o r Por ejemplo: SELECT 4
es mayor o igual que va 4;
+
+
I
I +
Verdadero si v a l o r Por ejemplo:
es
o igual que va l o r 2
SELECT +
+
I
I +
<=>
valor2
Verdadero si va o r es igual a va o r 2, incluyendo valores nulos. Esto le creer que NULL es un valor real y, por lo obtener un resultado verdadero o falso (en lugar de NULL) cuando utilice NULL en una comparacion con valores que no NULL. Por el contrario, se niega a dar una respuesta a la pregunta es igual a NULL? En su lugar, indica que la expresion 4 tiene resultado algo indeterminado (NULL ). Por ejemplo: SELECT +
+
I
I
1
+
---
+
<=>
SELECT +
4
<=> <= > N U L L
+
I
+
---
I
I
0 +
IS NULL valorl
IS
NULL
Verdadero si Por ejemplo:
valorl
es
(no es falso). falso) .
SELECT SELECT NULL NULL I S NULL; +
+ N U L L
IS
I
NU LL
I
I +
+
SELECT
I S NUL NULL;
+
I
IS
I
NULL
I
I +
valorl
BETWEEN
Verdadero si Por ejemplo:
valor2
AND AND
valor3
esta incluido entre
valor
2;
SELECT 1 BETWEEN
I
1
BETWEEN
AND
valor2
2
I
I +
+
SELECT
and
BETWEEN +
+
'a' 'a'
BETW EEN
'A'
and
'B' 'B'
+
+
I
I +
+
SELECT BINARY 'a ' BETWEEN 'A ' BINA RY 'a'
BETWEEN
'A'
AND AND
I
y
valorl LIKE valor2
Verdadero si valor coincide con valor2 en un patron de coincidencia SQL. Un porcentaje ( 8 ) referencia a cualquier numero de caracteres y un guion bajo ( ) equivale a un caracter. Por SELECT
I
LIKE
I
LIKE
+
;
+
I
I +
+
SELECT
+
LIKE
+
I
LIKE
+
+
I
I
+
+
. ..
valorl IN (valor2
Verdadero si valorl equivale a cualquier valor de la lista separada por comas. Por ejemplo: SELECT
+
+
I
'a'
SELECT
+
;
+
'a' +
;
,
+
I
I
REGEXP, valorl REGEXP valor2
RLIKE
valor2
Verdadero si tabla B .1 se enumeran Tabla
coincide con valor2 con una expres expresion ion regular. E n l a caracteres caracter es de de expresiones regulares. Caracteres de expresiones regulares
Coincide con ninguna o mas instancias de la subexpresion que precede. Coincide con una o mas instancias de la sion que precede. Coincide con ninguna o mas instancias de la subexpresion que precede. Coincide con todos
caracteres.
Coincide con x, y o entre corchetes).
(alguno de
caracteres
Coincide con todas las letras mayusculas.
I
Coincide con todas las letras minusculas. Coincide con todos
digitos.
Ancla la coincidencia desde el principio. Ancla la coincidencia hasta el final. Separa las subexpresiones de la expresion regu lar. La subexpresion debe aparecer no de m.
n veces,
La subexpresion debe debe aparecer exactamente n ces. La subexpresion debe aparecer
I
Agrupa Agrupa caracteres en subexpresiones. Por ejemplo: ejemplo: SELECT
+
-
REGEW
+
-
REGEXP
I
+
+
I +
+ SELECT
+
+
REGEW
;
n veces.
+
+ abcbbcccc'
REGEXP
Operadores de bits Los operadores de bits no se utilizan muy a Le valores de bits y realizar operaciones de bits en sus consultas.
trabajar con
valor2
Realiza una operacion en de bits. Convierte valores a binarios y compara bits. Solamente si ambos bits correspondientes son I, el bit te tambien sera Por ejemplo: SELECT
+
+
+
+
-
+
+
+
+
SELECT
-
I
valor2
Realiza una operacion O R en compara bits. Si alguno de tambien sera 1. Por ejemplo: SELECT
2
de bits. Convierte valores a binarios y bits correspondientes es 1, el bit resultante
A
mostramos
tipos de fecha y hora:
SECOND MINUTE HOUR DAY MONTH YEAR (por ejemplo, "4 1
MINUTE SECOND:
-
HOUR MINUTE:
(por ejemplo,
-
DAY HOUR: "DD
(por ejemplo,
09")
YEAR MONTH: "YYYY-MM" (por ejemplo, "2002-12")
-
HOUR SECOND:
(por ejemplo, 1 1
DAY-MINUTE: "DD
(por ejemplo, "09 11 1
DAY SECOND: "DD
(por ejemplo, "09 11
Para realizar calculos de fechas, tambien puede utilizar operadores habituales (+, - etc.) en lugar de funciones de fecha. MySQL realiza correctamente las conversiones entre tipos. Cuando por ejemplo un mes mes 12, MySQL el y calcula correctamente meses. ,
(fecha,INTERVAL tipo de
de DATE ADD ( ) .
de
funcion CURRENT DATE
.
CURRENT DATE CURRENT - DATE
Devuelve la fecha actual del sistema bien como la cadena como el numero AAAAMMDD, en funcion del ejemplo: SELECT
CURRENT
DATE
-
o
+
+
I
CURRENT-DATE +
+
2002- 09 - 10 +
+
SELECT +
+
I
CURRENT- DATE +
+
I
20020911
+
+
CURRENT CURRENT- TIM E ( )
Devuelve la hora actual del sistema bien como la cadena numero en funcion del contexto. Por ejemplo:
o como el
SELECT CURRENT-TIME ) ;
+
+
I
CURRENT- TIME +
+
+
+
SELECT CURRENT-TIME() +
+
1;
+
I CURRENT- TIME() +
+
1
+
I
235434
+
+
CURRENT TIMESTAMP CURRENT- TIMESTAMP
Esta funcion equivale a la funcion
.
()
de
CURRENT TIME
)
DATE ADD
-
DATE ADD
e c h a , INTERVAL t i p o
de
e x p r e s io n )
un determinado de tiempo a la fecha especificada. Puede utili zar un valor negativo para la expresion, en cuyo se restara. El debe ser
uno de enumerados con dicho tipo. Por
principio de este
y la expresion debe coincidir
SELECT DATE ADD (
',INTERVAL
-
DATE
-ADD('2002-12-25
+
1
MONTH) ;
INTERVAL 1 MONTH)
+
2003-01-25 +
+
SELECT
-14
HOUR) ; +
+
I
,INTERVAL
- 14
HOUR)
DATE FORMAT DATE-FORMAT(fecha,
Aplica un a la fecha especificada en funcion de la cadena de que puede estar formada por especificadores enumerados en la tabla B.2. Tabla
Especificadores de forrnato de fecha
Abreviatura
nombre
dia (Dom-Sab)
Abreviatura
nombre
mes
Mes numerico (1-12) Dia numerico etc.)
mes con
en
(lst,
Dia numerico mes con dos digitos, do entre 00 y 31 Dia numerico prendido entre
mes con uno o dos digitos, y 31
Hora comprendida entre 00 y 23 Hora comprendida entre 01 y 12 Minutos comprendidos entre 00 y 59 Hora comprendida entre 01 y 12 Dia del
comprendido entre 001-366
Hora con uno o dos digitos, comprendida entre 23
y
Hora con un digito, comprendida entre 1 y 12
1 8 M
Nombre del mes, Enero-Diciembre
m
Mes numerico, comprendido entre 01 y 12 A.M. o P.M. Horario de 12 horas,
r
A.M. o P.M.
Segundos comprendidos entre 00 y 59
%
Segundos comprendidos entre 00 y 59 Horario de 24 horas,
T
Semana comprendida entre 00 y 53, siendo el mingo el primer dia de la semana
8u
Semana comprendida entre 00 y 53, siendo el nes el primer dia de la semana v
Semana comprendida entre 01 y 53, siendo el mingo el primer dia de la semana Semana comprendida entre 01 y 53, siendo el nes el primer dia de la semana Nombre del dia de la semana, comprendido entre y sabado Dia de la semana comprendido entre mingo y 6 para el sabado
w
para el
8X
numerico de cuatro digitos para la semana en la que el es el primer dia
%x
numerico de cuatro digitos para la semana en la que el lunes es el primer dia
Y
numerico de cuatro digitos
Y
numerico de dos digitos Signo de
88
con conversion de escape
Por SELECT
DATE
DATE
-FORMAT I
-FORMAT
+
+ 3 March
,
;
DATE SUB DATE- SUB (f echa, INTER VAL
de
expresion)
Resta un determinado de tiempo de la fecha especificada. Puede zar un valor negativo en la expresion, en cuyo se sumara. El debe ser uno de enumerados principio de este y la expresion debe coincidir con este tipo. Por SELECT DATE
-SUB(
00:00 ,INTERVAL
MINUTE
-SECOND); ,INTERVAL I
MI NU TE - SECOND)
( fecha)
Devuelve el nombre del dia de la fecha especificada. Por SELECT +
(
)
;
+
I I Monday
DAYOFMONTH echa)
Devuelve el dia del mes de la fecha proporcionada dido entre 1 y 31. Por SELECT +
('2000-01-01 +
;
un numero
DAYOFWEEK (fecha)
Devuelve el dia de la semana de la fecha proporcionada como numero prendido entre 1, para el domingo, y 7 para el sabado, estandar ODBC. Por '2000- 01 - 01
SELECT +
I
;
+
I
DAYOFWEEK
+
+
I
7
Utilice WEEKDAY de lunes a domingo.
para devolver el
de dia comprendido entre
y 6,
DAYOFYEAR DAYOFYEAR (fecha )
Devuelve el dia del dido entre 1 y 366. Por
de la fecha proporcionada como un numero
SELECT DAYOFYEAR +
;
+
I +
+
I
360
EXTRACT EXTRACT
FROM
echa)
Utiliza el de fecha especificada para devolver la de la fecha. Puede consultar la lista de tipos de fechas que aparece antes del inicio de las de fecha. Por ejemplo: SELECT
EXTRACT (YEAR FROM
+
+
I
EXTRACT (YEAR FROM '2002-0 2-03')
I
2002
+
+
SELEC T ;
EXTRACT (MINUTE
-SECOND
;
I
FROM '2002 - 02 - 03
FROM DAYS FROM - DAYS (num ero )
Convierte el numero especificado a una fecha basada en el numero de dias y devuelve el resultado. No tiene en transcurridos desde el 1 de enero del cuenta dias en el calendario Gregoriano. Por ejemplo: SELECT +
I
FROM DAYS
+
-
;
I
FROM -DAYS +
+
I +
+
FROM [,
Convierte la marca de tiempo especificada en una fecha y devuelve el do. A la fecha devuelta se le aplica un si se proporciona una cadena de La cadena de puede ser cualquiera de las de la funcion DATE FORMAT . SELECT +
I
(100);
+
FROM - UNIXTIME(100)
+
I
+
1970 - 01 - 01 +
+
SELECT
;
FROM - UNIXTIME +
+ 9
September
HOUR HOUR (hora)
Devuelve la hora de la hora especificada, comprendida entre
y 23.
Por SELECT +
+
+
+
;
I +
+
MINUTE M I N U T E (hora)
Devuelve Por
minutos de la hora especificada, comprendidos entre
SELECT MINUTE +
0 1:
)
;
+
I
I
+
+
I
I
+
+
MONTH M O N T H ( f e c h a )
Devuelve el mes de la fecha especificada, comprendido entre Por SELECT +
MONTH
+
I
MONTHNAME MONTHN AME fecha)
Devuelve el nombre del mes de la fecha especificada. Por SELECT
;
I MO NT HN AM E +
+
December
1
y 12.
y
59.
Devuelve la marca de hora actual (fecha y hora en bien como cadena o como numero en funcion del contexto. La funcion devolvera el mismo resultado en varias llamadas a una misma Por ejemplo: SELECT +
+
I
Equivale a
funciones CURRENT TIMESTAMP
y
SY SDATE
PERIOD ADD
-
PERIOD ADD
Aiiade meses el resultado como Por ejemplo:
(especificado como
SELECT PERIOD ADD I
devuelve
+
PERIOD ADD
+
+
I
200208
+
+
SELECT PERIOD ADD(200205,
-
+
I
y
;
-
+
o
;
+
PERIOD ADD(200205, - 42)
+
I
+
199811
PERIOD Devuelve el numero de meses comprendidos entre (que se en el AAMM o Por ejemplo: SELECT +
(200212,200001); +
p e r iodo1 y per iodo 2
I
35 +
SELECT +
PERIOD +
- DIFF
;
I
PERIOD-DIFF +
+
I
-1
+
I
+
QUARTER QUARTER echa)
Devuelve el trimestre de la fecha especificada, comprendido entre Por ejemplo: SELECT +
QUARTER
)
1
y 4.
;
+
I +
+
I
SEC TO TIME
- -
SEC -TO -TIME (seg undo s)
Convierte segundos en hora y devuelve una cadena ro (hhmmss), en funcion del contexto. Por ejemplo: SELECT
o un
SEC TO TIME ( 1 0 0 0 ) ;
- -
+
+
I
SEC-TO-TIME(1000)
+
+
I
I SELECT I +
SEC TO TIME ( - 1 0 0 0 0 ) ;
- -
SEC-TO-TIME ( - 10000) +
SECOND SECOND
Devuelve segundos de la hora especificada, comprendidos entre Por ejemplo: SELECT SECOND (
01:
;
y 58
(fecha,INTERVAL
de
DATE
de
SUB
.
SYSDATE SYSDATE
Sinonimo de la funcion
.
FORMAT -FORMAT(hora, f
TIME
Identico a DATE FORMAT ( ) a de que se puede el subconjunto de relacionados con la hora (de lo contrario, devolvera N U L L ).
TIME TO SEC
- -
-TO-SEC ( h o r a )
TIME
Convierte la hora en segundos y devuelve el resultado. Por ejemplo: SELECT
TIME
+
+
TO SEC
- -
(
:
:
;
TO DAYS
-
-DAYS ( f e c h a )
TO
Devuelve el de dias transcurridos desde el fecha especificada. No tiene en cuenta dias calendario Gregoriano. Por ejemplo: SELECT
TO DAYS
-
(
)
;
1
de enero del debido
en la
TIMESTAMP UNIX-TIMESTAMP ( [fecha] )
Devuelve un entero sin que representa la marca de tiempo Unix segundos transcurridos desde medianoche del 1 de enero de 1970) bien de la hora del sistema (si se invoca sin un parametro) o bien de la fecha especificada. Por SELECT +
UNIX
-TIMESTAMP
;
+
I
I +
+
1031621727 SELECT UNIX
-TIMESTAMP ( '1970-01-01
+
00 : 01:
)
;
+
UNIX-TIMESTAMP (
1970-01-01
00: 01:
WEEK WEEK (date
Devuelve la semana de un determinado aiio de la fecha especificada, dida entre y 53 . Se asume que la semana empieza el domingo, a que se inicio semana, en cuyo defina 1 el la na empezara en lunes. Tambien se puede definir explicitamente en para que en domingo. La funcion devolvera en fechas anteriores primer domingo (o lunes) del aiio. Por SELECT WEEK( '2002-06-31') +
+
I I +
26 +
SELECT WEEK( +
+
,1);
,1) ;
SELECT WEEK( +
+
I
1)
+
+
I
53
+
+
SELECT WEEK( 1998- 01 -01' ) +
+
funcion WEEKDAY si la fecha es anterior primer
()
para desplazar la semana por (o lunes) del aiio.
aiio anterior
WEEKDAY WEEKDAY (f
Devuelve el dia de la semana de la fecha proporcionada comprendido entre (lunes) y 6 (domingo). Por SELECT WEEKDAY ( +
)
un numero
;
+
I WE EK DA Y('2000- 01 - 01')
Utilice DAY FWEEK ( ) para devolver el (1-7, domingo- sabado).
de dia segun el
ODBC
YEAR YEAR
(fecha)
Devuelve el aiio de la fecha especificada, comprendido entre Por SELECT +
YEAR
)
+
I +
I
+
2002
y 9999.
echa
[,
Devuelve una del aiio y la semana de la fecha especificada. Se asume que la semana empieza el domingo, a que defina como 1 el ini semana, en cuyo to se que empieza en lunes. se puede explicitamente como para que en go. El aiio puede ser el aiio anterior a la fecha en fechas anteriores primer (o lunes) del presente aiio o del siguiente. Por ejemplo: SELECT +
;
+
I +
+
200251 SELECT
,1) ;
+
+
I
'1998-12-31',
I
)
SELECT
la funcion WEEK
;
para devolver la semana en un determinado aiio.
Funciones de cadena Las de cadena suelen adoptar de cadena y devolver dos de cadena. contrario de lo que en la de lenguajes de macion, el primer caracter de la cadena se corresponde a l a 1, no a
AS CII (c ad ena )
Devuelve el valor ASCII del primer caracter (el que se encuentra mas a la izquierda), la cadena esta vacia y NULL la cadena es ejemplo: SELECT ASCII('a'); +
-----
+
I
+
I +
I
1
97
+-
------- + SELECT
+
(
;
+
-------
I
ASCII
I
+
+
---
I
97
+
+
------
para devolver el valor ASCII
ORD
el caracter es un caracter
multibyte.
BIN(numero)
Devuelve el valor binario (una de cadena) del numero B I G I N T especificado, si el numero no se puede convertir (la funcion lo convertira siempre que pueda hacerlo desde la izquierda) y NULL si es Por SELECT
BIN
;
-- + +I +
I
1111 + SELECT
BIN
(
BIN
(
;
BI N
(
;
);
+
I +
I
1000 +
SELECT
+
I
I +
I +
--
+ SELECT
+
I
I
BIN( +
I
+-
+
Esta funcion equivale a
BIT LENGTH BIT-LENGTH(cadena )
number,
10, 2
.
Devuelve la longitud de la cadena en bits. Por SELECT
+
BIT
LENGTH (
)
-
+
I
;
I
+
+
+
+
CHAR
Esta funcion devuelve caracteres que se obtendrian si numero fuera un entero convertido desde codigo ASCII, ignorando valores nulos. Los decimales se redondean valor entero proximo. Por SELECT
CHAR(97,101,105,111,117);
+
+
+
+
I
aeiou
+
+ SELECT
+
CHAR
;
+
I b e i o u +
+
CHAR LENGTH
-
de la funcion LENGTH solamente se cuentan una
de funcion LENGTH solamente se cuentan una vez.
Concatena algun
,
a excepcion de que
caracteres multibyte
,
a excepcion de que
caracteres multibyte
argumentos de la cadena y devuelve la cadena resultante o NULL es NULL. Los argumentos que no son se convierten a
NU LL +
+
SELECT +
( +
-
,NULL, c )
,
;
I +
I
+
I
a-c
+
+
CONV (numero,
a base)
Convierte un numero de una base a otra. Devuelve el numero convertido como cadena. si la conversion no se puede realizar (la realizara la conversion siempre que pueda hacerlo desde la izquierda) y NULL el numero es Se que el numero es un entero, se puede pasar como cadena. Se que no tiene a que la base sea un numero negativo. Las bases pueden ser cualquier valor comprendido entre 2 y 36 (a b a s e puede ser negativo). Por SELECT +
+
+
+
COW
;
I
SELECT
;
SELECT +
;
+
I
I
+
+
63 +
+
SELECT +
+
+
1 row in set (0.00 SELECT +
+
,16
;
ELT ..
[,
ELT (numero, cadenal
)
Utiliza n u me ro para determinar que cadena devuelve; 1 ve la cadena, 2 la segunda y asi sucesivamente. Devuelve NULL no hay ninguna cadena que coincida. Por S EL EC T +
o ne
ELT ( 2 ,
,
two ) ;
+
I
I
+
+
I
tw o +
SELECT
+
o n e ' , two
ELT
;
+
I
E L T ( O , ' o n e l, ' t w o ' ) NULL
+
+
La funcion FIELD
es
de
.
EL T
EXPORT SET
-
Examina n u m e r o en binario y, por cada bit que se defina, devuelve o n ; por cada bit que no se defina, devuelve o f f . El separador predeterminado es una coma, puede especificar cualquier otro. Se utilizan 64 bits puede cambiar el valor de r o-d e-bit s . Por SELECT EXPORT +
+
+
+
-SET
;
I
1 0 1 0 0 +
SELECT EXPORT +
, 'never ,
-SET(7, +
I
:
+
+
ok
:
ok
:
ok
:
never
:
never
:
never
:
, 6 ) ;
1 row in set (0.00 SELECT
HEX
( ab
;
+
I
I +
I
6162
++
-
1 row in set (0.00
INSERT (cadena,
Sustituye la de la cadena que empieza en y continua la l o n g i t u d de caracteres con n u e v a c a d e n a . La longitud de n u e v a c a d e n a y la l o n g i t u d especificada ser diferentes, en cuyo la longitud de la cadena original. La funcion es segura para multibytes. Por SELECT
INSERT
'What i s
(
;
W hat is +
+ SELECT
+
INSERT
(
;
+
I
I
SELECT
+
INSERT
(
;
+
I
I +
+
I
I
I N S T R( cadena, subcadena)
Busca en la c a d e n a , sin distinguir entre mayusculas y minusculas (a que una de las sea binaria), la instancia de s u b c a d e n a y la o devuelve letra s u b c a d e n a no se encuentra. La se encuentra en la posicion 1. Por SELECT
,
;
,
'My')
I
I
+
+
SELECT
INSTR
'Cecilia'
,
;
LCASE LCASE (cadena)
de LOWER
.
LEFT LEFT (cadena, longitud)
caracteres longitud que se encuentran mas a la izquierda en la cadena. Es segura para multibytes. Por ejemplo: SELECT LEFT +
,2) ;
+
I +
+
I
+
I +
LENGTH LENGTH (cadena )
Devuelve la longitud de la cadena en caracteres. cadena si puede. Por ejemplo: SELECT LENGTH +
+
I
5 +
SELECT LENGTH ( 9 9 ) ; I
I
;
el
en
+
+
SELECT +
LOCATE
,
' C e c i l i a ' ,2);
+
I +
+
I
3
Es similar a la funcion
con
argumentos invertidos.
LOWER LOWER (cadena )
Devuelve una cadena con todos caracteres convertidos a minusculas (en funcion del de caracteres actual). La funcion es segura para multibytes. Por ejemplo: SELECT LOWER( +
;
+
I +
+
I
abc +
+
La funcion
es un sinonimo de esta.
Rellena la cadena a la izquierda con cadena re leno hasta que el do tenga caracteres indicados en Si la cadena es mayor que la longitud, se reducira en la de caracteres indicados en longitud. Por ejemplo: SELECT LPAD ( short +
+
+
+
,7,
-
)
;
-short SELECT LPAD ( t o o +
+
- l o n g ', 7 ,
I
too -lon +
+
SELECT
,4,
;
)
;
LTRIM (cadena)
Elimina espacios situados por delante de la c a d e n a do. Por ejemplo: SELECT
+
Yes
)
y
devuelve el resulta-
;
+
I
Yes')
+
I
+
I
Yes +
+
MAKE SET MAKE -SET (numero,
cadenal
..
[,
.
)
Devuelve un (una cadena en la que elementos separados por comas) con las que coinciden con el numero convertido a binario. La cadena aparece si se configura el bit 0, la segunda si se configura el bit 1 y asi sucesivamente. Si el de bits se define con el valor 3, se devuelven las dos ya que 3 es 11 en binario. Por ejemplo: SELECT
I
MAKE SET
-
'a',
I
+
+ SELECT
(3,
a
b
,
,
'a' ,
,
c
;
I
I
MAKE - SET(5,'a',
OCT OCT (numero)
Devuelve el valor octal (una de especificado, si el numero no se puede convertir (la mas a la izquierda) o NUL L es
del numero BIGINT lo intentara desde la
Puede utilizar y HEX ) para B I N ) OCT decimales en binarios, octales y hexadecimales respectivamente. ,
numeros
POSITION POSITION (subcadena IN cadena)
Busca, sin distinguir entre mayusculas y minusculas (a argumentos sea una cadena binaria), la instancia de c a d e n a y devuelve la (empezando desde 1) o s u b c a d e n a . La funcion es segura para multibytes. Por SELECT POSITION +
IN
'Cecilia ')
que uno de en no encuentra
subcadena
;
+
I
IN 'Cecilia')
+
+
I
4
+
+
QUOTE QUOTE (cadena)
Utiliza la conversion de escape correspondiente a caracteres de comilla simple de comillas dobles NULL ASCII y Control-Z, y rodea la cadena con comillas simples para que se pueda utilizar con seguridad en una No es necesario utilizar comillas simples el argumento es NULL. Por SELECT QUOTE +
+
I
I +
+
Up?' +
I
+
REPEAT REPEAT (cadena, numero)
Repite el argumento de la cadena tantas veces indique n u m e r o y n u m e r o no es positivo o vuelve el resultado, devuelve una cadena vacia vuelve NULL alguno de argumentos es Por SELECT REPEAT ( +
+
a
,4)
;
+
+
I
aaaa +
+ SELECT
+
REPEAT
-1);
(
,
+
I
I
+
+
I
I
+
+ SELECT
+
REPEAT (
a ,NULL);
+
I +
+
I NU LL
I
+
+
REPLACE
Sustituye todas las de de cadena que encuentre en la cadena por es segura para rnultibytes. a cadena y devuelve el resultado. Por SELECT
REVERSE REVERSE (cadena)
Invierte el de caracteres de cadena y devuelve el resultado. Esta funcion es segura para multibytes. Por SELECT
I I
(
I
REVERSE
+
REVERSE
+
cb a
+
+
RIGHT RIGHT (cadena, longitu d)
);
Devuelve el numero de caracteres especificados en longi tud situados mas a derecha. Esta es segura para multibytes. Por ejemplo: SELECT RIGHT +
,2);
+
I +
+
I
I
+
+
Rellena la cadena a la derecha con cade na re leno hasta que el resultado tenga caracteres especificados en Si la cadena es mayor que la longitud, se reduce el numero de caracteres especificados en o ng i t u d . Por ejemplo: SELECT RPAD ( short +
+
I
)
;
I
+
I
-
+
I
short-
+
+
SELECT RPAD ( too -long +
a
);
+
I I
too -lon SELECT +
+
RTRIM (cadena )
Elimina espacios situados Por ejemplo: SELECT
('a'
+
+
+
+
final de la cadena y devuelve el resultado.
(cadena)
Devuelve una cadena una cadena fonetica diseiiada para indexar ortograficos de mas eficaz. Las que suenan de la misma las mismas Normalmente tiene una longitud de cuatro caracteres esta funcion devuelve una cadena de longitud arbitraria. la funcion SUBSTRING para devolver una cadena Los caracteres no alfanumericos se ignoran y caracteres alfabeticos no ingleses se tratan vocales. Por ejemplo: SELECT +
+
+
+
(
);
I M24 0 +
+
SELECT +
;
+
)
SPACE (numero)
Devuelve una cadena formada por el SELECT
,SPACE ( 1 0 ) ,
de espacios. Por ejemplo: ;
+-+
A +-+------
B +-+
I A +-+
SUBSTRING SUBSTRING (cadena FROM
[FOR longitud] )
Devuelve una subcadena del de cadena comenzado desde p o s i (que empieza en 1) y, opcionalmente, con la l o n g i t u d especificada.
Por ejemplo: SELECT SUBSTRING ( +
I
,2);
+
SUBSTRING
+
,2)
I
+
I
I +
+
FROM 3);
SELECT SUBSTRING ( +
+
I
FROM 3)
+
+
I
I
1 r o w in set (0.16 SELECT SUBSTRING ( +
+
I
;
I
SUBSTRING +
+
I
1 row in set (0.22
La funcion es segura para multibytes. La funcion M I D(cadena, a SUBSTRI NG (cadena, cion, longi tud) gitud).
SUBSTRING INDEX
Devuelve la subcadena de la cadena hasta llegar a numero (si es positivo) o despues de numero (si es negativo) de instancias de de limi La funcion es segura para multibytes. Por ejemplo: Id'
SELECT
SELECT SUBSTRING +
I
-INDEX (
I
am
what
I am' ,
SUBSTRING - INDEX
I am what
I am', 'a', 2) I
+
SELECT SUBSTRING I
,2);
+
I I am wh +
;
-INDEX (
I am what I
SUBSTRING - INDEX ('I am wh at I am', 'a', - 2)
,
I
a ' ,-2);
T R I M ( [ [BOTH cadena)
LEADING
TRAI
FROM]
no se especifica ninguno de opcionales, T R I M ( espacios anteriores y posteriores. Puede indicar L E A D I N G o T R A I L I N G para eliminar solamente uno de dos tipos o la predeterminada BOTH. Tambien puede eliminar otros elementos de espacios si especifica es segura para multibytes. c a d e n a r e c o r t e . La Por SELECT
What
I
W h a t a w a s t e of space
+
+
a
waste
+
space
I
SELECT +
of
FROM
;
+
FROM
-
'0001')
+
I SELECT
FROM
TRIM (LEAD ING FROM I +
+
SELECT
TRI M (BOTH
abc
a bc
I
+
aabbcc
UCASE UCASE ( c a d e n a )
Sinonimo de UPPER().
UPPER UPPER ( c a d e n a )
abcabcaabbccabcabc ) ;
abcabcaabbccabcabc
FROM
+
FROM
Devuelve una cadena con todos caracteres convertidos en mayusculas (en funcion del de caracteres actual). L a funcion es segura para Por ejemplo: SELECT
+
UPPER
;
+
I +
+
I AB C
I
+
+
sinonimo es
funcion UCASE
.
Funciones numericas Las funciones numericas tra bajan con numeros y, basicamente, mentos numericos y devuelven resultados numericos. En de que se produzca un error, devuelven NULL . Tend ra que prestar especial atencion y no superar el ambito de un numero; la de las funcionan con BIGINT con o sin signo) y se este ambito, devolvera NULL.
ABS (n um er o)
Devuelve el valor absoluto (valor positivo) de un numero. L a funcion s e puede utilizar con B I G IN T . Por ejemplo: (24- 26) ;
SELECT
+
------
+
I ABS +
I +
I
+
+
ACOS AC OS (nu me ro )
Devuelve el coseno del numero (el coseno inverso). El numero debe est ar comprendido entre -1 y 1 o l a funcion devolvera NU LL. Por ejemplo: SELECT
+
ACOS(0.9);
(numero)
Devuelve el seno del (el seno inverso). El numero debe estar comprendido entre -1 y 1 o la funcion devolvera NULL. Por SELECT ASIN(-0.4) ; +
+
-----
I ASI N(- 0.4 ) +
+
I
+
+
------
Devuelve la tangente del numero (la tangente Po r SELECT +
------
;
+
I
I +
1.325818 SELECT +
-------
+
AT AN (-4,-3)
+
+
-2.214297
+
+
CEILING CEILING
(-4, -3);
o de dos numeros (el
Redondea el numero Por ejemplo:
entero mas proximo y lo devuelve
SELECT C E IL I NG ( 2 . 9 8 ) +
+
I
CEILING(2.98)
BGINT.
;
+ 3
+
+
SELECT CE ILI NG (
arriba o
- 2.98);
FLOOR para redondear abajo.
abajo y
COS
Devuelve el coseno d e n u m e r o r a d i a n e s Por ejemplo: SELECT COS ( 5 1 ) ; +
I
I +
0.742154 +
COT
Devuelve la cotangente de numero r a d i a n e s . Por ejemplo: SELECT COT ( 0 . 4 5 ) +
I
---
+
I +
2.07015736 +
DEGREES ( n u m e r o )
;
para hacerlo
Convierte el numero de radianes a grados y devuelve el resultado. Por ejemplo: SELECT DEGREES ( 2 ) +
;
+
DEGREES (2) +
+
114.59155902616 +
+
SELECT DEGREES ( P I +
I
;
+
DEGREES (PI
/2 )
I
+
+
I +
+
EXP E X P( n u m e r o )
Devuelve el numero e (la base de logaritmos naturales) elevado a la especificada. Por ejemplo: SELECT EXP(1); +
I
I +
2.718282 S EL EC T EX P ( 2 . 3 )
;
+
EXP(2.3) +
9.974182 +
SELECT
(0.3)
;
+
I
I
FLOOR FLOOR
Redondea el numero abajo hasta el entero BIGINT. ejemplo: SELECT FLOOR ( 2 . 9 8 )
;
proximo y lo devuelve
+
+
I
FLOOR(2.98)
---
I
+
I +
SELECT FLOOR ( - 2 . 9 8 ) +
I
+
I
FLOOR( - 2.98)
+
+
I
-3
para redondear abajo.
arriba y R O U N D
CEILING
arriba o
para redondear
FORMAT FORMAT (numero,decimales)
Aplica un a un numero de que tres digitos se separen por una coma y redondea el resultado hasta el numero de posiciones indicado. Por ejemplo: SELECT FORMAT +
+
+
FORMAT +
GREATEST GREATEST (argument ol, argument02
[,
...
)
Devuelve el mayor de argumentos. Los argumentos se comparan de ta s en funcion del del valor devuelto o de tipos de argumento, que pueden ser enteros, o (que distinguen entre mayusculas y nusculas, y son la predeterminada). Por ejemplo: SELECT +
I +
+
GREATEST ( - 3 ,
GREATEST ( -3, +
I +
5 +
SELECT +
I
GREATEST( ' P a ' +
,
,
LEAST LEAST (argu mento l, argument02
[,
...
)
Devuelve el de argumentos. Los argumentos se comparan de tas en funcion del del valor devuelto o de tipos de argumento, que pueden ser enteros, o (que distinguen entre mayusculas y nusculas, y son la predeterminada). Por ejemplo: SELECT
LEAST ( - 3 ,
;
+
I
I
+
+
+
+
-4 SELECT +
LEAST ( ' P a ' , ' M a '
,
)
;
+
I
I
+
+
I
I
LN (numero)
de la funcion
LOG
( numero )
LOG
Devuelve el logaritmo natural de numerol si hay un argumento. Tambien puede utilizar un base arbitraria si proporciona un segundo argumento, en cuyo la funcion devuelve LOG ) / L O G numerol . Por ejemplo: SELECT
;
+
I
I +
0.693147 +
SELECT LOG +
;
(numerol)
Devuelve el logaritmo de base 10 de numero 1.Equivale a
numero1
LOG ( 1 0 ) .
Por SELECT LOG10 ( 1 0 0 ) ; +
I
---
+
LOG10 (100)
+
I
2.000000 +
-------- +
LOG2 (numerol)
Devuelve el logaritmo de base 2 de numero1. Equivale a LO G numero1 LOG ( 2 ) .
Por SELECT
;
+
I
I +
2.000000
+
MO D (n um er ol ,
Devuelve el modulo de por similar Por SELECT MOD
1y
operador ;
+
I +
I
3 +
SELECT MOD(3,
- 2 );
(el resto de numero1 dividido puede con BIGINT.
Devuelve el valor de pi (o utiliza precision doble pero, de caracteres. Por ejemplo: SELECT
PI
la mas proxima). predeterminada, solamente devuelve cinco
;
+
I
I +
3.141593 + +
SELECT
0.
POW
Esta funcion
a
POWER ( n u m e r o l,
.
POWER
Eleva numerol a la SELECT
POWER
+
------
I
I
+
+
8.000000
+
+
RADIANS RADIANS (numerol)
de ;
y devuelve el resultado. Por ejemplo:
Convierte el numero de grados a radianes y devuelve el resultado. Por ejemplo: SELECT +
RADIANS
+
I
RADIANS (180)
+
+
3.1415926535898 +
+
RAND
[numero]
Devuelve un numero aleatorio (coma flotante) comprendido entre y 1. El argumento es el generador de numeros aleatorios. Se suele utilizar la marca de tiempo generador. Esta se puede utilizar pa ra devolver un de resultados en aleatorio. Por ejemplo: SELECT RAND +
+
I +
+
;
0.70100469486881 +
+
SELECT +
I
+
I
RAND
+
+
I
0.80558716673924 SELECT
+
I
RAND
*
FROM
ORDER BY
L I M I T 1;
+
-
+
+
+
+
I
ROUND
Devuelve el argumento numero redondeado entero mas proximo. Puede proporcionar un segundo argumento para el numero de decimales que debe redondear (el predeterminado es 0, sin decimales). El comportamiento de redondeo para numeros situados exactarnente en el medio se basa en la teca de C subyacente. Por ejemplo: SELECT ROUND ( 2 . 4 9 )
+
+
I
ROUND(2.49)
---
+
------
I
+
I +
-----
+
SELECT
+
+
I
ROUND(2.51)
ROUND
(2.51)
;
I
+
-------- + 3
+
---
+
SELECT
ROUND
;
+
+
I
I
+
+
I
- 2.5
+
+
SIGN (numero)
Devuelve -1, o 1 en numero, o positivo. Por SELECT I
SIGN( - 7)
de
el
SIGN( - 7 ) ;
I
+
I
-1
I
+
SELECT
SIGN
;
+
I
I +
I
I +
SIN
Devuelve el seno de Por SELECT +
I
I +
0.850904 +
numero
;
radianes.
es negativo, cero o no es un
SQRT(numero)
Devuelve la Por
cuadrada del argumento.
SELECT SQRT ( 8 1 ) ; +
I
I +
--
+
9.000000 +
TAN
Devuelve la tangente de numero Por
radianes.
SELECT TAN ( 6 6 ) ; +
I
I +
0.026561 +
TRUNCATE TRUNCATE(numero,decimales)
Reduce (o aumenta) el numero Por
numero de decimales especificado.
SELECT TRUNCATE
;
2.23 +
+
SELECT TRUNCATE +
+
I +
;
I +
2.40000 +
+
SELECT +
TRUNCATE
+
I +
+
;
I
+
+
SELECT
+
;
+
I
+
+
I
-12.4
Funciones agregadas Las
agregadas son las que trabajan con un grupo de datos (lo que que se pueden en una no existe esta G R O U P BY). clausula, se asume que el grupo es el de resultados y devuelven solamente un resultado. En siguientes ejemplos, imagine que existe una lla tabla esta: SELECT
*
FROM tablel;
+
+
I
4 12 12 20
I I
+
4 rows in set (0.00
AVG(expresion)
Devuelve la media de las expresiones del grupo. Devuelve expresion Por ejemplo: SELECT
+
+
+
+
-------
I
+
FROM
no es una
;
12 +
BIT AND BIT-AND(expresion)
Devuelve el operador en de bits de todos del grupo (con una precision de 64 bits).
bits de las expresiones
SELECT
BIT
+
+
-AND (fieldl)
FROM
tablel;
I +
+
I
4
+
+
BIT OR BIT - OR (expresion )
Devuelve el operador una precision de 64 bits). Por ejemplo: SELECT
+
BIT
OR
-
+
I
de todos
(f
bits de las expresiones del grupo (con
FROM tablel ;
I
+
+
I +
+
COUNT COUNT(
[DISTINCT]
expresionl,
Devuelve el numero de valores no nulos del grupo. Si la expresion es un campo, devuelve el numero de filas que no contienen valores nulos en dicho campo. COUNT * el numero de todas las filas, nulas o no. La (o DISTINCT devuelve el numero de valores no nulos una si se utiliza mas de una expresion). ,
SELECT
COUNT
FROM tablel;
+
I
COUNT(*) I +
I
4
+
MAX MAX
(expresion)
Devuelve el mayor valor de las expresiones del grupo. La expresion puede ser o una cadena. Por ejemplo: SELECT MAX
+
---
I
+
MAX (fieldl)
(fieldl)
FROM
tablel;
MIN(expresion)
Devuelve el valor mas de las expresiones del grupo. La expresion puede ser un numero o una cadena. Por ejemplo: SELECT MIN(f i e l d l ) +
+
+
+
-----
I
FROM
4
-------- +
+
STD STD(expresion)
Devuelve la desviacion estandar de Por SELECT
+
---
i el d l )
valores de las expresiones del grupo.
FROM
+
I
I + 5.6569
+
---
+
STDDEV STDDEV(expresion)
Sinonimo de
funcion
STD
SUM(expresion)
Devuelve el valor mas pequefio de las expresiones del grupo o NULL La expresion puede ser un numero o una cadena. Por SELECT +
FROM
;
no hay
Otras funciones Entre las siguientes funciones se incluyen funciones de cifrado, de cion, de flujo de control y otros tipos de diversa naturaleza.
AES DECRYPT
Descifra el resultado de una funcion A E S ENCRYPT
)
.
AES ENCRYPT
Utiliza el algoritmo estandar de cifrado avanzado (Rijndael) para cifrar la cadena en funcion de cadena clave. De predeterminada, utiliza una DECRY P T longitud de clave de 1 28 bits. descifra el resultado.
BENCHMARK
Ejecuta la expres un de veces. Se utiliza principalmente para la velocidad a l a que ejecuta una expresion. Siempre el tiempo (en el cliente) que se muestra por debajo de l a funcion es la util del resultado. Por ejemplo: 'how
SELECT +
long') ) ;
+
I
long'))
row in set
(0.95
CASE CASE
valor WHEN
THEN
resultadol
[WHEN
SEL ECT CASE WHEN 1 > 2 none
THEN
WHEN 2 < 2
THEN
ELSE
E N D;
CASE WHEN
THEN
WHEN 2 < 2 THEN
E LS E
'none'
END
I
none +
+
SELECT CASE WHEN BINARY THEN END; text
=
+
'A'
THEN
WHEN
+
'a'
CASE WHEN BINARY 'text'
=
'A '
THEN
'bin'
WHEN
THEN
END
text I
SELECT CASE WHEN BINARY
THEN
WHEN 2 = 2 THEN
END ; CASE WHEN BINARY
THEN
'1'
WHEN 2 = 2 THEN
'2'
END
El tipo de valor devuelto (INTEGER, DOUBLE o STRING) es igual que el tipo del primer valor devuelto (la expresion que aparece detras del primer THEN).
CAST CAST ( e x p r e s i o n AS
tipo)
Convierte la expresion pueden ser uno de
especificado y devuelve el resultado. Los tipos BINARY, DATETIME, SIGNED, SIGNED
y UNSIGNED INTEGER. Normalmente, convierte tipos automaticamente. Por si dos numericas, el resultado sera numerico. 0 , si una parte de un calculo no tiene el resultado no tendra Puede utilizar CAST para modificar este comportamiento. Por INTEGER, TIME, UNSI GNED
SELECT
+
+ 4
+
3
+
I
7 +
SELECT
AS TIME);
AS
TI ME) I
+
+
SELECT
AS UNSIGNED INTEGER) ;
CAST (50 - 60 AS UNSIGNED INTEGER) +
I
+
I
18446744073709551606 SELECT CAST ( 5 0
+
- 60
AS
SIGNED INTEGER) ;
+
CAST(50 - 60 AS SIGNED INTEGER)
CONVERT
que
)
CONNECTION ID CONNECTION - ID
Devuelve el id de s ubpr o ce s o Por ejemplo: SELECT CONNECTION ID +
-
+
de la
;
CONNECTION- ID +
+
7 +
+
CONVERT V E R C O N T
(expresion,
de
CAST
AS
t ipo
que es la
ANSI.
DATABASE DATABASE
Devuelve el nombre de la base de datos actual o una cadena vacia en que no haya ninguna. Por ejemplo: SELECT DATABASE
+
---
+
;
de
DATABASE +
---
+
I
test
-----
-- +
+
DECODE
Descodifica la cadena codificada por medio de la cadena de contraseiia y devuelve el resultado. La cadena descodificada suele ser generada en primer lugar por la funcion ENCODE ( ) . Por SELECT +
+
+
+
I
DECODE
)
,
I
a
+
+
SELECT +
+
+
+
DECODE (
wer
,
)
;
I +
+
DES DECRYPT cadena - clave])
Descodifica una cadena codificada con
ENCRYPT
.
DES ENCRYPT
-
(cadena
[,
cadena - clave)
)
Utiliza el algoritmo DES para codificar la cadena y devuelve una cadena Si se omite el argumento de clave se utiliza la clave del archivo de claves de descodificacion. Si el argumento es un numero (comprendido entre y se utiliza la correspondiente clave de archivo de claves de descodificacion. Si el argumento es una cadena, se utilizara dicha clave. valores de clave cambian en el archivo de claves de descodificacion, MySQL puede leer nuevos valores cuando un a FLUSH DES KEY F I L E , que requiere funciona si MySQL es compatible con SSL.
Devuelve una cadena codificada. Puede utilizar DECODE misma c a d e n a rase para devolver la cadena original. Las codificada y tendrhn la misrna longitud. Por ejemplo: SELECT +
ENCODE ( a
)
,
con la
;
+
I
I +
+
SELECT ENCODE ( ah +
,
2
)
;
+
I
I +
+
I
I
ENCRYPT ENCRYPT(cadena
[,
salt] )
Codifica una cadena con la llamada del sistema c r y p t de Unix y devuelve el resultado. El es una cadena utilizada en la Su comportamiento especifico depende de la llamada del sistema subyacente. Por ejemplo: SELECT ENCRYPT ( keepmeout ) I
ENCRYPT
+
keepmeout ) +
SELECT I
;
ENCRYPT
ENCRYPT ( keepmeout
keepmeout
,
)
;
ab )
FOUND ROWS FOUND-ROWS
Devuelve numero de que que se habrian devuelto FOUND ROWS LIMIT). una
SELECT SQL no estuviera
CALC
Por ejemplo: user
SELECT
I
user
I +
I +
1;
+
ro w in set
(0.00 FOUND ROWS
-
;
+
FOUND-ROWS ) +
I +
LIMIT
I
SELECT
+
user
I
-
1
FROM
4
+
GET LOCK
Intenta obtener un bloqueo denominado cadena,durante segundos cificados en t iemp o muert o.Devuelve 1 si es satisfactorio, si se queda sin tiempo o N U L L produce otro error. El bloqueo se con RELEASE una nueva funcion G E T o si se termina I S FREE LOCK comprobar un bloqueo se ha liberado. Se utiliza principalmente como mecanismo de bloqueo adicional en nes. Por ejemplo: SELECT
+
I +
GET LOCK (
-
+
GET -LOCK
one
,
,
;
I
+
I
I
Devuelve expres si expres es verdadera; en contrario, devuelve expr es Puede devolver un numero o una cadena en funcion del contexto. se evalua como entero, por lo que puede que las raciones no generen resultados esperados. Por ejemplo: SELECT
+
+
+
+
I
I +
+
SELECT +
I
-----
+
IF
;
+
I +
+
SELECT +
IF
(NULL, 'a'
)
,
;
+
I
I
'a', +
+
I
I
SELECT
IF
,NULL)
;
' a ' ,NULL) +
+
I
NULL
+
+
El siguiente ejemplo devuelve f a l s e porque el numero real 0.49 se evalua el entero SELECT
+
+
I
I F( 0. 49 , ' t r u e ' , ' f a l s e ' )
+
+
false +
+
(expresionl,
Devuelve e x p r e s si no es en contrario, devuelve El resultado puede ser un numero o una cadena en funcion del contexto. Por ejemplo: SELECT
;
+
I +
I
-----
+
+
+
I
+ SELECT
(NULL,
nothing here )
+
(NULL, ' n o t h i n g
he r e '
;
I
nothing here +
+
never
I
existed')
tant
(RELEASE LOCK (
SELECT
-
,
T he
loc k
;
(RELEASE - LOCK 'nonexistant' )
'The
,
lock
never
existed')
I
I
The lock never existed
I
Devuelve una direccion de red entera de 4 o 8 bits desde la cadena de direccion de cuatro octetos. Por ejemplo: SELECT
)
;
NTOA
Devuelve una direccion de Internet de cuatro octetos desde una direccion de red de 4 o 8 bits y devuelve una cadena de direccion de cuatro octetos que senta la direccion de Internet de cuatro octetos. Por ejemplo: SELECT +
+
+
+
;
I +
+
IS FREE LOCK
-
IS - FREE- LOCK (cadena )
Se utiliza para cornprobar si un bloqueo denominado cadena, creado con GE T LOCK ( ) esta o no. Devuelve 1 el bloqueo esta e bloqueo o NULL se producen otros errores. ,
Por ejemplo: SELECT
+
I
GET
+ GET
-LOCK (
one
I
,
+
+
one ,1);
LOCK
-
I +
+
SELECT
+
I
+
IS
-
IS
-FREE-LOCK
SELECT
+
FREE
-
LOCK (
I
one
GET
LOCK
-
+
one )
( t w o ,1)
I +
+
I
I
+
+ SELECT
I
IS
-FREE-LOCK
+
IS
-
FREE
-
LOCK
one ) ;
I
one
+
I
I
+
+
LAST INSERT ID
Devuelve ultimo valor a un campo AU TO o si no hay ninguna. Por ejemplo: SELECT
+
LAST
+ last
-insert-id
+
-
INSERT
-
ID
INCREMENT
desde esta
;
I
+
I
MASTER POS WAIT
Se utiliza para sincronizar la Si se ejecuta en el esclavo, espera hasta que este haya realizado todas las actualizaciones hasta la en el registro principal antes de continuar. Por ejemplo: SELECT
( "g - bin. 001
;
MD5 (cadena)
Utiliza el algoritmo MD para calcular una suma de 128 bits a partir de la cadena y devuelve el numero hexadecimal de 32 digitos resultante. Por ('how many more');
SELECT
I MD 5 ('how ma ny
s
Devuelve devuelve n2. Por
more')
NULL:
a Evalua
que sea igual a dos veces
SELECT
en cuyo es igual a expre -
;
I +
I +
+
I
a +
(1,
SELECT
+
+
I
I
NU LL +
);
I
+
PASSWORD (cadena)
Convierte la cadena en una contraseiia codificada y devuelve el resultado. Esta funcion se utiliza para codificar contraseiias en la tabla de usuarios de la base de datos No se puede invertir y se codifica de distinta que una contraseiia Unix
Por SELECT PASSWORD ( a') +
;
+ PAS SWORD
+
a
+
I
I +
+
SELECT +
PASSWORD (PASSWORD
a )
;
+
I +
+
I
+
+
ENCRYPT ( )
una cadena a una contraseiia segun
RELEASE LOCK
la cadena de bloqueo anterior obtenida con GET LOCK . Devuelve 1 si el bloqueo se si no se puede liberar debido a no lo ha creado o si el bloqueo no existe (nunca se ha creado o ya se ha liberado). Por ejemplo: SELECT +
I
GET LOCK ( o n e ' , 1 ) ;
-
+
+
-LOCK ( +
+
+
GET
one
,
I
SELECT
+
+
I
RELEASE
+
- LOCK
RELEASE LOCK ( o n e )
-
one
;
)
+
I +
+
SELECT RELEASE LOCK ( one ) +
I
-
+ RELEASE
+
- LOCK
one
;
I
+ NU LL
+
+
SESSION USER
-
SESSION
- USER
Devuelve el usuario y el equipo actual.
conectados mediante el subproceso
Por ejemplo: SELECT
+
SESSION
+
-
USER
;
SESSION - USER() I +
+
I
I +
+
SYSTEM U S E R (
USER
) y
)
son sinonimos.
SHA SHA (cadena)
Utiliza el algoritmo SHA (de hash seguro) para calcular una comprobacion de 16 0 bits a de la cadena y devuelve el numero hexadecimal de 40 digitos resultante. Es una codificacion mas segura que la que se obtiene con la funcion MD5 (
. SELECT
SHA
( how many mor e )
+
+
I
'how many more' )
+
+
I +
+
(cadena)
Sinonimo de SHA
.
SYSTEM USER
-
SYSTEM -USER
de S E S S I O N USER
USER USER
de SESSION U S E R ( )
VERSION VE RS IO N
Devuelve la version del servidor si se ha activado el registro. Por ejemplo: SELECT VERSION
+
+
VE RS IO N( ) +
I +
+
4.0.3 beta - log +
;
en
de cadena y
API PHP
PHP es
uno de lenguajes mas conocidos que se utilizan con MySQL, especialmente en Web. En este apendice describiremos todas las funciones PHP que funcionan con MySQL, incluyendo algunas que todavia no se incluyen en la version comercial de PHP.
Opciones de configuracion PHP El de configuracion PHP se denominaphp . i opciones especificas pa ra MySQL, como mostramos a
n i
y cuenta con algunas
co boolean. Se define como On si se nexiones permanentes a MySQL. El valor predeterminado es On. No es aconsejable desactivarlo.
integer. Numero maximo de conexiones nentes de cada proceso. El valor predeterminado es -1 (sin limite). integer. Numero maximo de conexiones MySQL de cualquier tipo por c ada proceso. El valo r predeterminado es -1 (sin limite ) .
string. Numero de puerto TCP predeterminado para conectarse a MySQL. PHP utiliza la variable de MY SQL T C P PORT no se configura una predeterminada. Unix puede t s o la constante de en la entrada msyql-tcp en tiempo de valor predeterminado es N U L L . M Y SQL PORT. string. Nombre de socket Unix predeterminado utilizado para conectarse a MySQL. El valor predeterminado es N U L L . string. Nombre de anfitrion predeterminado utilizado para conectarse a MySQL. El seguro invalida esta opcion. El valor predeterminado es NULL. string. Nombre de usuario predeterminado que se utiliza para conectarse a MySQL. No se aplica en seguro, ya que invalidaria esta opcion. El valor predeterminado es N U L L . string. Contraseiia predeterminada utilizada para conectarse a MySQL. No se aplica en seguro, ya que invalidaria esta opcion. El valor predeterminado es NULL. No es aconsejable que lo utilice para almacenar contraseiias. mysql.connect timeout integer. Tiempo muerto de en segundos .
-
expresado
Funciones MySQL PHP Las funciones PHP estan intimamente relacionadas con las funciones del API C. Las que enumeramos a son las funciones de PHP. mismo tiempo, una serie de bibliotecas que proporcionan un cierto nivel de utilizar la interfaz PHP en MySQL, entre las que destacamos ADODB, PEAR, y la antigua
msyql
affected rows
-
int
Devuelve el numero de filas afectadas por la ultima que haya modificado datos (INSERT, UPDATE, DELETE, LOAD DATA, REPLACE) o la ha Recuerde que REPLACE I N T O afectara a dos 1 por fila de la tabla original afectada (una DELETE y otra INSERT). la a la base de datos no se especifica, se utiliza la ultima que se haya abierto. utiliza transacciones, invoque m s y q l affected rows antes de car COMMIT.
Para devolver el numero de filas devuelto por una msyql num rows . Por abra una $connect
SELECT,
permanente a la base de datos Susername,
=
actualice un numero desconocido de campos en la tabla de la //base de datos Stable SET WHERE almacene el numero de filas actualizadas =
boolean contraseiia cadena base de datos
nombre de usuario, cadena conexion - mysql]])
Cambia el usuario actual (el que se haya conectado) por otro (es necesario especificar el nombre de usuario y la contraseiia de este). Tambien puede cambiar la base de datos mismo tiempo o especificar una nueva conexion; en caso contrario, se utilizaran la y la base de datos actuales. Devuelve TRUE es satisfactoria y FALSE en caso contrario, manteniendo el usuario y detalles existentes. Por ejemplo: abra una $connect =
int
permanente a la base de datos Susername,
([recurso
;
conexion -mysql])
Devuelve el de caracteres predeterminado (por ejemplo latinl) de la especificada o la ultima abierta que se haya abierto en caso de no especificar ninguna. Por ejemplo: abra una
print
"The
permanente a la base de datos mysql-pconnect
current character set is
;
boolean
Cierra la especificada o la ultima to. No cierra conexiones permanentes. Por abra una
a la base de datos (Shostname, Susername,
=
.
..
msyql
abierta que se haya
;
realiza algunos procesamientos (Sconnect);
connect nombre de anfitrion
[ , cadena nombre de usuario [ , cadena [ , nueva
[,
booleana
indicadores -cliente
Establece una a un servidor MySQL (especificado, en de que sea necesario, por el nombre de servidor, nombre de usuario y contraseiia) y devuelve un identificador de enlaces que utilizar an otras funciones. Si mente se realiza una segunda llamada identica en el codigo, se obtiene el mismo identificador de enlaces, a que se configure el parametro nueva con el valor t r u e . El nombre de servidor tambien puede ser un puerto (que aparece, seguido por dos puntos, por detras del nombre de servidor). El parametro final puede ser uno de siguientes indicadores, que determinan elementos del comportamiento de MySQL cuando se conecta: Utiliza un protocolo de impresion. un espacio adicional por detras de nombres de funciones. Espera el valor de la variable interactive time out en lugar del de la variable mysqld wait t antes cerrar una inactiva. Utilice el protocolo S SL. Por ejemplo: defina Shostname
parametros de de comandos)
(normalmente
=
=
Spassword
=
abra una
a la base de datos
fuera de la
boolean conexion-mysql]
(string database
Elimina la base de datos especificada de la especificada o la ultima que se haya abierto si no se especifica ninguna en concreto. Devuelve t r u e si es satisfactoria y f a l s e si la base de datos no se puede eliminar. Esta funcion, e la funcion m y s q l d r o p d b que es mas antigua, se han quedado obsoletas. En su lugar debe la msyql query para eliminar la base de datos. Por ejemplo: abra una Sconnect
a la base de datos Susername, Spassword);
=
la base de datos old-db $connect)) Database old-db is gone";
if
print else print "Database old-db could not be dropped ; "
"
int
conexion] )
(
Devuelve el numero de error de la ultima funcion MySQL que se haya ejecutado o cero si no se produjo ningun error. la especificada (o la ultima que se haya abierto en de no especificar ninguna en concreto). Esta funcion devolvera cero despues de ejecutar satisfactoriamente cualquier funcion relacionada con a de my s q y e r r o r ) ) que no cambian el valor. msyql Por ,
abra una Sconnect =
intente
permanente a la base de datos Susername, Spassword); una base de datos que acabe de eliminar ("old-db , Sconnect); "
Muestra el codigo de error
-
1049
if print "MySQL has thrown the following error:
string
;
Devuelve el texto del mensaje de error de la ultima funcion MySQL que se haya ejecutado o una cadena vacia si no se produjo ningun error. Utiliza la especificada (o la ultima que se haya abierto en de no especificar ninguna en concreto). Esta funcion devuelve una cadena vacia despues de ejecutar te cualquier funcion relacionada con MySQL, a de m y s q l error y m sy ql que no cambian el valor. Por ejemplo: ,
abra una
permanente a la base de datos ;
=
intente utilizar una base de datos que acabe de ( old-db , $connect) ; "
"
Muestra el texto de error desconocida
-
Base de datos 'old -db'
if print
"
MySQL has thrown the following error:
;
string mysql -escape -string (nombre de la cadena)
Devuelve una cadena con todos caracteres de conversion de escape que pueden dividir la consulta (con una barra invertida por delante de mismos). Entre estos caracteres se incluyen nulos nueva del carro barra invertida cornillas simple('), cornillas dobles y Control-Z 1A) . No se aplica conversion de escape a signos de porcentaje (%) y guion bajo De esta la consulta resulta segura de utilizar. Siempre que se utilicen entradas del usuario en una consulta, es aconsejable utilizar esta funcion para garantizar la seguridad de la consulta. Tambien puede utilizar la funcion a d d s l a s h e s ( ) ligeramente pleta. Por ejernplo: ,
cadena original, no segura value Isn't it true that the case may be ; =
"
"
aplica conversion de escape a mysql-escape -string =
ahora es segura y muestra: print $field -value ; "
"
caracteres especiales ;
it true that the case may be
multiple key. 1 si el campo es una clave no exclusiva.
-
numeric. 1 si el campo es numerico. 1
campo es un BLOB.
type. El tipo del campo unsigned. 1 si el campo no tiene zerofill. 1 si el campo se ha completado con ceros. Por ejemplo: abra una $connect =
permanente a la base de datos ;
devuelve una lista de todos $result
campos de la "tablel ");
=
procese una
por
campos y muestre el nombre, el
la longitud maxima del campo while etch-field($result) ) =
=
=
=
$row->name; $row->type;
print print "Type : print "Maximum
;
mysql fetch lengths
-
array
Devuelve una matriz de las longitudes de campo en la fila obtenida de un resultado de una consulta (la longitud de dicho resultado, no la longitud s e si no ha sido satisfactorio. maxima) y devuelve Puede la funcion m y s q l f i e l d l e n ( ) para devolver la maxima longitud de un campo. Por ejemplo: abra una a la base de datos $connect mysql-pconnect
;
seleccione la base de datos $connect); defina y ejecute la consulta SELECT field2 FROM tablel ; $connect); "
=
"
procese una
por
for print "Field name:
campos y muestre el nombre ($result); .
boolean desplazamiento int)
resultado-consulta,
Desplaza el hasta un nuevo campo del resultado de la consulta, en funcion del desplazamiento (que empieza en con el primer campo). La si guiente a la funcion mys fetch comenzara con este desplazamiento. No resulta de gran ya se puede desplazar mente el por medio de la fu nc io nm ys ql f e t c h f i e l d Por ejemplo: abra una $connect
permanente a la base de datos (Shostname, Susername,
=
;
seleccione la base de datos $connect); defina y ejecute la consulta SELECT FROM tablel"; $connect); *
"
=
=
vaya hasta el segundo campo ($result, 1); ield etch-f ield($result); print The name of the 2nd field is: =
"
string desplazamiento int)
.
Sfield->name;
resultado-consulta,
Devuelve el nombre de la tabla a la que referencia el campo en un de consulta determinado por el desplazamiento (que comienza en vefalse es identica. Por ejemplo: abra una $connect
permanente a la base de datos ;
=
seleccione la base de datos databasel", $connect); "
defina y ejecute la consulta SELECT fieldl,field2 FROM tablel, table2 WHERE =
"
=
mysql-query
$connect);
Obtenga el de la tabla del echo field 1 belongs to the table: ($result, 0);
(desplazamiento
"
resultado-consults,
string desplazamiento int)
Devuelve el de un campo de un resultado de una consulta determinado por el desplazamiento (que empieza en o devuelve false se produce un error. Entre ejemplos de de campo se incluyen i n t , r e a s t r i n g y b l o b . Por ejemplo: abra una
permanente a la base de datos (Shostname,
=
;
seleccione la base de datos databasel , $connect) ; "
"
defina y ejecute la consulta SELECT fieldl,field2 FROM tablel, table2 WHERE =
$result for echo
"
mysql-query
=
Field
"
$connect);
($result); is of type:
.
;
mysql free result
-
resultado-consults)
boolean
q u e r y r e s u l t , lo que toda la utilizada por el f a l s e si no lo volverlo a utilizar. Devuelve t r u e si es es. La se automaticamente final de la secuencia de comandos mysq f r ee r es u l t ( sin invocar esta funcion. La ya obsoleta, es identica. Por ejemplo: ,
abra una permanente a la base de datos $connect mysql -pconnect(Shostname, Susername, =
seleccione la base de datos
;
defina ejecute la consulta "SELECT FROM tablel"; $connect); =
procese una de muestre while print print
por las filas para devolver
una
campos ($result)
=
. recursos asociados a la consulta ($result) ;
mysql get client info
-
string
Devuelve una cadena que contiene la version de la biblioteca cliente de (por ejemplo, 4.0.2). Por ejemplo: muestra print
"La
-
La version de la biblioteca cliente es: 4.0.2 (por
version de la biblioteca cliente es:
get host info
-
string
conexion-mysql])
Devuelve una cadena que contiene informacion la (por ejemplo "Servidor local a traves de un socket Unix). La informacion es de la especificada (o de la ultima en de no especificar ninguna en Por ejemplo: muestra - Tipo de conexion: Servidor local a traves de un socket UNIX ejemplo) print "Tipo de conexion:
mysql get proto info
-
int
-
conexion-mysql] )
Devuelve un entero que contiene el protocolo de version (por ejemplo, 10) utilizado por la conexion. La informacion proviene de la especificada
(o de la ultima que se haya abierto, en caso de no especificar ninguna en to). Por ejemplo: muestra - Version de Protocolo: 10 (por ejemplo) print "Version de Protocolo:
;
string
Devuelve una cadena que contiene la version del servidor (por plo, 4.0.3). La informacion se obtiene de la especificada (o de la ultima abierta, en caso de no especificar ninguna en concreto). Por ejemplo: muestra - Version del servidor: 4.0.3-beta-log (por ejemplo) print "Version del servidor:
string mysql-info
Devuelve una cadena que contiene informacion detallada la consulta mas reciente. Esta informacion registros, las filas que coinciden, cambios y advertencias. La informacion se obtiene de la especificada (o de la ultima abierta, en caso de no especificar una en concreto). Por ejemplo: abra una
a la base de datos ;
=
seleccione la base de datos ( "databasel", $connect); defina y ejecute la consulta set 2 WHERE "UPDATE $connect); =
=
=
muestra: la consulta: de cadena: coinciden: 19 Modificada: 19 Advertencias: e print "Query info:
mysql int
o
;
i conexion-mysql])
que
Por ejemplo: defina parametros de de la secuencia de comandos) Shostname Susername Spassword
(normalmente se hace fuera
=
=
abra una Sconnect
permanente a la base de datos (Shostname, Susername, Spassword);
=
boolean
([recurso
conexion-mysql])
Devuelve t r u e si el servidor esta en ejecucion y f a l s e si no lo esta. El ping se intenta a traves de la especificada (o de la ultima que se haya abierto, si no se especifica ninguna en concreto). Si falla, la secuencia de comandos intentara volverse a conectar con mismos parametros. Por ejemplo: abra una $connect
permanente a la base de datos (Shostname, Susername,
=
el tiempo
;
.
if print
"
Still connected ;
else print
"
"
Connection lost ; "
query-result conexion-mysql
consulta int]
Devuelve un resultado de consulta (si la consulta es la que produce el resultado como o DESCRIBE ), devuelve t r u e si la consulta no genero un resultado satisfactoria (como D E L E T E o UPDATE) y f a l s e consulta falla. La consulta se a una base de datos especificada por medio de la especificada (o de la ultima que se haya abierto, si no se especifica ninguna en concreto). parametro r e s u l t a d o puede ser MY SQL USE RESULT, que hace que el resultado se almacene en el que con mysql unbuffered query o MYSQL STORE RESULT (el predeter,
Devuelve contenidos de un solo campo de un resultado de una consulta. o especifi campo puede ser un desplazamiento (empezando desde el nombre del con o sin el especificador de tabla (es decir, nombredelatabla.nombredelcampo o nombredelcampo) si se proporciona con la consulta. Si el especificador de campo no se proporciona, se devolvera el primer campo . Esta funcion es considerablemente mas lenta que l as funciones que devuelven toda la fila, por ejemplo mysql fetch y mysql fetch por lo que es aconsejable que utilice una de estas. Por otra parte, no array mezcle esta funcion con funciones que devuelvan toda l a fila. Por ejemplo: ,
abra una $connect
permanente a la base de datos
=
seleccione la base de datos $connect); devuelva la media de =
"
SELECT
=
FROM tablel "; (Ssql, $connect) ;
muestre el valor medio de este campo print "Field2 average: ($result,
boolean
(cadena base de datos
;
[,
Cambia la base de datos actual por la base de datos especificada. Utiliza la especificada (o l a ultima que s e haya abierto, en caso de no especificar una en concreto). Si no hay conexiones abiertas, intentara invocar mysql connect ( ) sin de Devuelve true si es fa se en caso contrario. La funcion mysql se tdb ( ) ya obsoleta, es identica. Por ejemplo: ,
abra una
permanente a la base de datos
=
seleccione la base de datos $connect);
string mysql -stat
;