์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Absolute
- AGI
- ai
- AI agents
- AI engineer
- AI researcher
- ajax
- algorithm
- Algorithms
- aliases
- Array ๊ฐ์ฒด
- ASI
- bayes' theorem
- Bit
- Blur
- BOM
- bootstrap
- canva
- challenges
- ChatGPT
- Today
- In Total
A Joyful AI Research Journey๐ณ๐
[49] 230309 SQL Ch. 1 ๋ฐ์ดํฐ๋ฒ ์ด์ค์ SQL: 1๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค, 2๊ฐ ๋ค์ํ ๋ฐ์ดํฐ ๋ฒ ์ด์ค [K-๋์งํธ ํธ๋ ์ด๋ 49์ผ] ๋ณธ๋ฌธ
[49] 230309 SQL Ch. 1 ๋ฐ์ดํฐ๋ฒ ์ด์ค์ SQL: 1๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค, 2๊ฐ ๋ค์ํ ๋ฐ์ดํฐ ๋ฒ ์ด์ค [K-๋์งํธ ํธ๋ ์ด๋ 49์ผ]
yjyuwisely 2023. 3. 9. 12:50230309 Thu 49th class
Ch. 1 ๋ฐ์ดํฐ๋ฒ ์ด์ค์ SQL
์ง๋: p. 22 ~ (๊ต์ฌ: SQL ์ฒซ๊ฑธ์, ์ ์: ์์ฌ์ด ์์ธ ์)
Ch. 6 ๋ฐ์ดํฐ๋ฒ ์ด์ค์ SQL
์ง๋: p. 228 ~ (์ฃผ์ ๋ณ๋ก ๋ฌถ๊ธฐ ์ํด ์ ๊ธ๋ก ๊ธ ๋ด์ฉ ์ฎ๊น.)
MySQL Workbench Manual: https://dev.mysql.com/doc/workbench/en/
MySQL ํํ ๋ฆฌ์ผ: https://www.tutorialspoint.com/mysql/
SQLD ์์ฝ pdf: https://yurimac.tistory.com/40
์ฑ
์์ฝ (9p) pdf: https://brunch.co.kr/@ydy702/10
์ค๋ ๋ฐฐ์ด ๊ฒ ์ค ๊ธฐ์ตํ ๊ฒ์ ์ ๋ฆฌํ๋ค.
๋ชฐ๋๋ ๊ฒ ์ ๋ฆฌ
์ฉ์ด
์ฟผ๋ฆฌ๋ ์น ์๋ฒ์ ํน์ ํ ์ ๋ณด๋ฅผ ๋ณด์ฌ๋ฌ๋ผ๋ ์น ํด๋ผ์ด์ธํธ ์์ฒญ(์ฃผ๋ก ๋ฌธ์์ด์ ๊ธฐ๋ฐ์ผ๋ก ํ ์์ฒญ์ด๋ค)์ ์ํ ์ฒ๋ฆฌ์ด๋ค.
A query in a database is a request for information from a database management system (DBMS), which is the software program that maintains data. Users can make a query to retrieve data or change information in a database, such as adding or removing data.
A query languages, also known as data query language or database query language, is a computer language used to make queries in databases and information systems. A well known example is the Structured Query Language.
The database schema is the structure of a database described in a formal language supported by the database management system. The term "schema" refers to the organization of data as a blueprint of how the database is constructed.
MySQL Workbench 8.0 CE = ์ฌ์ฉํ ์๋ํฐ
MySQL Workbench provides data modeling, SQL development, and comprehensive administration tools for server configuration, user administration, backup, and much more.
MySQL ์ค์น๋ ๊ต์ฌ p. 337 ์ฐธ๊ณ ํ๊ธฐ
p. 344 ํจ์ค์๋ ์
๋ ฅ
์ปดํจํฐ ์ด๋ฆ์ ์ฒดํฌํด์ผ ํ๋ค. (ํ๊ธ์ด๋ฉด ์ค์น ์ ๋๋ ๊ฒฝ์ฐ๋ ์์.)
- ๊ฒฐ๊ณผ ๋ณด๊ธฐ = Ctrl + Enter
- ์ ํ ์์ ์์ ์ฌ๋ฌ ๊ฐ์ง ์์ ์คํํ ๋ ํ
์ด๋ธ ์๋ก ๋ณด๋ ค๋ฉด
Ctrl + Shift + Enter
์๋๋ฉด ๋ค์ ํ
์ด๋ธ ๋ณด๋ SELECT * ALL sample์ด๋ฆ
์ฝ๋๋ฅผ ์ ์ผ ๋ง์ง๋ง์ ๋๊ณ ์ฌ์คํ
Toggle display of invisible characters: When selected, displays invisible characters, such as newlines, spaces, and tabs. A new line is represented as [LF], a space as a single dot (.), and a tab as a right arrow.
๋ฐฐ์ด ๊ฒ ์์ฝ
- DB(๋ฐ์ดํฐ๋ฒ ์ด์ค)๊ฐ๋ : ๋ฐ์ดํฐ์ ๋ชจ์์ง
- DBMS๊ฐ๋ - ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ด๋ฆฌํด ์ฃผ๋ ํ๋ก๊ทธ๋จ ex) oracle, mysql, mssql
- RDBMS: ๋ฐ์ดํฐ์ ์์ง์ ํ ์ด๋ธํ์(์์ ํ์)์ผ๋ก ๊ด๋ฆฌํ๋ ๊ฒ
- SQL(Structured Query Language) ๊ฐ๋ : ๋ฐ์ดํฐ๋ฅผ ์กฐํ, ์ญ์ , ์ถ๊ฐ, ๊ฐฑ์ ํ ์ ์๋๋ก ํ๋ ์ธ์ด
- DDL
๋ฐ์ดํฐ๋ฅผ ์กฐํ, ์ญ์ , ์ถ๊ฐ, ๊ฐฑ์ ์ ํ๊ธฐ ์ํด์๋ ํ ์ด๋ธ(ํ)์ ๋ฐ์ดํฐ๊ฐ ์์ด์ผ ํ๋ฏ๋ก,
ํ ์ด๋ธ์ ๋ง๋ค์ด ์ค์ผ ๋๋ค.
์ด๋ฌํ ์ฌ๋ฌ ๊ฐ์ ํ ์ด๋ธ์ ํ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๊ด๋ฆฌํ๋ฏ๋ก,
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋จผ์ ์์ฑํ ํ ํ ์ด๋ธ ์์ฑํ๋ค.
1. create database ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช (ex. sample)
2. use ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช (ex. sample)
3. create table ํ ์ด๋ธ๋ช (ex. sample631)
create table ํ ์ด๋ธ๋ช (
์ด์ด๋ฆ ์๋ฃํ [์ ์ฝ์กฐ๊ฑด],
์ด์ด๋ฆ ์๋ฃํ [์ ์ฝ์กฐ๊ฑด]
)
ddl ์์ - alter [ddl ์ ์: CREATE, ALTER, DROP, RENAME]
dml ์์ - update [dml ์กฐ์: : SELECT, INSERT, UPDATE, DELETE]
์์ฑ, ์๋ฃํ ๋ฐ๊ฟ - modify
์ด๋ฆ ๋ฐ๊ฟ - change
๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ - desc
- create ๋ฌธ๋ฒ
- drop ๋ฌธ๋ฒ
- alter ๋ฌธ๋ฒ
- DML
- DCL
- ์ ์ฝ์กฐ๊ฑด
null ์ค๋ณต๊ฐ
X O not null (ํ์)
O X unique
X X primary key
O O ์ ์ฝ์กฐ๊ฑด ์ ํ๋ฉด ๋จ
์์ฝ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ: create database ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช
ํ ์ด๋ธ ์์ฑ: create table ํ ์ด๋ธ๋ช
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช or ํ ์ด๋ธ๋ช ๊ท์น
- ๊ธฐ์กด์ด๋ฆ(X), DBMS ์์ฝ์ด(X)
- ์ซ์๋ก ์์(X)
- ํน์๊ธฐํธ(X): ์ธ๋์ค์ฝ์ด(_)๋ง ์ฌ์ฉ ๊ฐ๋ฅ
Ch. 1 ๋ฐ์ดํฐ๋ฒ ์ด์ค์ SQL
์ฑ ์ ๋ชฉ์ฐจ
__01๊ฐ__๋ฐ์ดํฐ๋ฒ ์ด์ค
1. ์์คํ ๋ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค
2. DB์ DBMS
3. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์กฐ์ํ๋ ์ธ์ด SQL
__02๊ฐ__๋ค์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค
1. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ข ๋ฅ
2. RDBMS ์ฌ์ฉ ์์คํ
3. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ํ
4. SQL์ ๋ฐฉ์ธ๊ณผ ํ์คํ
__03๊ฐ__๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ
1. ํด๋ผ์ด์ธํธ/์๋ฒ ๋ชจ๋ธ
2. ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์กฐ
3. MySQL ์๋ฒ์ mysql ํด๋ผ์ด์ธํธ
1๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค
๋ฐ์ดํฐ: ์ปดํจํฐ ์์ ๊ธฐ๋ก๋์ด ์๋ ์ซ์
๋ฐ์ดํฐ๋ฒ ์ด์ค: ์ด๋ฌํ ๋ฐ์ดํฐ์ ์งํฉ, ์ปดํจํฐ ์์ ๊ธฐ๋ก๋ ๋ชจ๋ ๊ฒ,
ํน์ ๋ฐ์ดํฐ๋ฅผ ํ์ธํ๊ณ ์ถ์ ๋ ๊ฐ๋จํ๊ฒ ์ฐพ์ ์ ์๋๋ก ์ ๋ฆฌ๋ ํํ(๋ฐ์ดํฐ)
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์ ๋ฐ์ดํฐ๋ ์๊ตฌ์ ์ผ๋ก ๋ณด์กด๋์ด์ผ ํ๋ฉฐ, ํ๋๋์คํฌ๋ ํ๋์๋ฉ๋ชจ๋ฆฌ(SSD) ๋ฑ ๋นํ๋ฐ์ฑ ์ ์ฅ์ฅ์น์ ์ ์ฅํ๋ค.
1.1 ์์คํ ๋ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค
์ผ๋ฐ์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค: ๋ฐ์ดํฐ์ผํฐ์ ์๋ฒ์์ ์ด์ฉ
ex) ์ธํฐ๋ท ์ผํ, ์์ฝ
์์คํ
์ ์ง์ ์ฌ์ฉํ์ง ์๋ ์ํฉ: ex) ํธ์์ ๊ณ์ฐ๋(POS ์์คํ
)์์ ๋ฐ์ดํฐ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ ์ก๋๋ค.
๊ฐ์ธ์ฉ ์ปดํจํฐ๋ ํด๋์ฉ ๊ธฐ๊ธฐ์ ๋ด์ฅ๋์ด ์๊ธฐ๋ ํ๋ค.
ex) ํด๋์ ํ์ ์ ํ๋ฒํธ๋ถ
1.2 DB์ DBMS
๋ฐ์ดํฐ๋ฒ ์ด์ค(Database(DB)): ์ ์ฅ์ฅ์น ๋ด์ ์ ๋ฆฌ๋์ด ์ ์ฅ๋ ๋ฐ์ดํฐ์ ์งํฉ
ํน์ ๊ธฐ์
์ด๋ ์กฐ์ง ๋๋ ๊ฐ์ธ์ด ํ์์ ์ํด ๋ฐ์ดํฐ๋ฅผ ์ผ์ ํ ํํ๋ก ์ ์ฅํด ๋์ ๊ฒ์ ์๋ฏธ
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ
(Database Management System(DBMS)): ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ์ํํธ์จ์ด
ํจ์จ์ ์ธ ๋ฐ์ดํฐ ๊ด๋ฆฌ๋ฟ๋ง ์๋๋ผ ์๊ธฐ์น ๋ชปํ ์ฌ๊ฑด์ผ๋ก ์ธํ ๋ฐ์ดํฐ์ ์์์ ํผํ๊ณ ํ์์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ๊ธฐ ์ํ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ SW
DBMS๊ฐ ํ์ํ ์ด์
- ์์ฐ์ฑ ํฅ์ ๋๋ชจ: ๋ฐ์ดํฐ ๊ฒ์, ์ถ๊ฐ, ์ญ์ , ๊ฐฑ์ ๊ณผ ๊ฐ์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
- ๊ธฐ๋ฅ์ฑ: ex) ๋ณต์ ์ ์ ์ ์์ฒญ์ ๋์, ๋์ฉ๋์ ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ๊ณ ์์ผ๋ก ๊ฒ์ํ๋ ๊ธฐ๋ฅ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ ์ ๊ฐ ํ์ฅํ์ฌ ์ ์ฐํ๊ฒ ์์คํ
๊ฐ๋ฐ
- ์ ๋ขฐ์ฑ: ํ๋์จ์ด๋ฅผ ์ฌ๋ฌ ๋๋ก ๊ตฌ์ฑํ์ฌ ์ ๋ขฐ์ฑ์ ๋์ด๋ ๋์์ ์ฑ๋ฅ ํฅ์์ ๊พํ๋ค.
export, import ๋ฑ์ ๊ธฐ๋ฅ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ฐ๋จํ๊ฒ ๋ฐฑ์
ํ ์ ์๋ค.
Point: DBMS๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ด๋ฆฌํ๋ ์ํํธ์จ์ด๋ก, ์ฌ์ฉ ๋ชฉ์ ์ ์์ฐ์ฑ ํฅ์๊ณผ ๊ธฐ๋ฅ์ฑ, ์ ๋ขฐ์ฑ ํ๋ณด์ ์๋ค.
1.3 ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์กฐ์ํ๋ ์ธ์ด SQL p. 29
DBMS์์ ๋ํ์ ํ์ํ ๊ฒ์ด ๋ฐ๋ก SQL์ด๋ค. SQL์ ๊ทธ ์ค '๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ
(Relational Database Management System(RDBMS)'์ ์กฐ์ํ ๋ ์ฌ์ฉํ๋ค.
SQL: DB ๊ด๊ณํ์์ ๋ฐ์ดํฐ ์ ์ ์กฐ์ ์ ์ด๋ฅผ ์ํด ์ฌ์ฉํ๋ ์ธ์ด
Point: SQL์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฌ์ฉํ๋ค.
- SQL ๋ช
๋ น์ ์ข
๋ฅ
SQL๋ช
๋ น์ DML, DDL, DCL์ ์ธ ์ข
๋ฅ๋ก ๋๋๋ค.
1. DDL(Data Definition Language): ๋ฐ์ดํฐ ์ ์
- CREATE TABLE ํ
์ด๋ธ ์์ฑ/์์ฑ
- DROP TABLE ํ
์ด๋ธ ์ญ์
- ALTER TABLE ํ
์ด๋ธ ์์ /๋ณ๊ฒฝ
- RENAME
2. DML(Data Manipulation Language): ๋ฐ์ดํฐ ์กฐ์
- INSERT ๋ฐ์ดํฐ ์ถ๊ฐ
- UPDATE ๋ฐ์ดํฐ ๊ฐฑ์
- DELETE ๋ฐ์ดํฐ ์ญ์
- SELECT
3. DCL(Data Control Language): ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ด, ๊ถํ(์ญ์ , ์์ ๋ฑ) ๋ถ์ฌ
- GRANT ๊ถํ ๋ถ์ฌ
- REVOKE ๋ถ์ฌ๋ ๊ถํ ์ ๊ฑฐ/ํผ์
4. TCL(Transaction Control Language): ํธ๋์ญ์ (๋์๋ค๋ฐ์ ๊ณผ์ )์ ์ ์ดํ๋ ๋ช ๋ น
- COMMIT: ์ฌ๋ฐ๋ฅด๊ฒ ๋ฐ์๋ ๋ฐ์ดํฐ๋ฅผ DB์ ๋ฐ์
- ROLLBACK: ํธ๋์ญ์
์์ ์ด์ ์ ์ํ๋ก ๋๋๋ฆผ COMMIT ๋์ง ์์ ๋ชจ๋ ํธ๋์ญ์
์ ๋กค๋ฐฑํจ.
์ฐธ๊ณ : https://rh-cp.tistory.com/41
Point: SQL๋ช ๋ น์ DML, DDL, DCL์ ์ธ ์ข ๋ฅ๋ก ๋๋๋ค.
2๊ฐ ๋ค์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(Relational Database(RDB)): SQL๋ก ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค
2.1 ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ข ๋ฅ
์ค๋๋ ์์๋ก ๋ช๋ช DBMS๋ฅผ ์๊ฐํ๋ค.
- ๊ณ์ธตํ ๋ฐ์ดํฐ๋ฒ ์ด์ค: ํด๋์ ํ์ผ ๋ฑ์ ๊ณ์ธต ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค
ex) ํ๋๋์คํฌ, DVD ํ์ผ์์คํ
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค: ํ๊ณผ ์ด์ ๊ฐ์ง๋ ํ ํ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ํํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค
ํ ํ์ ๋ฐ์ดํฐ: ํ(Row), ์ด(Column)์ ๋์ดํ๋ค.
ํ
์ด๋ธ : DB ๊ธฐ๋ณธ ๋จ์, ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ฐ์ฒด
๊ฐ๋ก = ํ (๋ก์ฐ) = ํํ = ์ธ์คํด์ค
์ธ๋ก = ์ด (์นผ๋ผ)
- ๊ฐ์ฒด์งํฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค: ๊ฐ์ฒด ๊ทธ๋๋ก๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ก ์ ์ฅํ๋ ๊ฒ
- XML ๋ฐ์ดํฐ๋ฒ ์ด์ค: XML ํ์์ผ๋ก ๊ธฐ๋ก๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ํค-๋ฐธ๋ฅ ์คํ ์ด(KVS): ํค์ ๊ทธ์ ๋์ํ๋ ๊ฐ(๋ฐธ๋ฅ)์ด๋ผ๋ ๋จ์ํ ํํ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค