SELECT๋ฌธ์์ ๋ง์ด ์ฌ์ฉ๋๋ ํค์๋
DISTINCT ํค์๋
DISTINCT ๋ค์ ์ง์ ํ ์ด์ด ํ ๊ฐ์ผ ๊ฒฝ์ฐ
SELECT DISTINCT ์ด ์ด๋ฆ FROM ํ
์ด๋ธ๋ช
;
์ด ์ด๋ฆ ์์ DISTINCT๋ฅผ ์ ์ผ๋ฉด ๊ฐ์ ์ค๋ณต ์์ด ์ถ๋ ฅ๋จ
DISTINCT ๋ค์ ์ง์ ํ ์ด์ด ์ฌ๋ฌ ๊ฐ์ผ ๊ฒฝ์ฐ
SELECT DISTINCT ์ด ์ด๋ฆ1, ์ด ์ด๋ฆ2 FROM ํ
์ด๋ธ๋ช
;

1. EMP ํ ์ด๋ธ์ ์ด๋ ์ง๊ธ๋ค์ด ํฌํจ๋์ด ์๋์ง ํ์ธํ๋ ค๋ฉด?
SELECT DISTINCT POSITION FROM EMP;
2. EMP ํ ์ด๋ธ์์ ์ง๊ธ์ ๋ฐ๋ผ ์ด๋ค ์ธ์ฌ๊ณ ๊ณผ๋ฅผ ๋ฐ์๋์ง ํ์ธํ๋ ค๋ฉด?
SELECT DISTINCT POSITION, GRADE FROM EMP;
1. DISTINCT ํค์๋์ ๋ฐ๋๋ ALL ํค์๋์ด๋ค!
=> DISTINCT ํค์๋๊ฐ ์ค๋ณต๋๋ ๊ฐ์ ์ ๊ฑฐํ๋ ๋ฐ๋ฉด ALL ํค์๋๋ ์ค๋ณต์ ๊ณ ๋ คํ์ง ์๊ณ ๋ชจ๋ ๊ฐ์ ์ถ๋ ฅํ๋ค
(๋ง์ฝ DISTINCT ํค์๋๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ๊ฐ์ ALL ํค์๋๋ก ์ค์ ๋จ)
2. DISTINCT ํค์๋๋ ์ง๊ณ ํจ์์ ํ๋ถ ์ฟผ๋ฆฌ์์ ๋ง์ด ์ฌ์ฉ๋๋ค
=> ์ง๊ณ ํจ์ ์ค COUNT๋ผ๋ ํจ์๊ฐ ์๋๋ฐ 'COUNT(*)'๋ NULL ๊ฐ์ ํฌํจํ ๋ชจ๋ ํ(row)์ ์นด์ดํธ ํ๋ผ๋ ์๋ฏธ์ด๊ณ , 'COUNT(DISTINCT POSITION)'๋ ์ค๋ณต์ ํ์ฉํ์ง ๋ง๊ณ ๋ช ๊ฐ์ ์ง๊ธ์ด ์๋์ง ์นด์ดํธํ๋ผ๋ ์๋ฏธ์ด๋ค
ALIAS(๋ณ์นญ)
AS ์ฌ์ฉํ๊ธฐ
AS ํค์๋์ ์์๋ ๋ฐ๊พธ๊ณ ์ถ์ ์ด ์ด๋ฆ, ๋ค์๋ ์๋ก์ด ์ด ์ด๋ฆ์ ์ ์ผ๋ฉด ๋๋ค
SELECT ์ด ์ด๋ฆ AS ์๋ก์ด ์ด ์ด๋ฆ FROM ํ
์ด๋ธ๋ช
;
์ธ์ฉ๋ถํธ(" ") ์ฌ์ฉํ๊ธฐ
์๋กญ๊ฒ ์ง์ ํ๊ณ ์ถ์ ์ด ์ด๋ฆ์ ์ธ์ฉ๋ถํธ(" ") ์ฌ์ฉํ๋ฉด ๋๋ค
=> ๊ณต๋ฐฑ, ํ๊ธ, ํน์๋ฌธ์ ๋ฑ์ ํฌํจํด์ผ ํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ๋๋ ๋ฐฉ๋ฒ์
SELECT ์ด ์ด๋ฆ "์๋ก์ด ์ด ์ด๋ฆ" FROM ํ
์ด๋ธ๋ช
;

