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

Guia_MySQL.md

El documento detalla las principales lenguajes de manipulación de datos en bases de datos, incluyendo DDL, DML, DCL y TCL. Se explican comandos específicos como CREATE, ALTER, DROP, INSERT, UPDATE, DELETE y SELECT, junto con ejemplos y notas sobre su uso. También se incluyen funciones útiles, tipos de datos y manejo de permisos y transacciones.
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)
0 vistas8 páginas

Guia_MySQL.md

El documento detalla las principales lenguajes de manipulación de datos en bases de datos, incluyendo DDL, DML, DCL y TCL. Se explican comandos específicos como CREATE, ALTER, DROP, INSERT, UPDATE, DELETE y SELECT, junto con ejemplos y notas sobre su uso. También se incluyen funciones útiles, tipos de datos y manejo de permisos y transacciones.
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

1.

DDL — Data Definition Language


Define la estructura de la base de datos. Comandos: CREATE, ALTER, DROP, TRUNCATE.

1.1. CREATE DATABASE


CREATE DATABASE nombre_bd;

USE nombre_bd;

1.2. CREATE TABLE


CREATE TABLE nombre_tabla (

id SERIAL PRIMARY KEY, -- autoincremental

nombre VARCHAR(100) NOT NULL,

categoria VARCHAR(50),

fecha DATE,

precio DECIMAL(10,2),

creado_en TIMESTAMP DEFAULT CURRENT_TIMESTAMP

);

Notas:

-​ PRIMARY KEY identifica de forma única cada fila.


-​ NOT NULL obliga a que la columna tenga valor.
-​ DEFAULT valor define un valor por defecto si no se especifica al insertar.

Si no existe previamente:

CREATE TABLE IF NOT EXISTS nombre_tabla (...);

Tabla de respaldo (misma estructura, sin datos):

CREATE TABLE tabla_bkp LIKE tabla_original;

Tabla de copia total (estructura + datos):

CREATE TABLE tabla_copia AS

SELECT * FROM tabla_original;


1.3. ALTER TABLE
-- Renombrar tabla

ALTER TABLE tabla_vieja RENAME TO tabla_nueva;

-- Agregar columna al final

ALTER TABLE tabla ADD COLUMN descripcion VARCHAR(200);

-- Agregar columna después de otra específica

ALTER TABLE tabla ADD COLUMN descripcion VARCHAR(200) AFTER nombre;

-- Agregar columna como PRIMERA columna

ALTER TABLE tabla ADD COLUMN disponible BOOLEAN FIRST;

-- Cambiar tipo de dato de una columna

ALTER TABLE tabla MODIFY COLUMN precio FLOAT;

-- Renombrar columna (y de paso se puede cambiar el tipo)

ALTER TABLE tabla CHANGE COLUMN nombre_viejo nombre_nuevo VARCHAR(100);

-- Eliminar columna

ALTER TABLE tabla DROP COLUMN columna_a_eliminar;

-- Agregar columna con valor por defecto

ALTER TABLE tabla ADD COLUMN ultima_actualizacion TIMESTAMP DEFAULT NULL;

-- Agregar restricción NOT NULL a columna existente

ALTER TABLE tabla MODIFY COLUMN email VARCHAR(200) NOT NULL;

-- Agregar clave foránea

ALTER TABLE tabla ADD CONSTRAINT fk_nombre

FOREIGN KEY (columna_id) REFERENCES otra_tabla(id);

-- Eliminar restricción

ALTER TABLE tabla DROP CONSTRAINT fk_nombre;


Tip: MODIFY cambia tipo/atributos sin renombrar. CHANGE permite renombrar y
cambiar tipo a la vez (hay que repetir la definición completa de la columna).

1.4. DROP
DROP TABLE tabla;

DROP TABLE IF EXISTS tabla; -- evita error si no existe

DROP DATABASE nombre_bd;

1.5. TRUNCATE
Borra todos los datos pero conserva la estructura (y reinicia el autoincremental):

TRUNCATE TABLE tabla;

2. DML — Data Manipulation Language


Trabaja con los datos dentro de las tablas. Comandos: INSERT, UPDATE, DELETE, SELECT.

2.1. INSERT
-- Registro completo

INSERT INTO tabla (col1, col2, col3)

VALUES (valor1, valor2, valor3);

-- Solo algunas columnas (el resto usa DEFAULT o NULL)

INSERT INTO tabla (id, nombre)

VALUES (1, 'Ejemplo');

-- Varios registros en una sola sentencia

INSERT INTO tabla (col1, col2)

VALUES

(valor1, valor2),

(valor1, valor2),

(valor1, valor2);
-- Copiar datos de una tabla a otra (INSERT...SELECT)

INSERT INTO tabla_nueva (col1, col2)

SELECT col1, col2 FROM tabla_original

WHERE condicion;

2.2. UPDATE
-- Básico

UPDATE tabla SET columna = nuevo_valor WHERE condicion;

-- Con condición compuesta

