SQL
Przykładowe bazy danych i tabele
Szukaj…
Baza danych Auto Shop
W poniższym przykładzie - baza danych dla sklepu samochodowego, mamy listę działów, pracowników, klientów i samochodów klientów. Używamy kluczy obcych do tworzenia relacji między różnymi tabelami.
Przykład na żywo: skrzypce SQL
Relacje między tabelami
- Każdy dział może mieć 0 lub więcej pracowników
- Każdy pracownik może mieć 0 lub 1 menedżera
- Każdy klient może mieć 0 lub więcej samochodów
Departamenty
ID | Nazwa |
---|---|
1 | HR |
2) | Obroty |
3) | Tech |
Instrukcje SQL, aby utworzyć tabelę:
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')
;
Pracowników
ID | FName | LName | Numer telefonu | ManagerId | DepartmentId | Wynagrodzenie | Data wynajmu |
---|---|---|---|---|---|---|---|
1 | James | Kowal | 1234567890 | ZERO | 1 | 1000 | 01-01-2002 |
2) | Jan | Johnson | 2468101214 | 1 | 1 | 400 | 23-03-2005 |
3) | Michael | Williams | 1357911131 | 1 | 2) | 600 | 12-05-2009 |
4 | Johnathon | Kowal | 1212121212 | 2) | 1 | 500 | 24-07-2016 |
Instrukcje SQL, aby utworzyć tabelę:
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')
;
Klienci
ID | FName | LName | Numer telefonu | PreferredContact | |
---|---|---|---|---|---|
1 | William | Jones | [email protected] | 3347927472 | TELEFON |
2) | David | Młynarz | [email protected] | 2137921892 | |
3) | Richard | Davis | [email protected] | ZERO |
Instrukcje SQL, aby utworzyć tabelę:
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')
;
Samochody
ID | Identyfikator klienta | Numer identyfikacyjny pracownika | Model | Status | Całkowity koszt |
---|---|---|---|---|---|
1 | 1 | 2) | Ford F-150 | GOTOWY | 230 |
2) | 1 | 2) | Ford F-150 | GOTOWY | 200 |
3) | 2) | 1 | Ford Mustang | CZEKANIE | 100 |
4 | 3) | 3) | Toyota Prius | PRACUJĄCY | 1254 |
Instrukcje SQL, aby utworzyć tabelę:
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')
;
Baza danych bibliotek
W tej przykładowej bazie danych dla biblioteki mamy tabele Autorzy , Książki i BooksAuthors .
Przykład na żywo: skrzypce SQL
Autorzy i książki są znane jako tabele podstawowe , ponieważ zawierają definicje kolumn i dane dla rzeczywistych elementów w modelu relacyjnym. BooksAuthors jest znany jako tabela relacji , ponieważ ta tabela definiuje relacje między tabelą Książki i autorzy .
Relacje między tabelami
- Każdy autor może mieć 1 lub więcej książek
- Każda książka może mieć 1 lub więcej autorów
Autorski
( zobacz tabelę )
ID | Nazwa | Kraj |
---|---|---|
1 | JD Salinger | USA |
2) | F. Scott. Fitzgerald | USA |
3) | Jane Austen | UK |
4 | Scott Hanselman | USA |
5 | Jason N. Gaylord | USA |
6 | Pranav Rastogi | Indie |
7 | Todd Miranda | USA |
8 | Christian Wenz | USA |
SQL, aby utworzyć tabelę:
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')
;
Książki
( zobacz tabelę )
ID | Tytuł |
---|---|
1 | Buszujący w zbożu |
2) | Dziewięć opowieści |
3) | Franny i Zooey |
4 | Wielki Gatsby |
5 | Przetarg na noc |
6 | Duma i uprzedzenie |
7 | Profesjonalne ASP.NET 4.5 w C # i VB |
SQL, aby utworzyć tabelę:
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
( zobacz tabelę )
BookId | Autor |
---|---|
1 | 1 |
2) | 1 |
3) | 1 |
4 | 2) |
5 | 2) |
6 | 3) |
7 | 4 |
7 | 5 |
7 | 6 |
7 | 7 |
7 | 8 |
SQL, aby utworzyć tabelę:
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)
;
Przykłady
Wyświetl wszystkich autorów ( zobacz przykład na żywo ):
SELECT * FROM Authors;
Wyświetl wszystkie tytuły książek ( zobacz przykład na żywo ):
SELECT * FROM Books;
Wyświetl wszystkie książki i ich autorów ( zobacz przykład na żywo ):
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
;
Tabela krajów
W tym przykładzie mamy tabelę krajów . Tabela dla krajów ma wiele zastosowań, zwłaszcza w aplikacjach finansowych obejmujących waluty i kursy wymiany.
Przykład na żywo: skrzypce SQL
Niektóre aplikacje do obsługi danych rynkowych, takie jak Bloomberg i Reuters, wymagają podania interfejsu API dwu- lub trzy znakowego kodu kraju wraz z kodem waluty. Dlatego ta przykładowa tabela zawiera zarówno 2- ISO3
kolumnę kodu ISO
i 3- ISO3
kolumnę kodu ISO3
.
Kraje
( zobacz tabelę )
ID | ISO | ISO3 | ISONumeric | Nazwa kraju | Kapitał | ContinentCode | Kod waluty |
---|---|---|---|---|---|---|---|
1 | AU | AUS | 36 | Australia | Canberra | OC | AUD |
2) | DE | DEU | 276 | Niemcy | Berlin | UE | EUR |
2) | W | IND | 356 | Indie | New Delhi | TAK JAK | INR |
3) | LA | LAO | 418 | Laos | Wientian | TAK JAK | LAK |
4 | NAS | USA | 840 | Stany Zjednoczone | Waszyngton | NA | USD |
5 | ZARAZ WRACAM | ZWE | 716 | Zimbabwe | Harare | AF | ZWL |
SQL, aby utworzyć tabelę:
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')
;