SQL SELECT

2020. 4. 28. 13:11Β·πŸ“ Computer Science/✏ Database
SELECT [PREDICATE] [ν…Œμ΄λΈ”λͺ….]속성λͺ… [AS 별칭], ...
FROM ν…Œμ΄λΈ”λͺ… [AS 별칭], ...
WHERE 쑰건
ORDER BY 속성λͺ… [ASC | DESC], ...
GROUP BY 속성λͺ…, ...
HAVING 쑰건;

 

1. SELECT 절

쑰건에 λ§žλŠ” νŠœν”Œμ„ κ²€μƒ‰ν•œλ‹€.

  • PREDICATE: λΆˆλŸ¬μ˜¬ νŠœν”Œ 수λ₯Ό μ œν•œν•  λͺ…λ Ήμ–΄λ₯Ό κΈ°μˆ ν•œλ‹€.
    • DISTINCT: μ€‘λ³΅λœ νŠœν”Œμ΄ 있으면 그쀑 첫 번째 ν•œ 개만 κ²€μƒ‰ν•œλ‹€
    • DISTINCT: μ€‘λ³΅λœ νŠœν”Œμ„ μ œκ±°ν•˜κ³  ν•œ 개만 κ²€μƒ‰ν•˜μ§€λ§Œ μ„ νƒλœ μ†μ„±μ˜ 값이 μ•„λ‹Œ νŠœν”Œ 전체λ₯Ό λŒ€μƒμœΌλ‘œ ν•œλ‹€.
  • κΈ°λ³Έ ν…Œμ΄λΈ”μ„ κ΅¬μ„±ν•˜λŠ” λͺ¨λ“  속성을 μ§€μ •ν•  λ•ŒλŠ” '*'λ₯Ό κΈ°μˆ ν•œλ‹€.

 

2. ORDER BY 절

νŠΉμ • 속성을 κΈ°μ€€μœΌλ‘œ μ •λ ¬ν•˜μ—¬ 검색할 λ•Œ μ‚¬μš©ν•œλ‹€.

  • [ASC | DESC]: μ •λ ¬ λ°©μ‹μœΌλ‘œμ„œ 'ASC'λŠ” μ˜€λ¦„μ°¨μˆœ, 'DESC'λŠ” λ‚΄λ¦Όμ°¨μˆœμ΄λ‹€. μƒλž΅ν•˜λ©΄ μ˜€λ¦„μ°¨μˆœμœΌλ‘œ μ§€μ •λœλ‹€.
  • μ—¬λŸ¬ 속성을 μ‚¬μš©ν•˜μ—¬ μ •λ ¬ν•  수 μžˆλ‹€.

 

3. GROUP BY 절

νŠΉμ • 속성을 κΈ°μ€€μœΌλ‘œ κ·Έλ£Ήν™”ν•˜μ—¬ 검색할 λ•Œ μ‚¬μš©ν•œλ‹€.

 

4. HAVING 절

GROUP BY 절과 ν•¨κ»˜ μ‚¬μš©λ˜λ©° 그룹에 λŒ€ν•œ 쑰건을 μ§€μ •ν•œλ‹€.

 

5. μ—°μ‚°μž

 

μ—°μ‚°μž

 

6. LIMIT

λ²”μœ„ λ‚΄ 좜λ ₯ν•  λ•Œ μ‚¬μš©ν•œλ‹€.

SELECT * FROM EMPLOTEE LIMIT 0, 1;

 

7. SUBSTRING

λΆ€λΆ„ λ¬Έμžμ—΄μ„ 좜λ ₯ν•  λ•Œ μ‚¬μš©ν•œλ‹€.

// substr(string, start, length)
// 4λ²ˆμ§ΈλΆ€ν„°, λ’€μ—μ„œ 4λ²ˆμ§ΈλΆ€ν„°
SELECT substr('Pineapple',4,3), substr('Pineapple',-4,3) FROM dual;

 

8. CASE

쑰건에 따라 좜λ ₯ν•˜κ±°λ‚˜ 비ꡐ할 λ•Œ μ‚¬μš©ν•œλ‹€.

CASE
	WHEN 쑰건1 THEN '쑰건1 λ°˜ν™˜κ°’'
	WHEN 쑰건2 THEN '쑰건2 λ°˜ν™˜κ°’'
    ELSE 'μΆ©μ‘±λ˜λŠ” 쑰건 없을 λ•Œ λ°˜ν™˜κ°’'
