수색…


자동 샵 데이터베이스

다음 예에서는 자동차 상점 비즈니스 용 데이터베이스에 부서, 직원, 고객 및 고객 자동차 목록이 있습니다. 우리는 외래 키를 사용하여 다양한 테이블 간의 관계를 만듭니다.

실례 : SQL 바이올린


테이블 간의 관계

  • 각 부서에는 0 명 이상의 직원이있을 수 있습니다.
  • 각 직원은 관리자가 0 명 또는 1 명일 수 있습니다.
  • 각 고객은 0 대 이상의 자동차를 보유 할 수 있습니다.

학과

신분증 이름
1 인사
2 매상
기술

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 전화 번호 관리자 ID DepartmentId 봉급 HireDate
1 제임스 스미스 1234567890 없는 1 1000 01-01-2002
2 남자 존슨 2468101214 1 1 400 23-03-2005
남자 이름 윌리엄스 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 이메일
리차드 데이비스 [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')
;

자동차

신분증 고객 ID EmployeeId 모델 지위 총 비용
1 1 2 포드 F-150 준비된 230
2 1 2 포드 F-150 준비된 200
2 1 포드 머스탱 기다리는 100
4 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')
;

도서관 데이터베이스

라이브러리 용 예제 데이터베이스에는 Authors , BooksBooksAuthors 테이블이 있습니다.

실례 : SQL 바이올린

작성자 은 관계형 모델의 실제 엔티티에 대한 열 정의와 데이터를 포함하므로 기본 테이블 이라고합니다. 이 테이블은 Books 테이블과 Authors 테이블 간의 관계를 정의하므로 BooksAuthors관계 테이블 이라고합니다.


테이블 간의 관계

  • 각 저자는 하나 이상의 책을 가질 수 있습니다.
  • 각 도서에는 1 명 이상의 저자가있을 수 있습니다.

저자

( 테이블보기 )

신분증 이름 국가
1 JD 샐린저 미국
2 스코트. 피츠 제럴드 미국
제인 오스틴 영국
4 스콧 한젤 만 미국
5 Jason N. Gaylord 미국
6 프란 나브 라 스토기 인도
7 토드 미란다 미국
8 기독교 Wenz 미국

테이블을 만들려면 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 나인 스토리
프래니와 주이
4 위대한 개츠비
5 밤에는 부드러운 이드
6 오만과 편견
7 Professional ASP.NET 4.5 in 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

( 테이블보기 )

도서 정보 작성자
1 1
2 1
1
4 2
5 2
6
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
;

국가 표

이 예에서는 Countries 테이블이 있습니다. 국가 별 테이블은 통화 및 환율이 포함 된 금융 응용 프로그램에서 특히 많이 사용됩니다.

실례 : SQL 바이올린

Bloomberg 및 Reuters와 같은 일부 마켓 데이터 소프트웨어 응용 프로그램에서는 API에 통화 코드와 함께 2 자 또는 3 자의 국가 코드를 제공해야합니다. 따라서이 예제 테이블에는 2 자 ISO 코드 열과 3 자 ISO3 코드 열이 있습니다.


국가

( 테이블보기 )

신분증 ISO ISO3 ISONumeric 나라 이름 자본 대륙 코드 통화 코드
1 누구나 AUS 36 호주 캔버라 OC AUD
2 DE DEU 276 독일 베를린 유럽 ​​연합 EUR
2 에서 인도 356 인도 뉴 델리 같이 INR
라오 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