0% encontró este documento útil (0 votos)
2 vistas8 páginas

SQL 1

El documento detalla los comandos SQL fundamentales, incluyendo DDL, DML, DCL y TCL, así como operaciones de conjunto y funciones específicas. Se explican las estructuras para crear bases de datos, tablas, insertar, actualizar y eliminar datos, y realizar consultas complejas con joins y subconsultas. También se abordan temas como índices, vistas, procedimientos almacenados y funciones de cadena y fecha.

Cargado por

Ciadel
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 PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
2 vistas8 páginas

SQL 1

El documento detalla los comandos SQL fundamentales, incluyendo DDL, DML, DCL y TCL, así como operaciones de conjunto y funciones específicas. Se explican las estructuras para crear bases de datos, tablas, insertar, actualizar y eliminar datos, y realizar consultas complejas con joins y subconsultas. También se abordan temas como índices, vistas, procedimientos almacenados y funciones de cadena y fecha.

Cargado por

Ciadel
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 PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 8

1.

COMANDOS DDL (Data Definition Language)


CREATE DATABASE
Crea una nueva base de datos.

CREATE DATABASE nombre_base_datos;

CREATE TABLE
Crea una nueva tabla con columnas y restricciones.

CREATE TABLE nombre_tabla (


columna1 tipo_dato [restricciones],
columna2 tipo_dato [restricciones],
...
[CONSTRAINT nombre_restriccion tipo_restriccion]
);

Tipos de datos comunes:

INT , INTEGER - Números enteros


VARCHAR(n) - Cadenas de texto variable hasta n caracteres
CHAR(n) - Cadenas de texto fijo de n caracteres
TEXT - Texto largo
DATE - Fechas (YYYY-MM-DD)
DATETIME , TIMESTAMP - Fecha y hora
DECIMAL(p,s) - Números decimales con p dígitos y s decimales
BOOLEAN - Verdadero/Falso

Restricciones:

PRIMARY KEY - Clave primaria


FOREIGN KEY - Clave foránea
NOT NULL - No permite valores nulos
UNIQUE - Valores únicos
CHECK - Condición que debe cumplirse
DEFAULT - Valor por defecto

ALTER TABLE
Modifica la estructura de una tabla existente.

-- Agregar columna
ALTER TABLE nombre_tabla ADD COLUMN nueva_columna tipo_dato;

-- Modificar columna
ALTER TABLE nombre_tabla MODIFY COLUMN columna nuevo_tipo;

-- Eliminar columna
ALTER TABLE nombre_tabla DROP COLUMN nombre_columna;

-- Agregar restricción
ALTER TABLE nombre_tabla ADD CONSTRAINT nombre_restriccion tipo_restriccion;

DROP
Elimina objetos de la base de datos.
DROP DATABASE nombre_base_datos; -- Elimina base de datos
DROP TABLE nombre_tabla; -- Elimina tabla
DROP INDEX nombre_indice; -- Elimina índice

TRUNCATE
Elimina todos los registros de una tabla pero mantiene su estructura.

TRUNCATE TABLE nombre_tabla;

2. COMANDOS DML (Data Manipulation Language)


SELECT
Consulta datos de una o más tablas.

SELECT columna1, columna2, ...


FROM nombre_tabla
[WHERE condición]
[GROUP BY columna]
[HAVING condición]
[ORDER BY columna [ASC|DESC]]
[LIMIT número];

Variaciones del SELECT:

-- Seleccionar todas las columnas


SELECT * FROM tabla;

-- Seleccionar con alias


SELECT columna AS alias FROM tabla;

-- Seleccionar valores únicos


SELECT DISTINCT columna FROM tabla;

-- Contar registros
SELECT COUNT(*) FROM tabla;

INSERT
Inserta nuevos registros en una tabla.

-- Insertar valores específicos


INSERT INTO nombre_tabla (columna1, columna2, ...)
VALUES (valor1, valor2, ...);

-- Insertar múltiples registros


INSERT INTO nombre_tabla (columna1, columna2)
VALUES
(valor1a, valor2a),
(valor1b, valor2b),
(valor1c, valor2c);

