Поиск…


База данных автозагрузки

В следующем примере - База данных для бизнеса автомагазина, у нас есть список отделов, сотрудников, клиентов и автомобилей клиентов. Мы используем внешние ключи для создания связей между различными таблицами.

Пример Live: скрипт SQL


Отношения между таблицами

  • У каждого Департамента может быть 0 или более сотрудников
  • У каждого сотрудника может быть 0 или 1 менеджер
  • У каждого Клиента может быть 0 или более автомобилей

ведомства

Я бы название
1 HR
2 Продажи
3 Технология

Операторы SQL для создания таблицы:

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')
;

Сотрудники

Я бы FName LName Номер телефона ManagerID DepartmentID Оплата труда Дата приема на работу
1 Джеймс кузнец 1234567890 НОЛЬ 1 1000 01-01-2002
2 Джон Джонсон 2468101214 1 1 400 23-03-2005
3 Майкл Williams 1357911131 1 2 600 12-05-2009
4 Джонатон кузнец 1212121212 2 1 500 24-07-2016

Операторы SQL для создания таблицы:

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')
;

Клиенты

Я бы FName LName Эл. адрес Номер телефона PreferredContact
1 Уильям Джонс [email protected] 3347927472 ТЕЛЕФОН
2 Дэвид мельник [email protected] 2137921892 ЭЛ. АДРЕС
3 Ричард Дэвис [email protected] НОЛЬ ЭЛ. АДРЕС

Операторы SQL для создания таблицы:

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')
;

Машины

Я бы Пользовательский ИД EmployeeID модель Статус Общая стоимость
1 1 2 Ford F-150 ГОТОВЫ 230
2 1 2 Ford F-150 ГОТОВЫ 200
3 2 1 Ford Mustang ОЖИДАНИЯ 100
4 3 3 Toyota Prius ЗА РАБОТОЙ 1254

Операторы SQL для создания таблицы:

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')
;

База данных библиотек

В этой базе данных для библиотеки есть таблицы авторов , книг и книг .

Пример Live: скрипт SQL

Авторы и книги известны как базовые таблицы , поскольку они содержат определение столбцов и данные для реальных объектов в реляционной модели. BooksAuthors известна как таблица отношений , так как эта таблица определяет взаимосвязь между таблицей « Книги и авторы» .


Отношения между таблицами

  • У каждого автора может быть 1 или более книг
  • В каждой книге может быть 1 или более авторов

Авторы

( таблица просмотра )

Я бы название Страна
1 Дж. Д. Сэлинджер Соединенные Штаты Америки
2 Ф. Скотт. Fitzgerald Соединенные Штаты Америки
3 Джейн Остин Соединенное Королевство
4 Скотт Гензельман Соединенные Штаты Америки
5 Джейсон Н. Гейлорд Соединенные Штаты Америки
6 Пранав Растоги Индия
7 Тодд Миранда Соединенные Штаты Америки
8 Кристиан Венц Соединенные Штаты Америки

SQL для создания таблицы:

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')
;

книги

( таблица просмотра )

Я бы заглавие
1 Ловец во ржи
2 Девять историй
3 Фрэнни и Зои
4 Великий Гэтсби
5 Тендерный идентификатор Ночь
6 Гордость и предубеждение
7 Профессиональный ASP.NET 4.5 в C # и VB

SQL для создания таблицы:

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

( таблица просмотра )

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 для создания таблицы:

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)
;

Примеры

Просмотреть всех авторов ( просмотреть живой пример ):

SELECT * FROM Authors;

Просмотр всех названий книг ( просмотр живого примера ):

SELECT * FROM Books;

Просмотреть все книги и их авторов ( посмотреть живой пример ):

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
;

Таблица стран

В этом примере у нас есть таблица стран . Таблица для стран имеет много применений, особенно в финансовых приложениях, связанных с валютами и обменными курсами.

Пример Live: скрипт SQL

Некоторые программные приложения для данных рынка, такие как Bloomberg и Reuters, требуют, чтобы вы предоставили свой API код страны или 2 символа страны вместе с кодом валюты. Следовательно, эта таблица примеров содержит как 2- ISO3 столбец ISO кода, так и 3 символьных ISO3 кода ISO3 .


страны

( таблица просмотра )

Я бы ISO ISO3 ISONumeric Название страны Капитал ContinentCode Код валюты
1 AU AUS 36 Австралия Канберра OC AUD
2 Делавэр DEU 276 Германия Берлин Евросоюз евро
2 В IND 356 Индия Нью-Дели КАК INR
3 Луизиана ЛАО 418 Лаос Вьентьян КАК LAK
4 НАС Соединенные Штаты Америки 840 Соединенные Штаты Вашингтон Не Доступно доллар США
5 ZW ZWE 716 Зимбабве Хараре AF ZWL

SQL для создания таблицы:

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')
;


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow