SQL
Ejemplo de bases de datos y tablas
Buscar..
Base de Datos de Auto Shop
En el siguiente ejemplo, la base de datos para un negocio de taller de automóviles, tenemos una lista de departamentos, empleados, clientes y automóviles de clientes. Estamos utilizando claves externas para crear relaciones entre las distintas tablas.
Ejemplo en vivo: violín de SQL
Relaciones entre tablas
- Cada departamento puede tener 0 o más empleados
- Cada empleado puede tener 0 o 1 gerente
- Cada cliente puede tener 0 o más coches
Departamentos
Carné de identidad | Nombre |
---|---|
1 | HORA |
2 | Ventas |
3 | Tecnología |
Sentencias SQL para crear la tabla:
CREATE TABLE Departments (
Id INT NOT NULL AUTO_INCREMENT,
Name VARCHAR(25) NOT NULL,
PRIMARY KEY(Id)
);
INSERT INTO Departments
([Id], [Name])
VALUES
(1, 'HR'),
(2, 'Sales'),
(3, 'Tech')
;
Empleados
Carné de identidad | FName | LName | Número de teléfono | ManagerId | DepartmentId | Salario | Fecha de contratación |
---|---|---|---|---|---|---|---|
1 | James | Herrero | 1234567890 | NULO | 1 | 1000 | 01-01-2002 |
2 | Juan | Johnson | 2468101214 | 1 | 1 | 400 | 23-03-2005 |
3 | Miguel | Williams | 1357911131 | 1 | 2 | 600 | 12-05-2009 |
4 | Johnathon | Herrero | 1212121212 | 2 | 1 | 500 | 24-07-2016 |
Sentencias SQL para crear la tabla:
CREATE TABLE Employees (
Id INT NOT NULL AUTO_INCREMENT,
FName VARCHAR(35) NOT NULL,
LName VARCHAR(35) NOT NULL,
PhoneNumber VARCHAR(11),
ManagerId INT,
DepartmentId INT NOT NULL,
Salary INT NOT NULL,
HireDate DATETIME NOT NULL,
PRIMARY KEY(Id),
FOREIGN KEY (ManagerId) REFERENCES Employees(Id),
FOREIGN KEY (DepartmentId) REFERENCES Departments(Id)
);
INSERT INTO Employees
([Id], [FName], [LName], [PhoneNumber], [ManagerId], [DepartmentId], [Salary], [HireDate])
VALUES
(1, 'James', 'Smith', 1234567890, NULL, 1, 1000, '01-01-2002'),
(2, 'John', 'Johnson', 2468101214, '1', 1, 400, '23-03-2005'),
(3, 'Michael', 'Williams', 1357911131, '1', 2, 600, '12-05-2009'),
(4, 'Johnathon', 'Smith', 1212121212, '2', 1, 500, '24-07-2016')
;
Clientes
Carné de identidad | FName | LName | Número de teléfono | Contacto preferido | |
---|---|---|---|---|---|
1 | William | Jones | [email protected] | 3347927472 | TELÉFONO |
2 | David | Molinero | [email protected] | 2137921892 | CORREO ELECTRÓNICO |
3 | Ricardo | Davis | [email protected] | NULO | CORREO ELECTRÓNICO |
Sentencias SQL para crear la tabla:
CREATE TABLE Customers (
Id INT NOT NULL AUTO_INCREMENT,
FName VARCHAR(35) NOT NULL,
LName VARCHAR(35) NOT NULL,
Email varchar(100) NOT NULL,
PhoneNumber VARCHAR(11),
PreferredContact VARCHAR(5) NOT NULL,
PRIMARY KEY(Id)
);
INSERT INTO Customers
([Id], [FName], [LName], [Email], [PhoneNumber], [PreferredContact])
VALUES
(1, 'William', 'Jones', '[email protected]', '3347927472', 'PHONE'),
(2, 'David', 'Miller', '[email protected]', '2137921892', 'EMAIL'),
(3, 'Richard', 'Davis', '[email protected]', NULL, 'EMAIL')
;
Coches
Carné de identidad | Identificación del cliente | ID de empleado | Modelo | Estado | Coste total |
---|---|---|---|---|---|
1 | 1 | 2 | Ford F-150 | LISTO | 230 |
2 | 1 | 2 | Ford F-150 | LISTO | 200 |
3 | 2 | 1 | Ford Mustang | ESPERANDO | 100 |
4 | 3 | 3 | Toyota Prius | TRABAJANDO | 1254 |
Sentencias SQL para crear la tabla:
CREATE TABLE Cars (
Id INT NOT NULL AUTO_INCREMENT,
CustomerId INT NOT NULL,
EmployeeId INT NOT NULL,
Model varchar(50) NOT NULL,
Status varchar(25) NOT NULL,
TotalCost INT NOT NULL,
PRIMARY KEY(Id),
FOREIGN KEY (CustomerId) REFERENCES Customers(Id),
FOREIGN KEY (EmployeeId) REFERENCES Employees(Id)
);
INSERT INTO Cars
([Id], [CustomerId], [EmployeeId], [Model], [Status], [TotalCost])
VALUES
('1', '1', '2', 'Ford F-150', 'READY', '230'),
('2', '1', '2', 'Ford F-150', 'READY', '200'),
('3', '2', '1', 'Ford Mustang', 'WAITING', '100'),
('4', '3', '3', 'Toyota Prius', 'WORKING', '1254')
;
Base de datos de la biblioteca
En esta base de datos de ejemplo para una biblioteca, tenemos tablas de Autores , Libros y Libros de Autores .
Ejemplo en vivo: violín de SQL
Los autores y los libros se conocen como tablas base , ya que contienen definición de columna y datos para las entidades reales en el modelo relacional. BooksAuthors se conoce como la tabla de relaciones , ya que esta tabla define la relación entre la tabla Libros y Autores .
Relaciones entre tablas
- Cada autor puede tener 1 o más libros.
- Cada libro puede tener 1 o más autores.
Autores
( ver tabla )
Carné de identidad | Nombre | País |
---|---|---|
1 | JD Salinger | Estados Unidos |
2 | F. Scott. Fitzgerald | Estados Unidos |
3 | Jane Austen | Reino Unido |
4 | Scott Hanselman | Estados Unidos |
5 | Jason N. Gaylord | Estados Unidos |
6 | Pranav Rastogi | India |
7 | Todd miranda | Estados Unidos |
8 | Christian Wenz | Estados Unidos |
SQL para crear la tabla:
CREATE TABLE Authors (
Id INT NOT NULL AUTO_INCREMENT,
Name VARCHAR(70) NOT NULL,
Country VARCHAR(100) NOT NULL,
PRIMARY KEY(Id)
);
INSERT INTO Authors
(Name, Country)
VALUES
('J.D. Salinger', 'USA'),
('F. Scott. Fitzgerald', 'USA'),
('Jane Austen', 'UK'),
('Scott Hanselman', 'USA'),
('Jason N. Gaylord', 'USA'),
('Pranav Rastogi', 'India'),
('Todd Miranda', 'USA'),
('Christian Wenz', 'USA')
;
Libros
( ver tabla )
Carné de identidad | Título |
---|---|
1 | El Guardian en el centeno |
2 | Nueve historias |
3 | Franny y Zooey |
4 | El gran Gatsby |
5 | Tierna id la noche |
6 | Orgullo y prejuicio |
7 | Profesional ASP.NET 4.5 en C # y VB |
SQL para crear la tabla:
CREATE TABLE Books (
Id INT NOT NULL AUTO_INCREMENT,
Title VARCHAR(50) NOT NULL,
PRIMARY KEY(Id)
);
INSERT INTO Books
(Id, Title)
VALUES
(1, 'The Catcher in the Rye'),
(2, 'Nine Stories'),
(3, 'Franny and Zooey'),
(4, 'The Great Gatsby'),
(5, 'Tender id the Night'),
(6, 'Pride and Prejudice'),
(7, 'Professional ASP.NET 4.5 in C# and VB')
;
LibrosAutoras
( ver tabla )
BookId | AuthorId |
---|---|
1 | 1 |
2 | 1 |
3 | 1 |
4 | 2 |
5 | 2 |
6 | 3 |
7 | 4 |
7 | 5 |
7 | 6 |
7 | 7 |
7 | 8 |
SQL para crear la tabla:
CREATE TABLE BooksAuthors (
AuthorId INT NOT NULL,
BookId INT NOT NULL,
FOREIGN KEY (AuthorId) REFERENCES Authors(Id),
FOREIGN KEY (BookId) REFERENCES Books(Id)
);
INSERT INTO BooksAuthors
(BookId, AuthorId)
VALUES
(1, 1),
(2, 1),
(3, 1),
(4, 2),
(5, 2),
(6, 3),
(7, 4),
(7, 5),
(7, 6),
(7, 7),
(7, 8)
;
Ejemplos
Ver todos los autores ( ver ejemplo en vivo ):
SELECT * FROM Authors;
Ver todos los títulos de libros ( ver ejemplo en vivo ):
SELECT * FROM Books;
Ver todos los libros y sus autores ( ver ejemplo en vivo ):
SELECT
ba.AuthorId,
a.Name AuthorName,
ba.BookId,
b.Title BookTitle
FROM BooksAuthors ba
INNER JOIN Authors a ON a.id = ba.authorid
INNER JOIN Books b ON b.id = ba.bookid
;
Tabla de países
En este ejemplo, tenemos una tabla de países . Una tabla para países tiene muchos usos, especialmente en aplicaciones financieras que involucran divisas y tipos de cambio.
Ejemplo en vivo: violín de SQL
Algunas aplicaciones de software de datos de mercado como Bloomberg y Reuters requieren que le asigne a su API un código de país de 2 o 3 caracteres junto con el código de moneda. Por lo tanto, esta tabla de ejemplo tiene la columna de código ISO
2 caracteres y las columnas de código ISO3
3 caracteres.
Países
( ver tabla )
Carné de identidad | YO ASI | ISO3 | Isonumérico | Nombre del país | Capital | Código Continente | Código de moneda |
---|---|---|---|---|---|---|---|
1 | AU | AUS | 36 | Australia | Canberra | jefe | AUD |
2 | Delaware | DEU | 276 | Alemania | Berlina | UE | EUR |
2 | EN | INDIANA | 356 | India | Nueva Delhi | COMO | INR |
3 | LA | LAO | 418 | Laos | Vientiane | COMO | LAGO |
4 | NOSOTROS | Estados Unidos | 840 | Estados Unidos | Washington | N / A | Dólar estadounidense |
5 | ZW | ZWE | 716 | Zimbabue | Harare | AF | ZWL |
SQL para crear la tabla:
CREATE TABLE Countries (
Id INT NOT NULL AUTO_INCREMENT,
ISO VARCHAR(2) NOT NULL,
ISO3 VARCHAR(3) NOT NULL,
ISONumeric INT NOT NULL,
CountryName VARCHAR(64) NOT NULL,
Capital VARCHAR(64) NOT NULL,
ContinentCode VARCHAR(2) NOT NULL,
CurrencyCode VARCHAR(3) NOT NULL,
PRIMARY KEY(Id)
)
;
INSERT INTO Countries
(ISO, ISO3, ISONumeric, CountryName, Capital, ContinentCode, CurrencyCode)
VALUES
('AU', 'AUS', 36, 'Australia', 'Canberra', 'OC', 'AUD'),
('DE', 'DEU', 276, 'Germany', 'Berlin', 'EU', 'EUR'),
('IN', 'IND', 356, 'India', 'New Delhi', 'AS', 'INR'),
('LA', 'LAO', 418, 'Laos', 'Vientiane', 'AS', 'LAK'),
('US', 'USA', 840, 'United States', 'Washington', 'NA', 'USD'),
('ZW', 'ZWE', 716, 'Zimbabwe', 'Harare', 'AF', 'ZWL')
;