Resumen MySQL
Resumen MySQL
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
FUNCIONES
AVG
Devuelve el valor medio de expresión: AVG(expr)
CONCAT
Devuelve la cadena resultante de concatenar los argumentos. Devuelve NULL si
alguno de los argumentos es NULL. Puede haber más de 2 argumentos.
P.ej: CONCAT(empno,’ cobra ‘, sal); que nos daría una frase hecha diciendo lo que
cobra cada tío
SUBSTR
Devuelve la cadena de entre las posiciones del String que tu elijas: Substr
(‘String’,1,3) te devolvería ‘Str’
LENGTH
Devuelve la cantidad de caracteres de la cadena: Length(‘String’); te devolvería 6
ROUND
Devuelve un número redondeado con tantos decimales como le pongas:
Round(45.926,2); te devolvería 45.93
CURRENT_DATE()
Devuelve la fecha actual como un valor en el formato 'AAAA-MM-DD' o AAAAMMDD,
dependiendo de si la función se usa en un contexto de cadena o numérico:
CURRENT_DATE()
DAY()
Devuelve el día 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 año 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 función se usa en un contexto de cadena o numérico:
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 minúsculas de acuerdo
con el mapa de caracteres actual: LOWER(expr)
12
UPPER()
Devuelve la cadena en mayúsculas: UPPER(expr)
IFNULL()
Si expr1 no es NULL, IFNULL() devuelve expr1, en caso contrario, devuelves expr2.
IFNULL() devuelve un valor numérico o una cadena, dependiendo del contexto en el
que se use: IFNULL(comm,0);
MAX/MIN()
Devuelve el valor mínimo o máximo de expr. MIN() y MAX() pueden tomar como ar-
gumento una cadena, en ese caso devolverán el valor de la cadena mínima o máxima.
COUNT()
Cuenta el número de atributos que tiene por los requisitos que le has pedido :
Count (empno) from emp; te devolvería la cantidad de empleados de la tabla emp
SUM()
Devuelve la suma de cada valor numérico de los atributos que se pide:
Count (sal) from emp; te devolvería el total de los salarios pagados a los empleados
CLAUSULAS
GROUP BY
Sirve para agrupar las consultas, no solo puede hacerse con un campo sino que
también se puede con dos… siendo el primero la primera agrupación 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
estás buscando:
Where deptno=20
HAVING
Lo mismo que el where pero esta se usa cuando se quiere poner la condición a algo
que tiene un a funcion:: Having avg(sal)>30
ORDER BY
Sirve para ordenar las consultas (NO AGRUPAR). Una característica de esta es que
vaya acompañado por ASC o des con las cuales nos las ordenarían de menor a mayor
(ASC) o de mayor a menor (DESC).
*Para sacar datos como máximos y mínimos una posibilidad es usar esta función
convinada con Limit:
Select nombre from persona
Group by nombre
Order by sal Desc
Limit 1.... Te devolvería el que más 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 devolvería un único valor
LIKE
Te permite buscar los resultados con el carácter 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 opción para no hacer
LeftJoin haciendo not in:
Select ename from emp
Where ename not in (select ename in dept); Te dice los tíos que no están en ningún
departamento
ANY
La palabra clave ANY , que debe seguir a un operador de comparación, significa
“return TRUE si la comparación es TRUE para ANY (cualquiera) de los valores en la
columna que retorna la subconsulta
12
ALL
La palabra ALL, que debe seguir a un operador de comparación, significa “return
TRUE si la comparación es TRUE para ALL todos los valores en la columna que retorna
la subconsulta.”
EXISTS
Si una subconsulta no retorna ningún registro, entonces EXISTS subquery es TRUE, y
NOT EXISTS subquery es FALSE.
¿Qué clase de tienda hay en una o más 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 añadir
o eliminar columnas, crear y destruir índices, cambiar el tipo de una columna
existente o renombrar columnas o la propia tabla. También es posible modificar el
comentario y el tipo de la tabla.
Diferentes posibilidades:
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 TABLE
Crea una tabla con el nombre dado. Se debe poseer el privilegio CREATE para la tabla.
Las reglas para nombres válidos de tablas se pueden ver aquí. Por defecto, la tabla se
12
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 contraseña a la cuenta con la cláusula opcional IDENTIFIED.
CREATE VIEW
Esta sentencia crea una vista nueva o reemplaza una existente si se incluye la
cláusula 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 específica, indíquela 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.
DELETE
DELETE elimina columnas desde "table_name" que satisfagan la condición dada por la
"where_definition", y devuelve el número de registros borrados.
Si se usa una sentencia DELETE sin cláusula WHERE, todas las filas serán borradas
DESCRIBE O DESC
Proporciona información sobre las columnas de una tabla. col_name puede ser un
nombre de columna o una cadena que contenga los caracteres comodín SQL '%' and
'_' para obtener salida sólo 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 TABLE
DROP TABLE elimina una o más 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 USER
La sentencia DROP USER elimina una o más 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 máquina del nombre de la cuenta
corresponden a los valores de las columnas User y Host del registro de la tabla user
para la cuenta.
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.
INSERT
Inserta nuevas filas en una tabla existente. Los formatos INSERT ... VALUES e INSERT
... SET, insertas filas basándose en los valores especificados explícitamente. El formato
The INSERT ... SELECT inserta filas seleccionadas de otra tabla o tablas. El formato
INSERT ... VALUES con una lista de múltiples valores
INSERT...SELECT
Con INSERT ... SELECT, se pueden insertar rápidamente muchas filas en una tabla
desde otra u otras tablas.
RENAME TABLE
SELECT
La cláusula LIMIT puede ser usada para limitar a que el número de filas devuelto por
la sentencia SELECT. LIMIT toma uno o dos argumentos numéricos, que deben ser
constantes enteras. Con dos argumentos, el primero especifica el desplazamiento de
la primera fila a devolver, el segundo especifica el máximo número 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
cláusula SET indica las columnas a modificar y los valores que deben tomar. La
cláusula WHERE, si se da, especifica qué filas deben ser actualizadas. Si no se
especifica, serán actualizadas todas ellas. Si se especifica la cláusula ORDER BY, las
filas se modificarán en el orden especificado. La cláusula LIMIT establece un límite al
número de filas que se pueden actualizar.
La sentencia UPDATE soporta los modificadores siguientes:
• Si se usa la palabra LOW_PRIORITY, la ejecución 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 actualización. Las filas con conflictos de claves duplicadas no
se actualizarán. Las filas para las que la actualización de columnas se puedan
producir errores de conversión se actualizarán con los valores válidos más
próximos.
El ejemplo muestra una fusión interna usando el operador coma, pero un UPDATE
multitabla puede usar cualquier tipo de fusión (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 foráneas, el optimizador MySQL procesará las tablas en un
orden diferente del de la relación 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 harán 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 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
USE nombre_DB
12
OTROS
Guardar y Cargar
Triggers