Base de datos de muestra de SQL Server para los ejemplos que realizaremos

En este tutorial, le presentaremos una base de datos de muestra de SQL Server llamada BikeStores.


Como puede ver en el diagrama, la base de datos de ejemplo de BikeStores tiene dos esquemas de ventas y producción, y estos esquemas tienen nueve tablas.

Tablas de bases de datos

Tabla sales.stores

La tabla sales.stores incluye la información de la tienda. Cada tienda tiene un nombre de tienda, información de contacto como teléfono y correo electrónico, y una dirección que incluye calle, ciudad, estado y código postal.

CREATE TABLE sales.stores (
 store_id INT IDENTITY (1, 1) PRIMARY KEY,
 store_name VARCHAR (255) NOT NULL,
 phone VARCHAR (25),
 email VARCHAR (255),
 street VARCHAR (255),
 city VARCHAR (255),
 state VARCHAR (10),
 zip_code VARCHAR (5)
);

Tabla sales.staffs

La tabla sales.staffs almacena la información esencial del personal, incluido el nombre y el apellido. También contiene información de comunicación como correo electrónico y teléfono.

Una persona trabaja en una tienda especificada por el valor en la columna store_id. Una tienda puede tener uno o más empleados.

Una persona informa a un gerente de tienda especificado por el valor en la columna manager_id. Si el valor en manager_id es nulo, entonces el personal es el gerente superior.

Si un personal ya no trabaja para ninguna tienda, el valor en la columna activa se establece en cero.

CREATE TABLE sales.staffs (
 staff_id INT IDENTITY (1, 1) PRIMARY KEY,
 first_name VARCHAR (50) NOT NULL,
 last_name VARCHAR (50) NOT NULL,
 email VARCHAR (255) NOT NULL UNIQUE,
 phone VARCHAR (25),
 active tinyint NOT NULL,
 store_id INT NOT NULL,
 manager_id INT,
 FOREIGN KEY (store_id) 
        REFERENCES sales.stores (store_id) 
        ON DELETE CASCADE ON UPDATE CASCADE,
 FOREIGN KEY (manager_id) 
        REFERENCES sales.staffs (staff_id) 
        ON DELETE NO ACTION ON UPDATE NO ACTION
);

Table production.categories

La tabla production.categories almacena las categorías de bicicletas, como bicicletas para niños, bicicletas de confort y bicicletas eléctricas.

CREATE TABLE production.categories (
 category_id INT IDENTITY (1, 1) PRIMARY KEY,
 category_name VARCHAR (255) NOT NULL
);

Tabla production.brands

La tabla production.brands almacena la información de la marca de bicicletas, por ejemplo, Electra, Haro y Heller.

CREATE TABLE production.brands (
 brand_id INT IDENTITY (1, 1) PRIMARY KEY,
 brand_name VARCHAR (255) NOT NULL
);

Tabla production.products

La tabla production.products almacena la información del producto, como el nombre, la marca, la categoría, el año del modelo y el precio de lista.

Cada producto pertenece a una marca especificada por la columna brand_id . Por lo tanto, una marca puede tener cero o muchos productos.

Cada producto también pertenece a una categoría especificada por la columna category_id . Además, cada categoría puede tener cero o muchos productos.

CREATE TABLE production.products (
 product_id INT IDENTITY (1, 1) PRIMARY KEY,
 product_name VARCHAR (255) NOT NULL,
 brand_id INT NOT NULL,
 category_id INT NOT NULL,
 model_year SMALLINT NOT NULL,
 list_price DECIMAL (10, 2) NOT NULL,
 FOREIGN KEY (category_id) 
        REFERENCES production.categories (category_id) 
        ON DELETE CASCADE ON UPDATE CASCADE,
 FOREIGN KEY (brand_id) 
        REFERENCES sales.brands (brand_id) 
        ON DELETE CASCADE ON UPDATE CASCADE
);

Tabla sales.customers

La tabla sales.customers almacena la información del cliente, incluyendo nombre, apellido, teléfono, correo electrónico, calle, ciudad, estado y código postal.

