Está en la página 1de 16

Practica

Laboratorio 1.
Primer Parcial

Topico de Base de Datos

Barreto Morales Miguel


Grupo: 15601

1
Introduccion
Una consulta en una base de datos es una solicitud o pregunta formulada al sistema de gestión de
bases de datos (DBMS) para obtener información precisa y significativa. Estas consultas actúan como
un puente entre los usuarios y los datos almacenados, permitiendo la extracción de datos relevantes
de una manera eficiente y estructurada.

Las consultas pueden variar desde simples búsquedas que recuperan datos básicos hasta operaciones
complejas que combinan, filtran y calculan datos en función de múltiples criterios. En su forma más
básica, una consulta podría ser tan sencilla como recuperar todos los registros de una tabla específica,
mientras que consultas más avanzadas pueden involucrar múltiples tablas y utilizar operadores lógicos
y matemáticos para obtener información específica.

En este contexto, las bases de datos se convierten en herramientas poderosas para la toma de
decisiones informadas, la generación de informes, la automatización de procesos y el análisis de datos.
Las consultas permiten a los usuarios buscar respuestas a preguntas específicas, como "¿Cuántos
productos se vendieron el mes pasado?" o "¿Cuál es el saldo actual de esta cuenta?".

En este mundo digitalizado y orientado a los datos en el que vivimos, comprender cómo crear y
ejecutar consultas efectivas en bases de datos se ha convertido en una habilidad esencial para
profesionales en una amplia variedad de campos, desde la gestión empresarial hasta la ciencia de
datos y la investigación académica. A medida que las bases de datos continúan evolucionando y
creciendo en complejidad, el dominio de las consultas se vuelve cada vez más relevante para la toma
de decisiones eficientes y el acceso a información valiosa. En resumen, las consultas en bases de datos
son la puerta de entrada al vasto tesoro de datos que impulsa nuestro mundo moderno, y dominar
esta habilidad es fundamental para aprovechar al máximo este recurso invaluable.

2
Metodologia
Para realizar esta practica vamos a realizar la siguiente base de datos:

1.- Para empezar crearemos la base de datos llamandola “Agencia_Auto” de la siguiente manera

create database Agencia_Auto


use Agencia_Auto

2.- Despues empezaremos a crear las tablas para la base de datos poniendo claves primarias y
foraneas para hacer las relaciones entre ellas.

Una clave primaria es uno o más valores de campo que hacen un único registro. Normalmente la clave primaria es llamada
id y es una secuencia. Una clave foránea es utilizada para referirse a un registro único en otra tabla (utilizando la clave
primaria de esa otra tabla).

create table Color (id_color int primary key not null,


nombre_color varchar(10)
)

create table estado(id_estado_reg int primary key not null,


nombre_edo varchar(15)
)

create table tipo (id_tipo int primary key not null,


nombre_tipo nchar(1),
adicional int
)

create table placa (id_placa varchar(10) primary key not null,


num_tarjeta_cir varchar(20),
num_registro varchar(20),
id_estado_reg int,
constraint fk_estado foreign key (id_estado_reg)references estado
)

create table auto (id_auto int primary key not null,


marca varchar (15),
submarca varchar (15),
modelo int,
precio money,
num_motor varchar(20),
id_color int,
id_placa varchar(10),
id_tipo int,
constraint fk_color foreign key (id_color)references color,
constraint fk_placa foreign key (id_placa)references placa,
constraint fk_tipo foreign key (id_tipo)references tipo
)

3
Al realizar esto las tablas estaran relacionadas para poder crear un diagrama de relacion en la cual nos
debe aparecer de la siguiente manera:

Al terminar de crear la base de datos realizaremos las siguientes acciones en la misma:

a) Inserte 5 registros en cada una de las tablas.


b) Modifique el precio de los autos en un 18%.
c) Inserte dos registros en la tabla auto.
d) Inserte dos registros en la tabla color.
e) Elimine dos registros en la tabla color.
f) Realice una consulta entre la tabla auto, color y tipo.
g) Realice una consulta entre la tabla auto y placa donde la placa inicie con la letra “M”.
h) Realice una consulta entre la tabla auto, placa y estado donde los autos hayan sido registrados
en el estado de “Hidalgo”.
i) Inserte una columna de nombre adicional1 y sus registros en la tabla tipo.
j) Realice una consulta en la tabla color y la tabla tipo donde muestre todos los colores y tipos de
autos.
k) Realice una consulta que muestre todos los autos, de color amarillo y de tipo básico.

