SQL

Introduction to SQL Language

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
SQL por Mind Map: SQL

1. CONSULTAS DE ACCIÓN

1.1. COMANDOS DDL y DML

1.1.1. CREACION DE TABLA (CREATE)

1.1.1.1. EN ACCESS

1.1.1.1.1. SELECT * INTO CLIENTES_MADRID FROM CLIENTES WHERE poblacion="MADRID"

1.1.1.2. EN MYSQL

1.1.1.2.1. CREATE TABLE CLIENTES_MADRID SELECT * FROM CLIENTES WHERE poblacion="Madrid"

1.1.2. ACTUALIZACION (UPDATE)

1.1.2.1. UPDATE productos SET PRECIO=PRECIO+10 WHERE SECCION="DEPORTES"

1.1.2.2. UPDATE productos SET seccion="DEPORTIVOS" WHERE seccion="DEPORTES"

1.1.3. ELIMINACIÓN (DELETE)

1.1.3.1. DELETE FROM CLIENTES WHERE poblacion= "Madrid"

1.1.3.2. DELETE FROM productos WHERE seccion="deportivos" AND Precio BETWEEN 50 AND 100

1.2. DATOS ANEXADOS (INSERT INTO, SELECT INTO)

1.2.1. SELECT INTO

2. PRODUCTOS_PEDIDOS

3. CONSULTAS MULTITABLA

3.1. Unión externa

3.1.1. Union

3.1.1.1. Requisitos

3.1.1.1.1. Tablas de MISMO NUMERO de COLUMNAS

3.1.1.1.2. RESULTADO con MISMO NUMERO de columnas las dos SELECT

3.1.1.1.3. tipos de datos compatibles (Texto y numerico) NO es compatible

3.1.1.1.4. Las tablas pueden tener nombres diferentes

3.1.1.2. FUSION en UNA UNICA TABLA

3.1.1.2.1. ¿Qué NOMBRES tienen las COLUMNAS?

3.1.1.2.2. SELECT * FROM productos where seccion="deportes" UNION SELECT * FROM productosNuevos WHERE seccionNueva="deportes riesgo"

3.1.1.3. ¿Cuándo NO se repiten registros duplicados?

3.1.1.3.1. TODAS LAS COLUMNAS tienen que tener los mismos valores.

3.1.2. Union All

3.1.2.1. SI se repite un registro (TODOS LAS COLUMNAS IGUALES), lo muestra DOS VECES

3.1.3. Except

3.1.4. Intersect

3.1.5. Minus

3.2. Unión interna

3.2.1. Requisito

3.2.1.1. TABLAS GUARDAN RELACION ENTRE SI: Ej. un cliente en TABLA 1 puede hacer uno o varios PEDIDOS en TABLA 2, un pedido en TABLA3 puede tener CODIGO que tenga descripcion en TABLA 4

3.2.2. Inner join

3.2.2.1. Refleja INFORMACION COMUN: Clientes cuya informacion existe en las dos tablas (INTERSECCION)

3.2.2.2. CONCATENA LAS COLUMNAS

3.2.2.3. CLAUSULA ON

3.2.2.3.1. Define la union a traves del campo que relaciona ambas tablas

3.2.3. Left join

3.2.3.1. Registros comunes además los de la Tabla 1

3.2.3.1.1. ¿que columnas se muestran?

3.2.4. Right join

3.2.4.1. Registros comunes y todos los de la tabla 2 (derecha)

3.2.4.1.1. ¿que columnas se muestran?

4. CONSULTAS DE CALCULO/ CAMPO CALCULADO:

4.1. Hay un campo nuevo (el resultado de un calculo) que no existe en la tabla

4.1.1. CALCULOS TIPO NUMERICO

4.1.1.1. Operaciones +,-,*, /

4.1.1.1.1. SELECT articulo, sección,precio, precio*1.21 FROM productos

4.1.1.1.2. SELECT articulo, sección,precio, precio+(precio*0.21)

4.1.1.1.3. Se pueden combinar

4.1.1.1.4. SELECT articulo, sección,precio, precio*1.21 AS precio_con_IVA FROM productos

4.1.1.2. Round(Numero, Num_decimales)

4.1.1.2.1. Redondea el numero de decimales de un resultado

4.1.1.2.2. Ej. SELECT articulo, round(precio*1.21, 2) AS precio_con_iva FROM productos

4.1.2. Concat()

4.1.3. Calculos con TIPO FECHA

4.1.3.1. Datediff()

4.1.3.2. Now()

