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

Guía Completa de SQL y MySQL

El documento presenta un curso sobre SQL utilizando MySQL, abarcando desde conceptos básicos hasta avanzados, incluyendo la creación de bases de datos, tipos de datos, y procedimientos almacenados. Se exploran las diferencias entre bases de datos relacionales y no relacionales, así como ejemplos de uso en diferentes sectores. Además, se detallan características y ventajas de MySQL como sistema de gestión de bases de datos relacional de código abierto.

Cargado por

Luis Toncel
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)
5 vistas11 páginas

Guía Completa de SQL y MySQL

El documento presenta un curso sobre SQL utilizando MySQL, abarcando desde conceptos básicos hasta avanzados, incluyendo la creación de bases de datos, tipos de datos, y procedimientos almacenados. Se exploran las diferencias entre bases de datos relacionales y no relacionales, así como ejemplos de uso en diferentes sectores. Además, se detallan características y ventajas de MySQL como sistema de gestión de bases de datos relacional de código abierto.

Cargado por

Luis Toncel
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

TECNOLOGÍA EN ANÁLISIS Y DESARROLLO DE SOFTWARE

Ficha: 2826693

LENGUAJE DE CONSULTA ESTRUCTURADA

SQL

Ruta de aprendizaje para SQL usando MySQL


Nivel Básico
Conceptos teóricos:

¿Qué es una base de datos?


¿Qué es SQL?
¿Qué es MySQL?
Diferencia entre base de datos relacional y no relacional
Estructura de una tabla en MySQL
Tipos de datos en MySQL
Lenguaje SQL (DDL y DCL)
Lenguaje SQL (DML)

Ejemplos explicados

Nivel Intermedio
Conceptos teóricos:

Consultas avanzadas con SELECT: Uso de WHERE, ORDER BY, GROUP BY, HAVING.
Cláusulas JOIN: INNER JOIN, LEFT JOIN, RIGHT JOIN
Funciones de agregación: COUNT, SUM, AVG, MAX, MIN
Subconsultas
Índices en MySQL
Vistas en MySQL

Ejemplos explicados

Nivel Avanzado
Conceptos teóricos:

Consulta avanzada con JOIN y subconsultas


Transacciones y control de concurrencia

PROFESSEUR : [Link] ROS BTS SIO BORDEAUX - LYCÉE GUSTAVE EIFFEL


✦ 1 / 11 ✦
Procedimientos almacenados
Triggers
Funciones definidas por el usuario
Optimización de consultas
Seguridad en MySQL

Ejemplos explicados

Estudio de Caso: Sistema de gestión de una biblioteca


Estudio de Caso: Sistema de gestión de una tienda online
EMPECEMOS

¿Qué es una base de datos?


Una base de datos es un conjunto organizado de datos que se almacena y se gestiona de manera que se
pueda acceder, manipular y actualizar fácilmente. Estas bases de datos son esenciales para el
almacenamiento eficiente de grandes cantidades de información y para proporcionar acceso rápido y
fiable a los datos almacenados.

Características Principales de una Base de Datos:


1. Organización Estructurada: Los datos se organizan de forma sistemática y estructurada,
generalmente en tablas que están relacionadas entre sí.

2. Acceso Rápido: Las bases de datos están diseñadas para permitir el acceso rápido y eficiente a los
datos, incluso cuando se trata de grandes volúmenes de información.

3. Manipulación de Datos: Las bases de datos permiten realizar operaciones como insertar,
actualizar, eliminar y consultar datos.

4. Integridad y Seguridad: Las bases de datos incluyen mecanismos para asegurar la integridad y la
seguridad de los datos, garantizando que solo los usuarios autorizados puedan acceder y modificar
la información.

5. Manejo de Transacciones: Las bases de datos gestionan las transacciones, asegurando que las
operaciones se completen correctamente y que los datos no queden en un estado inconsistente en
caso de fallos.

Tipos de Bases de Datos:


1. Bases de Datos Relacionales (RDBMS): Utilizan un modelo basado en tablas y se gestionan
mediante SQL (Structured Query Language). Ejemplos: MySQL, PostgreSQL, Oracle.

2. Bases de Datos No Relacionales (NoSQL): No utilizan el modelo de tablas tradicional y están


diseñadas para manejar grandes cantidades de datos no estructurados. Ejemplos: MongoDB,
Cassandra, Redis.