-- Insertar desde otra tabla


INSERT INTO tabla_destino (columna1, columna2)
SELECT columna1, columna2 FROM tabla_origen WHERE condición;

UPDATE
Modifica registros existentes.
UPDATE nombre_tabla
SET columna1 = nuevo_valor1,
columna2 = nuevo_valor2
WHERE condición;

DELETE
Elimina registros de una tabla.

DELETE FROM nombre_tabla


WHERE condición;

3. JOINS - Combinación de Tablas


INNER JOIN
Devuelve solo los registros que tienen coincidencias en ambas tablas.

SELECT columnas
FROM tabla1
INNER JOIN tabla2 ON tabla1.columna = tabla2.columna;

LEFT JOIN (LEFT OUTER JOIN)


Devuelve todos los registros de la tabla izquierda y los coincidentes de la derecha.

SELECT columnas
FROM tabla1
LEFT JOIN tabla2 ON tabla1.columna = tabla2.columna;

RIGHT JOIN (RIGHT OUTER JOIN)


Devuelve todos los registros de la tabla derecha y los coincidentes de la izquierda.

SELECT columnas
FROM tabla1
RIGHT JOIN tabla2 ON tabla1.columna = tabla2.columna;

FULL OUTER JOIN


Devuelve todos los registros cuando hay coincidencia en cualquiera de las tablas.

SELECT columnas
FROM tabla1
FULL OUTER JOIN tabla2 ON tabla1.columna = tabla2.columna;

CROSS JOIN
Producto cartesiano entre dos tablas.

SELECT columnas
FROM tabla1
CROSS JOIN tabla2;

4. OPERADORES Y CONDICIONES
Operadores de Comparación
= -- Igual
<> -- Diferente (también !=)
< -- Menor que
> -- Mayor que
<= -- Menor o igual
>= -- Mayor o igual

Operadores Lógicos

AND -- Y lógico
OR -- O lógico
NOT -- Negación

Operadores Especiales

-- Rangos
BETWEEN valor1 AND valor2

-- Listas de valores
IN (valor1, valor2, valor3)

-- Patrones de texto
LIKE 'patrón'
-- % representa cualquier secuencia de caracteres
-- _ representa un solo carácter

-- Valores nulos
IS NULL
IS NOT NULL

-- Existe
EXISTS (subconsulta)

5. FUNCIONES AGREGADAS

COUNT(columna) -- Cuenta registros


SUM(columna) -- Suma valores
AVG(columna) -- Promedio
MIN(columna) -- Valor mínimo
MAX(columna) -- Valor máximo

6. SUBCONSULTAS
Subconsulta en WHERE

SELECT columnas
FROM tabla1
WHERE columna IN (SELECT columna FROM tabla2 WHERE condición);

Subconsulta en FROM

SELECT columnas
FROM (SELECT columnas FROM tabla WHERE condición) AS subconsulta;

Subconsulta en SELECT

SELECT columna1,
(SELECT columna FROM tabla2 WHERE condición) AS columna_calculada
FROM tabla1;
7. OPERACIONES DE CONJUNTO
UNION
Combina resultados de dos consultas (sin duplicados).

SELECT columnas FROM tabla1


UNION
SELECT columnas FROM tabla2;

UNION ALL
Combina resultados incluyendo duplicados.

SELECT columnas FROM tabla1


UNION ALL
SELECT columnas FROM tabla2;

INTERSECT
Devuelve registros comunes entre dos consultas.

SELECT columnas FROM tabla1


INTERSECT
SELECT columnas FROM tabla2;

EXCEPT (MINUS)
Devuelve registros de la primera consulta que no están en la segunda.

SELECT columnas FROM tabla1


EXCEPT
SELECT columnas FROM tabla2;

8. COMANDOS DCL (Data Control Language)


GRANT
Otorga permisos a usuarios.

GRANT SELECT, INSERT ON tabla TO usuario;


GRANT ALL PRIVILEGES ON base_datos.* TO usuario;

REVOKE
Revoca permisos de usuarios.

REVOKE SELECT ON tabla FROM usuario;


REVOKE ALL PRIVILEGES ON base_datos.* FROM usuario;