4.1.3.2.1. Formato resultado: yyyy-mm-dd hh:mm:ss

4.1.3.3. Date_Format()

4.1.3.3.1. Date_format(Now(), "%D-%M")

5. Introducción

5.1. S.Q.L

5.1.1. Structured Queried Language (Sequel)

5.1.2. lenguaje para interactuar con BBDD Relacionales

5.1.2.1. Usuario - consulta SQL

5.1.2.1.1. Gestor de BBDD

5.1.3. Estándar SQL (Todos los gestores de BBDD)

5.1.3.1. ANSI

5.1.3.2. ISO

5.2. Instrucción SQL

5.2.1. Permite Obtener o Modificar Información de BBDD

5.2.2. Comandos SQL

5.2.2.1. DDL

5.2.2.1.1. Crear y Modificar Estructura BBDD

5.2.2.2. DML

5.2.2.2.1. Select

5.2.2.2.2. Insert

5.2.2.2.3. Update

5.2.2.2.4. Delete

5.2.2.3. DCL

5.2.2.3.1. Grant

5.2.2.3.2. Revoke

5.2.2.4. TCL

5.2.2.4.1. Commit

5.2.2.4.2. Rollback

5.2.2.4.3. SavePoint

5.2.3. Cláusulas (EN ORDEN DE ESCRITURA EN LA SENTENCIA SQL)

5.2.3.1. From

5.2.3.1.1. Qué Tabla

5.2.3.2. Where

5.2.3.2.1. Qué Condición

5.2.3.3. Group By

5.2.3.3.1. Agrupa los registros según columna x

5.2.3.4. Order By

5.2.3.4.1. Ordena resultados según columna x

5.2.3.5. Having

5.2.3.5.1. Condición que aplica a 1 grupo

5.2.4. Operadores (OPCIONAL)

5.2.4.1. Lógicos

5.2.4.1.1. AND

5.2.4.1.2. OR

5.2.4.1.3. NOT

5.2.4.2. De Comparación

5.2.4.2.1. <> (Distinto a )