END

SELECT CASE 
		WHEN (u.seq BETWEEN 1 AND 3) THEN 'A'
		WHEN (u.seq BETWEEN 4 AND 6) THEN 'B'
    	ELSE 'C'
       END AS case_result

 

9. μ§‘ν•© μ—°μ‚°μž

  • UNION: ν•©μ§‘ν•©
  • UNION ALL: ν•©μ§‘ν•©, 쀑볡 포함
  • INTERSECT: ꡐ집합
  • EXCEPT: μ°¨μ§‘ν•©
SELECT 속성λͺ… FROM ν…Œμ΄λΈ”λͺ…
UNION | UNION ALL | INTERSECT | EXCEPT
SELECT 속성λͺ… FROM ν…Œμ΄λΈ”λͺ…;

 

10. 집단 ν•¨μˆ˜(κ·Έλ£Ή ν•¨μˆ˜)

SELECT, HAVING μ ˆμ— μ‚¬μš©ν•˜κ³  쀑볡 값을 ν¬ν•¨ν•œλ‹€.

  • COUNT(), SUM(), AVG(), MAX(), MIN()

 

11. JOIN

2개의 ν…Œμ΄λΈ”μ— λŒ€ν•΄ μ—°κ΄€λœ νŠœν”Œλ“€μ„ κ²°ν•©ν•˜μ—¬ ν•˜λ‚˜μ˜ μƒˆλ‘œμš΄ λ¦΄λ ˆμ΄μ…˜μ„ λ°˜ν™˜ν•œλ‹€.

 

1) INNER JOIN

두 ν…Œμ΄λΈ”μ˜ ꡐ집합이닀.

 

EQUI JOIN

JOIN λŒ€μƒ ν…Œμ΄λΈ”μ—μ„œ 곡톡 속성(JOIN 속성)을 κΈ°μ€€μœΌλ‘œ ‘=’ 비ꡐ에 μ˜ν•΄ 같은 값을 κ°€μ§€λŠ” 행을 μ—°κ²°ν•˜μ—¬ κ²°κ³Όλ₯Ό μƒμ„±ν•œλ‹€. JOIN 쑰건이 ‘=’ 일 λ•Œ 동일 속성이 2번 λ‚˜νƒ€λ‚˜κ²Œ λ˜λŠ”λ°, 이 쀑 μ€‘λ³΅λœ 속성을 μ œκ±°ν•˜μ—¬ 1번만 ν‘œκΈ°ν•˜λŠ” 방법을 NATURAL JOIN이라 ν•œλ‹€.

// WHEREμ ˆμ„ 이용
SELECT [ν…Œμ΄λΈ”λͺ…1.]속성λͺ…, [ν…Œμ΄λΈ”λͺ…2.]속성λͺ…
FROM ν…Œμ΄λΈ”λͺ…1, ν…Œμ΄λΈ”λͺ…2
WHERE ν…Œμ΄λΈ”λͺ…1.속성λͺ… = ν…Œμ΄λΈ”λͺ…2.속성λͺ…;

SELECT EMPNAME, DEPTNAME FROM EMPLOYEE AS E, DEPARTMENT AS D WHERE E.DNO = D.DEPTNO;

// NATURAL JOIN을 이용
// 두 ν…Œμ΄λΈ”μ— 이름과 도메인이 같은 속성이 μ‘΄μž¬ν•΄μ•Ό ν•œλ‹€.
SELECT [ν…Œμ΄λΈ”λͺ…1.]속성λͺ…, [ν…Œμ΄λΈ”λͺ…2.]속성λͺ…
FROM ν…Œμ΄λΈ”λͺ…1 NATURAL JOIN ν…Œμ΄λΈ”λͺ…2;

// JOIN ~ USINGμ ˆμ„ 이용
SELECT [ν…Œμ΄λΈ”λͺ…1.]속성λͺ…, [ν…Œμ΄λΈ”λͺ…2.]속성λͺ…
FROM ν…Œμ΄λΈ”λͺ…1 JOIN ν…Œμ΄λΈ”λͺ…2 USING(속성λͺ…);

 

NON-EQUI JOIN

JOIN 쑰건에 ‘=’ 쑰건이 μ•„λ‹Œ λ‚˜λ¨Έμ§€ 비ꡐ μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜λŠ” 방법이닀.

 

2) OUTER JOIN

