SQL
Exempel på databaser och tabeller
Sök…
Auto Shop-databas
I följande exempel - Databas för en bilbutikföretag, har vi en lista över avdelningar, anställda, kunder och kundbilar. Vi använder utländska nycklar för att skapa relationer mellan de olika tabellerna.
Live-exempel: SQL-fiol
Förhållanden mellan tabeller
- Varje avdelning kan ha 0 eller fler anställda
- Varje anställd kan ha 0 eller 1 chef
- Varje kund kan ha 0 eller fler bilar
avdelningar
Id | namn |
---|---|
1 | HR |
2 | försäljning |
3 | Tech |
SQL-satser för att skapa tabellen:
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')
;
anställda
Id | fNAME | LNAME | Telefonnummer | Administratörs | DepartmentId | Lön | HireDate |
---|---|---|---|---|---|---|---|
1 | James | Smed | 1234567890 | NULL | 1 | 1000 | 2002/01/01 |
2 | John | Johnson | 2468101214 | 1 | 1 | 400 | 23-03-2005 |
3 | Michael | Williams | 1357911131 | 1 | 2 | 600 | 12-05-2009 |
4 | Johnathon | Smed | 1212121212 | 2 | 1 | 500 | 24-07-2016 |
SQL-satser för att skapa tabellen:
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')
;
kunder
Id | fNAME | LNAME | E-post | Telefonnummer | PreferredContact |
---|---|---|---|---|---|
1 | William | Jones | [email protected] | 3347927472 | TELEFON |
2 | David | Mjölnare | [email protected] | 2137921892 | E-POST |
3 | Richard | Davis | [email protected] | NULL | E-POST |
SQL-satser för att skapa tabellen:
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')
;
bilar
Id | Kundnummer | Anställnings-ID | Modell | Status | Total kostnad |
---|---|---|---|---|---|
1 | 1 | 2 | Ford F-150 | REDO | 230 |
2 | 1 | 2 | Ford F-150 | REDO | 200 |
3 | 2 | 1 | Ford Mustang | VÄNTAR | 100 |
4 | 3 | 3 | Toyota Prius | ARBETSSÄTT | 1254 |
SQL-satser för att skapa tabellen:
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')
;
Biblioteksdatabas
I det här exempeldatabasen för ett bibliotek har vi tabeller författare , böcker och böcker .
Live-exempel: SQL-fiol
Författare och böcker är kända som bastabeller , eftersom de innehåller kolumndefinition och data för de faktiska enheterna i relationsmodellen. BooksAuthors är känt som relationstabellen , eftersom denna tabell definierar förhållandet mellan tabellen Books and Authors .
Förhållanden mellan tabeller
- Varje författare kan ha en eller flera böcker
- Varje bok kan ha en eller flera författare
Författare
( visa tabell )
Id | namn | Land |
---|---|---|
1 | JD Salinger | USA |
2 | F. Scott. Fitzgerald | USA |
3 | Jane Austen | Storbritannien |
4 | Scott Hanselman | USA |
5 | Jason N. Gaylord | USA |
6 | Pranav Rastogi | Indien |
7 | Todd Miranda | USA |
8 | Christian Wenz | USA |
SQL för att skapa tabellen:
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')
;
Böcker
( visa tabell )
Id | Titel |
---|---|
1 | Räddaren i nöden |
2 | Nio berättelser |
3 | Franny och Zooey |
4 | Den store Gatsby |
5 | Anbud id natten |
6 | Stolthet och fördom |
7 | Professionell ASP.NET 4.5 i C # och VB |
SQL för att skapa tabellen:
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
( visa tabell )
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 för att skapa tabellen:
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)
;
exempel
Visa alla författare ( se liveexempel ):
SELECT * FROM Authors;
Visa alla boktitlar ( se liveexempel ):
SELECT * FROM Books;
Visa alla böcker och deras författare ( se levande exempel ):
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
;
Länder Tabell
I det här exemplet har vi en tabell med länder . En tabell för länder har många användningsområden, särskilt i finansiella applikationer som involverar valutor och valutakurser.
Live-exempel: SQL-fiol
Vissa applikationer för marknadsdata som Bloomberg och Reuters kräver att du anger deras API antingen en landskod med två eller tre tecken tillsammans med valutakoden. Därför har detta exempel tabell både ISO
ISO3
tecken och ISO3
3 tecken.
Länder
( visa tabell )
Id | ISO | ISO3 | ISONumeric | Lands namn | Huvudstad | ContinentCode | Valutakod |
---|---|---|---|---|---|---|---|
1 | AU | AUS | 36 | Australien | canberra | OC | AUD |
2 | DE | DEU | 276 | Tyskland | Berlin | EU | EUR |
2 | I | IND | 356 | Indien | Nya Delhi | SOM | INR |
3 | LA | LAO | 418 | laos | Vientiane | SOM | LAK |
4 | USA | USA | 840 | Förenta staterna | Washington | NA | USD |
5 | ZW | ZWE | 716 | Zimbabwe | Harare | AF | ZWL |
SQL för att skapa tabellen:
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')
;