-- Selección de columnas específicas
SELECT *
FROM nombre_tabla;
-- Selección de columnas específicas
SELECT columna1, columna2, ...
FROM nombre_tabla
WHERE condicion;
-- Selección de columnas específicas
SELECT columna1, columna2, ...
FROM nombre_tabla
WHERE condicion
ORDER BY columna ASC|DESC;
-- Selección de columnas específicas
SELECT columna_agrupada, COUNT(columna_agregada) AS alias
FROM nombre_tabla
GROUP BY columna_agrupada;
-- Selección de columnas específicas
SELECT columna AS 'alias'
FROM nombre_tabla;
-- Selección de columnas específicas
SELECT t1.columna1, t2.columna2
FROM tabla1 t1
INNER JOIN tabla2 t2
ON t1.columna_comun = t2.columna_comun;
-- Selección de columnas específicas
SELECT t1.columna1, t2.columna2
FROM tabla1 t1
LEFT JOIN tabla2 t2
ON t1.columna_comun = t2.columna_comun;
-- Selección de columnas específicas
--Subconsulta en WHERE:
SELECT columna1, columna2
FROM nombre_tabla
WHERE columna = (SELECT valor FROM nombre_tabla WHERE condicion);
--Subconsulta en el FROM:
SELECT columna1, columna2
FROM (SELECT columna1, columna2 FROM nombre_tabla WHERE condicion) AS alias_subconsulta;
Al finalizar la práctica, deben ser capaces de:
Esta práctica les permitirá tener una comprensión más amplia y profunda de cómo trabajar con bases de datos relacionales en SQL Server, desde consultas básicas hasta la combinación y análisis de datos más complejos.
-- Crear base de datos
CREATE DATABASE PracticaSQL;
-- Usar la base de datos recién creada
USE PracticaSQL;
-- Crear tabla Cliente
CREATE TABLE Cliente (
ClienteID INT PRIMARY KEY IDENTITY(1,1),
Nombre NVARCHAR(100),
Ciudad NVARCHAR(100),
FechaRegistro DATE,
TerritorioID INT,
Cuenta NVARCHAR(50)
);
-- Crear tabla Pedido
CREATE TABLE Pedido (
PedidoID INT PRIMARY KEY IDENTITY(1,1),
ClienteID INT,
FechaPedido DATE,
Total DECIMAL(10,2),
FOREIGN KEY (ClienteID) REFERENCES Cliente(ClienteID)
);
-- Insertar datos en la tabla Cliente
INSERT INTO Cliente (Nombre, Ciudad, FechaRegistro, TerritorioID, Cuenta)
VALUES
('Juan Pérez', 'Bogotá', '2021-01-15', 1, 'C001'),
('María García', 'Medellín', '2021-02-20', 2, 'C002'),
('Carlos López', 'Cali', '2021-03-25', 3, 'C003'),
('Ana Martínez', 'Bogotá', '2021-04-10', 1, 'C004'),
('Luis Rodríguez', 'Cartagena', '2021-05-05', 4, 'C005');
-- Insertar datos en la tabla Pedido
INSERT INTO Pedido (ClienteID, FechaPedido, Total)
VALUES
(1, '2021-06-01', 5000),
(1, '2021-07-15', 3000),
(2, '2021-06-10', 4000),
(3, '2021-06-20', 2500),
(4, '2021-07-01', 3500),
(5, '2021-07-05', 4500);
Consultas que puedes realizar en esta base de datos
Selección de datos básicos:
SELECT * FROM Cliente;
Filtrado por ciudad:
SELECT * FROM Cliente
WHERE Ciudad = 'Bogotá';
Ordenar los pedidos por fecha:
SELECT * FROM Pedido
ORDER BY FechaPedido ASC;
Contar clientes por territorio:
SELECT TerritorioID, COUNT(ClienteID) AS Total_Clientes
FROM Cliente
GROUP BY TerritorioID;
Consulta con INNER JOIN:
SELECT Cliente.Nombre, Pedido.PedidoID, Pedido.FechaPedido, Pedido.Total
FROM Cliente
INNER JOIN Pedido ON Cliente.ClienteID = Pedido.ClienteID;
Consulta con LEFT JOIN:
SELECT Cliente.Nombre, Pedido.PedidoID, Pedido.FechaPedido, Pedido.Total
FROM Cliente
LEFT JOIN Pedido ON Cliente.ClienteID = Pedido.ClienteID;
Subconsulta para contar el número total de pedidos por cliente:
SELECT ClienteID, (SELECT COUNT(PedidoID) FROM Pedido WHERE Pedido.ClienteID = Cliente.ClienteID) AS Total_Pedidos
FROM Cliente;