PROFESSEUR : [Link] ROS BTS SIO BORDEAUX - LYCÉE GUSTAVE EIFFEL


✦ 2 / 11 ✦
3. Bases de Datos Orientadas a Objetos: Almacenan datos en forma de objetos, como en la
programación orientada a objetos. Ejemplo: db4o.

4. Bases de Datos en la Nube: Se almacenan y gestionan en servicios en la nube, proporcionando


escalabilidad y accesibilidad desde cualquier lugar. Ejemplos: Amazon RDS, Google Cloud SQL,
Microsoft Azure SQL Database.

5. Bases de Datos Distribuidas: Los datos se almacenan en múltiples ubicaciones físicas pero se
gestionan como una única base de datos lógica. Ejemplo: Apache Cassandra.

Componentes de una Base de Datos:


1. Datos: La información que se almacena y gestiona.
2. DBMS (Database Management System): El software que gestiona la base de datos.
3. Lenguajes de Consulta: Herramientas y lenguajes, como SQL, utilizados para interactuar con la
base de datos.
4. Usuarios: Personas y aplicaciones que acceden y manipulan los datos en la base de datos.

Ejemplos de Uso de Bases de Datos:


Empresas: Gestión de inventarios, seguimiento de clientes, y procesamiento de pedidos.
Gobierno: Almacenamiento de registros de ciudadanos, estadísticas, y datos financieros.
Educación: Gestión de información de estudiantes, cursos, y calificaciones.
Salud: Registro de pacientes, historial médico, y gestión de citas.

Las bases de datos son fundamentales en el mundo actual, donde el manejo eficiente y seguro de grandes
cantidades de datos es crucial para el funcionamiento de casi todas las organizaciones y servicios.

¿Qué es MySQL?
MySQL es un sistema de gestión de bases de datos relacional (RDBMS, por sus siglas en inglés) de código
abierto. Se utiliza para gestionar y organizar grandes cantidades de datos estructurados en tablas.
Desarrollado originalmente por la empresa sueca MySQL AB, MySQL es ahora propiedad de Oracle
Corporation.

Características Principales de MySQL:


1. Modelo Relacional: Utiliza tablas para almacenar datos, permitiendo la creación de relaciones
entre diferentes conjuntos de datos.

2. Lenguaje de Consulta Estructurado (SQL): MySQL utiliza SQL (Structured Query Language) para
gestionar y manipular la base de datos.

3. Código Abierto: MySQL es de código abierto, lo que significa que el software es gratuito y su
código fuente está disponible para que cualquiera lo use y modifique.

4. Alto Rendimiento y Escalabilidad: Es conocido por su alto rendimiento, velocidad y capacidad de


manejar grandes volúmenes de datos. Es escalable y puede usarse tanto para pequeñas

PROFESSEUR : [Link] ROS BTS SIO BORDEAUX - LYCÉE GUSTAVE EIFFEL


✦ 3 / 11 ✦
aplicaciones como para grandes sistemas empresariales.

5. Compatibilidad: Funciona en diversas plataformas, incluyendo Linux, Windows, macOS y otros


sistemas operativos.

6. Conectividad y Seguridad: Ofrece múltiples formas de conectarse a la base de datos y dispone de


mecanismos de seguridad avanzados, incluyendo autenticación y cifrado.

7. Soporte para Replicación y Clustering: Permite replicar datos en múltiples servidores para
mejorar la disponibilidad y el rendimiento.

Usos Comunes de MySQL:


Desarrollo Web: Es ampliamente utilizado en el desarrollo de aplicaciones web dinámicas. Muchas
plataformas populares como WordPress, Joomla, y Drupal usan MySQL.
Aplicaciones Empresariales: Se utiliza en aplicaciones empresariales que requieren una base de
datos robusta y escalable.
Comercio Electrónico: Plataformas de comercio electrónico como Magento y osCommerce utilizan
MySQL para gestionar sus datos.

Ventajas de MySQL:
Fiabilidad y Estabilidad: Ofrece una operación confiable y estable.

Comunidad y Soporte: Tiene una gran comunidad de usuarios y desarrolladores que proporcionan
soporte y recursos.

Flexibilidad: Permite la personalización y ajustes según las necesidades específicas de los usuarios.

MySQL es una herramienta esencial en el ámbito del desarrollo de software, especialmente en proyectos
que requieren una base de datos sólida y eficiente.

