Está en la página 1de 13

12

FUNCIONES........................................................................................................... ..........3
AVG.......................................................................................... ...................................3
CONCAT...................................................................................................... .................3
SUBSTR....................................................................................................................... .3
LENGTH.......................................................................................... .............................3
ROUND............................................................................................ ............................3
CURRENT_DATE()................................................................................................. ........3
DAY()............................................................................................ ...............................3
MONTH()............................................................................................................. .........3
YEAR()........................................................................................... ..............................3
CURRENT_TIME().........................................................................................................3
HOUR()............................................................................................. ...........................3
LOWER().............................................................................................. ........................3
UPPER().......................................................................................... .............................4
IFNULL()................................................................................................................ .......4
MAX/MIN()................................................................................................................... .4
COUNT()........................................................................................ ..............................4
SUM()........................................................................................................................ ...4
IS NULL/ IS NOT NULL............................................................................. .....................4
CLAUSULAS................................................................................... .................................5
GROUP BY........................................................................................................ ............5
WHERE........................................................................................ ................................5
HAVING........................................................................................................... .............5
ORDER BY....................................................................................................... .............5
LIMIT................................................................................................................. ...........5
LIKE................................................................................................. ............................5
IN........................................................................................................................ .........5
ANY.......................................................................................................................... ....5
ALL............................................................................................... ...............................6
EXISTS..................................................................................................... ....................6
SENTECIAS................................................................................................................ ......7
ALTER TABLE ...................................................................................................... .........7
CREATE DATABASE......................................................................................................7
CREATE TABLE....................................................................................... ......................7
CREATE USER .............................................................................. ...............................8
CREATE VIEW........................................................................................................ .......8

12
DELETE ...................................................................................................... .................8
DESCRIBE O DESC................................................................................. ......................9
DROP DATABASE.................................................................................................... ......9
DROP TABLE.................................................................................. ..............................9
DROP USER............................................................................................................... ...9
GRANT................................................................................................... ......................9
INSERT......................................................................................................... ..............10
INSERT...SELECT........................................................................................................10
RENAME TABLE.......................................................................................... ................10
SELECT............................................................................................. .........................10
UPDATE................................................................................................................ ......11
USE................................................................................................................... .........11
OTROS.................................................................................................... ......................13
Guardar y Cargar............................................................................................. ..........13
Triggers.................................................................................................................... ..13

12

FUNCIONES
AVG
Devuelve el valor medio de expresin:

AVG(expr)

CONCAT
Devuelve la cadena resultante de concatenar los argumentos. Devuelve NULL si
alguno de los argumentos es NULL. Puede haber ms de 2 argumentos.
P.ej: CONCAT(empno, cobra , sal);
que nos dara una frase hecha diciendo lo que
cobra cada to

SUBSTR
Devuelve la cadena de entre las posiciones del String que tu elijas: Substr
(String,1,3) te devolvera Str

LENGTH
Devuelve la cantidad de caracteres de la cadena: Length(String); te devolvera 6

ROUND
Devuelve un nmero redondeado con tantos decimales como le pongas:
Round(45.926,2); te devolvera 45.93

CURRENT_DATE()
Devuelve la fecha actual como un valor en el formato 'AAAA-MM-DD' o AAAAMMDD,
dependiendo de si la funcin se usa en un contexto de cadena o numrico:
CURRENT_DATE()

DAY()
Devuelve el da del mes para la fecha dada, en el rango de 1 a 31: DAY(expr)

MONTH()
Devuelve el mes para la fecha dada, en el rango de 1 a 12: MONTH(expr)

YEAR()
Devuelve el ao para la fecha dada: YEAR(expr)

CURRENT_TIME()
Devuelve la hora actual como un valor en el formato 'HH:MM:SS' o HHMMSS,
dependiendo de si la funcin se usa en un contexto de cadena o numrico:
CURRENT_TIME()

HOUR()
Devuelve la hora del tiempo dado, en el rango de 1 a 24: HOUR(expr)

LOWER()
Devuelve la cadena str cono todos los caracteres cambiados a minsculas de acuerdo
con el mapa de caracteres actual: LOWER(expr)

12
UPPER()
Devuelve la cadena en maysculas: UPPER(expr)

IFNULL()
Si expr1 no es NULL, IFNULL() devuelve expr1, en caso contrario, devuelves expr2.
IFNULL() devuelve un valor numrico o una cadena, dependiendo del contexto en el
que se use: IFNULL(comm,0);

MAX/MIN()
Devuelve el valor mnimo o mximo de expr. MIN() y MAX() pueden tomar como argumento una cadena, en ese caso devolvern el valor de la cadena mnima o mxima.