UPDATE tabla

SET email = 'ejemplo@[Link]'

WHERE apellido LIKE 'G%' AND fecha_alta > '2026-01-01';

-- Ajuste numérico (aumento/reducción) según condición

UPDATE tabla

SET precio = precio * 1.10

WHERE categoria = 'X';

-- Normalizar texto con función del motor

UPDATE tabla

SET nombre = UPPER(nombre)

WHERE condicion;

2.3. DELETE
DELETE FROM tabla WHERE condicion;

-- Todos los registros (cuidado: sin WHERE borra todo)

DELETE FROM tabla;

-- Condición numérica

DELETE FROM tabla WHERE precio <= 0;


-- Anteriores a una fecha

DELETE FROM tabla WHERE fecha < '2025-01-01';

2.4. SELECT — la más usada


Orden real de escritura de cláusulas (y orden lógico de ejecución del motor):

SELECT columnas

FROM tabla

WHERE condicion_de_filas

GROUP BY columna

HAVING condicion_de_grupos

ORDER BY columna

LIMIT n;

-- Todo

SELECT * FROM tabla;

-- Columnas específicas

SELECT nombre, precio FROM tabla;

-- Filtrado

SELECT * FROM tabla WHERE precio > 100;

-- AND / OR

SELECT * FROM tabla WHERE precio > 100 AND categoria = 'X';

SELECT * FROM tabla WHERE precio > 100 OR categoria = 'X';

-- LIKE (patrones)

SELECT * FROM tabla WHERE nombre LIKE 'A%'; -- empieza con A

SELECT * FROM tabla WHERE nombre LIKE '%a'; -- termina en a

SELECT * FROM tabla WHERE nombre LIKE '%al%'; -- contiene "al"


-- IN / NOT IN

SELECT * FROM tabla WHERE categoria IN ('X', 'Y', 'Z');

SELECT * FROM tabla WHERE categoria NOT IN ('X', 'Y');

-- BETWEEN

SELECT * FROM tabla WHERE precio BETWEEN 80 AND 90;

-- DISTINCT

SELECT DISTINCT categoria FROM tabla;

-- ORDER BY (ASC por defecto, DESC para descendente)

SELECT * FROM tabla ORDER BY precio DESC;

SELECT * FROM tabla ORDER BY categoria ASC, precio DESC; -- por si empatan

-- LIMIT

SELECT * FROM tabla ORDER BY precio DESC LIMIT 1;

-- GROUP BY + HAVING (HAVING filtra grupos, WHERE filtra filas)

SELECT categoria, COUNT(*)

FROM tabla

GROUP BY categoria

HAVING COUNT(*) > 1;

3. Funciones útiles

Agregación (van con GROUP BY o solas)

Función Qué hace

COUNT() cuenta filas

SUM() suma valores


Función Qué hace

AVG() promedio

MIN() / MAX() mínimo / máximo

SELECT COUNT(*) FROM tabla;

SELECT MAX(precio), MIN(precio) FROM tabla;

SELECT AVG(precio) FROM tabla WHERE categoria = 'X';

Numéricas
ABS(), ROUND(), FLOOR(), CEIL(), MOD()

Fechas
NOW(), CURDATE(), CURTIME(), DATEDIFF(fecha1, fecha2), SUBDATE(fecha,
dias), STR_TO_DATE(texto, formato)

Cadenas
CONCAT(), SUBSTRING(), LENGTH(), REPLACE(), UPPER(), LOWER(), INSTR()

Booleanas / condicionales
IF(condicion, valor_si, valor_no), IFNULL(expr, valor_alternativo),
NULLIF(a, b)

4. Tipos de datos (referencia rápida)


Numéricos: INT, FLOAT, DOUBLE, DECIMAL(precision, escala)

Fechas: DATE (YYYY-MM-DD), DATETIME, TIMESTAMP, TIME, YEAR

Cadenas: CHAR(n) (longitud fija), VARCHAR(n) (variable), TEXT, BLOB

Otros: BOOLEAN/TINYINT(1), JSON

5. DCL — Data Control Language


Permisos de usuarios/roles.

GRANT SELECT ON tabla TO usuario_o_rol;

GRANT ALL PRIVILEGES ON tabla TO usuario_o_rol;


REVOKE SELECT ON tabla FROM usuario_o_rol;

REVOKE ALL PRIVILEGES ON tabla FROM usuario_o_rol;

6. TCL — Transaction Control Language


Para agrupar operaciones y poder deshacerlas si algo sale mal.

BEGIN; -- inicia transacción

UPDATE tabla SET campo = valor WHERE id = 1;

SAVEPOINT punto_1; -- guarda un punto de recuperación

DELETE FROM tabla WHERE condicion;

INSERT INTO tabla (...) VALUES (...);

ROLLBACK TO punto_1; -- deshace hasta el savepoint

-- o bien:

ROLLBACK; -- deshace toda la transacción

COMMIT; -- confirma los cambios definitivamente

También podría gustarte