1. EMP ํ ์ด๋ธ์์ ์ฌ๋ฒ์ ๋ํ๋ด๋ ID๋ฅผ CLERK_ID๋ก, ์ธ์ฌ๊ณ ๊ณผ๋ฅผ ๋ํ๋ด๋ GRADE๋ฅผ PERF๋ก ๋ฐ๊ฟ ์๋กญ๊ฒ ์ด๋ฆ์ ๋ถ์ฌํ๋ ค๋ฉด?
SELECT ID AS CLERK_ID, POSITION, PARTY_NM, MANAGER_ID, TEAM_NM, GRADE AS PERF
FROM EMP;
2. EMP ํ ์ด๋ธ์์ ์ธ์ฌ๊ณ ๊ณผ๋ฅผ ์ฃผ๊ณ ์๋ ์ฌ๋ ์๋ฅผ CNT๋ผ๋ ๋ณ์นญ์ ์ฌ์ฉํด์ ๊ตฌํ๋ ค๋ฉด?
SELECT COUNT(DISTINCT MANAGER_ID) AS CNT
FROM EMP;
'๐ซง Database > SQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ ์คํธ ๋ง์ด๋์ ํ์ฉํ ๋ฐ์ดํฐ ์กฐ๊ฑด ์ฃผ๊ธฐ (1) | 2024.02.26 |
---|---|
๋ ผ๋ฆฌ์ฐ์ฐ์๋ฅผ ํ์ฉํ ๋ฐ์ดํฐ ์กฐ๊ฑด ์ฃผ๊ธฐ (0) | 2024.02.25 |
WHERE ์กฐ๊ฑด์ ์ ํ์ฉํ ๋ฐ์ดํฐ ์กฐ๊ฑด ์ฃผ๊ธฐ (0) | 2024.02.22 |
SQL์ ๊ธฐ์ด (0) | 2024.02.21 |
SQL์ ๊ฐ์ (0) | 2024.02.21 |
SELECT๋ฌธ์์ ๋ง์ด ์ฌ์ฉ๋๋ ํค์๋
DISTINCT ํค์๋
DISTINCT ๋ค์ ์ง์ ํ ์ด์ด ํ ๊ฐ์ผ ๊ฒฝ์ฐ
SELECT DISTINCT ์ด ์ด๋ฆ FROM ํ
์ด๋ธ๋ช
;
์ด ์ด๋ฆ ์์ DISTINCT๋ฅผ ์ ์ผ๋ฉด ๊ฐ์ ์ค๋ณต ์์ด ์ถ๋ ฅ๋จ
DISTINCT ๋ค์ ์ง์ ํ ์ด์ด ์ฌ๋ฌ ๊ฐ์ผ ๊ฒฝ์ฐ
SELECT DISTINCT ์ด ์ด๋ฆ1, ์ด ์ด๋ฆ2 FROM ํ
์ด๋ธ๋ช
;

