0% encontró este documento útil (0 votos)
13 vistas13 páginas

Comandos SQL: DDL, DML y DCL

El documento proporciona una introducción a SQL, describiendo su estructura y comandos básicos, incluyendo DDL para definir bases de datos y tablas, DML para manipular datos, y DCL para controlar el acceso. Se explican las cláusulas y funciones utilizadas en consultas, así como el manejo de múltiples tablas mediante JOINS y UNION. Además, se menciona la herramienta DB Fiddle para ejecutar código SQL en línea.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
13 vistas13 páginas

Comandos SQL: DDL, DML y DCL

El documento proporciona una introducción a SQL, describiendo su estructura y comandos básicos, incluyendo DDL para definir bases de datos y tablas, DML para manipular datos, y DCL para controlar el acceso. Se explican las cláusulas y funciones utilizadas en consultas, así como el manejo de múltiples tablas mediante JOINS y UNION. Además, se menciona la herramienta DB Fiddle para ejecutar código SQL en línea.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

TEORÍA SQL

Base de datos = carpeta con documentos.


Tabla = uno de esos documentos con datos organizados en filas y columnas.
SQL lenguaje de programación.
SQL Server, MySQL,… programas que ejecutan SQL.

1. DDL
Existen 3 tipos de comandos en SQL 2. DML
3. DCL

[Link] definen la estructura de la base de datos: crear (CREATE),


modificar (ALTER) o eliminar tablas (DROP).

1. CREATE DATABASE
Crea una nueva base de datos.
Sintaxis: CREATE DATABASE nombre_base;

2. USE
Selecciona la base de datos con la que vas a trabajar (varía según el gestor).
Sintaxis: USE nombre_base;

3. CREATE TABLE
Crea una tabla con columnas, tipos de datos y restricciones.
Sintaxis: CREATE TABLE nombre_tabla ( columna1 tipo_dato restricciones,
columna2 tipo_dato restricciones, ... );
EJEMPLO

CREATE TABLE Libros ( id_libro INT PRIMARY KEY, titulo VARCHAR(100) NOT
NULL, autor VARCHAR(100), anio_publicacion INT, paginas INT, fecha_ingreso
DATE );

4. ALTER TABLE

Modifica una tabla existente (añadir o eliminar columnas).

Sintaxis: ALTER TABLE nombre_tabla ADD nueva_columna tipo;

ALTER TABLE nombre_tabla DROP COLUMN nombre_columna;

5. DROP TABLE

Elimina completamente una tabla (estructura + datos).

Sintaxis: DROP TABLE nombre_tabla;

Tipos de datos más usados Restricciones comunes


TIPO DESCRIPCIÓN RESTRICCIÓN SIGNIFICADO
INT Número entero PRIMARY KEY Identificador único
FLOAT Número decimal NOT NULL No se puede quedar vacío
VARCHAR(n) Texto de hasta n caracteres UNIQUE No se repite
DATE Fecha (YYYY-MM-DD) DEFAULT valor Valor por defecto si no se indica otro

[Link] manipula los datos dentro de las tablas: insertar (INSERT INTO),
actualizar (UPDATE), borrar (DELETE), consultas (SELECT).

1. INSERT INTO

Añade nuevos registros (filas) a una tabla


Sintaxis: INSERT INTO nombre_tabla (columna1, columna2, ...)

VALUES (valor1, valor2, ...);

Se puede insertar varias filas a la vez separándolas por comas.

EJEMPLO

INSERT INTO Estudiantes (id, nombre, edad)

VALUES (1, 'Lucía', 21),

(2, 'Carlos', 22);

2. SELECT

Consulta o visualiza datos almacenados

Sintaxis: SELECT columna1, columna2

FROM nombre_tabla

WHERE condición;

EJEMPLO

SELECT * FROM Estudiantes;

SELECT nombre FROM Estudiantes WHERE edad > 21;

3. UPDATE

Modifica valores existentes

Sintaxis: UPDATE nombre_tabla

SET columna1 = nuevo_valor1, columna2 = nuevo_valor2


WHERE condición;
¡OJO! Siempre con WHERE, si no actualizará todas las filas.
UPDATE Estudiantes
SET edad = 23
WHERE id = 2;
4. DELETE

Elimina registros (filas) de la tabla

Sintaxis: DELETE FROM nombre_tabla

WHERE condición;

¡OJO! También requiere WHERE si no quieres borrar toda la tabla

EJEMPLO

DELETE FROM Estudiantes

WHERE id = 1;

Cláusulas
Las cláusulas son condiciones de modificación utilizadas para definir los datos
que desea seleccionar o manipular.
1. FROM

¿Qué hace?
Indica de qué tabla se van a extraer los datos.

EJEMPLO
SELECT nombre FROM empleados;
→ Selecciona la columna nombre de la tabla empleados.

2. WHERE

¿Qué hace?
Filtra los registros según una condición. Solo devuelve los que cumplen
esa condición.