Diferencia entre Base de Datos Relacional y No


Relacional
Base de Datos Relacional
1. Estructura de Datos:

Utilizan una estructura de tabla con filas y columnas.


Las tablas están relacionadas entre sí mediante claves primarias y foráneas.

2. Modelo de Datos:

Basado en el modelo relacional de Edgar F. Codd.


Los datos se organizan en tablas que pueden relacionarse mediante claves.

3. Consultas:

PROFESSEUR : [Link] ROS BTS SIO BORDEAUX - LYCÉE GUSTAVE EIFFEL


✦ 4 / 11 ✦
Utilizan SQL (Structured Query Language) para realizar consultas y gestionar los datos.
SQL es un lenguaje declarativo que facilita la realización de consultas complejas.

4. Integridad de Datos:

Fuerte consistencia y apoyo a transacciones ACID (Atomicidad, Consistencia, Aislamiento,


Durabilidad).
Ideal para aplicaciones donde la integridad y la consistencia de los datos son cruciales.

5. Ejemplos:

MySQL, PostgreSQL, Oracle Database, Microsoft SQL Server.

Base de Datos No Relacional


1. Estructura de Datos:

Utilizan diversos modelos de datos, como documentos, grafos, clave-valor y columnas.


No tienen una estructura fija de tablas y relaciones.

2. Modelo de Datos:

Pueden ser más flexibles y escalables.


Adecuados para datos no estructurados o semi-estructurados.

3. Consultas:

No tienen un lenguaje de consulta estándar como SQL.


Las consultas y operaciones varían según el tipo de base de datos no relacional.

4. Integridad de Datos:

Suelen priorizar la escalabilidad y el rendimiento sobre la consistencia estricta.


Pueden ofrecer consistencia eventual y soporte para transacciones BASE (Básicamente
Disponible, Estado Suave, Consistencia Eventual).

5. Ejemplos:

MongoDB (documentos), Cassandra (columnas), Redis (clave-valor), Neo4j (grafos).

Consideraciones para la Elección


Bases de Datos Relacionales: Son ideales para aplicaciones donde la consistencia de los datos es
crítica, como sistemas financieros y ERP (Enterprise Resource Planning).
Bases de Datos No Relacionales: Son adecuadas para aplicaciones que requieren alta
escalabilidad, flexibilidad y que manejan grandes volúmenes de datos no estructurados, como redes
sociales, big data y aplicaciones en tiempo real.

Ambos tipos de bases de datos tienen sus fortalezas y debilidades, y la elección entre una base de datos
relacional o no relacional depende de los requisitos específicos del proyecto y de las características de los
datos que se manejan.

PROFESSEUR : [Link] ROS BTS SIO BORDEAUX - LYCÉE GUSTAVE EIFFEL


✦ 5 / 11 ✦
Estructura de Tabla en MySQL
Crear una estructura de tabla en MySQL implica definir los diferentes campos (columnas) que la tabla
tendrá, junto con sus tipos de datos y otras características, como restricciones y claves primarias. A
continuación, se presenta un ejemplo de cómo crear una tabla en MySQL con varios tipos de datos y
características comunes:

Ejemplo: Tabla de Usuarios

CREATE TABLE usuarios (


id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
email VARCHAR(255) UNIQUE NOT NULL,
fecha_nacimiento DATE,
fecha_registro TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
activo BOOLEAN DEFAULT TRUE
);

Tipos de Datos en MySQL


MySQL ofrece varios tipos de datos para definir columnas en las tablas. Estos tipos de datos se pueden
clasificar en varias categorías:

1. Tipos Numéricos
Enteros:
TINYINT: 1 byte, de -128 a 127 o de 0 a 255.
SMALLINT: 2 bytes, de -32,768 a 32,767 o de 0 a 65,535.
MEDIUMINT: 3 bytes, de -8,388,608 a 8,388,607 o de 0 a 16,777,215.
INT o INTEGER: 4 bytes, de -2,147,483,648 a 2,147,483,647 o de 0 a 4,294,967,295.
BIGINT: 8 bytes, de -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807 o de 0 a
18,446,744,073,709,551,615.
Decimales:
FLOAT: Número de punto flotante de precisión simple.
DOUBLE: Número de punto flotante de precisión doble.
DECIMAL: Número decimal con precisión fija (útil para valores monetarios).

2. Tipos de Cadena de Caracteres


De longitud fija:
CHAR(n): Cadena de longitud fija de n caracteres.
De longitud variable:
VARCHAR(n): Cadena de longitud variable hasta n caracteres.
Textos:

PROFESSEUR : [Link] ROS BTS SIO BORDEAUX - LYCÉE GUSTAVE EIFFEL


✦ 6 / 11 ✦
TINYTEXT: Hasta 255 caracteres.
TEXT: Hasta 65,535 caracteres.
MEDIUMTEXT: Hasta 16,777,215 caracteres.
LONGTEXT: Hasta 4,294,967,295 caracteres.

3. Tipos de Datos de Fecha y Hora


DATE: Fecha en formato YYYY-MM-DD.
TIME: Hora en formato HH:MM:SS.
DATETIME: Fecha y hora en formato YYYY-MM-DD HH:MM:SS.
TIMESTAMP: Fecha y hora en formato YYYY-MM-DD HH:MM:SS, también puede ser usado para
almacenar marcas de tiempo.
YEAR: Año en formato YYYY.

4. Tipos Booleanos
BOOLEAN: En realidad, se almacena como TINYINT(1) con valores 0 (falso) y 1 (verdadero).

5. Tipos Binarios
De longitud fija:
BINARY(n): Cadena binaria de longitud fija de n bytes.
De longitud variable:
VARBINARY(n): Cadena binaria de longitud variable hasta n bytes.
Textos binarios:
TINYBLOB: Hasta 255 bytes.
BLOB: Hasta 65,535 bytes.
MEDIUMBLOB: Hasta 16,777,215 bytes.
LONGBLOB: Hasta 4,294,967,295 bytes.

6. Tipos Espaciales
GEOMETRY: Tipo de datos espacial para representar geometrías.
POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, MULTIPOLYGON,
GEOMETRYCOLLECTION: Tipos específicos para representar diferentes formas geométricas.

Cada tipo de dato tiene sus propias características y restricciones, por lo que es importante elegir el
adecuado según el uso y los requisitos específicos de tu aplicación.

Lenguaje SQL (DDL y DCL)


El lenguaje SQL (Structured Query Language) se utiliza para gestionar y manipular bases de datos
relacionales. Dentro de SQL, existen varias subcategorías, dos de las cuales son DDL (Data Definition
Language) y DCL (Data Control Language). A continuación se explican ambos lenguajes:

Data Definition Language (DDL)

PROFESSEUR : [Link] ROS BTS SIO BORDEAUX - LYCÉE GUSTAVE EIFFEL


✦ 7 / 11 ✦
DDL se utiliza para definir y gestionar la estructura de la base de datos. Incluye comandos que permiten
crear, modificar y eliminar objetos dentro de la base de datos, como tablas, índices y esquemas. Los
comandos principales de DDL son:

CREATE: Se utiliza para crear nuevos objetos en la base de datos.

CREATE TABLE empleados (


id INT PRIMARY KEY,
nombre VARCHAR(100),
salario DECIMAL(10, 2)
);

ALTER: Se utiliza para modificar la estructura de un objeto existente.

ALTER TABLE empleados ADD COLUMN fecha_contratacion DATE;

DROP: Se utiliza para eliminar un objeto de la base de datos.

DROP TABLE empleados;

TRUNCATE: Se utiliza para eliminar todos los registros de una tabla sin eliminar la tabla en sí.

TRUNCATE TABLE empleados;

Data Control Language (DCL)


DCL se utiliza para controlar el acceso a los datos en la base de datos. Incluye comandos que permiten
conceder y revocar permisos a los usuarios. Los comandos principales de DCL son:

GRANT: Se utiliza para otorgar permisos a los usuarios.

GRANT SELECT, INSERT ON empleados TO usuario1;

REVOKE: Se utiliza para retirar permisos otorgados previamente a los usuarios.

REVOKE SELECT, INSERT ON empleados FROM usuario1;

Estos comandos son esenciales para la gestión y seguridad de la base de datos, permitiendo a los
administradores definir la estructura de los datos y controlar quién tiene acceso a ellos.

PROFESSEUR : [Link] ROS BTS SIO BORDEAUX - LYCÉE GUSTAVE EIFFEL


✦ 8 / 11 ✦
Lenguaje SQL (DML)
El lenguaje SQL (Structured Query Language) se utiliza para interactuar con bases de datos relacionales.
Una de las principales categorías de SQL es el DML (Data Manipulation Language), que se enfoca en la
manipulación de datos dentro de las tablas. Aquí te presento los comandos principales de DML:

1. INSERT
Inserta nuevos registros en una tabla.

# Opción 1.
INSERT INTO nombre_tabla (columna1, columna2, columna3, ...)
VALUES (valor1, valor2, valor3, ...);

# Opción 2.
INSERT INTO nombre_tabla VALUES (valor1, valor2, valor3, ...);
# NOTA: Esta opción si no se le pasan las columnas por defecto toma todas las
columnas de la tabla.

# Ejemplo:
INSERT INTO empleados (nombre, apellido, puesto, salario)
VALUES ('Luis Carlos', 'Toncel Oliveros', 'Desarrollador Backend', 55000);

2. SELECT
Recupera datos de una tabla.

# Opción 1.
SELECT * FROM nombre_tabla;

# Opción 2.
SELECT columna1, columna2, ...
FROM nombre_tabla;

# Ejemplos:
SELECT * FROM empleados;

SELECT nombre, puesto, salario FROM empleados;

3. UPDATE
Modifica o actualiza registros existentes en una tabla.

UPDATE nombre_tabla
SET columna1 = valor1, columna2 = valor2, ...

PROFESSEUR : [Link] ROS BTS SIO BORDEAUX - LYCÉE GUSTAVE EIFFEL


✦ 9 / 11 ✦
WHERE condición;

# NOTA: La clausula `WHERE` es obligatoria para identificar el registro que se


quire actalizar en la tabla, el no uso de la misma al momento de ejecutar la
`Query` actualizara todos los registros de la tabla.

# Ejemplo:
UPDATE empleados
SET salario = 60000
/*WHERE nombre = 'Luis Carlos'*/
WHERE id = 1;

3. DELETE
Elimina registros de una tabla.

DELETE FROM nombre_tabla


WHERE condición;

# NOTA: La clausula `WHERE` es obligatoria para identificar el registro que se


quire eliminar en la tabla, el no uso de la misma al momento de ejecutar la
`Query` eliminara todos los registros de la tabla.

# Ejemplo:
DELETE FROM empleados
/*WHERE nombre = 'Luis Carlos'*/
WHERE id = 1;

Ejemplo Práctico:

Supongamos que tenemos una tabla llamada productos con las columnas id, nombre, precio y
cantidad utiliza el lenguaje DDL para definir y gestionar la estructura de la base de datos y DML para la
manipulación de datos dentro de la tabla.

PROFESSEUR : [Link] ROS BTS SIO BORDEAUX - LYCÉE GUSTAVE EIFFEL


✦ 10 / 11 ✦
Ejercicio Práctico:

Caso de prueba: Gestión de Aprendices

Estudio de Caso: Sistema de gestión de una biblioteca


Descripción:
Se pretende desarrollar un sistema de gestión de una biblioteca. Este sistema debe permitir realizar las
siguientes operaciones:

Registrar libros y sus detalles (título, autor, año de publicación, etc.).


Registrar usuarios de la biblioteca.
Prestar libros a los usuarios.
Devolver libros prestados.
Consultar los libros disponibles en la biblioteca.
Consultar los libros prestados por un usuario.

Para implementar este sistema, se deben crear las tablas correspondientes en la base de datos, así como
las consultas necesarias para realizar las operaciones mencionadas.

Estudio de Caso: Sistema de gestión de una tienda online


Descripción:
Se pretende desarrollar un sistema de informació para gestionar una tienda online.
A usted como miembro del equipo de desarrollo se le encarga la tarea de crear la base de datos; Esta
base de datos debe contener información sobre productos, clientes, pedidos y ventas.

Requisitos:
Crear las tablas productos, clientes, pedidos y detalles_pedidos.
Implementar operaciones CRUD para cada tabla.
Crear consultas para obtener los productos más vendidos, los clientes con más pedidos, y las ventas
totales por mes.
Crear un procedimiento almacenado para actualizar el stock de productos después de una venta.
Crear un trigger que verifique que no se pueda realizar un pedido si el stock es insuficiente.

PROFESSEUR : [Link] ROS BTS SIO BORDEAUX - LYCÉE GUSTAVE EIFFEL


✦ 11 / 11 ✦

También podría gustarte