1. EMP ํ ์ด๋ธ์ ์ด๋ ์ง๊ธ๋ค์ด ํฌํจ๋์ด ์๋์ง ํ์ธํ๋ ค๋ฉด?
SELECT DISTINCT POSITION FROM EMP;
2. EMP ํ ์ด๋ธ์์ ์ง๊ธ์ ๋ฐ๋ผ ์ด๋ค ์ธ์ฌ๊ณ ๊ณผ๋ฅผ ๋ฐ์๋์ง ํ์ธํ๋ ค๋ฉด?
SELECT DISTINCT POSITION, GRADE FROM EMP;
1. DISTINCT ํค์๋์ ๋ฐ๋๋ ALL ํค์๋์ด๋ค!
=> DISTINCT ํค์๋๊ฐ ์ค๋ณต๋๋ ๊ฐ์ ์ ๊ฑฐํ๋ ๋ฐ๋ฉด ALL ํค์๋๋ ์ค๋ณต์ ๊ณ ๋ คํ์ง ์๊ณ ๋ชจ๋ ๊ฐ์ ์ถ๋ ฅํ๋ค
(๋ง์ฝ DISTINCT ํค์๋๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ๊ฐ์ ALL ํค์๋๋ก ์ค์ ๋จ)
2. DISTINCT ํค์๋๋ ์ง๊ณ ํจ์์ ํ๋ถ ์ฟผ๋ฆฌ์์ ๋ง์ด ์ฌ์ฉ๋๋ค
=> ์ง๊ณ ํจ์ ์ค COUNT๋ผ๋ ํจ์๊ฐ ์๋๋ฐ 'COUNT(*)'๋ NULL ๊ฐ์ ํฌํจํ ๋ชจ๋ ํ(row)์ ์นด์ดํธ ํ๋ผ๋ ์๋ฏธ์ด๊ณ , 'COUNT(DISTINCT POSITION)'๋ ์ค๋ณต์ ํ์ฉํ์ง ๋ง๊ณ ๋ช ๊ฐ์ ์ง๊ธ์ด ์๋์ง ์นด์ดํธํ๋ผ๋ ์๋ฏธ์ด๋ค
ALIAS(๋ณ์นญ)
AS ์ฌ์ฉํ๊ธฐ
AS ํค์๋์ ์์๋ ๋ฐ๊พธ๊ณ ์ถ์ ์ด ์ด๋ฆ, ๋ค์๋ ์๋ก์ด ์ด ์ด๋ฆ์ ์ ์ผ๋ฉด ๋๋ค
SELECT ์ด ์ด๋ฆ AS ์๋ก์ด ์ด ์ด๋ฆ FROM ํ
์ด๋ธ๋ช
;
์ธ์ฉ๋ถํธ(" ") ์ฌ์ฉํ๊ธฐ
์๋กญ๊ฒ ์ง์ ํ๊ณ ์ถ์ ์ด ์ด๋ฆ์ ์ธ์ฉ๋ถํธ(" ") ์ฌ์ฉํ๋ฉด ๋๋ค
=> ๊ณต๋ฐฑ, ํ๊ธ, ํน์๋ฌธ์ ๋ฑ์ ํฌํจํด์ผ ํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ๋๋ ๋ฐฉ๋ฒ์
SELECT ์ด ์ด๋ฆ "์๋ก์ด ์ด ์ด๋ฆ" FROM ํ
์ด๋ธ๋ช
;

1. EMP ํ ์ด๋ธ์์ ์ฌ๋ฒ์ ๋ํ๋ด๋ ID๋ฅผ CLERK_ID๋ก, ์ธ์ฌ๊ณ ๊ณผ๋ฅผ ๋ํ๋ด๋ GRADE๋ฅผ PERF๋ก ๋ฐ๊ฟ ์๋กญ๊ฒ ์ด๋ฆ์ ๋ถ์ฌํ๋ ค๋ฉด?
SELECT ID AS CLERK_ID, POSITION, PARTY_NM, MANAGER_ID, TEAM_NM, GRADE AS PERF
FROM EMP;
2. EMP ํ ์ด๋ธ์์ ์ธ์ฌ๊ณ ๊ณผ๋ฅผ ์ฃผ๊ณ ์๋ ์ฌ๋ ์๋ฅผ CNT๋ผ๋ ๋ณ์นญ์ ์ฌ์ฉํด์ ๊ตฌํ๋ ค๋ฉด?
SELECT COUNT(DISTINCT MANAGER_ID) AS CNT
FROM EMP;
'๐ซง Database > SQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ ์คํธ ๋ง์ด๋์ ํ์ฉํ ๋ฐ์ดํฐ ์กฐ๊ฑด ์ฃผ๊ธฐ (1) | 2024.02.26 |
---|---|
๋ ผ๋ฆฌ์ฐ์ฐ์๋ฅผ ํ์ฉํ ๋ฐ์ดํฐ ์กฐ๊ฑด ์ฃผ๊ธฐ (0) | 2024.02.25 |
WHERE ์กฐ๊ฑด์ ์ ํ์ฉํ ๋ฐ์ดํฐ ์กฐ๊ฑด ์ฃผ๊ธฐ (0) | 2024.02.22 |
SQL์ ๊ธฐ์ด (0) | 2024.02.21 |
SQL์ ๊ฐ์ (0) | 2024.02.21 |