EJEMPLO:
SELECT * FROM empleados WHERE edad > 30;
→ Devuelve solo los empleados mayores de 30 años.

3. GROUP BY
¿Qué hace?
Agrupa los datos que tienen el mismo valor en una o más columnas,
generalmente para usar funciones de agregación (COUNT, SUM, AVG,
etc.).

EJEMPLO
SELECT departamento, COUNT(*)
FROM empleados
GROUP BY departamento;
→ Agrupa por departamento y cuenta cuántos empleados hay en cada
uno.

4. HAVING

¿Qué hace?
Filtra los grupos creados por GROUP BY.
(No se usa para filas individuales; eso lo hace WHERE).

EJEMPLO
SELECT departamento, COUNT(*)
FROM empleados
GROUP BY departamento
HAVING COUNT(*) > 5;
→ Muestra solo los departamentos con más de 5 empleados.

5. ORDER BY

¿Qué hace?
Ordena los resultados.
Por defecto es ascendente (ASC), pero puedes usar descendente (DESC).

EJEMPLO
SELECT nombre, edad
FROM empleados
ORDER BY edad DESC;
→ Muestra los empleados ordenados por edad, de mayor a menor.
Resumen del orden típico de las cláusulas

SELECT columnas

FROM tabla

WHERE condición

GROUP BY columnas

HAVING condición_agregada

COMANDOS (SIEMPRE VAN DENTRO DE SELECT)

1. AVG() — Promedio

Calcula el valor medio (promedio) de una columna numérica.

EJEMPLO

SELECT AVG(salario) FROM empleados;

→ Devuelve el salario promedio de todos los empleados.

2. MAX() — Valor máximo

Devuelve el valor más alto de una columna.

EJEMPLO
SELECT MAX(edad) FROM empleados;

→ Devuelve la edad del empleado más mayor.

3. MIN() — Valor mínimo

Devuelve el valor más bajo de una columna.

EJEMPLO
SELECT MIN(edad) FROM empleados;
→ Devuelve la edad del empleado más joven.

4. COUNT() — Contar registros

Cuenta cuántas filas hay en total o cuántos valores no nulos tiene una columna.

EJEMPLO
SELECT COUNT(*) FROM empleados;

→ Cuenta todos los empleados.

EJEMPLO

SELECT COUNT(salario) FROM empleados;

→ Cuenta cuántos empleados tienen salario no nulo.

5. SUM() — Suma total

Suma todos los valores de una columna numérica.

EJEMPLO
SELECT SUM(salario) FROM empleados;

→ Devuelve la suma total de todos los salarios.

💡 Regla clave:
Cuando use funciones de agregación (MAX, MIN, AVG, COUNT, etc.), cualquier otra
columna que quiera mostrar debe ir en GROUP BY o usar una subconsulta / ORDER BY
con LIMIT.

OPERADORES

AND: es y. Evalúa dos condiciones y devuelve un valor de verdad sólo si ambas son
ciertas.

OR: es o. Evalúa dos condiciones y devuelve un valor de verdad si alguna de las dos es
cierta.

NOT: negación lógica. Devuelve el valor contrario de la expresión.


< Menor que >= Mayor o igual

> Mayor que BETWEEN Intervalo

<> Distinto de LIKE Comparación

<= Menor o igual que In Especificar

MANEJO DE VARIAS TABLAS

1. JOINS

JOIN DESCRIPCIÓN SINTAXIS