9. COMANDOS TCL (Transaction Control Language)


COMMIT
Confirma los cambios realizados en una transacción.

COMMIT;

ROLLBACK
Deshace los cambios no confirmados.

ROLLBACK;

SAVEPOINT
Crea un punto de guardado en una transacción.

SAVEPOINT nombre_savepoint;

10. ÍNDICES
CREATE INDEX
Crea un índice para mejorar el rendimiento de las consultas.

CREATE INDEX nombre_indice ON tabla (columna1, columna2);

-- Índice único
CREATE UNIQUE INDEX nombre_indice ON tabla (columna);

11. VISTAS
CREATE VIEW
Crea una vista (tabla virtual).

CREATE VIEW nombre_vista AS


SELECT columnas
FROM tabla
WHERE condición;

DROP VIEW
Elimina una vista.

DROP VIEW nombre_vista;

12. PROCEDIMIENTOS ALMACENADOS


CREATE PROCEDURE
Crea un procedimiento almacenado.

CREATE PROCEDURE nombre_procedimiento(parámetros)


BEGIN
-- Código SQL
END;

Llamar un procedimiento

CALL nombre_procedimiento(valores);

13. FUNCIONES DE CADENA

CONCAT(cadena1, cadena2) -- Concatena cadenas


LENGTH(cadena) -- Longitud de cadena
UPPER(cadena) -- Convierte a mayúsculas
LOWER(cadena) -- Convierte a minúsculas
TRIM(cadena) -- Elimina espacios
SUBSTRING(cadena, inicio, longitud) -- Extrae subcadena

14. FUNCIONES DE FECHA

NOW() -- Fecha y hora actual


CURDATE() -- Fecha actual
CURTIME() -- Hora actual
DATE(fecha_hora) -- Extrae solo la fecha
YEAR(fecha) -- Extrae el año
MONTH(fecha) -- Extrae el mes
DAY(fecha) -- Extrae el día
DATEDIFF(fecha1, fecha2) -- Diferencia entre fechas

15. CONTROL DE FLUJO


CASE
Estructura condicional.

SELECT columna,
CASE
WHEN condición1 THEN resultado1
WHEN condición2 THEN resultado2
ELSE resultado_por_defecto
END AS nueva_columna
FROM tabla;

IF-ELSE (en procedimientos)

IF condición THEN
-- código si es verdadero
ELSE
-- código si es falso
END IF;

Ejemplo Completo de Uso

-- Crear base de datos


CREATE DATABASE tienda;

-- Usar la base de datos


USE tienda;

-- Crear tabla clientes


CREATE TABLE clientes (
id INT PRIMARY KEY AUTO_INCREMENT,
nombre VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE,
fecha_registro DATE DEFAULT CURRENT_DATE
);

-- Crear tabla productos


CREATE TABLE productos (
id INT PRIMARY KEY AUTO_INCREMENT,
nombre VARCHAR(100) NOT NULL,
precio DECIMAL(10,2) NOT NULL,
categoria VARCHAR(50)
);

-- Crear tabla pedidos


CREATE TABLE pedidos (
id INT PRIMARY KEY AUTO_INCREMENT,
cliente_id INT,
producto_id INT,
cantidad INT NOT NULL,
fecha_pedido DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (cliente_id) REFERENCES clientes(id),
FOREIGN KEY (producto_id) REFERENCES productos(id)
);

-- Insertar datos de ejemplo


INSERT INTO clientes (nombre, email) VALUES
('Juan Pérez', '[email protected]'),
('María García', '[email protected]');

INSERT INTO productos (nombre, precio, categoria) VALUES


('Laptop', 999.99, 'Electrónicos'),
('Mouse', 25.50, 'Electrónicos');

-- Consulta con JOIN


SELECT c.nombre, p.nombre, pd.cantidad, pd.fecha_pedido
FROM clientes c
INNER JOIN pedidos pd ON c.id = pd.cliente_id
INNER JOIN productos p ON pd.producto_id = p.id
WHERE pd.fecha_pedido >= '2024-01-01'
ORDER BY pd.fecha_pedido DESC;

También podría gustarte