← SQL EspañolChapter 01 of 13

Introducción a SQL

## Objetivos de Aprendizaje - Comprender qué es SQL y su propósito - Aprender sobre bases de datos relacionales - Configurar un entorno SQL - Escribir tu primera consulta SQL ## ¿Qué es SQL? SQL (Structured Query Language) es un lenguaje estándar para almacenar, manipular y recuperar datos en bases de datos relacionales. ```sql SELECT first_name, last_name FROM customers WHERE city = 'New York'; ``` ## Bases de Datos Relacionales ### Tablas Los datos se organizan en tablas: ```sql -- Tabla: employees +------------+------------+-----------+--------+ | employee_id| first_name | last_name | salary | +------------+------------+-----------+--------+ | 1 | Alice | Johnson | 75000 | | 2 | Bob | Smith | 65000 | | 3 | Carol | Williams | 80000 | +------------+------------+-----------+--------+ ``` ### Conceptos Clave - **Filas (Registros)**: Entradas individuales - **Columnas (Campos)**: Atributos de los datos - **Clave Primaria**: Identificador único para cada fila - **Clave Foránea**: Enlace a otra tabla ## Sistemas de Bases de Datos - **MySQL**: Popular de código abierto - **PostgreSQL**: Avanzado de código abierto - **SQLite**: Ligero, basado en archivos - **SQL Server**: Empresarial de Microsoft - **Oracle**: Solución empresarial ## Configuración ### SQLite (Más Simple) ```bash # Instalar sudo apt install sqlite3 # Crear base de datos sqlite3 mydatabase.db # O usar Python python3 -c "import sqlite3; print(sqlite3.version)" ``` ### MySQL ```bash # Instalar sudo apt install mysql-server # Conectar mysql -u username -p ``` ## Tu Primera Consulta ```sql -- Seleccionar todo de una tabla SELECT * FROM employees; ``` ```sql -- Seleccionar columnas específicas SELECT first_name, last_name FROM employees; ``` ## Configuración de la Base de Datos ### Crear Base de Datos ```sql CREATE DATABASE company; USE company; ``` ### Crear Tabla ```sql CREATE TABLE employees ( employee_id INTEGER PRIMARY KEY, first_name TEXT NOT NULL, last_name TEXT NOT NULL, email TEXT UNIQUE, hire_date DATE, salary DECIMAL(10, 2) ); ``` ### Insertar Datos de Ejemplo ```sql INSERT INTO employees (employee_id, first_name, last_name, email, hire_date, salary) VALUES (1, 'Alice', 'Johnson', 'alice@company.com', '2020-01-15', 75000.00), (2, 'Bob', 'Smith', 'bob@company.com', '2021-03-22', 65000.00), (3, 'Carol', 'Williams', 'carol@company.com', '2019-07-10', 80000.00); ``` ## Fundamentos de Sintaxis SQL ### Sensibilidad a Mayúsculas - Las palabras clave SQL no distinguen mayúsculas - Los nombres de tablas y columnas varían según la base de datos - Mejores prácticas: palabras clave en mayúsculas, nombres en minúsculas ```sql -- Todos son equivalentes SELECT * FROM employees; select * from employees; SeLeCt * FrOm employees; ``` ### Comentarios ```sql -- Comentario de una línea /* Comentario de varias líneas */ ``` ### Puntos y Comas ```sql -- La mayoría de las bases de datos requieren puntos y comas SELECT * FROM employees; SELECT * FROM departments; ``` ## Cláusulas SQL | Cláusula | Propósito | |----------|-----------| | SELECT | Columnas a recuperar | | FROM | Tabla a consultar | | WHERE | Condiciones de filtrado | | ORDER BY | Ordenar resultados | | GROUP BY | Agrupar filas | | HAVING | Filtrar grupos | ## Ejecutar SQL ### Línea de Comandos (SQLite) ```bash sqlite3 company.db < schema.sql sqlite3 company.db -header -column < query.sql ``` ### Python ```python import sqlite3 conn = sqlite3.connect('company.db') cursor = conn.cursor() cursor.execute("SELECT * FROM employees") results = cursor.fetchall() for row in results: print(row) conn.close() ``` ### DBeaver (GUI) Herramienta gratuita de base de datos multiplataforma. ## Resumen - SQL es el lenguaje estándar para bases de datos relacionales - Los datos se organizan en tablas con filas y columnas - Las claves primarias identifican exclusivamente las filas - Sintaxis SQL: SELECT columnas FROM tabla WHERE condiciones - SQL no distingue mayúsculas en las palabras clave - Los puntos y comas terminan las sentencias

Comments

Comments powered by Giscus

To enable comments, add your Giscus embed code here.

Learn more about Giscus →