-- Crear una base de datos y tablas para los ejemplos
CREATE DATABASE Tienda;
-- Tabla Clientes con llave primaria y constraints
CREATE TABLE Clientes (
ClienteID INT PRIMARY KEY, -- Llave primaria
Nombre VARCHAR(50) NOT NULL, -- Constraint NOT NULL
Email VARCHAR(100) UNIQUE, -- Constraint UNIQUE
Edad INT CHECK (Edad >= 18) -- Constraint CHECK
);
-- Tabla Pedidos con llave foránea
CREATE TABLE Pedidos (
PedidoID INT PRIMARY KEY, -- Llave primaria
ClienteID INT, -- Llave foránea
Fecha DATE NOT NULL, -- Constraint NOT NULL
Monto DECIMAL(10, 2) CHECK (Monto > 0), -- Constraint CHECK
FOREIGN KEY (ClienteID) REFERENCES Clientes(ClienteID) -- Definición de la llave foránea
);
-- Insertar datos en la tabla Clientes
INSERT INTO Clientes (ClienteID, Nombre, Email, Edad)
VALUES
(1, 'Juan', 'juan@example.com', 30),
(2, 'Ana', 'ana@example.com', 25),
(3, 'Pedro', 'pedro@example.com', 20);
-- Insertar datos en la tabla Pedidos
INSERT INTO Pedidos (PedidoID, ClienteID, Fecha, Monto)
VALUES
(1, 1, '2023-01-15', 100.00),
(2, 2, '2023-01-16', 150.00),
(3, 1, '2023-01-17', 200.00),
(4, 3, '2023-01-18', 250.00),
(5, 2, '2023-01-19', 300.00);
Llaves Primarias (PRIMARY KEY):
ClienteID INT PRIMARY KEY
: La columna ClienteID
en la tabla Clientes
se define como la llave primaria. Esto significa que cada valor en esta columna debe ser único y no nulo, identificando de manera única cada registro en la tabla.PedidoID INT PRIMARY KEY
: La columna PedidoID
en la tabla Pedidos
se define como la llave primaria, asegurando la unicidad y la no nulidad de los valores.Llaves Foráneas (FOREIGN KEY):
FOREIGN KEY (ClienteID) REFERENCES Clientes(ClienteID)
: En la tabla Pedidos
, la columna ClienteID
es una llave foránea que referencia la columna ClienteID
en la tabla Clientes
. Esto crea una relación entre las dos tablas, asegurando que cada ClienteID
en la tabla Pedidos
corresponda a un ClienteID
existente en la tabla Clientes
.Constraints UNIQUE, NOT NULL, CHECK:
Email VARCHAR(100) UNIQUE
: La columna Email
en la tabla Clientes
tiene una restricción UNIQUE
, lo que significa que todos los valores en esta columna deben ser únicos, evitando duplicados.Nombre VARCHAR(50) NOT NULL
y Fecha DATE NOT NULL
: Las columnas Nombre
en la tabla Clientes
y Fecha
en la tabla Pedidos
tienen la restricción NOT NULL
, lo que significa que no pueden contener valores nulos.Edad INT CHECK (Edad >= 18)
y Monto DECIMAL(10, 2) CHECK (Monto > 0)
: Las columnas Edad
en la tabla Clientes
y Monto
en la tabla Pedidos
tienen restricciones CHECK
, que aseguran que los valores cumplan con ciertas condiciones. En este caso, Edad
debe ser mayor o igual a 18 y Monto
debe ser mayor que 0.