COUNT()
Cuenta el nmero de atributos que tiene por los requisitos que le has pedido :
Count (empno) from emp; te devolvera la cantidad de empleados de la tabla emp

SUM()
Devuelve la suma de cada valor numrico de los atributos que se pide:
Count (sal) from emp; te devolvera el total de los salarios pagados a los empleados

IS NULL/ IS NOT NULL


Para buscar los valores de la tabla que queramos que sean/no sean nulos:
Where ciudad IS NULL;

12

CLAUSULAS
GROUP BY
Sirve para agrupar las consultas, no solo puede hacerse con un campo sino que
tambin se puede con dos siendo el primero la primera agrupacin y el segundo la
segunda:
GROUP BY empno,deptno

WHERE
Es quien te limita la consulta de un resultado de toda la tabla a las condiciones que tu
ests buscando:
Where deptno=20

HAVING
Lo mismo que el where pero esta se usa cuando se quiere poner la condicin a algo
que tiene un a funcion:: Having avg(sal)>30

ORDER BY
Sirve para ordenar las consultas (NO AGRUPAR). Una caracterstica de esta es que
vaya acompaado por ASC o des con las cuales nos las ordenaran de menor a mayor
(ASC) o de mayor a menor (DESC).
*Para sacar datos como mximos y mnimos una posibilidad es usar esta funcin
convinada con Limit:
Select nombre from persona
Group by nombre
Order by sal Desc
Limit 1....
Te devolvera el que ms cobra para el que menos en vez de
Desc ->Asc

LIMIT
Te limita los resultados a la cantidad que tu quieras
Where . Limit 1; En este caso te devolvera un nico valor

LIKE
Te permite buscar los resultados con el carcter que tu quieras.
Where like a% ..que empiece por a
Where like %a............. que acabe por a
Where ... like %a%.......... que tenga una a

IN
Te dice lo que hay dentro de una tabla. Es una muy buena opcin para no hacer
LeftJoin haciendo not in:
Select ename from emp
Where ename not in (select ename in dept); Te dice los tos que no estn en ningn
departamento

ANY
La palabra clave ANY , que debe seguir a un operador de comparacin, significa
return TRUE si la comparacin es TRUE para ANY (cualquiera) de los valores en la
columna que retorna la subconsulta

12
Ejm: SELECT s1 FROM t1 WHERE s1 > ANY (SELECT s1 FROM t2);

ALL
La palabra ALL, que debe seguir a un operador de comparacin, significa return
TRUE si la comparacin es TRUE para ALL todos los valores en la columna que retorna
la subconsulta.

EXISTS
Si una subconsulta no retorna ningn registro, entonces EXISTS subquery es TRUE, y
NOT EXISTS subquery es FALSE.
Qu clase de tienda hay en una o ms ciudades?
SELECT DISTINCT store_type FROM Stores
WHERE EXISTS (SELECT * FROM Cities_Stores
WHERE Cities_Stores.store_type = Stores.store_type);

12

SENTECIAS
ALTER TABLE
Permite modificar la estructura de una tabla existente. Por ejemplo, se pueden aadir
o eliminar columnas, crear y destruir ndices, cambiar el tipo de una columna
existente o renombrar columnas o la propia tabla. Tambin es posible modificar el
comentario y el tipo de la tabla.
ALTER TABLE nombre_tabla MODIFY nombre_fila tipo_dato_nuevo;
Diferentes posibilidades:
MODIFY
RENAME
DROP
ADD
DISABLE

modificar tipo dato


renombrar tabla
borrar fila
agregar fila
deshabilitar algo por ejm keys

ALTER TABLE emp


DISABLE CONSTRAINT emp_empno_pk;
ENABLE

habilitar algo

ALTER TABLE emp


ENABLE CONSTRAINT emp_empno_pk;
ORDER BY

ordenar por

Para meter a pelo la PK:


ALTER TABLE tabla ADD CONSTRANT pk_nombre PRIMARY KEY (nombre);
Para meter la FK:
ALTER TABLE tabla ADD CONSTRAINT fk_nombre FOREIGN KEY (nombre)
REFERENCES tabla2 (nombre2)

CREATE DATABASE
CREATE DATABASE crea una base de datos con el nombre dado. Para usar CREATE
DATABASE se necesita el privilegio CREATE en la base de datos.
CREATE DATABASE nombre_BD

CREATE TABLE
Crea una tabla con el nombre dado. Se debe poseer el privilegio CREATE para la tabla.
Las reglas para nombres vlidos de tablas se pueden ver aqu. Por defecto, la tabla se