JOIN 쑰건에 λ§Œμ‘±ν•˜μ§€ μ•ŠλŠ” νŠœν”Œλ„ 결과둜 좜λ ₯ν•˜κΈ° μœ„ν•œ λ°©λ²•μœΌλ‘œ LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN이 μžˆλ‹€. INNER JOIN의 κ²°κ³Όλ₯Ό κ΅¬ν•œ ν›„, 우(쒌)μΈ‘ λ¦΄λ ˆμ΄μ…˜μ˜ μ–΄λ–€ νŠœν”Œκ³Όλ„ λ§žμ§€ μ•ŠλŠ” 쒌(우)μΈ‘ λ¦΄λ ˆμ΄μ…˜μ— μžˆλŠ” νŠœν”Œλ“€μ— NULL 값을 λΆ™μ—¬ INNER JOIN의 결과에 μΆ”κ°€ν•œλ‹€.

SELECT [ν…Œμ΄λΈ”λͺ…1.]속성λͺ…, [ν…Œμ΄λΈ”λͺ…2.]속성λͺ…
FROM ν…Œμ΄λΈ”λͺ…1 LEFT OUTER JOIN ν…Œμ΄λΈ”λͺ…2
ON ν…Œμ΄λΈ”λͺ…1.속성λͺ… = ν…Œμ΄λΈ”λͺ…2.속성λͺ…;

SELECT [ν…Œμ΄λΈ”λͺ…1.]속성λͺ…, [ν…Œμ΄λΈ”λͺ…2.]속성λͺ…
FROM ν…Œμ΄λΈ”λͺ…1 RIGHT OUTER JOIN ν…Œμ΄λΈ”λͺ…2
ON ν…Œμ΄λΈ”λͺ…1.속성λͺ… = ν…Œμ΄λΈ”λͺ…2.속성λͺ…;

SELECT [ν…Œμ΄λΈ”λͺ…1.]속성λͺ…, [ν…Œμ΄λΈ”λͺ…2.]속성λͺ…
FROM ν…Œμ΄λΈ”λͺ…1 FULL OUTER JOIN ν…Œμ΄λΈ”λͺ…2
ON ν…Œμ΄λΈ”λͺ…1.속성λͺ… = ν…Œμ΄λΈ”λͺ…2.속성λͺ…;


Select ν•™λ²ˆ, 이름, 학생.ν•™κ³Όμ½”λ“œ, ν•™κ³Όλͺ…
From 학생 Left Outer Join ν•™κ³Ό
On 학생.ν•™κ³Όμ½”λ“œ = ν•™κ³Ό.ν•™κ³Όμ½”λ“œ;
μ €μž‘μžν‘œμ‹œ (μƒˆμ°½μ—΄λ¦Ό)
'πŸ“ Computer Science/✏ Database' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • λ°μ΄ν„°λ² μ΄μŠ€ ν’€(Database Pool)
  • RDBMS와 NoSQL
  • SQL
  • νŠΈλžœμž­μ…˜(Transaction)
Blxxming
Blxxming
CS 지식과 κ³΅λΆ€ν•˜λ‹€ 배운 것, κ²½ν—˜ν•œ 것 등을 κΈ°λ‘ν•˜λŠ” λΈ”λ‘œκ·Έμž…λ‹ˆλ‹€.
  • Blxxming
    πŸ’‘λ²ˆλœ©πŸ’‘
    Blxxming
  • 전체
    였늘
    μ–΄μ œ
  • 곡지사항

    • Tech Interview
    • πŸ“š Tech (246)
      • πŸ“ Computer Science (96)
        • ✏ OS (12)
        • ✏ Network & Web (10)
        • ✏ Database (11)
        • ✏ Data Structure (6)
        • ✏ Algorithm (40)
        • ✏ Design Pattern (9)
        • ✏ Cloud Computing (3)
        • ✏ (5)
      • πŸ“ Language (73)
        • ✏ Language (6)
        • ✏ C & C++ (11)
        • ✏ C# (19)
        • ✏ JAVA (37)
      • πŸ“ Game (43)
        • ✏ Computer Graphics (2)
        • ✏ Unity (14)
        • ✏ Unreal (26)
        • ✏ (1)
      • πŸ“ Book (34)
        • ✏ Effective (3)
        • ✏ Game Server (16)
        • ✏ Clean Code (14)
        • ✏ (1)
  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.0
Blxxming
SQL SELECT
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”