Sql (Introducción)
1. ¿Qué es SQL? #
SQL (Structured Query Language) es un lenguaje estándar utilizado para interactuar con bases de datos relacionales. Permite realizar diferentes operaciones como consultar, insertar, actualizar, eliminar datos, y gestionar la estructura de las bases de datos.
Historia y evolución de SQL:
- SQL fue desarrollado en los años 70 por IBM en su proyecto de base de datos relacional.
- Se convirtió en un estándar de la industria en los años 80, con versiones definidas por ANSI e ISO.
Diferencia entre SQL y otros lenguajes de programación:
- SQL se centra en la gestión de datos en bases de datos, mientras que otros lenguajes (como Java, Python) son de propósito general.
- En SQL, las operaciones son declarativas: especificas qué deseas hacer con los datos, no cómo hacerlo.
Categorías de SQL #
SQL se divide en varias categorías según las operaciones que se pueden realizar. Las principales son:
-
Lenguaje de Consulta de Datos (DQL):
- Utilizado para consultar los datos existentes en la base de datos.
- Principal comando:
SELECT.
-
Lenguaje de Manipulación de Datos (DML):
- Permite insertar, actualizar, eliminar datos en la base de datos.
- Comandos principales:
INSERT,UPDATE,DELETE.
-
Lenguaje de Definición de Datos (DDL):
- Se usa para definir o modificar la estructura de la base de datos, como tablas y esquemas.
- Comandos principales:
CREATE,ALTER,DROP.
-
Lenguaje de Control de Datos (DCL):
- Gestiona los permisos y controles de acceso a la base de datos.
- Comandos principales:
GRANT,REVOKE.
Ejemplos prácticos:
- DQL:
SELECT * FROM usuarios;(consulta todos los datos de la tabla "usuarios"). - DML:
INSERT INTO usuarios (nombre, edad) VALUES ('Juan', 30);(inserta un nuevo usuario). - DDL:
CREATE TABLE productos (id INT, nombre VARCHAR(100));(crea una nueva tabla "productos"). - DCL:
GRANT SELECT ON usuarios TO 'juan';(otorga permisos de consulta a Juan).
2. Tipos de comandos SQL #
- Lenguaje de Manipulación de Datos (DML ) para editar datos.
- Lenguaje de Consulta de Datos (DQL) para consultar datos.
- Lenguaje de Definición de Datos (DDL) para estructurar datos.
- Lenguaje de control de datos (DCL ) para administrar la base de
- Lenguaje de control de transacciones (TCL ) para gestionar las transacciones.
3. Lista de comandos y cláusulas que aprenderemos en este curso #
Comandos DDL (Lenguaje de Definición de Datos) #
1- CREATE DATABASE: Crea una nueva base de datos.
2- CREATE TABLE: Crea una nueva tabla en la base de datos.
5- CREATE SCHEMA: Crea un esquema dentro de una base de datos.
6- DROP DATABASE: Elimina una base de datos y sus datos.
7- DROP TABLE: Elimina una tabla y sus datos.
10- DROP SCHEMA: Elimina un esquema.
11- ALTER DATABASE: Modifica propiedades de una base de datos.
12- ALTER TABLE: Modifica la estructura de una tabla (añadir, modificar o eliminar columnas).
15- ALTER SCHEMA: Modifica un esquema.
16- RENAME: Cambia el nombre de un objeto en la base de datos (como una tabla).
17- COMMENT: Añade un comentario descriptivo a un objeto de la base de datos.
18- TRUNCATE TABLE: Este comando elimina todos los registros pero conserva la estructura de la tabla.
Comandos DDL de Índices #
1- CREATE INDEX: Crea un índice para acelerar las consultas.
2- DROP INDEX: Elimina un índice existente.
2- ALTER INDEX: Modifica un índice existente.
Comandos DDL de Vistas #
1- CREATE VIEW: Crea una vista, que es una consulta guardada.
2- DROP VIEW: Elimina una vista.
3- ALTER VIEW: Modifica una vista existente.
Comandos DML (Lenguaje de Manipulación de Datos) #
2- INSERT INTO: Inserta nuevos registros en una tabla.
3- UPDATE: Modifica registros existentes en una tabla.
4- DELETE: Elimina registros de una tabla.
5- MERGE UPSERT: Realiza inserciones, actualizaciones o eliminaciones dependiendo de si los registros coinciden.
6- RETURNING: Obtiene datos fruto de una consulta insert, update o delete.
Comandos DCL (Lenguaje de Control de Datos) #
1- CREATE USER: Crea nuevos usuarios.
1- DROP USER: Borra usuarios.
2- GRANT: Otorga permisos a un usuario sobre objetos de la base de datos.
3- REVOKE: Revoca permisos previamente otorgados a un usuario.
Comandos TCL (Lenguaje de Control de Transacciones) #
1- COMMIT: Guarda permanentemente las modificaciones realizadas durante una transacción.
2- ROLLBACK: Deshace los cambios realizados durante una transacción.
3- SAVEPOINT: Define un punto de control dentro de una transacción.
4- SET TRANSACTION: Establece características de la transacción (como el nivel de aislamiento).
5- BEGIN: Inicia una transacción.
Comandos de Consultas y Filtrado (DQL) #
1- SELECT: Recupera datos de una o más tablas.
2- WHERE: Filtra los resultados de una consulta según una condición.
3- GROUP BY: Agrupa los resultados de una consulta.
4- HAVING: Filtra los grupos después de usar GROUP BY.
5- ORDER BY: Ordena los resultados de una consulta.
6- JOIN: Une datos de dos o más tablas.
INNER JOIN: Combina solo los registros que tienen coincidencia en ambas tablas.LEFT JOIN: Combina todos los registros de la tabla izquierda y los que tienen coincidencia en la derecha.RIGHT JOIN: Combina todos los registros de la tabla derecha y los que tienen coincidencia en la izquierda.FULL JOIN: Combina los registros de ambas tablas, incluyendo los no coincidentes. 7-DISTINCT: Elimina duplicados en los resultados de una consulta. 8-LIMIT/TOP: Limita el número de registros devueltos. 9-OFFSET: Omite un número específico de registros. 10-EXISTS: Verifica si existe un conjunto de registros que cumplan con una condición. 11-IN: Especifica múltiples valores posibles para una columna. 12-BETWEEN: Filtra los resultados que están dentro de un rango específico. 13-LIKE: Busca un patrón en una columna (para cadenas de texto). 14-IS NULL: Filtra registros con valoresNULL. 15-UNION: Combina los resultados de dos o más consultas. 16-OR: combinar múltiples condiciones 17-AND: combinar múltiples condiciones 18-NOT: niega una condición
Comandos de Restricciones #
1- PRIMARY KEY: Define la clave primaria de una tabla (única y no nula).
2- FOREIGN KEY: Define una clave foránea para establecer una relación entre dos tablas.
3- UNIQUE: Asegura que los valores en una columna sean únicos.
4- NOT NULL: Asegura que una columna no acepte valores nulos.
5- CHECK: Impone una condición sobre los valores de una columna.
5- DEFAULT: Asigna un valor predeterminado a una columna.
5- AUTO_INCREMENT: Genera automáticamente valores únicos para una columna.
5- ADD CONSTRAINT: Agregar una restricción a una tabla existente.
5- DROP CONSTRAINT: Eliminar una restricción de una tabla existente.
Otros Comandos #
1- EXPLAIN: Muestra el plan de ejecución de una consulta, útil para optimizar el rendimiento.
2- DESCRIBE o SHOW COLUMNS: Muestra la estructura (columnas) de una tabla.
3- SHOW TABLES: Muestra una lista de todas las tablas en la base de datos.
4- SHOW DATABASES: Muestra una lista de todas las bases de datos.
5- SHOW INDEXES: Muestra los índices de una tabla.
6- SHOW USERS: Muestra los usuarios en el sistema de base de datos.
7- SET: Configura parámetros de la base de datos.
8- USE: Selecciona la base de datos que se va a utilizar.
Resumen del tema
Conceptos clave #
- SQL (Structured Query Language): lenguaje estándar para interactuar y administrar bases de datos relacionales.
- Sublenguajes de SQL:
- DDL (Data Definition Language): define y modifica estructuras (
CREATE,ALTER,DROP,TRUNCATE). - DML (Data Manipulation Language): manipula los datos (
INSERT,UPDATE,DELETE). - DQL (Data Query Language): consulta y recupera información (
SELECT). - DCL (Data Control Language): gestiona permisos y seguridad (
GRANT,REVOKE). - TCL (Transaction Control Language): controla transacciones (
COMMIT,ROLLBACK,SAVEPOINT).
- DDL (Data Definition Language): define y modifica estructuras (
- Cláusulas de Filtrado y Agrupación:
WHERE,GROUP BY,HAVING,ORDER BY,LIMITy operadores booleanos.
Qué debes recordar #
SQL se divide en cinco sublenguajes especializados (DDL, DML, DQL, DCL y TCL) que cubren desde la creación estructural hasta la seguridad y manipulación transaccional de datos.