데이터를 체계적으로 저장하고 관리하기 위한 시스템.
→ 파일 저장하기, 파일 불러오기
ex) 방문자를 기록하는 시스템
// user.txt
김지웅, 남자, 2024-12-10
유재은, 여자, 2024-12-01
전현재, 남자, 2024-12-13
유재은, 여자, 2024-12-14
user.txt 전체를 읽어와서 그 중 “유재은”의 해당하는 데이터를 찾아야됨.
만약 방문자가 1억명이라면?
초기 Database의 단점
user_table | 열(Col) | 열(Col) | 열(Col) | 열(Col) |
---|---|---|---|---|
행(row) | id | name | gender | create_at |
행(row) | 1 | 김지웅 | 남자 | 2024-12-10 |
행(row) | 2 | 유재은 | 여자 | 2024-12-01 |
행(row) | 3 | 전현재 | 남자 | 2024-12-13 |
행(row) | 4 | 유재은 | 여자 | 2024-12-14 |
“유재은” 의 데이터를 알고싶다면
SELECT * FROM user_table WHERE name = '유재은';
결과
user_table | 열(Col) | 열(Col) | 열(Col) | 열(Col) |
---|---|---|---|---|
행(row) | id | name | gender | create_at |
행(row) | 1 | 유재은 | 여자 | 2024-12-01 |
행(row) | 4 | 유재은 | 여자 | 2024-12-14 |
Primary Key: 각 행을 고유하게 식별하는 열.
Foreign Key: 다른 테이블과의 관계를 정의하는 열.
예를 들어, order_table을 추가하여 user_table의 Primary Key를 참조합니다. user_table
id | name | gender | create_at |
---|---|---|---|
1 | 김지웅 | 남자 | 2024-12-10 |
2 | 유재은 | 여자 | 2024-12-01 |
3 | 전현재 | 남자 | 2024-12-13 |
4 | 유재은 | 여자 | 2024-12-14 |
order_table
order_id | order_name | user_id(FK) |
---|---|---|
1 | 아메리카노 | 1 |
2 | 아메리카노 | 3 |
3 | 아바라 | 2 |
SQL: Structured Query Language의 약자로, 데이터를 저장, 수정, 조회하는 데 사용하는 언어입니다.
order_id | order_name | user_id(FK) | id | name | gender | create_at |
---|---|---|---|---|---|---|
1 | 아메리카노 | 1 | ||||
2 | 아메리카노 | 3 | ||||
3 | 아바라 | 2 |
SELECT orders_table.order_name, user_table.name
FROM orders_table
JOIN user_table ON orders_table.user_id = user_table.id; // FK 이용하여 JOIN
order_name | name |
---|---|
아메리카노 | 김지웅 |
아메리카노 | 전현재 |
아바라 | 유재은 |