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

Guía Completa de Sintaxis SQL: 1. COMANDOS DDL (Data Definition Language)

Documento interactivo

Cargado por

0SL
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)
4 vistas8 páginas

Guía Completa de Sintaxis SQL: 1. COMANDOS DDL (Data Definition Language)

Documento interactivo

Cargado por

0SL
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

Guía Completa de Sintaxis SQL

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