A continuacion vamos a realizar cada una de estas acciones:

4
a) Inserte 5 registros en cada una de las tablas:
Para esto vamos a escribir este comando para agregar registros en esta base de datos

-- Insertar 5 registros en la tabla Color


INSERT INTO Color (id_color, nombre_color) VALUES
(1, 'Rojo'),
(2, 'Azul'),
(3, 'Verde'),
(4, 'Negro'),
(5, 'Blanco')

-- Insertar 5 registros en la tabla estado


INSERT INTO estado (id_estado_reg, nombre_edo) VALUES
(1, 'Hidalgo'),
(2, 'Puebla'),
(3, 'Querétaro'),
(4, 'Guanajuato'),
(5, 'México')

-- Insertar 5 registros en la tabla tipo


INSERT INTO tipo (id_tipo, nombre_tipo, adicional) VALUES
(1, 'B', 10),
(2, 'D', 15),
(3, 'F', 20),
(4, 'G', 25),
(5, 'M', 30)

-- Insertar 5 registros en la tabla placa


INSERT INTO placa (id_placa, num_tarjeta_cir, num_registro, id_estado_reg) VALUES
('ABC123', '12345', '67890', 1),
('XYZ789', '54321', '09876', 2),
('LMN456', '98765', '43210', 3),
('DEF789', '56789', '12345', 4),
('JKL012', '45678', '98765', 5)

-- Insertar 5 registros en la tabla auto


INSERT INTO auto (id_auto, marca, submarca, modelo, precio, num_motor, id_color, id_placa,
id_tipo) VALUES
(1, 'Toyota', 'Corolla', 2022, 250000, 'ABCD12345', 1, 'ABC123', 1),
(2, 'Ford', 'Focus', 2021, 220000, 'EFGH67890', 2, 'XYZ789', 2),
(3, 'Chevrolet', 'Cruze', 2020, 230000, 'IJKL45678', 3, 'LMN456', 3),
(4, 'Honda', 'Civic', 2022, 270000, 'MNOP90123', 4, 'DEF789', 4),
(5, 'Nissan', 'Sentra', 2021, 240000, 'QRST45678', 5, 'JKL012', 5)

Para describir esto tomaremos como ejemplo la siguiente sentencia:

INSERT INTO auto (id_auto, marca, submarca, modelo, precio, num_motor, id_color, id_placa,
id_tipo) VALUES (1, 'Toyota', 'Corolla', 2022, 250000, 'ABCD12345', 1, 'ABC123', 1)

Esta sentencia se utiliza para agregar un nuevo registro de automóvil a la tabla con los siguientes
valores:
• id_auto: El valor 1, que representa la clave primaria única para este registro de automóvil en la
tabla "auto".
• marca: "Toyota", que es la marca del automóvil.
• submarca: "Corolla", que es la submarca o modelo específico del automóvil.
• modelo: 2022, que indica el año del modelo del automóvil.
• precio: 250,000, que representa el precio del automóvil en la moneda local (presumiblemente,
250,000 unidades de la moneda local).

5
• num_motor: "ABCD12345", que es el número de motor del automóvil.
• id_color: 1, que corresponde al identificador del color del automóvil en la tabla "Color". En este
caso, el color asociado al identificador 1 sería "Rojo" según los datos proporcionados
previamente.
• id_placa: "ABC123", que es el identificador de la placa del automóvil.
• id_tipo: 1, que se relaciona con el tipo de automóvil en la tabla "Tipo". En este caso, el tipo
asociado al identificador 1 sería "B" y, según la estructura de la tabla "Tipo", podría tener un
valor adicional de 10.
Esta sentencia INSERT agrega un nuevo registro de automóvil a la base de datos con los valores
especificados en las columnas correspondientes de la tabla "auto". Cada valor se asigna a su respectiva
columna en el orden especificado en la sentencia.

b) Modifique el precio de los autos en un 18%.


Para realizar este inciso usaremos:
UPDATE auto
SET precio = precio * 0.18

El comando UPDATE actúa de la siguiente manera:


• UPDATE auto: Indica que se actualizarán registros en la tabla "auto".
• SET precio = precio * 0.18: Especifica que la columna "precio" se actualizará multiplicando su
valor actual por 0.18 (lo que equivale al 18% del valor original).
En otras palabras, esta sentencia está aplicando un aumento del 18% al precio de todos los
automóviles en la tabla "auto". Después de ejecutar esta sentencia, el precio de todos los registros de
la tabla "auto" se verá incrementado en un 18%.