CREATE TABLE sales.customers (
 customer_id INT IDENTITY (1, 1) PRIMARY KEY,
 first_name VARCHAR (255) NOT NULL,
 last_name VARCHAR (255) NOT NULL,
 phone VARCHAR (25),
 email VARCHAR (255) NOT NULL,
 street VARCHAR (255),
 city VARCHAR (50),
 state VARCHAR (25),
 zip_code VARCHAR (5)
);

Tabla sales.orders

La tabla sales.orders almacena la información de la orden del pedido de los clientes, incluido el cliente, el estado del pedido, la fecha del pedido, la fecha requerida y la fecha de envío.

También almacena la información sobre dónde se creó la transacción de venta (tienda) y quién la creó (personal).

Cada pedido de ventas tiene una fila en la tabla sales_orders. Un pedido de ventas tiene una o varias líneas de pedido almacenadas en la tabla sales.order_items.

CREATE TABLE sales.orders (
 order_id INT IDENTITY (1, 1) PRIMARY KEY,
 customer_id INT,
 order_status tinyint NOT NULL,
 -- Order status: 1 = Pending; 2 = Processing; 3 = Rejected; 4 = Completed
 order_date DATE NOT NULL,
 required_date DATE NOT NULL,
 shipped_date DATE,
 store_id INT NOT NULL,
 staff_id INT NOT NULL,
 FOREIGN KEY (customer_id) 
        REFERENCES sales.customers (customer_id) 
        ON DELETE CASCADE ON UPDATE CASCADE,
 FOREIGN KEY (store_id) 
        REFERENCES sales.stores (store_id) 
        ON DELETE CASCADE ON UPDATE CASCADE,
 FOREIGN KEY (staff_id) 
        REFERENCES sales.staffs (staff_id) 
        ON DELETE NO ACTION ON UPDATE NO ACTION
);

Tabla sales.order_items

La tabla sales.order_items almacena los artículos de un pedido de ventas. Cada artículo pertenece a un pedido de ventas especificado por la columna order_id.

Un producto del pedido del cliente incluye producto, cantidad de pedido, precio de lista y descuento.

CREATE TABLE sales.order_items(
 order_id INT,
 item_id INT,
 product_id INT NOT NULL,
 quantity INT NOT NULL,
 list_price DECIMAL (10, 2) NOT NULL,
 discount DECIMAL (4, 2) NOT NULL DEFAULT 0,
 PRIMARY KEY (order_id, item_id),
 FOREIGN KEY (order_id) 
        REFERENCES sales.orders (order_id) 
        ON DELETE CASCADE ON UPDATE CASCADE,
 FOREIGN KEY (product_id) 
        REFERENCES production.products (product_id) 
        ON DELETE CASCADE ON UPDATE CASCADE
);

Tabla production.stocks

La tabla production.stocks almacena la información de inventario, es decir, la cantidad de un producto en particular en una tienda específica.

CREATE TABLE production.stocks (
 store_id INT,
 product_id INT,
 quantity INT,
 PRIMARY KEY (store_id, product_id),
 FOREIGN KEY (store_id) 
        REFERENCES sales.stores (store_id) 
        ON DELETE CASCADE ON UPDATE CASCADE,
 FOREIGN KEY (product_id) 
        REFERENCES production.products (product_id) 
        ON DELETE CASCADE ON UPDATE CASCADE
);

Haga clic en el siguiente botón para descargar el script de base de datos de muestra:

Descargar script de base de datos SQL Server

Ahora, debe estar familiarizado con la base de datos de ejemplo de BikeStores y estar listo para cargarlo en el servidor SQL.

Artículos relacionados
Qué es un trigger o desencadenador y cómo crearlo?
Qué es un trigger o desencadenador y cómo crearlo?

Un trigger es una clase especial de procedimie

Cómo eliminar los espacios en blanco en SQL
Cómo eliminar los espacios en blanco en SQL

La función TRIM en SQL se usa para elim

0 Comentarios
Enviame un comentario