
์๋์ฐ R - ์คํ ๋ค์ด๊ฐ์ง
1. sysdm.cpl ,3
2. appwiz.cpl (ํ๋ก๊ทธ๋จ ์ญ์ ํ ๋ ์ฐ๋ ๋จ์ถํค)
- ๋ ๊ฐ๋ ์ธ์ฐ๊ธฐ
๋ค์ด๋ก๋ ์ฐจ๊ทผ์ฐจ๊ทผ ๋ค์! ์ด์ ํ๋ ๊ฑฐ ๋ค๋ฆ ๋ค์ ์ค์น
Download
pgAdmin 4 (Windows) Download Maintainer: pgAdmin Development Team pgAdmin is available for 64 bit Windows™ 7 SP1 (desktop) or 2008R2 (server) and above, up to v4.30. v5.0 and later are supported on Windows 8 (desktop) or 2012 (server) and above. v7.0 and
www.pgadmin.org



ํฐ๋ฏธ๋์ ๊ฐ๋ค







docker exec -it esgseed bash
exit
docker ps -a
(ํ์ธ์ฉ_)
root@4da107a874d3:/# psql -U esgseed -d esgseeddb
-ํ์ค๋ก ๋ฐ๋ก๊ฐ๊ธฐ
docker exec -it esgseed psql -U esgseed -d esgseeddb

\dt

ํ ์ด๋ธ ๋ง๋๋ ๋ช ๋ น์ด
create table

docker exec esgseed ls -id /tmp
**ls์!