c) Inserte dos registros en la tabla auto.


INSERT INTO auto (id_auto, marca, submarca, modelo, precio, num_motor, id_color, id_placa,
id_tipo) VALUES
(6, 'Volkswagen', 'Jetta', 2023, 280000, 'UVWXYZ1234', 1, 'PQR567', 1),
(7, 'Hyundai', 'Elantra', 2022, 260000, '12345ABC', 2, 'STU890', 2)

Aquí haremos lo mismo que la primera instrucción.

d) Inserte dos registros en la tabla color.


-- Insertar 2 registros en la tabla Color
INSERT INTO Color (id_color, nombre_color) VALUES
(6, 'Plateado'),
(7, 'Gris')

igual repetimos la primera instrucción pero ahora con la tabla “Color”.

6
e) Elimine dos registros en la tabla color
DELETE FROM Color WHERE id_color IN (6, 7)

Esta sentencia se utiliza para eliminar registros de la tabla "Color" que cumplan con la condición
especificada.
El comando DELETE FROM Color indica que se realizará una eliminación de registros en la tabla
"Color". Luego, WHERE id_color IN (6, 7) establece la condición de eliminación. En este caso, se
eliminarán todos los registros en la tabla "Color" cuyo valor en la columna "id_color" sea igual a 6 o 7.
En resumen, esta sentencia eliminará de la tabla "Color" los registros que tengan un valor de
"id_color" igual a 6 o 7. Después de ejecutar esta sentencia, los colores con "id_color" 6 (Plateado) y 7
(Gris) ya no estarán en la tabla "Color".

f) Realice una consulta entre la tabla auto, color y tipo


-- Consulta entre las tablas auto, color y tipo
SELECT a.marca, a.submarca, c.nombre_color, t.nombre_tipo
FROM auto a
JOIN color c ON a.id_color = c.id_color
JOIN tipo t ON a.id_tipo = t.id_tipo

Esta consulta está diseñada para recuperar información específica de automóviles, incluyendo la
marca, submarca, color y tipo de cada automóvil.
Explicación:
• SELECT a.marca, a.submarca, c.nombre_color, t.nombre_tipo: Indica que la consulta
seleccionará las columnas "marca" y "submarca" de la tabla "auto", así como las columnas
"nombre_color" y "nombre_tipo" de las tablas "color" y "tipo", respectivamente.
• FROM auto a: Establece la tabla principal de la que se seleccionarán los datos como "auto" y se
le asigna el alias "a" para abreviar su nombre en la consulta.
• JOIN color c ON a.id_color = c.id_color: Realiza una operación de unión (JOIN) con la tabla
"color" utilizando la columna "id_color" de la tabla "auto" y la columna "id_color" de la tabla
"color" como el criterio de unión. Esto permite combinar información de ambas tablas.
• JOIN tipo t ON a.id_tipo = t.id_tipo: Realiza otra operación de unión (JOIN) con la tabla "tipo"
utilizando la columna "id_tipo" de la tabla "auto" y la columna "id_tipo" de la tabla "tipo" como
el criterio de unión.
Esta consulta devuelve una lista de automóviles con detalles sobre su marca, submarca, color y tipo. Al
unir las tablas "auto", "color" y "tipo" en función de las relaciones definidas en la base de datos, se
obtiene una visión completa de la información relacionada con estos vehículos.

7
g) Realice una consulta entre la tabla auto y placa donde la placa inicie con la letra
“M”.
-- Consulta entre la tabla auto y placa con placa que inicie con "M"
SELECT a.marca, a.submarca, p.id_placa
FROM auto a
JOIN placa p ON a.id_placa = p.id_placa
WHERE p.id_placa LIKE 'M%'

Esta consulta está diseñada para recuperar información específica de automóviles y placas de
matrícula.
Explicación:
• SELECT a.marca, a.submarca, p.id_placa: Indica que la consulta seleccionará las columnas
"marca" y "submarca" de la tabla "auto", así como la columna "id_placa" de la tabla "placa".
• FROM auto a: Establece la tabla principal de la que se seleccionarán los datos como "auto" y se
le asigna el alias "a" para abreviar su nombre en la consulta.
• JOIN placa p ON a.id_placa = p.id_placa: Realiza una operación de unión (JOIN) con la tabla
"placa" utilizando la columna "id_placa" de la tabla "auto" y la columna "id_placa" de la tabla
"placa" como el criterio de unión. Esto permite combinar información de ambas tablas.
• WHERE p.id_placa LIKE 'M%': Establece una condición en la que se seleccionarán solo los
registros en los que el valor de la columna "id_placa" de la tabla "placa" comience con la letra
'M'. El operador LIKE se utiliza para buscar patrones de texto y '%' es un comodín que
representa cualquier conjunto de caracteres.
Esta consulta devuelve una lista de automóviles con detalles sobre su marca y submarca, junto con la
información de las placas de matrícula que cumplen con la condición de comenzar con la letra 'M'.
Esto proporciona una lista de automóviles cuyas placas de matrícula tienen un patrón específico.

h) Realice una consulta entre la tabla auto, placa y estado donde los autos hayan
sido registrados en el estado de “Hidalgo”.
-- Consulta entre la tabla auto, placa y estado para autos registrados en Hidalgo
SELECT a.marca, a.submarca, p.id_placa, e.nombre_edo
FROM auto a
JOIN placa p ON a.id_placa = p.id_placa
JOIN estado e ON p.id_estado_reg = e.id_estado_reg
WHERE e.nombre_edo = 'Hidalgo'

Esta consulta está diseñada para recuperar información específica de automóviles, placas de matrícula
y estados de registro para aquellos automóviles registrados en el estado de "Hidalgo".
Explicación:
• SELECT a.marca, a.submarca, p.id_placa, e.nombre_edo: Indica que la consulta seleccionará
las columnas "marca" y "submarca" de la tabla "auto", la columna "id_placa" de la tabla "placa"
y la columna "nombre_edo" de la tabla "estado".
• FROM auto a: Establece la tabla principal de la que se seleccionarán los datos como "auto" y se
le asigna el alias "a" para abreviar su nombre en la consulta.
• JOIN placa p ON a.id_placa = p.id_placa: Realiza una operación de unión (JOIN) con la tabla
"placa" utilizando la columna "id_placa" de la tabla "auto" y la columna "id_placa" de la tabla
"placa" como el criterio de unión. Esto permite combinar información de ambas tablas.
• JOIN estado e ON p.id_estado_reg = e.id_estado_reg: Realiza otra operación de unión (JOIN)
con la tabla "estado" utilizando la columna "id_estado_reg" de la tabla "placa" y la columna

8
"id_estado_reg" de la tabla "estado" como el criterio de unión. Esto permite combinar
información sobre el estado de registro de los automóviles.
• WHERE e.nombre_edo = 'Hidalgo': Establece una condición en la que se seleccionarán solo los
registros en los que el valor de la columna "nombre_edo" de la tabla "estado" sea igual a
'Hidalgo'. Esto filtra los resultados para mostrar solo automóviles registrados en el estado de
Hidalgo.
En resumen, esta consulta devuelve una lista de automóviles con detalles sobre su marca, submarca,
placa de matrícula y el estado de registro, pero solo para aquellos automóviles registrados en el
estado de "Hidalgo". Esto proporciona información específica sobre los automóviles que cumplen con
este criterio

i) Inserte una columna de nombre adicional1 y sus registros en la tabla tipo.


-- Agregar una columna llamada adicional1 en la tabla tipo
ALTER TABLE tipo
ADD adicional1 int;

Esta sentencia es un comando de alteración de tabla que se utiliza para agregar una nueva columna
llamada "adicional1" a la tabla "tipo" en la base de datos "Agencia_Auto". La columna "adicional1" se
define como un tipo de datos entero (int).
El ALTER TABLE amplía la estructura de la tabla "tipo" al agregar una nueva columna llamada
"adicional1" que permitirá almacenar valores enteros en la tabla. Esto puede ser útil para agregar
información adicional a los registros de la tabla "tipo" en el futuro sin modificar la estructura principal
de la tabla.

-- Actualizar los registros en la columna adicional1


UPDATE tipo
SET adicional1 = 5 WHERE id_tipo = 1

UPDATE tipo
SET adicional1 = 10 WHERE id_tipo = 2

UPDATE tipo
SET adicional1 = 15 WHERE id_tipo = 3

UPDATE tipo
SET adicional1 = 20 WHERE id_tipo = 4

UPDATE tipo
SET adicional1 = 25 WHERE id_tipo = 5

Estas sentencias actualizan la columna "adicional1" en función del valor de la columna "id_tipo".
Cada uno de los comandos UPDATE actúa de la siguiente manera:
• UPDATE tipo SET adicional1 = 5 WHERE id_tipo = 1: Establece el valor de la columna
"adicional1" en 5 para el registro en el que el valor de la columna "id_tipo" sea igual a 1.
• UPDATE tipo SET adicional1 = 10 WHERE id_tipo = 2: Establece el valor de la columna
"adicional1" en 10 para el registro en el que el valor de la columna "id_tipo" sea igual a 2.
• UPDATE tipo SET adicional1 = 15 WHERE id_tipo = 3: Establece el valor de la columna
"adicional1" en 15 para el registro en el que el valor de la columna "id_tipo" sea igual a 3.
• UPDATE tipo SET adicional1 = 20 WHERE id_tipo = 4: Establece el valor de la columna
"adicional1" en 20 para el registro en el que el valor de la columna "id_tipo" sea igual a 4.

9
• UPDATE tipo SET adicional1 = 25 WHERE id_tipo = 5: Establece el valor de la columna
"adicional1" en 25 para el registro en el que el valor de la columna "id_tipo" sea igual a 5.
Estas sentencias actualizan la columna "adicional1" en la tabla "tipo" con valores específicos según el
valor de "id_tipo". Después de ejecutar estas sentencias, los registros de la tabla "tipo" tendrán
valores diferentes en la columna "adicional1" de acuerdo con las condiciones establecidas en cada
comando UPDATE.

j) Realice una consulta en la tabla color y la tabla tipo donde muestre todos los
colores y tipos de autos.

-- Consulta para mostrar todos los colores y tipos de autos


SELECT c.nombre_color, t.nombre_tipo
FROM color c
JOIN tipo t ON c.id_color = t.id_tipo

Esta consulta está diseñada para recuperar información sobre los nombres de colores y tipos de
automóviles que tienen una relación específica.
Explicación:
• SELECT c.nombre_color, t.nombre_tipo: Indica que la consulta seleccionará las columnas
"nombre_color" de la tabla "color" y "nombre_tipo" de la tabla "tipo".
• FROM color c: Establece la tabla principal de la que se seleccionarán los datos como "color" y
se le asigna el alias "c" para abreviar su nombre en la consulta.
• JOIN tipo t ON c.id_color = t.id_tipo: Realiza una operación de unión (JOIN) con la tabla "tipo"
utilizando la columna "id_color" de la tabla "color" y la columna "id_tipo" de la tabla "tipo"
como el criterio de unión. Esto permite combinar información de ambas tablas.

k) Realice una consulta que muestre todos los autos, de color amarillo y de tipo
básico.

-- Consulta para mostrar autos de color amarillo y tipo básico


SELECT a.marca, a.submarca, c.nombre_color, t.nombre_tipo
FROM auto a
JOIN color c ON a.id_color = c.id_color
JOIN tipo t ON a.id_tipo = t.id_tipo
WHERE c.nombre_color = 'Amarillo' AND t.nombre_tipo = 'B'

Esta consulta está diseñada para recuperar información específica sobre automóviles que cumplan con
ciertos criterios, en este caso, automóviles de color "Amarillo" y tipo "B".
Aquí está una explicación de la consulta:
• SELECT a.marca, a.submarca, c.nombre_color, t.nombre_tipo: Indica que la consulta
seleccionará las columnas "marca" y "submarca" de la tabla "auto", así como las columnas
"nombre_color" y "nombre_tipo" de las tablas "color" y "tipo", respectivamente.
• FROM auto a: Establece la tabla principal de la que se seleccionarán los datos como "auto" y se
le asigna el alias "a" para abreviar su nombre en la consulta.
• JOIN color c ON a.id_color = c.id_color: Realiza una operación de unión (JOIN) con la tabla
"color" utilizando la columna "id_color" de la tabla "auto" y la columna "id_color" de la tabla
"color" como el criterio de unión. Esto permite combinar información sobre los colores de los
automóviles.

10
• JOIN tipo t ON a.id_tipo = t.id_tipo: Realiza otra operación de unión (JOIN) con la tabla "tipo"
utilizando la columna "id_tipo" de la tabla "auto" y la columna "id_tipo" de la tabla "tipo" como
el criterio de unión. Esto permite combinar información sobre los tipos de los automóviles.
• WHERE c.nombre_color = 'Amarillo' AND t.nombre_tipo = 'B': Establece una condición en la
que se seleccionarán solo los registros en los que el valor de la columna "nombre_color" de la
tabla "color" sea igual a 'Amarillo' y el valor de la columna "nombre_tipo" de la tabla "tipo" sea
igual a 'B'. Esto filtra los resultados para mostrar solo automóviles que cumplan con estos
criterios.
Esta consulta devuelve una lista de automóviles que son de color "Amarillo" y tienen un tipo "B",
proporcionando detalles como la marca y submarca de dichos automóviles.

Después de realizar los ejercicios vamos a repetir lo mismo con otras dos bases de datos, pero ahora
nos ahorraremos las explicaciones ya que se repetirá lo mismo con la base de datos de
“Agencia_Auto”.

- Base de datos de “Tienda en Linea”

CREATE DATABASE TiendaEnLinea


USE TiendaEnLinea

CREATE TABLE Productos (


ProductoID INT PRIMARY KEY,
Nombre VARCHAR(255) NOT NULL,
Descripcion TEXT,
Precio DECIMAL(10, 2) NOT NULL,
Stock INT NOT NULL,
CategoriaID INT,
FOREIGN KEY (CategoriaID) REFERENCES Categorias(CategoriaID)
)

CREATE TABLE Categorias (


CategoriaID INT PRIMARY KEY,
Nombre VARCHAR(100) NOT NULL
)

CREATE TABLE Clientes (


ClienteID INT PRIMARY KEY,
Nombre VARCHAR(255) NOT NULL,
Apellido VARCHAR(255) NOT NULL,
CorreoElectronico VARCHAR(255) NOT NULL
)

CREATE TABLE Pedidos (


PedidoID INT PRIMARY KEY,
ClienteID INT,
Fecha DATE NOT NULL,
Total DECIMAL(10, 2) NOT NULL,
FOREIGN KEY (ClienteID) REFERENCES Clientes(ClienteID)
)
CREATE TABLE Carrito (
CarritoID INT PRIMARY KEY,
ClienteID INT,
ProductoID INT,
Cantidad INT,
FOREIGN KEY (ClienteID) REFERENCES Clientes(ClienteID),
FOREIGN KEY (ProductoID) REFERENCES Productos(ProductoID)
)

11
CREATE TABLE DetallesPedido (
DetalleID INT PRIMARY KEY,
PedidoID INT,
ProductoID INT,
Cantidad INT,
Precio DECIMAL(10, 2),
FOREIGN KEY (PedidoID) REFERENCES Pedidos(PedidoID),
FOREIGN KEY (ProductoID) REFERENCES Productos(ProductoID)
)
- Diagrama de relación:

- Ingresamos los registros:

INSERT INTO Categorias (CategoriaID, Nombre) VALUES


(1, 'Electrónica'),
(2, 'Ropa'),
(3, 'Hogar'),
(4, 'Deportes'),
(5, 'Juguetes')

INSERT INTO Productos (ProductoID, Nombre, Descripcion, Precio, Stock, CategoriaID) VALUES
(1, 'Smartphone', 'Teléfono inteligente de última generación', 599.99, 100, 1),
(2, 'Camiseta', 'Camiseta de algodón de alta calidad', 19.99, 200, 2),
(3, 'Mesa de centro', 'Mesa de centro para la sala de estar', 149.99, 50, 3),
(4, 'Balón de fútbol', 'Balón de fútbol oficial', 29.99, 30, 4),
(5, 'Rompecabezas', 'Rompecabezas de 1000 piezas', 24.99, 40, 5)

INSERT INTO Clientes (ClienteID, Nombre, Apellido, CorreoElectronico) VALUES


(1, 'Juan', 'Pérez', 'juan.perez@email.com'),
(2, 'María', 'González', 'maria.gonzalez@email.com'),
(3, 'Carlos', 'Rodríguez', 'carlos.rodriguez@email.com'),
(4, 'Ana', 'López', 'ana.lopez@email.com'),
(5, 'Pedro', 'Martínez', 'pedro.martinez@email.com')

INSERT INTO Pedidos (PedidoID, ClienteID, Fecha, Total) VALUES


(1, 1, '2023-09-10', 129.99),
(2, 2, '2023-09-11', 299.99),
(3, 3, '2023-09-12', 74.99),
12
(4, 4, '2023-09-13', 159.99),
(5, 5, '2023-09-14', 49.99)

INSERT INTO Carrito (CarritoID, ClienteID, ProductoID, Cantidad) VALUES


