SQL
Exemples de bases de données et de tables
Recherche…
Base de données Auto Shop
Dans l'exemple suivant - Base de données pour un commerce automobile, nous avons une liste de départements, d'employés, de clients et de voitures client. Nous utilisons des clés étrangères pour créer des relations entre les différentes tables.
Exemple en direct: violon SQL
Relations entre les tables
- Chaque département peut avoir 0 employé ou plus
- Chaque employé peut avoir 0 ou 1 gestionnaire
- Chaque client peut avoir 0 ou plus de voitures
Départements
Id | prénom |
---|---|
1 | HEURE |
2 | Ventes |
3 | Technologie |
Instructions SQL pour créer la table:
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')
;
Des employés
Id | FName | LName | Numéro de téléphone | ManagerId | DépartementId | Un salaire | Date d'embauche |
---|---|---|---|---|---|---|---|
1 | James | Forgeron | 1234567890 | NUL | 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 | Forgeron | 1212121212 | 2 | 1 | 500 | 24-07-2016 |
Instructions SQL pour créer la table:
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')
;
Les clients
Id | FName | LName | Numéro de téléphone | Contact préféré | |
---|---|---|---|---|---|
1 | William | Jones | [email protected] | 3347927472 | TÉLÉPHONE |
2 | David | Meunier | [email protected] | 2137921892 | |
3 | Richard | Davis | [email protected] | NUL |
Instructions SQL pour créer la table:
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')
;
Des voitures
Id | N ° de client | EmployeeId | Modèle | Statut | Coût total |
---|---|---|---|---|---|
1 | 1 | 2 | Ford F-150 | PRÊT | 230 |
2 | 1 | 2 | Ford F-150 | PRÊT | 200 |
3 | 2 | 1 | Ford Mustang | ATTENDRE | 100 |
4 | 3 | 3 | Toyota Prius | TRAVAIL | 1254 |
Instructions SQL pour créer la table:
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 données de la bibliothèque
Dans cet exemple de base de données pour une bibliothèque, nous avons des tables Authors , Books et BooksAuthors .
Exemple en direct: violon SQL
Les auteurs et les livres sont appelés tables de base , car ils contiennent une définition de colonne et des données pour les entités réelles du modèle relationnel. BooksAuthors est appelé la table de relations , car cette table définit la relation entre la table Books et Authors .
Relations entre les tables
- Chaque auteur peut avoir 1 ou plusieurs livres
- Chaque livre peut avoir un ou plusieurs auteurs
Auteurs
( voir la table )
Id | prénom | Pays |
---|---|---|
1 | JD Salinger | Etats-Unis |
2 | F. Scott. Fitzgerald | Etats-Unis |
3 | Jane Austen | Royaume-Uni |
4 | Scott Hanselman | Etats-Unis |
5 | Jason N. Gaylord | Etats-Unis |
6 | Pranav Rastogi | Inde |
7 | Todd Miranda | Etats-Unis |
8 | Christian Wenz | Etats-Unis |
SQL pour créer la table:
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')
;
Livres
( voir la table )
Id | Titre |
---|---|
1 | Le receveur dans le seigle |
2 | Neuf histoires |
3 | Franny et Zooey |
4 | Gatsby le magnifique |
5 | Tender id la nuit |
6 | Fierté et préjugés |
7 | ASP.NET 4.5 professionnel en C # et VB |
SQL pour créer la table:
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')
;
LivresAuteurs
( voir la table )
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 pour créer la table:
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)
;
Exemples
Voir tous les auteurs ( voir l'exemple en direct ):
SELECT * FROM Authors;
Afficher tous les titres de livres ( voir l'exemple en direct ):
SELECT * FROM Books;
Voir tous les livres et leurs auteurs ( voir exemple en direct ):
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
;
Table des pays
Dans cet exemple, nous avons une table Pays . Un tableau pour les pays a de nombreux usages, en particulier dans les applications financières impliquant des devises et des taux de change.
Exemple en direct: violon SQL
Certains logiciels de données de marché tels que Bloomberg et Reuters exigent que vous donniez à leur API un code de pays de 2 ou 3 caractères avec le code de devise. Par conséquent, cet exemple de tableau contient à la fois la colonne de code ISO
2 caractères et les colonnes de code ISO3
3 caractères.
Des pays
( voir la table )
Id | ISO | ISO3 | ISONumérique | Nom du pays | Capitale | ContinentCode | Code de devise |
---|---|---|---|---|---|---|---|
1 | AU | AUS | 36 | Australie | Canberra | OC | AUD |
2 | DE | DEU | 276 | Allemagne | Berlin | UE | EUR |
2 | DANS | INDIANA | 356 | Inde | New Delhi | COMME | INR |
3 | LA | LAO | 418 | Laos | Vientiane | COMME | LAK |
4 | NOUS | Etats-Unis | 840 | États Unis | Washington | N / A | USD |
5 | ZW | ZWE | 716 | Zimbabwe | Harare | UN F | ZWL |
SQL pour créer la table:
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')
;