localhost
esgseeddb
esgseed
esgseed1234
CSV ํ์ผ์ ๋์ปค ์ปจํ ์ด๋๋ก ๋ณต์ฌํ๊ธฐ
์ปจํ
์ด๋ ์ด๋ฆ : esgseed
์ฌ์ฉ์ ์ด๋ฆ : esgseed
DB ์ด๋ฆ : esgseeddb
ํ
์ด๋ธ ์ด๋ฆ : train_weather
# 1. CSV ํ์ผ์ ์ปจํ
์ด๋๋ก ๋ณต์ฌ
docker cp src/main/resources/static/csv/train_weather.csv esgseed:/tmp/train_weather.csv
# 2. ํ
์ด๋ธ ์์ฑ
docker exec -it esgseed bash
psql -U esgseed -d esgseeddb
"esgseeddb=# CREATE TABLE IF NOT EXISTS train_weather (
esgseeddb(# ์ผ์ DATE PRIMARY KEY,
esgseeddb(# ํ๊ท ๊ธฐ์จ NUMERIC,
esgseeddb(# ์ต๊ณ ๊ธฐ์จ NUMERIC,
esgseeddb(# ์ต๊ณ ๊ธฐ์จ์๊ฐ TIME,
esgseeddb(# ์ต์ ๊ธฐ์จ NUMERIC,
esgseeddb(# ์ต์ ๊ธฐ์จ์๊ฐ TIME,
esgseeddb(# ์ผ๊ต์ฐจ NUMERIC,
esgseeddb(# ๊ฐ์๋ NUMERIC
esgseeddb(# );
docker exec labzang psql -U labzang -d labzangdb -c "CREATE TABLE IF NOT EXISTS test (id SERIAL PRIMARY KEY, date DATE, entry TEXT, summary TEXT, language VARCHAR(50), notes TEXT);"
# 3. ๋ฐ์ดํฐ ๋ก๋
docker exec labzang psql -U labzang -d labzangdb -c "COPY test(date, entry, summary, language, notes) FROM '/tmp/test.csv' WITH (FORMAT csv, HEADER true, DELIMITER ',');"
docker exec -it esgseed bash
psql -U esgseed -d esgseeddb
esgseeddb=# COPY train_weather(์ผ์, ํ๊ท ๊ธฐ์จ, ์ต๊ณ ๊ธฐ์จ, ์ต๊ณ ๊ธฐ์จ์๊ฐ,
์ต์ ๊ธฐ์จ, ์ต์ ๊ธฐ์จ์๊ฐ, ์ผ๊ต์ฐจ, ๊ฐ์๋)
esgseeddb-# WITH (
esgseeddb(# FORMAT csv,
esgseeddb(# HEADER true,
esgseeddb(# DELIMITER ',',
esgseeddb(# NULL '',
esgseeddb(# FORCE_NULL (ํ๊ท ๊ธฐ์จ, ์ต๊ณ ๊ธฐ์จ, ์ต์ ๊ธฐ์จ, ์ผ๊ต์ฐจ, ๊ฐ์๋
);
# 4. ๋ฐ์ดํฐ ํ์ธ
docker exec labzang psql -U labzang -d labzangdb -c "SELECT COUNT(*) FROM test;"
esgseeddb=# SELECT COUNT(*) FROM train_weather;


๋ณต์กํ ๋๋น๋ ์๋ฌ๊ฐ ๋ง์ด ๋จ ๊ทธ๊ฑธ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ์์ ์์๋์ด์ผ ํ ๋ฏ
-์ด์ ์๋ฌ๋๊ฑฐ ์ก๊ธฐ(์ด์ ์ค์นํ๋ค๊ฐ ์ค๊ฐ์ ๋ฉ์ถฐ์ ๋ ์๋ฌ์์! ์ด์ ์ก๊ณ ๋ค์ํ์)

1 - 5 #์ถ๊ตฌ์ฟผ๋ฆฌ๋ฌธ์
-- 001. ์ ์ฒด ์ถ๊ตฌํ ๋ชฉ๋ก์ ํ์ด๋ฆ ์ค๋ฆ์ฐจ์์ผ๋ก ์ถ๋ ฅํ์์ค
-- 002. ํ๋ ์ด์ด์ ํฌ์ง์ ์ข ๋ฅ๋ฅผ ๋์ดํ์์ค. ๋จ ์ค๋ณต์ ์ ๊ฑฐํ๊ณ , ํฌ์ง์ ์ด ์์ผ๋ฉด ๋น๊ณต๊ฐ์ผ๋ก ๋์์ค
-- 003. ํ๋ ์ด์ด์ ํฌ์ง์ ์ข ๋ฅ๋ฅผ ๋์ดํ์์ค. ๋จ ์ค๋ณต์ ์ ๊ฑฐํ๊ณ , ํฌ์ง์ ์ด ์์ผ๋ฉด '์ ์ ' ์ผ๋ก ๊ธฐ์ฌํ์์ค
-- 004. ์์ํ์์ ๊ณจํคํผ(GK)์ ์ด๋ฆ์ ๋ชจ๋ ์ถ๋ ฅํ์์ค. ๋จ ์์ํ ID๋ K02 ์ ๋๋ค.
-- 005. ์์ํ์์ ์ฑ์ด ๊ณ ์จ์ด๊ณ ํค๊ฐ 170 ์ด์์ธ ์ ์๋ฅผ ์ถ๋ ฅํ์์ค. ๋จ ์์ํ ID๋ K02 ์ ๋๋ค.
soccer .sql postgresql version ddl, dml
soccer .sql postgresql version ddl, dml
๋ค ์ ๋ ฅํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ถ๋ ฅ๋ฉ๋๋ค. ์คํ ์์ 1CREATE TABLE stadium ( stadium_id VARCHAR(10) PRIMARY KEY, stadium_name VARCHAR(40), hometeam_id VARCHAR(10), -- team.team_id์ ์ฐ๊ด seat_count INTEGER, address VARCHAR(60), ddd VARCHAR
parksrazor.tistory.com


๊ฐ ์ค ๋ฃ๊ณ (์คํ์์1~5-2) ํ์ดํ ๋๋ฅด๊ณ
๋งจ ๋ง์ง๋ง์ ๋งจ ์๋ก ์ฌ๋ ค์ select count(*) from ________; ๋ฃ๊ณ ์์ ์ซ์๊ฐ ๋ฐ์ ๋์ค๋ฉด ์ฑ๊ณต!



soccer .sql postgresql version ddl, dml
๋ค ์ ๋ ฅํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ถ๋ ฅ๋ฉ๋๋ค. ์คํ ์์ 1CREATE TABLE stadium ( stadium_id VARCHAR(10) PRIMARY KEY, stadium_name VARCHAR(40), hometeam_id VARCHAR(10), -- team.team_id์ ์ฐ๊ด seat_count INTEGER, address VARCHAR(60), ddd VARCHAR
parksrazor.tistory.com
1 - 5 #์ถ๊ตฌ์ฟผ๋ฆฌ๋ฌธ์
-- 001. ์ ์ฒด ์ถ๊ตฌํ ๋ชฉ๋ก์ ํ์ด๋ฆ ์ค๋ฆ์ฐจ์์ผ๋ก ์ถ๋ ฅํ์์ค
-- 002. ํ๋ ์ด์ด์ ํฌ์ง์ ์ข ๋ฅ๋ฅผ ๋์ดํ์์ค. ๋จ ์ค๋ณต์ ์ ๊ฑฐํ๊ณ , ํฌ์ง์ ์ด ์์ผ๋ฉด ๋น๊ณต๊ฐ์ผ๋ก ๋์์ค
-- 003. ํ๋ ์ด์ด์ ํฌ์ง์ ์ข ๋ฅ๋ฅผ ๋์ดํ์์ค. ๋จ ์ค๋ณต์ ์ ๊ฑฐํ๊ณ , ํฌ์ง์ ์ด ์์ผ๋ฉด '์ ์ ' ์ผ๋ก ๊ธฐ์ฌํ์์ค
-- 004. ์์ํ์์ ๊ณจํคํผ(GK)์ ์ด๋ฆ์ ๋ชจ๋ ์ถ๋ ฅํ์์ค. ๋จ ์์ํ ID๋ K02 ์ ๋๋ค.
-- 005. ์์ํ์์ ์ฑ์ด ๊ณ ์จ์ด๊ณ ํค๊ฐ 170 ์ด์์ธ ์ ์๋ฅผ ์ถ๋ ฅํ์์ค. ๋จ ์์ํ ID๋ K02 ์ ๋๋ค.
์ ๋ต ์ฟผ๋ฆฌ (001 ~ 005)
-- 001. ์ ์ฒด ์ถ๊ตฌํ ๋ชฉ๋ก์ ํ์ด๋ฆ ์ค๋ฆ์ฐจ์์ผ๋ก ์ถ๋ ฅํ์์ค
(*ํ์ด๋ฆ ์ค๋ฆ์ฐจ์์ด ์ค๋ฅ๊ฐ ๋ง์ด ๋จ ์๋์ ๊ฐ์ด create ๋จผ์ ํ๊ณ ํ๋ฉด ๊ด์ฐฎ๊ฒ ๋์์)
1. run
CREATE COLLATION korean (provider = icu, locale = 'ko_KR');
2. run
SELECT team_name
FROM team
ORDER BY team_name COLLATE korean ASC;
ASC; ์ค๋ฆ์ฐจ์
DESC : ๋ด๋ฆผ์ฐจ์
SELECT DISTINCT COALESCE(position, '') AS position
FROM player;
-- 002. ํ๋ ์ด์ด์ ํฌ์ง์
์ข
๋ฅ๋ฅผ ๋์ดํ์์ค. ๋จ ์ค๋ณต์ ์ ๊ฑฐํ๊ณ , ํฌ์ง์
์ด ์์ผ๋ฉด ๋น๊ณต๊ฐ์ผ๋ก ๋์์ค
SELECT DISTINCT COALESCE(position, '') AS position
FROM player;
SELECT DISTINCT COALESCE(position, '์ ์ ') AS position
FROM player;
-- 003. ํ๋ ์ด์ด์ ํฌ์ง์
์ข
๋ฅ๋ฅผ ๋์ดํ์์ค. ๋จ ์ค๋ณต์ ์ ๊ฑฐํ๊ณ , ํฌ์ง์
์ด ์์ผ๋ฉด '์ ์
' ์ผ๋ก ๊ธฐ์ฌํ์์ค
SELECT DISTINCT COALESCE(position, '์ ์
') AS position
FROM player;
-- 004. ์์ํ์์ ๊ณจํคํผ(GK)์ ์ด๋ฆ์ ๋ชจ๋ ์ถ๋ ฅํ์์ค. ๋จ ์์ํ ID๋ K02 ์
๋๋ค.
SELECT player_name
FROM player
WHERE team_id = 'K02'
AND position = 'GK';
-- 004. ์์ํ์์ ๊ณจํคํผ(GK)์ ์ด๋ฆ์ ๋ชจ๋ ์ถ๋ ฅํ์์ค. ๋จ ์์ํ ID๋ K02 ์
๋๋ค.
SELECT player_name
FROM player
WHERE team_id = 'K02'
AND position = 'GK';
SELECT player_name, height, position
FROM player
WHERE team_id = 'K02'
AND player_name LIKE '๊ณ %' -- ์ฑ์ด '๊ณ '์จ
AND height >= 170;
-- 005. ์์ํ์์ ์ฑ์ด ๊ณ ์จ์ด๊ณ ํค๊ฐ 170 ์ด์์ธ ์ ์๋ฅผ ์ถ๋ ฅํ์์ค. ๋จ ์์ํ ID๋ K02 ์
๋๋ค.
SELECT player_name, height, position
FROM player
WHERE team_id = 'K02'
AND player_name LIKE '๊ณ %' -- ์ฑ์ด '๊ณ '์จ
AND height >= 170;
-- 005-1. ์์ํ์ ID ๋ ?
SELECT team_id
FROM team
WHERE region_name = '์์';
-- 005-2. ์์ํ์์ ์ฑ์ด ๊ณ ์จ์ด๊ณ ํค๊ฐ 170 ์ด์์ธ ์ ์๋ฅผ ์ถ๋ ฅํ์์ค. (์๋ธ์ฟผ๋ฆฌ)
SELECT p.player_name, p.height, p.position
FROM player p
WHERE p.team_id = (SELECT team_id FROM team WHERE team_name = '์ผ์ฑ๋ธ๋ฃจ์์ฆ')
AND p.player_name LIKE '๊ณ %'
AND p.height >= 170;
-- ๋ฌธ์ 6
-- ๋ค์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์ ์๋ช
๋จ์ ์ถ๋ ฅํ์์ค
-- ์์ํ์ด ์ผ์ฑ๋ธ๋ฃจ์์ฆ์ด๊ฑฐ๋
-- ๋๋๊ณค์ฆ์ ์์๋ ์ ์๋ค์ด์ด์ผ ํ๊ณ ,
-- ํฌ์ง์
์ด ๋ฏธ๋ํ๋(MF:Midfielder)์ด์ด์ผ ํ๋ค.
-- ํค๋ 170 ์ผํฐ๋ฏธํฐ ์ด์์ด๊ณ 180 ์ดํ์ฌ์ผ ํ๋ค.
SELECT p.player_name, t.team_name, p.position, p.height
FROM player p
JOIN team t ON p.team_id = t.team_id
WHERE t.team_name IN ('์ผ์ฑ๋ธ๋ฃจ์์ฆ', '๋๋๊ณค์ฆ')
AND p.position = 'MF'
AND p.height BETWEEN 170 AND 180
ORDER BY t.team_name, p.height ASC;
'Project ESG+AI > [์ผ์ KPMG]ESG ๋ฐ์ดํฐ ํ์ฉ ํ์คํ ๊ฐ๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| 16์ผ์ฐจ. (1) | 2025.10.30 |
|---|---|
| 15์ผ์ฐจ. SQL์ ๋ํด ์์๋ณด์ (1) | 2025.10.29 |
| 13์ผ. ๋์ปค ์ค์นํ๊ธฐ (0) | 2025.10.27 |
| 12์ผ์ฐจ. (1) | 2025.10.24 |
| 11์ผ์ฐจ. (0) | 2025.10.23 |