(1, 1, 1, 2),
(2, 2, 3, 1),
(3, 3, 2, 3),
(4, 4, 4, 2),
(5, 5, 5, 1)

INSERT INTO DetallesPedido (DetalleID, PedidoID, ProductoID, Cantidad, Precio) VALUES


(1, 1, 1, 2, 599.99),
(2, 1, 3, 1, 149.99),
(3, 2, 2, 3, 19.99),
(4, 3, 4, 2, 29.99),
(5, 4, 5, 1, 24.99)

- En esta base de datos solo realizaremos 5 transacciones:


------------------------------------------------------------------------------------------------
INSERT INTO Productos (ProductoID, Nombre, Descripcion, Precio, Stock, CategoriaID) VALUES
(6, 'Tablet', 'Tablet de 10 pulgadas', 299.99, 50, 1),
(7, 'Auriculares inalámbricos', 'Auriculares Bluetooth de alta calidad', 79.99, 100, 1)
------------------------------------------------------------------------------------------------
INSERT INTO Clientes (ClienteID, Nombre, Apellido, CorreoElectronico) VALUES
(6, 'Laura', 'Gómez', 'laura.gomez@email.com'),
(7, 'Mario', 'Sánchez', 'mario.sanchez@email.com')

------------------------------------------------------------------------------------------------
DELETE FROM Clientes WHERE ClienteID IN (6, 7)
------------------------------------------------------------------------------------------------

SELECT P.PedidoID, DP.DetalleID, C.CarritoID


FROM Pedidos P
INNER JOIN DetallesPedido DP ON P.PedidoID = DP.PedidoID
INNER JOIN Carrito C ON DP.PedidoID = P.PedidoID
------------------------------------------------------------------------------------------------
SELECT C.CorreoElectronico, P.Fecha
FROM Clientes C
INNER JOIN Pedidos P ON C.ClienteID = P.ClienteID

13
- Base de datos de “Escuela”
CREATE DATABASE Escuela
USE Escuela

CREATE TABLE Estudiantes (


EstudianteID INT PRIMARY KEY,
Nombre VARCHAR(255) NOT NULL,
Apellido VARCHAR(255) NOT NULL,
FechaNacimiento DATE NOT NULL
)

CREATE TABLE Cursos (


CursoID INT PRIMARY KEY,
Nombre VARCHAR(255) NOT NULL,
Descripcion TEXT,
ProfesorID INT,
FOREIGN KEY (ProfesorID) REFERENCES Profesores(ProfesorID)
)

CREATE TABLE Profesores (


ProfesorID INT PRIMARY KEY,
Nombre VARCHAR(255) NOT NULL,
Apellido VARCHAR(255) NOT NULL,
CorreoElectronico VARCHAR(255) NOT NULL
)

CREATE TABLE Matriculas (


MatriculaID INT PRIMARY KEY,
EstudianteID INT,
CursoID INT,
FechaMatriculacion DATE NOT NULL,
FOREIGN KEY (EstudianteID) REFERENCES Estudiantes(EstudianteID),
FOREIGN KEY (CursoID) REFERENCES Cursos(CursoID)
)

- Diagrama de relación:

14
- Ingresamos los registros:
INSERT INTO Estudiantes (EstudianteID, Nombre, Apellido, FechaNacimiento) VALUES
(1, 'Carlos', 'Gómez', '2000-01-15'),
(2, 'Sofía', 'López', '2001-03-20'),
(3, 'Andrés', 'Torres', '1999-08-10'),
(4, 'Laura', 'Vargas', '2002-05-05'),
(5, 'Javier', 'Hernández', '1998-11-30')

-- Insertar registros en la tabla Profesores


INSERT INTO Profesores (ProfesorID, Nombre, Apellido, CorreoElectronico) VALUES
(01, 'María', 'Sánchez', 'maria@example.com'),
(02, 'Juan', 'González', 'juan@example.com'),
(03, 'Luis', 'Pérez', 'luis@example.com'),
(04, 'Ana', 'Martínez', 'ana@example.com'),
(05, 'Pedro', 'López', 'pedro@example.com')

-- Insertar registros en la tabla Cursos


INSERT INTO Cursos (CursoID, Nombre, Descripcion, ProfesorID) VALUES
(001, 'Matemáticas 101', 'Curso introductorio de matemáticas', 1),
(002, 'Historia Mundial', 'Historia de la civilización mundial', 2),
(003, 'Programación en Python', 'Introducción a la programación en Python', 3),
(004, 'Literatura Clásica', 'Estudio de obras literarias clásicas', 4),
(005, 'Educación Física', 'Actividades deportivas y salud física', 5)