12
crea en la base de datos actual. Se producir un error si la tabla ya existe, si no hay
una base de datos actual o si la base de datos no existe.
CREATE TABLE nombre_tabla
(
nombre_dato tipo_dato,
...
);
Ejemplo para meter una PF o FK con la creacin de tablas:
CREATE TABLE dept
(
deptno INT(2),
dname VARCHAR(14),
loc VARCHAR(13),
CONSTRAINT dept_dname_uk UNIQUE(dname)
);
Si se quiere que algun campo no pueda ser null: dname VARCHAR() NOT NULL

CREATE USER
La sentencia CREATE USER crea nuevas cuentas MySQL. Para usarla se debe tener el
privilegio GRANT OPTION para la base de datos mysql. Para cada cuenta, CREATE
USER crea un nuevo registro en la tabla mysql.user sin privilegios.
Se produce un error si la cuenta ya existe.
Se le puede dar una contrasea a la cuenta con la clusula opcional IDENTIFIED.
CREATE USER nombre_usuario IDENTIFIED BY 'PASS'

CREATE VIEW
Esta sentencia crea una vista nueva o reemplaza una existente si se incluye la
clusula OR REPLACE.
Toda vista pertenece a una base de datos. Por defecto, las vistas se crean en la base
de datos actual.
Pera crear una vista en una base de datos especfica, indquela con
base_de_datos.nombre_vista al momento de crearla.
Las tablas y las vistas comparten el mismo espacio de nombres en la base de datos,
por eso, una base de datos no puede contener una tabla y una vista con el mismo
nombre.
CREATE VIEW nombre_vista AS SELECT * FROM t...Sentencia

DELETE
DELETE elimina columnas desde "table_name" que satisfagan la condicin dada por la
"where_definition", y devuelve el nmero de registros borrados.
Si se usa una sentencia DELETE sin clusula WHERE, todas las filas sern borradas
DELETE FROM nombre_tabla WHERE

12
DESCRIBE O DESC
Proporciona informacin sobre las columnas de una tabla. col_name puede ser un
nombre de columna o una cadena que contenga los caracteres comodn SQL '%' and
'_' para obtener salida slo para las columnas cuyos nombres coincidan con la cadena.
No es necesario escribir las cadenas entre comillas.
DESC nombre_tabla

DROP DATABASE
DROP DATABASE elimina todas las tablas de la base de datos y borra la base de
datos. Hay que ser extremadamente cuidadoso con esta sentencia. Para usar DROP
DATABASE, es necesario tener el privilegio DROP para la base de datos.
DROP DATABASE nombre_BD

DROP TABLE
DROP TABLE elimina una o ms tablas. Se debe poseer el privilegi DROP para cada
una de las tablas. Se eliminan tanto los datos que contengan y las definiciones de las
tablas, as que hay que tener cuidado con esta sentencia.
DROP TABLE nombre_tabla

DROP USER
La sentencia DROP USER elimina una o ms cuentas MySQL. Para usarla se debe
poseer el privilegio GRANT OPTION para la base de datos mysql. Cada cuenta se
nombra usando el mismo formato que para GRANT O REVOKE; por ejemplo,
'jeffrey'@'localhost'. Las partes del usuario y la mquina del nombre de la cuenta
corresponden a los valores de las columnas User y Host del registro de la tabla user
para la cuenta.
DROP USER nombre_usr

GRANT
Las sentencias GRANT y REVOKE permiten a los administradores del sistema crear
cuentas de usuario MySQL y conceder y revocar derechos de esas cuentas.
En MySQL existen cinco niveles distintos de privilegios:

Globales: se aplican al conjunto de todas las bases de datos en un servidor. Es


el nivel ms alto de privilegio, en el sentido de que su mbito es el ms general.
De base de datos: se refieren a bases de datos individuales, y por extensin,
a todos los objetos que contiene cada base de datos.
De tabla: se aplican a tablas individuales, y por lo tanto, a todas las columnas
de esas tabla.
De columna: se aplican a una columna en una tabla concreta.
De rutina: se aplican a los procedimientos almacenados. An no hemos visto

12
nada sobre este tema, pero en MySQL se pueden almacenar procedimietos
consistentes en varias consultas SQL
Privilegios Globales en una BD:
GRANT ALL ON db_name.* TO nombre_usr IDENTIFIED BY 'pass'
Privilegios Individuales BD:
GRANT SELECT,INSERT... db_name.* TO nombre_usr IDENTIFIED BY 'pass'

INSERT
Inserta nuevas filas en una tabla existente. Los formatos INSERT ... VALUES e INSERT
... SET, insertas filas basndose en los valores especificados explcitamente. El formato
The INSERT ... SELECT inserta filas seleccionadas de otra tabla o tablas. El formato
INSERT ... VALUES con una lista de mltiples valores
INSERT INTO nombre_tabla () VALUES()

