SQL
Voorbeelddatabases en tabellen
Zoeken…
Auto Shop-database
In het volgende voorbeeld - Database voor een autowinkelbedrijf, hebben we een lijst met afdelingen, medewerkers, klanten en klantenauto's. We gebruiken buitenlandse sleutels om relaties tussen de verschillende tabellen te maken.
Live voorbeeld: SQL fiddle
Relaties tussen tabellen
- Elke afdeling kan 0 of meer werknemers hebben
- Elke werknemer kan 0 of 1 manager hebben
- Elke klant kan 0 of meer auto's hebben
afdelingen
ID kaart | Naam |
---|---|
1 | HR |
2 | verkoop |
3 | tech |
SQL-instructies om de tabel te maken:
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')
;
werknemers
ID kaart | FName | lname | Telefoonnummer | BeheerderId | DepartmentId | Salaris | Huur datum |
---|---|---|---|---|---|---|---|
1 | James | smid | 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 | smid | 1212121212 | 2 | 1 | 500 | 24-07-2016 |
SQL-instructies om de tabel te maken:
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')
;
Klanten
ID kaart | FName | lname | Telefoonnummer | PreferredContact | |
---|---|---|---|---|---|
1 | William | Jones | [email protected] | 3347927472 | TELEFOON |
2 | David | Molenaar | [email protected] | 2137921892 | |
3 | Richard | Davis | [email protected] | NUL |
SQL-instructies om de tabel te maken:
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')
;
Cars
ID kaart | Klanten ID | employeeID | Model | Toestand | Totale prijs |
---|---|---|---|---|---|
1 | 1 | 2 | Ford F-150 | KLAAR | 230 |
2 | 1 | 2 | Ford F-150 | KLAAR | 200 |
3 | 2 | 1 | Ford Mustang | AAN HET WACHTEN | 100 |
4 | 3 | 3 | Toyota Prius | WERKEN | 1254 |
SQL-instructies om de tabel te maken:
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')
;
Bibliotheekdatabase
In deze voorbeelddatabase voor een bibliotheek hebben we tabellen Auteurs , Boeken en BooksAuthors .
Live voorbeeld: SQL fiddle
Auteurs en boeken staan bekend als basistabellen , omdat ze kolomdefinitie en gegevens bevatten voor de feitelijke entiteiten in het relationele model. BooksAuthors staat bekend als de relatietabel , omdat deze tabel de relatie definieert tussen de tabel Boeken en auteurs .
Relaties tussen tabellen
- Elke auteur kan 1 of meer boeken hebben
- Elk boek kan 1 of meer auteurs hebben
auteurs
( bekijk tabel )
ID kaart | Naam | land |
---|---|---|
1 | JD Salinger | Verenigde Staten van Amerika |
2 | F. Scott. Fitzgerald | Verenigde Staten van Amerika |
3 | Jane Austen | UK |
4 | Scott Hanselman | Verenigde Staten van Amerika |
5 | Jason N. Gaylord | Verenigde Staten van Amerika |
6 | Pranav Rastogi | Indië |
7 | Todd Miranda | Verenigde Staten van Amerika |
8 | Christian Wenz | Verenigde Staten van Amerika |
SQL om de tabel te maken:
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')
;
Boeken
( bekijk tabel )
ID kaart | Titel |
---|---|
1 | The Catcher in the Rye |
2 | Negen verhalen |
3 | Franny en Zooey |
4 | The Great Gatsby |
5 | Inschrijving id de nacht |
6 | Trots en vooroordeel |
7 | Professionele ASP.NET 4.5 in C # en VB |
SQL om de tabel te maken:
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')
;
BooksAuthors
( bekijk tabel )
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 om de tabel te maken:
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)
;
Voorbeelden
Bekijk alle auteurs ( bekijk live voorbeeld ):
SELECT * FROM Authors;
Bekijk alle boektitels ( bekijk live voorbeeld ):
SELECT * FROM Books;
Bekijk alle boeken en hun auteurs ( bekijk live voorbeeld ):
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
;
Landen tabel
In dit voorbeeld hebben we een tabel Landen . Een tabel voor landen heeft veel toepassingen, vooral in financiële toepassingen met valuta's en wisselkoersen.
Live voorbeeld: SQL fiddle
Sommige softwareprogramma's voor marktgegevens, zoals Bloomberg en Reuters, vereisen dat u hun API een landcode van 2 of 3 tekens geeft, samen met de valutacode. Daarom heeft deze voorbeeldtabel zowel de ISO
ISO3
2 tekens als de ISO3
3 tekens.
landen
( bekijk tabel )
ID kaart | ISO | ISO3 | ISONumeric | Naam van het land | Hoofdstad | ContinentCode | Valuta code |
---|---|---|---|---|---|---|---|
1 | AU | AUS | 36 | Australië | Canberra | OC | AUD |
2 | DE | DEU | 276 | Duitsland | Berlijn | EU | EUR |
2 | IN | IND | 356 | Indië | New Delhi | NET ZO | INR |
3 | LA | LAO | 418 | Laos | Vientiane | NET ZO | LAK |
4 | ONS | Verenigde Staten van Amerika | 840 | Verenigde Staten | Washington | NA | Amerikaanse Dollar |
5 | ZW | ZWE | 716 | Zimbabwe | Harare | AF | ZWL |
SQL om de tabel te maken:
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')
;