INNER Devuelve solo las filas que tienen SELECT * FROM A INNER
JOIN coincidencia en ambas tablas. JOIN B ON [Link] = B.a_id;
LEFT Devuelve todas las filas de la tabla SELECT * FROM A LEFT
JOIN izquierda y las que coinciden de la JOIN B ON [Link] = B.a_id;
derecha
RIGHT Devuelve todas las filas de la tabla SELECT * FROM A RIGHT
JOIN derecha y las que coinciden de la JOIN B ON [Link] = B.a_id;
izquierda
FULL Devuelve filas coincidentes y no SELECT * FROM A FULL
JOIN coincidentes de ambas tablas JOIN B ON [Link] = B.a_id;`

SINTAXIS GENERAL DEL JOIN

SELECT columnas
FROM tabla1

[INNER|LEFT|RIGHT|FULL] JOIN tabla2

ON [Link] = [Link];

Ejemplo práctico con dos tablas

Tablas:

 empleados (id, nombre, departamento_id)


 departamentos (id, nombre)

Consulta para obtener el nombre del empleado junto con su departamento:

SELECT [Link], [Link] AS departamento


FROM empleados
INNER JOIN departamentos ON empleados.departamento_id =
[Link];

¿Y si quiero combinar más tablas?

Solo agregas más JOIN:

SELECT [Link], [Link] AS departamento, [Link] AS proyecto


FROM empleados e
INNER JOIN departamentos d ON e.departamento_id = [Link]
INNER JOIN proyectos p ON e.proyecto_id = [Link];

Puedes usar alias para abreviar nombres de tablas y que las consultas sean más
claras:

SELECT [Link], [Link]


FROM empleados AS e
JOIN departamentos AS d ON e.departamento_id = [Link];
2. UNION y UNION ALL

¿Qué hacen?

 Ambas combinan los resultados de dos o más consultas SELECT en una sola
tabla
 Se usan cuando quieres juntar filas de distintas consultas que tienen el mismo
número y tipo de columnas.

Diferencias principales
Comando ¿Qué hace con filas duplicadas?

UNION Elimina filas duplicadas, dejando solo filas únicas.

UNION ALL Devuelve todas las filas, incluidas las duplicadas.

Requisitos para usar UNION o UNION ALL

 Las consultas deben tener el mismo número de columnas.


 Las columnas deben ser del mismo tipo o compatibles en orden.

Sintaxis básica
SELECT columna1, columna2 FROM tabla1
UNION [ALL]
SELECT columna1, columna2 FROM tabla2;

Ejemplos
Usando UNION (sin duplicados)
SELECT nombre FROM empleados
UNION
SELECT nombre FROM clientes;

→ Devuelve la lista de nombres únicos que están en empleados o en clientes.


Usando UNION ALL (con duplicados)
SELECT nombre FROM empleados
UNION ALL
SELECT nombre FROM clientes;

→ Devuelve todos los nombres, incluso si se repiten entre empleados y clientes.

¿Cuándo usar cada uno?

 Usa UNION si quieres evitar duplicados y te interesa solo valores únicos.


 Usa UNION ALL si quieres todos los datos, y no te importa que haya duplicados
(es más rápido que UNION).

DIREFENCIAS ENTRE JOINS Y UNION/UNION ALL (TODOS MANEJAN VARIAS TABLAS)

Característica | JOIN | UNION / UNION ALL

¿Qué hace? | Combina **columnas** de dos o más tablas, uniendo filas relacionadas. |
Combina **filas** de dos o más resultados `SELECT`. |

| 🧩 ¿Cómo se combinan? | Horizontalmente (añade columnas) |


Verticalmente (añade filas) |

¿Requiere relación? | Sí, normalmente por una clave común (`ON columna = columna`) |
No necesariamente. |

¿Filas duplicadas? | Las puede mostrar si están relacionadas. | `UNION`:


elimina duplicados.<br>`UNION ALL`: los conserva. |

¿Columnas iguales? | No. Cada tabla puede tener columnas distintas. | Sí. Todas
las consultas deben tener **el mismo número y tipo de columnas**. |

¿Ejemplo típico? | Mostrar datos combinados de empleados y sus departamentos. |


Unir listas de empleados y de clientes en una lista común.

✅ ¿Qué es DB Fiddle?

Es una plataforma online para escribir y ejecutar código SQL. Puedes:

 Crear bases de datos.


 Crear tablas.
 Insertar datos.
 Hacer consultas.
 Ver resultados inmediatamente.

¿Cómo está organizada la pantalla?

Cuando entras en [Link]:

🔹 Parte izquierda: Schema SQL

Aquí escribes:

 CREATE DATABASE (si lo necesitas)


 CREATE TABLE
 INSERT INTO
Es decir, todo lo necesario para preparar tus datos.

🔸 Ejemplo:

sql
CopiarEditar
CREATE TABLE alumnos (
id INT,
nombre VARCHAR(50)
);

INSERT INTO alumnos VALUES (1, 'Ana'), (2, 'Luis');

🔹 Parte derecha: Query SQL

Aquí escribes las consultas que quieres probar.

 SELECT, UPDATE, DELETE, JOIN, etc.

🔸 Ejemplo:

sql
CopiarEditar
SELECT * FROM alumnos;

▶️¿Cómo ejecutar el código?

1. Escribe el código en los dos paneles (izquierda: estructuras / derecha: consultas).


2. Haz clic en el botón “Run” (arriba a la derecha).
3. Abajo verás los resultados de tu consulta.
💡 Consejos útiles

 Puedes cambiar el tipo de base de datos (MySQL, PostgreSQL, etc.) arriba a la


izquierda.
 Puedes guardar tu trabajo con el botón Save (crea un enlace que puedes
compartir o volver a usar). Se muestra en la barra del navegador y lo copio y lo
guardo donde quiera. Para volver a usarlo lo pego en el navegador.
 Si haces cambios en el panel izquierdo, debes pulsar Run otra vez para que se
actualicen las tablas antes de consultar.

🧠 Ejemplo completo para probar

Schema SQL (izquierda):

CREATE TABLE estudiantes (


id INT,
nombre VARCHAR(50),
edad INT
);

INSERT INTO estudiantes VALUES


(1, 'Ana', 21),
(2, 'Luis', 22),
(3, 'María', 20);

Query SQL (derecha):

SELECT * FROM estudiantes WHERE edad > 20;


|

También podría gustarte