-- Insertar registros en la tabla Matriculas


INSERT INTO Matriculas (MatriculaID, EstudianteID, CursoID, FechaMatriculacion) VALUES
(0001, 1, 001, '2023-09-10'),
(0002, 2, 002, '2023-09-10'),
(0003, 3, 003, '2023-09-09'),
(0004, 4, 004, '2023-09-09'),
(0005, 5, 005, '2023-09-08')

- Realizamos las 5 transacciones:

INSERT INTO Profesores (ProfesorID, Nombre, Apellido, CorreoElectronico) VALUES


(06, 'Mónica', 'Gómez', 'monica@example.com'),
(07, 'Fernando', 'Pérez', 'fernando@example.com')
------------------------------------------------------------------------------------------------
INSERT INTO Cursos (CursoID, Nombre, Descripcion, ProfesorID) VALUES
(006, 'Química Orgánica', 'Curso avanzado de química', 6),
(007, 'Economía 101', 'Introducción a la economía', 7)
------------------------------------------------------------------------------------------------
DELETE FROM Cursos WHERE CursoID IN (006, 007)
------------------------------------------------------------------------------------------------
SELECT
P.Nombre AS NombreProfesor,
P.Apellido AS ApellidoProfesor,
C.Nombre AS NombreCurso,
E.Nombre AS NombreEstudiante,
E.Apellido AS ApellidoEstudiante
FROM
Profesores AS P
JOIN
Cursos AS C ON P.ProfesorID = C.ProfesorID
JOIN
Matriculas AS M ON C.CursoID = M.CursoID
JOIN
Estudiantes AS E ON M.EstudianteID = E.EstudianteID
------------------------------------------------------------------------------------------------
SELECT
C.Nombre AS NombreCurso,
P.CorreoElectronico AS CorreoElectronicoProfesor

15
FROM
Cursos AS C
JOIN
Profesores AS P ON C.ProfesorID = P.ProfesorID

Conclusión
En resumen, hemos creado una base de datos llamada "Agencia_Auto" que contiene información
sobre automóviles, colores, tipos, placas y estados de registro. Hemos realizado diversas operaciones
en la base de datos, como la creación de tablas, la inserción de datos, la actualización de registros y la
eliminación de datos. También hemos ejecutado consultas SQL para recuperar información específica
de la base de datos.

En general, esta base de datos está diseñada para gestionar información relacionada con la venta y
registro de automóviles. Las tablas "auto", "color", "tipo", "placa" y "estado" almacenan datos clave
sobre los automóviles, incluyendo su marca, modelo, precio, color y tipo, así como información de
registro y ubicación. Las operaciones de inserción, actualización y eliminación permiten mantener y
modificar la información en la base de datos según sea necesario.

Las consultas SQL nos permiten recuperar datos de manera eficiente, como obtener una lista de
automóviles de color "Amarillo" y tipo "B" o encontrar automóviles registrados en un estado
específico, como "Hidalgo". Además, hemos agregado una columna llamada "adicional1" a la tabla
"tipo" para expandir la información almacenada en la base de datos.

En conclusión, esta base de datos y las operaciones realizadas en ella son un ejemplo de cómo se
puede gestionar y consultar información relacionada con automóviles y su registro. El diseño y las
operaciones pueden adaptarse y ampliarse según las necesidades específicas de una agencia
automotriz o un sistema de gestión de vehículos.

Referencias bibliográficas.
- QGIS. (s.f.). Database Concepts. Recuperado de
https://docs.qgis.org/3.28/es/docs/training_manual/database_concepts/db_intro.ht
ml
- Microsoft. (s.f.). Insert, update, and delete records from a table using Access SQL.
Recuperado de https://learn.microsoft.com/es-
es/office/vba/access/concepts/structured-query-language/insert-update-and-delete-
records-from-a-table-using-access-sql
- Microsoft. (s.f.). Usar una consulta de unión para combinar varias consultas en un
mismo resultado. Recuperado de https://support.microsoft.com/es-es/office/usar-
una-consulta-de-unión-para-combinar-varias-consultas-en-un-mismo-resultado-
1f772ec0-cc73-474d-ab10-ad0a75541c6e

16

También podría gustarte