5.2.4.2.2. <= (Menor o igual que

5.2.4.2.3. < (Menor que)

5.2.4.2.4. > (Mayor que)

5.2.4.2.5. = (Igual a )

5.2.4.2.6. BETWEEN (Rangos de valores

5.2.4.2.7. IN (en una columna)

5.2.4.2.8. LIKE (Cómo, con patrones *, ?)

5.2.5. Funciones (OPCIONAL)

5.2.6. Sentencias SQL Básicas

5.2.6.1. BASES DE DATOS

5.2.6.2. [COMANDO: Select] columna/s [CLAUSULA: from] tabla [CLAUSULA: WHERE] columna x [OPERADOR: =] valor 1 [OPERATOR: OR] columna y [OPERADOR: =] valor 2 [OPERADOR: AND] columna z [OPERADOR: =] valor 3

5.2.6.2.1. Ej: SELECT nombrearticulo, seccion, precio FROM productos WHERE sección="CERAMICA" OR sección="DEPORTES"

5.2.6.2.2. SELECT * FROM productos WHERE sección= deportes AND pais =usa

5.2.6.2.3. SELECT * FROM productos WHERE origen = Usa AND precio > 100

5.2.7. EJEMPLOS

5.2.7.1. BBDD Tablas

5.2.7.1.1. CLIENTES

5.2.7.1.2. PEDIDOS

5.2.7.1.3. PRODUCTOS

5.2.7.2. Ejemplo SENTENCIA SQL: Mostrar todos los Clientes de la tabla CLIENTES

5.2.7.2.1. 1: COMANDO

5.2.7.2.2. 2: CAMPOS DE LA TABLA

5.2.7.2.3. 3: CLAUSULA:

5.2.7.2.4. 4: TABLA

5.2.7.2.5. Sentencia SQL Completa

6. Tipos de datos / SQLs

6.1. NUMERICO

6.1.1. DECIMAL (entero)

6.1.2. DOUBLE

6.1.3. REAL

6.1.4. COMA DECIMAL = PUNTO, Ej. 1.21

6.2. DATE (fecha)

6.3. BINARY (binario)

6.4. TEXTO

6.4.1. VARCHAR

6.5. EJEMPLOS SQL

6.5.1. SELECT * FROM productos WHERE fecha BETWEEN '2000-03-01' AND '2000-04-30'

6.5.2. SELECT * FROM productos WHERE fecha>= '2000-03-01' AND fecha <='2000-04-30'

7. CLAUSULA " ORDER BY"

7.1. Cómo Ordena?

7.1.1. CAMPO NUMERICO

7.1.1.1. Por defecto: MENOR A MAYOR

7.1.1.2. Añado DESC: DESCENDENTE

7.1.2. CAMPO DE TEXTO

7.1.2.1. ALFABETICAMENTE

7.2. ORDENAR 2 NIVELES

7.2.1. Primero NIVEL 1 (columna 1) y segundo: NIVEL 2 (Columna 2)

7.2.2. Ejemplo: SELECT * FROM productos WHERE seccion=deportes OR seccion=Ceramica ORDER BY seccion, precio

7.2.3. Ejemplo: SELECT * FROM productos WHERE seccion=deportes OR seccion=Ceramica ORDER BY seccion DESC, precio DESC

7.3. ORDENAR 3 NIVELES

7.3.1. ORDER BY coumna1, columna2, columna3

8. CLAUSULA GROUP BY

8.1. Funciones de Agregado

8.1.1. SUM

8.1.1.1. Suma valores de un campo

8.1.1.2. Ejemplo: SUMA de precio POR secciones

8.1.1.2.1. SELECT seccion, SUM(precio) FROM productos GROUP BY seccion.

8.1.2. AVG

8.1.2.1. PROMEDIO de una columna

8.1.2.1.1. SELECT

8.1.3. COUNT

8.1.3.1. Cuántos hay

8.1.3.1.1. SELECT POBLACION, COUNT(cliente) AS num_cliente

8.1.3.1.2. Usar sobre columnas que no tengan registros vacios

8.1.4. MAX

8.1.4.1. maximo de un campo

8.1.4.1.1. Ejemplo: SELECT seccion, max(Precio) AS precio_mas alto GROUP BY seccion

8.1.4.1.2. SELECT seccion, max(precio) AS precio_mas_alto FROM productos WHERE seccion="Ceramica" GROUP BY seccion

8.1.5. MIN

8.1.5.1. Minimo de un campo

8.2. ALIAS: Clausula AS

8.2.1. AS = nombre al resultado de agregado, permite ordenar por resultado de agregado

8.2.1.1. SELECT seccion, SUM(precio) AS suma_precios FROM productos GROUP BY seccion ORDER BY suma_precios

8.2.2. Muestra un nuevo campo en el resultado que NO EXISTE en la tabla original

8.3. HAVING: Sustituye al WHERE en agrupaciones

8.3.1. SELECT seccion, AVG(precio) AS media_articulos from productors GROUP BY seccion HAVING seccion='deportes' OR seccion="ceramica"

9. SUBCONSULTAS

9.1. Ej. SELECT dentro de otro SELECT

9.1.1. Ejemplo : Obtener Media y usarlo como filtro

9.1.2. SELECT precio avg(precio) from productos

9.2. subconsulta escalonada

9.2.1. EL SELECT Interno devuelve un ÚNICO registro o un valor

9.2.1.1. Subconsulta: MEDIA del precio de todos los registros de una columna

9.2.1.1.1. SELECT AVG(precio) FROM productos

9.2.1.2. SELECT articulo from productos where Precio > ( Select avg(precio) from productos )

9.3. Subconsulta de LISTA

9.3.1. El SELECT interno devuelve una lista de registros

9.3.1.1. PREDICADO ALL

9.3.1.1.1. Ejemplo 1: El precio productos superior a todos los de la subconsulta (mayor a el maximo)

9.3.1.2. PREDICADO ANY

9.3.1.2.1. Ejemplo 2: precio mayor a cualquiera de los registros

9.3.1.3. PREDICADO IN

9.3.1.3.1. SELECT CodArticulo, precio FROM producros WHERE articulo IN (SELECT CodArticulo FROM productospedidos WHERE unidadesVendidas >20)

9.3.1.4. PREDICADO NOT IN

9.3.1.4.1. Ejemplo, clientes que no han hecho pedidos

9.4. Subconsulta

9.4.1. Predicado IN

9.4.1.1. SELECT * FROM productos WHERE CodArticulo FROM

9.4.1.2. Informacion de dos TABLAS (Tabla precio y tabla de los articulos pedidos)

9.4.1.2.1. SELECT articulo, precio FROM productos WHERE CodArticulo IN SELECT

9.5. SubConsulta + Consulta Multitabla

9.6. SUBCONSULTA ESCALONADA

9.7. COMPARA la CONSULTA INTERNA con la CONSULTA PADRE (ver OPERADORES LOGICOS)