INSERT...SELECT
Con INSERT ... SELECT, se pueden insertar rpidamente muchas filas en una tabla
desde otra u otras tablas.
INSERT INTO nombre_tabla ()
SELECT tbl_temp1.fld_order_id
FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100;

RENAME TABLE
La operacin de renombrado se hace atmicamente, lo que significa que ningn otro
proceso puede acceder a ninguna de las tablas mientras se realiza el renombrado.
RENAME TABLE old_table TO new_table

SELECT
SELECT se usa para recuperar filas seleccionadas de una o ms tablas:
Cada select_expr indica una columna que se quiere recuperar.
table_references indica la tabla o tablas de las que se recuperan filas. Su
sintaxis se describe en JOIN.
where_definition consiste de la palabra clave WHERE seguida por una
expresin que indica la condicin o condiciones que las filas deben satisfacer
para ser seleccionadas.

Todas las clasulas usadas deben darse en el mismo orden exacto que se muestra en
la descripcin de la sintaxis. Por ejemplo, la clusula HAVING debe estar despus de
cualquier clusula GROUP BY y antes de cualquier clusula ORDER BY.

12
La clusula LIMIT puede ser usada para limitar a que el nmero de filas devuelto por
la sentencia SELECT. LIMIT toma uno o dos argumentos numricos, que deben ser
constantes enteras. Con dos argumentos, el primero especifica el desplazamiento de
la primera fila a devolver, el segundo especifica el mximo nmero de filas a devolver.
El desplazamiento de la fila inicial es 0 (no 1):

UPDATE
UPDATE actualiza columnas de filas existentes de una tabla con nuevos valores. La
clusula SET indica las columnas a modificar y los valores que deben tomar. La
clusula WHERE, si se da, especifica qu filas deben ser actualizadas. Si no se
especifica, sern actualizadas todas ellas. Si se especifica la clusula ORDER BY, las
filas se modificarn en el orden especificado. La clusula LIMIT establece un lmite al
nmero de filas que se pueden actualizar.
La sentencia UPDATE soporta los modificadores siguientes:
Si se usa la palabra LOW_PRIORITY, la ejecucin de UPDATE se retrasar hasta
que no haya otros clientes haciendo lecturas de la tabla.
Si se especifica IGNORE, la sentencia UPDATE no se abortar si se producen
errores durante la actualizacin. Las filas con conflictos de claves duplicadas no
se actualizarn. Las filas para las que la actualizacin de columnas se puedan
producir errores de conversin se actualizarn con los valores vlidos ms
prximos.

El ejemplo muestra una fusin interna usando el operador coma, pero un UPDATE
multitabla puede usar cualquier tipo de fusin (join) permitido en sentencias SELECT,
como un LEFT JOIN.
Nota: no es posible usar ORDER BY o LIMIT con UPDATE multitabla.
Si se usa una sentencia UPDATE multitabla que afecte a tablas InnoDB para las que
haya definiciones de claves forneas, el optimizador MySQL procesar las tablas en un
orden diferente del de la relacin padre/hijo. En ese caso, la sentencia puede fallar y
deshar los cambios (roll back). En su lugar, se debe actualizar una tabla y confiar el
las capacidades de ON UPDATE que proporciona InnoDB que harn que las otras
tablas se modifiquen del modo adecuado.
Actualmente, no se puede actualizar una tabla y seleccionar desde la misma en una
subconsulta.

UPDATE nombre_columna SET campo_actualizar WHERE...


UPDATE con inner join por medio:
UPDATE nombretabla
SET micampo = valor
FROM nombretabla1 t1
INNER JOIN nombretabla2 t2 ON t1.campoid=t2.campoid
WHERE t1.algo = unvalor;

USE
La sentencia USE db_name indica a MySQL que use la base de datos db_name como

12
la base de datos por defecto (actual) en sentencias subsiguientes. La base de datos
sigue siendo la base de datos por defecto hasta el final de la sesin o hasta que se
use otra sentencia USE
USE nombre_DB

12

OTROS
Guardar y Cargar
mysql -u root scott< gorde.sql
mysqldump --opt scott -u root >gorde.sql

Triggers
create trigger triggerAcceso after delete on Acceso
for each row
begin
set @fecha=(select count(fecha) from historicaAcceso where fecha=old.fecha);<------importante
if (@fecha!=0) then
update historicaAcceso
set numAcceso=numAcceso+1 where fecha=old.fecha;
endif;
; tras cada instruccion
endif
OLD y NEW
AFTER y BEFORE
FOR EACH ROW: salta el trigger por cada fila afectada

También podría gustarte