SQL Avanzado Flashcards
Crear una tabla o vista x base de datos si no existe ya, con los encabezados a, b, c
CREATE table IF NOT EXISTS x (a, b, c)
o
CREATE view IF NOT EXISTS x (a, b, c)
Actualizar la columna ah con el valor a, para la fila con la columna bh con el valor b, de una tabla x base de datos
UPDATE x SET ah=’a’ WHERE bh=’b’;
Seleccionar todos los campos, de la fila con la columna ah con el valor a, de la tabla x base de datos
SELECT * FROM x WHERE ah=’a’;
Borrar la fila con la columna ah con el valor a, de la tabla x base de datos
DELETE FROM x WHERE ah=’a’;
Seleccionar las columnas ah bh, de las filas con el encabezado ch con valor c, de la tabla x base de datos
SELECT ah, bh FROM x WHERE ch=’c’;
Seleccionar todos los campos de la tabla x base de datos, ordenados ascendente por su columna ah
SELECT * FROM x ORDER BY ah;
Seleccionar todos los campos de la tabla x base de datos, ordenados alfabeticamente por su columna ah, ignorando mayusculas y minusculas
SELECT * FROM x ORDER BY ah COLLATE NOCASE;
Seleccionar todos los campos de la tabla x base de datos, ordenados descendente por su columna ah, y en caso de empate ordenados ascendente por su columna bh
SELECT * FROM x ORDER BY ah DESC, bh ASC;
ASC o en blanco
Seleccionar todos los campos de la tabla x base de datos, ordenados ascendente por su columna ah y su columna bh
SELECT * FROM x ORDER BY ah, bh;
Seleccionar las columnas ah, bh de la tabla x, ah de la tabla y base de datos, relacionando ambas tablas a traves de columna ch de tabla x y columna _bh de tabla y
SELECT x.ah, x.bh, y.ah FROM x JOIN y ON x.ch = y._bh;
JOIN e INNER JOIN es lo mismo
no es necesario poner . si no hay ambiguedad
Seleccionar todos los campos ah de las tablas x, y, z base de datos, relacionando x con y, y con z, a traves de columna bh de x con _ch de y, bh de y con _ch de z
SELECT z.ah, y.ah, x.ah FROM x
INNER JOIN y ON x.bh = y._ch
INNER JOIN z ON y.bh = z._ch;
Orden correcto sql de statements COLLATE, JOIN, ORDER BY, SELECT, WHERE
SELECT, JOIN, WHERE, ORDER BY, COLLATE
Seleccionar todos los campos de la tabla x base de datos, en los que la columna ah contenga a
SELECT * FROM x
WHERE x.ah LIKE ‘%a%’;
Se puede omitir x. si no hay ambiguedad
Seleccionar todos los campos de la tabla x base de datos, en los que la columna ah empiece por a
SELECT * FROM x
WHERE x.ah LIKE ‘a%’;
Se puede omitir x. si no hay ambiguedad
Borrar de la tabla x base de datos, las filas en que la columna ah cumple la condicion y
DELETE FROM x WHERE y;
Seleccionar todas las filas de la tabla x base de datos, en que la columna ah cumple la condicion y
SELECT * FROM x WHERE y;
Imprimir numero de filas de una tabla x base de datos
SELECT count(*) FROM x;
Seleccionar todos los campos de la columna ah sin duplicados, de la tabla o vista x base de datos
SELECT DISTINCT ah FROM x;
Contar todos los campos de la columna ah sin duplicados, de la tabla o vista x base de datos
SELECT count(DISTINCT ah) FROM x;
Seleccionar numero de ah con valor comun de bh de la tabla x
SELECT count(ah), bh
FROM x
GROUP BY bh;
Seleccionar numero de ah de cada bh de la tabla x, ordenada por ah descendiente
SELECT count(ah), bh
FROM x
GROUP BY bh
ORDER BY count(ah) DESC;
Seleccionar numero de ah de cada bh de la tabla x, con la condicion y
SELECT count(ah), bh
FROM x
GROUP BY bh
HAVING y;
Seleccionar numero de ah de cada bh de la tabla x, con la condicion y, ordenada por ah descendiente
SELECT count(ah), bh FROM x GROUP BY bh HAVING y ORDER BY count(ah) DESC;
Seleccionar media de ah, de la tabla x, con la condicion y
SELECT avg(ah)
FROM x
WHERE y;
Seleccionar suma de ah, de la tabla x, con la condicion y
SELECT sum(ah)
FROM x
WHERE y;
Seleccionar valor maximo en ah, de la tabla x, con la condicion y
SELECT max(ah)
FROM x
WHERE y;
Seleccionar valor minimo en ah, de la tabla x, con la condicion y
SELECT min(ah)
FROM x
WHERE y;
Crear un usuario x con contraseña y
CREATE USER x
IDENTIFIED BY y;
Seleccionar la expresion x con alias y, de la tabla z base de datos
SELECT x “y” FROM z;
Seleccionar la columna x, de la tabla y aliaz z base de datos
SELECT x FROM y z;
Seleccionar las columnas x y, de la tabla z, para mostrarlo todo junto en una sola columna, separadas por un espacio
SELECT x || ‘ ‘ || y FROM z;
```
En MySQL
SELECT concat_ws(‘ ‘, x, y) FROM z;
~~~
Seleccionar las columnas x y, de la tabla z, y ademas un nuevo campo w cuyos valores sean la media de x y
SELECT x, y, (x+y)/2 AS w FROM z;
Seleccionar valor absoluto de n, de la tabla x
SELECT abs(n) FROM x;
Seleccionar numero e elevado a n, de la tabla x
SELECT exp(n) FROM x;
Seleccionar n redondeado a la alta, de la tabla x
SELECT ceil(n) FROM x;
Seleccionar n redondeado a la baja, de la tabla x
SELECT floor(n) FROM x;
Seleccionar resto de n entre m, de la tabla x
SELECT mod(n,m) FROM x;
Seleccionar n elevado a m, de la tabla x
SELECT power(n,m) FROM x;
Seleccionar n redondeado a m decimales, de la tabla x
SELECT round(n,m) FROM x;
Seleccionar raiz cuadrada de n, de la tabla x
SELECT sqrt(n) FROM x;
Seleccionar n truncado a m decimales, de la tabla x
SELECT trunc(n,m) FROM x;
Seleccionar -1, 0 o 1, segun el signo de n, de la tabla x
SELECT sign(n) FROM x;
Seleccionar caracter n, de la tabla x
SELECT chr(n) FROM x;
Seleccionar valor ascii de y, de la tabla x
SELECT ascii(‘y’) FROM x;
Seleccionar y todo en minusculas, de la tabla x
SELECT lower(‘y’) FROM x;
Seleccionar y todo en mayusculas, de la tabla x
SELECT upper(‘y’) FROM x;
Seleccionar y solo primera en mayusculas, de la tabla x
SELECT initcap(‘y’) FROM x;
no en mysql
Seleccionar y con longitud n rellenando por la derecha con z, de la tabla x
SELECT rpad(‘y’, n, ‘z’) FROM x;
Seleccionar y con longitud n rellenando por la izquierda con z, de la tabla x
SELECT lpad(‘y’, n, ‘z’) FROM x;
Seleccionar y sustituyendo z por w, de la tabla x
SELECT replace(‘y’, ‘z’, ‘w’) FROM x;
Seleccionar y a partir de la posicion n, durante m caracteres, de la tabla x
SELECT substr(‘y’, n, m) FROM x;
Seleccionar longitud de y, de la tabla x
SELECT length(‘y’) FROM x;
Seleccionar y sin espacios en blanco innecesarios, de la tabla x
SELECT trim(‘y’) FROM x;
Seleccionar y sin espacios en blanco a la izquierda, de la tabla x
SELECT ltrim(‘y’) FROM x;
Seleccionar y sin espacios en blanco a la derecha, de la tabla x
SELECT rtrim(‘y’) FROM x;
Seleccionar posicion en que se encuentra z dentro de y a partir de la posicion n apareciendo m veces, de la tabla x
SELECT instr(‘y’, ‘z’, n, m) FROM x;
mysql solo primeros 2 parametros
Seleccionar fecha actual del sistema, de la tabla x
SELECT sysdate FROM x;
o en mysql
SELECT curdate() FROM x;
Seleccionar fecha y/u hora actual del sistema, de la tabla x
SELECT systimestamp FROM x;
o en mysql
SELECT curtime() FROM x;
Juntar dos consultas en una, sin filas duplicadas
SELECT 1 UNION SELECT 2;
Juntar dos consultas en una, solo con las filas coincidentes
SELECT 1 INTERSECT SELECT 2;
Juntar dos consultas en una, restando los resultados de la segunda a la primera
SELECT 1 MINUS SELECT 2;
Juntar dos consultas en una, excluyendo filas coincidentes (2)
(SELECT 1 MINUS SELECT 2) UNION (SELECT 2 MINUS SELECT 1);
o
(SELECT 1 UNION SELECT 2) MINUS (SELECT 2 INTERSECT SELECT 2);
Seleccionar columnas ah bh de la tabla x, en que bh sea menor que otra seleccion de bh de tabla x en la que ah = ‘a’
SELECT ah, bh FROM x
WHERE bh <
-> (SELECT bh FROM x
-> WHERE ah = ‘a’);
Seleccionar columna ah de la tabla x, en que ah sea mayor que cualquier elemento de la consulta y
SELECT ah FROM x
WHERE ah > ANY
-> (y);
Seleccionar columna ah de la tabla x, en que ah sea mayor que todos los elementos de la consulta y
SELECT ah FROM x
WHERE ah > ALL
-> (y);