π PostgreSQL κΈ°λ³Έ 03 - SELECTλ‘ μμνλ λ°μ΄ν° νν
π PostgreSQL κΈ°λ³Έ 03 - SELECTλ‘ μμνλ λ°μ΄ν° νν
π
γμ€μ© SQLγμ μ½κ³ μ 리ν κΈμ λλ€.
κΈ°μ΄ SELECT ꡬ문
1
SELECT * FROM teachers;
- μ ꡬ문μ
teachersν μ΄λΈμ λͺ¨λ λ°μ΄ν°λ₯Ό μ‘°ννλSELECTꡬ문μ΄λ€. *λ μμΌλ μΉ΄λλΌκ³ λΆλ¦°λ€.- μμΌλ μΉ΄λλ μ΄λ€ κ°μ λ체νλ λ° μ¬μ©λλ λ¬Έμλ‘, νΉμ ν 무μΈκ°κ° μλλΌ, κ·Έ κ°μ΄ λ μ μλ λͺ¨λ κ²μ λννλ€.
FROMν€μλλ μΏΌλ¦¬κ° νΉμ ν μ΄λΈλ‘λΆν° λ°μ΄ν°λ₯Ό κ°μ Έμ€λλ‘ μ§μνλ€.
| id | first_name | last_name | school | hire_date | salary |
|---|---|---|---|---|---|
| 1 | Janet | Smith | F.D. Roosevelt HS | 2011-10-30 | 36,200 |
| 2 | Lee | Reynolds | F.D. Roosevelt HS | 1993-05-22 | 65,000 |
| 3 | Samuel | Cole | Myers Middle School | 2005-08-01 | 43,500 |
| 4 | Samantha | Bush | Myers Middle School | 2011-10-30 | 36,200 |
| 5 | Betty | Diaz | Myers Middle School | 2005-08-30 | 43,500 |
| 6 | Kathleen | Roush | F.D. Roosevelt HS | 2010-10-22 | 38,500 |
1
TABLE teachers;
- μ λͺ λ Ήμ΄λ κ°μ κ²°κ³Όλ₯Ό λ°ννλ€.
μ΄μ νμ μ§ν© 쿼리νκΈ°
1
SELECT last_name, first_name, salary FROM teachers;
- μ ꡬ문과 κ°μ΄ μΏΌλ¦¬κ° κ²μν μ΄μ μ ννλ©΄ κ³Όλν μ 보λ₯Ό ν€μ³ λ³΄μ§ μμλ λλ―λ‘ λ§€μ° μ€μ©μ μ΄λ€.
- νΉν λμ©λ λ°μ΄ν°λ² μ΄μ€λΌλ©΄ κ·Έ μ€μ©μ±μ λμμ§λ€.
- μ ꡬ문μ²λΌ μ΄μ μνλ μμλλ‘ νΈμΆν μ μλ€.
| last_name | first_name | salary |
|---|---|---|
| Smith | Janet | 36,200 |
| Reynolds | Lee | 65,000 |
| Cole | Samuel | 43,500 |
| Bush | Samantha | 36,200 |
| Diaz | Betty | 43,500 |
| Roush | Kathleen | 38,500 |
- μΌλ°μ μΌλ‘ λΆμμ μμν λλ λ°μ΄ν°μ μ 무μ μνλ ννμ λ°μ΄ν°μΈμ§ λ¨Όμ νμΈνλ κ²μ΄ μ°μ μ΄λ€.
- λ μ§λ μ°λ-μ-μΌλ‘ ννμ΄ λμλμ§, λͺ¨λ νμ κ°μ΄ λ€μ΄ μλμ§ λ±μ΄λ€.
- μ΄λ¬ν μμλ€μ λͺ¨λ μ μ¬μ μΈ μν μμμ΄λ€.
- λ°μ΄ν°κ° μ μ€λμμ μλ μκ³ , μμ κ³Όμ μ΄λκ° λ°μ΄ν° κ΄λ¦¬κ° μλͺ» λμμ μλ μλ€.
ORDER BYλ‘ λ°μ΄ν° μ λ ¬νκΈ°
1
2
3
4
5
6
7
8
9
-- μ΄ μ΄λ¦μΌλ‘ μ λ ¬
SELECT first_name, last_name, salary
FROM teachers
ORDER BY salary DESC;
-- μ΄ μμΉμ λν μ«μκ°μΌλ‘ μ λ ¬
SELECT first_name, last_name, salary
FROM teachers
ORDER BY 3 DESC;
SQLμμλORDER BYν€μλμ μ λ ¬μ΄ νμν μ΄, μ΄λ€μ΄ λ΄κΈ΄ μ μ ν΅ν΄ κ²°κ³Όμ μμλ₯Ό μ λ ¬ν μ μλ€.- λ°μ΄ν°λ λ€μ£½λ°μ£½ μμ¬ μμ λλ³΄λ€ μμλλ‘ μ λ ¬λμ΄ μμ λ μ΄ν΄νκΈ° μ½κ³ , ν¨ν΄μ λμ± μμ‘°λ‘κ² λλ¬λΌ μ μλ€.
DESCλ λ΄λ¦Όμ°¨μμ μλ―Ένλ©°,ASCν€μλλ₯Ό μ¬μ©νκ±°λ 곡백μΌλ‘ λλ©΄ κΈ°λ³Έμ μΌλ‘ μ€λ¦μ°¨μμΌλ‘ μ λ ¬λλ€.ORDER BYμ μλ μ΄ μ΄λ¦ λμ μ«μλ₯Ό λ£μ μλ μλ€.- μ«μμλ μ΄μ΄ λ°νλλ μμΉμ λν κ°μ΄ λ€μ΄κ°λ€.
| first_name | last_name | salary |
|---|---|---|
| Lee | Reynolds | 65,000 |
| Samuel | Cole | 43,500 |
| Betty | Diaz | 43,500 |
| Kathleen | Roush | 38,500 |
| Janet | Smith | 36,200 |
| Samantha | Bush | 36,200 |
1
2
3
SELECT last_name, school, hire_date
FROM teachers
ORDER BY school ASC, hire_date DESC;
- μ ꡬ문μ²λΌ μ¬λ¬ κ°μ μ΄μ κΈ°μ€μΌλ‘ μ λ ¬ν μλ μλ€.
- κ·Έλ¬λ ν¨κ³Όκ° κ±°μ λμ λμ§ μμ κ²μ΄λ€.
- λ°μ΄ν° μμ½μ κ²°κ³Όκ° νΉμ μ§λ¬Έμ λλ΅νλ κ²μ μ΄μ μ λ§μΆμμ λ κ°μ₯ μ½κΈ° λλ¬Έμ, λ λμ λ°©λ²μ κ°μ₯ μ€μν μ΄λ€λ‘ 쿼리λ₯Ό μ ννκ³ κΆκΈν κ²μ΄ μκΈΈ λλ§λ€ 쿼리λ₯Ό μ€ννλ κ²μ΄λ€.
- κ²°κ³Όλ λ€μκ³Ό κ°λ€.
| last_name | school | hire_date |
|---|---|---|
| Smith | F.D. Roosevelt HS | 2011-10-30 |
| Roush | F.D. Roosevelt HS | 2010-10-22 |
| Reynolds | F.D. Roosevelt HS | 1993-05-22 |
| Bush | Myers Middle School | 2011-10-30 |
| Diaz | Myers Middle School | 2005-08-30 |
| Cole | Myers Middle School | 2005-08-01 |
DISTINCTλ‘ κ³ μ κ° μ°ΎκΈ°
1
2
3
SELECT DISTINCT school
FROM teachers
ORDER BY school;
- ν μ΄λΈμ λ€λ£° λ μ΄ μμ νμ΄ μ€λ³΅ κ°μ κ°κ³ μλ κ²½μ°κ° ννλ€.
- μλ₯Ό λ€μ΄ κ° νκ΅ λ³λ‘ μ±μ©νλ μ μλμ μκ° λ€μμ΄κΈ° λλ¬Έμ
teachersν μ΄λΈμschoolμ΄μλ κ°μ νκ΅ μ΄λ¦μ΄ μ¬λ¬ λ² μ μ₯λλ€. - 쿼리μ
DISTINCTν€μλλ₯Ό λ£μΌλ©΄ μ€λ³΅μ μ κ±°νκ³ κ°μ νλμ© λ³΄μ¬μ€ μ μλ€.
| school |
|---|
| F.D. Roosevelt HS |
| Myers Middle School |
- μ΄λ λ°μ΄ν° νμ§μ νμ νλ λ° λμμ΄ λλ 첫 λ¨μΆμ΄λ€.
- κ°λ Ή μ΄λ€ νκ΅μ μ΄λ¦μ΄ μ¬λ¬κ°μ§ νμμΌλ‘ λνλλ κ²½μ°μ μ² μ λ³νμ μ½κ² μ°Ύμλ΄κ³ μμ ν μ μλ€.
DISTINCTλ νΉν λ μ§λ μ«μλ₯Ό λ€λ£° λ μΌκ΄μ±μ΄ λ¨μ΄μ§κ±°λ κΉ¨μ§ νμμ μ°Ύλλ° μ μ©νλ€.- λ λ€λ₯Έ μμλ‘ λ μ§κ°
textλ°μ΄ν° νμ μ ννλ‘ κΈ°μ λ λ°μ΄ν°μ μ λ°μ μλ μλλ°, μ΄λ κΌ νΌν΄μΌ ν νμμ΄λ€. - κ°λ Ή λ€μκ³Ό κ°μ κΈ°νμ μΈ λ μ§ ννλ₯Ό μ λ°νκ² λλ€.
| date |
|---|
| 5/30/2023 |
| 6//2023 |
| 6/1/2023 |
| 6/2/2023 |
1
2
3
SELECT DISTINCT school, salary
FROM teachers
ORDER BY school, salary;
DISTINCTν€μλλ μ¬λ¬ μ΄μμλ λμμ μλνλ€.- μ΄μ μΆκ°νκ² λ κ²½μ° μΏΌλ¦¬κ° κ°κ°μ λν κ³ μ ν κ°μ μμ κ²°κ³Όλ‘ λ³΄μ¬μ€λ€.
| school | salary |
|---|---|
| F.D. Roosevelt HS | 36,200 |
| F.D. Roosevelt HS | 38,500 |
| F.D. Roosevelt HS | 65,000 |
| Myers Middle School | 36,200 |
| Myers Middle School | 43,500 |
- μ΄ κΈ°μ μ βν
μ΄λΈ μμ
xλ§λ€ λμ¬ μ μλyκ°μΌλ‘λ λκ° μμκΉ?βλΌλ μ§λ¬Έμ λν λ΅μ μ 곡νλ€.
WHEREλ‘ ν νν°λ§νκΈ°
1
2
3
SELECT last_name, school, hire_date
FROM teachers
WHERE school = 'Myers Middle School';
- νΉμ κΈ°μ€μ λΆν©νλ μ΄λ€μ λ΄κΈ΄ νλ§ λ³΄μ¬μ£Όλ μΏΌλ¦¬κ° νμν λκ° μλ€.
- μ΄λ° μμ
μ μννκΈ° μν΄
WHEREν€μλλ₯Ό μ¬μ©νλ€. WHEREν€μλλ μν, λΉκ΅, λ Όλ¦¬ μ°μ°μ μννλ μ°μ°μλ₯Ό μ΄μ©ν΄ λ§λ€μ΄ λΈ μ‘°κ±΄μ λ°λΌ νΉμ κ°, κ°μ λ²μλ₯Ό ν¬ν¨νλ νμ μ°Ύλλ‘ νλ€.- λν κ·Έ κΈ°μ€μ λ°νμΌλ‘ νμ μ μΈν μλ μλ€.
| last_name | school | hire_date |
|---|---|---|
| Cole | Myers Middle School | 2005-08-01 |
| Bush | Myers Middle School | 2011-10-30 |
| Diaz | Myers Middle School | 2005-08-30 |
- λΉκ΅ μ°μ°μλ
=,!=(<>),>,<,<=,>=,BETWEEN,IN,LIKE,ILIKE,NOTλ±μ΄ μλ€. - μ¬μ© μμλ λ€μκ³Ό κ°λ€.
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
-- Janet μ΄λ¦μ κ°μ§ μ μλ μ°ΎκΈ°
SELECT first_name, last_name, school
FROM teachers
WHERE first_name = 'Janet';
-- F.D. Roosevelt HSλ₯Ό μ μΈν λͺ¨λ νκ΅ μ΄λ¦ μΆλ ₯νκΈ°
SELECT school
FROM teachers
WHERE school <> 'F.D. Roosevelt HS';
-- 2000λ
1μ 1μΌ μ΄μ μ κ³ μ©λ μ μλ μΆλ ₯νκΈ°
SELECT first_name, last_name, hire_date
FROM teachers
WHERE hire_date < '2000-01-01';
-- μ°λ΄μ΄ $43,500 μ΄μμΈ μ μλ μ°ΎκΈ°
SELECT first_name, last_name, salary
FROM teachers
WHERE salary >= 43500;
-- μ°λ΄μ΄ $40,000~$65,000μΈ μ μλ μ°ΎκΈ°
SELECT first_name, last_name, school, salary
FROM teachers
WHERE salary BETWEEN 40000 AND 65000;
SELECT first_name, last_name, school, salary
FROM teachers
WHERE salary >= 40000 AND salary <= 65000;
BETWEENμ μ¬μ©ν λλ μ΄μ€ κ³μ°μ μ£Όμν΄μΌ νλ€.- μλ₯Ό λ€μ΄
BETWEEN 10 AND 20μ ν μ΄νBETWEEN 20 AND 30μ μ€ννλ©΄ λ 쿼리 κ²°κ³Ό λͺ¨λμμ 20μ κ°μΌλ‘ κ°λ νμ΄ λνλλ€. BETWEENλ³΄λ€ λͺ μμ μΈ μ΄κ³Ό, λ―Έλ§ μ°μ°μλ₯Ό μ¬μ©νλ©΄ μ΄μ€ κ³μ°μ λ°©μ§ν μ μλ€.
WHEREμ LIKEμ ILIKE μ¬μ©νκΈ°
- λ μ°μ°μλ μ§μ λ ν¨ν΄μ λ§λ λ€μν λ¬Έμλ₯Ό κ²μνκΈ° λλ¬Έμ, μ νν μ² μλ₯Ό λͺ¨λ₯΄κ±°λ μλͺ» μμ±ν λ¨μ΄λ₯Ό μ°Ύμ λ νΈλ¦¬νλ€.
- κ°λ Ή λ€μ κΈ°νΈλ₯Ό μ¬μ©νμ¬ μΌμΉμν¬ ν¨ν΄μ μ§μ νλ€.
- λ κΈ°νΈλ νΌν©ν΄μ μ¬μ©ν μ μλ€.
- νΌμΌνΈ κΈ°νΈ(
%): λ¬Έμ ν κ° λλ μ¬λ¬ κ°μ λ§€μΉνλ μμΌλ μΉ΄λ - μΈλλ°(
_): λ¬Έμ ν κ°μ λ§€μΉνλ μμΌλ μΉ΄λ
- μλ₯Ό λ€μ΄
bakerλΌλ λ¨μ΄λ₯Ό μ°Ύκ³ μ νλ€λ©΄ λ€μκ³Ό κ°μ΄ λ§€μΉν μ μλ€.1 2 3 4
LIKE 'b%' LIKE '%ak%' LIKE '_aker' LIKE 'ba_er'
ANSI SQLνμ€μΈLIKEμ°μ°μλ λμλ¬Έμλ₯Ό ꡬλΆνλ λ°λ©΄,PostgreSQLμμλ§ μ μ©λλ μ°μ°μμΈILIKEμ°μ°μλ λμλ¬Έμλ₯Ό ꡬλΆνμ§ μλλ€.
1
2
3
4
5
6
7
SELECT first_name
FROM teachers
WHERE first_name LIKE 'sam%';
SELECT first_name
FROM teachers
WHERE first_name ILIKE 'sam%';
- κ°λ Ή 첫 λ²μ§Έ
WHEREμ μμλ λμλ¬Έμλ₯Ό ꡬλΆνκΈ° λλ¬Έμ 0κ°μ κ²°κ³Όκ° λμ€μ§λ§, λ λ²μ§ΈWHEREμ μμλ ν μ΄λΈμμSamuelκ³ΌSamanthaλΌλ κ²°κ΄κ°μ 보μ¬μ€λ€. - μ¬λμ μ΄λ¦μ΄λ μ₯μ, μ ν λλ κ³ μ λͺ
μ¬λ₯Ό κΈ°μ
ν μμ
μκ° λͺ¨λ λ°μ΄ν°λ₯Ό μΌκ΄λκ² μ μ΄ λκΈ°λ μ½μ§ μκΈ° λλ¬Έμ
ILIKEμ μμΌλ μΉ΄λλ₯Ό νμ©νλ©΄ μ’λ€. - λ€λ§
LIKEμILIKEλ ν¨ν΄μ κ²μνλ―λ‘, λ°μ΄ν°λ² μ΄μ€κ° μ»€μ§ μλ‘ κ²μ μ±λ₯μ΄ λ¨μ΄μ§ μ μλ€. - μ΄ λ¬Έμ λ μΈλ±μ€λ₯Ό ν΅ν΄ ν΄κ²°ν μ μλ€.
ANDμ ORλ‘ μ°μ°μ 쑰건 κ²°ν©νκΈ°
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT *
FROM teachers
WHERE school = 'Myers Middle School'
AND salary < 40000;
SELECT *
FROM teachers
WHERE last_name = 'Cole'
OR last_name = 'Bush';
SELECT *
FROM teachers
WHERE school = 'F.D. Roosevelt HS'
AND (salary < 38000 OR salary > 40000);
- λ§μ½ ν μ μμ κ΄νΈ μμ΄
ORμANDλ₯Ό λͺ¨λ μ¬μ©ν κ²½μ° λ°μ΄ν°λ² μ΄μ€λAND쑰건μ λ¨Όμ νκ°ν νOR쑰건μ νκ°νλ€λ μ μ μ£Όμν΄μΌ νλ€.
νμ©
1
2
3
4
SELECT first_name, last_name, school, hire_date, salary
FROM teachers
WHERE school LIKE '%Roos%'
ORDER BY hire_date DESC;
WHEREμ κ³ΌORDER BYμ λ ¬μ ν¬ν¨νSELECTλ¬Έμ΄λ€.- μ μ½λλ
Roosevelt High Schoolμ μ μλμ κ°μ₯ μ΅κ·Όμ κ³ μ©λ μμλλ‘ λ³΄μ¬μ€λ€. - κ²°κ³Όλ λ€μκ³Ό κ°λ€.
| first_name | last_name | school | hire_date | salary |
|---|---|---|---|---|
| Janet | Smith | F.D. Roosevelt HS | 2011-10-30 | 36,200 |
| Kathleen | Roush | F.D. Roosevelt HS | 2010-10-22 | 38,500 |
| Lee | Reynolds | F.D. Roosevelt HS | 1993-05-22 | 65,000 |
- 쿼리 κ²°κ³Όλ₯Ό ν΅ν΄ νΉμ νκ΅μ μ μλ λͺ λ¨μ λν μ±μ© κΈ°κ°κ³Ό μ°λ΄ μμ€μ μ°κ΄μ±μ νμΈν μ μλ€.
This post is licensed under CC BY 4.0 by the author.
