SQL
예제 데이터베이스 및 테이블
수색…
자동 샵 데이터베이스
다음 예에서는 자동차 상점 비즈니스 용 데이터베이스에 부서, 직원, 고객 및 고객 자동차 목록이 있습니다. 우리는 외래 키를 사용하여 다양한 테이블 간의 관계를 만듭니다.
실례 : 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 , Books 및 BooksAuthors 테이블이 있습니다.
실례 : 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')
;