[WITH ]
SELECT column_list
FROM table_name
[WHERE search_condition][GROUP BY group_by_expression]
[HAVING search_condition]ORDER BY order_expression [ASC|DESC]]
select 컬λΌλ¦¬μ€νΈ 5. μ»¬λΌ μ§μ (λ³΄κ³ μΆμ 컬λΌλ§ κ°μ Έμ€κΈ°)
from ν
μ΄λΈ ----- 1. ν
μ΄λΈ μ§μ
where 쑰건 ------ 2. 쑰건 μ§μ (λ μ½λμ λν 쑰건 - κ°μΈ 쑰건)
group by κΈ°μ€ --- 3. (λ μ½λλΌλ¦¬) κ·Έλ£Ήμ λλλ€.
having 쑰건 ------ 4. 쑰건 μ§μ (κ·Έλ£Ήμ λν 쑰건)
order by μ λ ¬κΈ°μ€; 6. μμλλ‘
SELECT
buseo,
round(avg(basicpay))
FROM -- 1. 60λͺ
tblinsa
GROUP BY -- 2. 60λͺ
> κ·Έλ£Ή
buseo
HAVING avg(basicpay) >= 1500000; -- 3. μ§ν©μ λν 쑰건 > μ§κ³ ν¨μ 쑰건
rollup()
cube()
rollup > λ€μ€ κ·Έλ£Ή μ»¬λΌ > μμ§κ΄κ³(μ 체 μΈμ μ΄κ³, λΆμλ³ μ΄κ³)
cube > λ€μ€ κ·Έλ£Ή μ»¬λΌ > μνκ΄κ³(μ 체 μΈμ μ΄κ³, λΆμλ³ μ΄κ³, μ§μλ³ μ΄κ³)
μλΈμΏΌλ¦¬ λ¨Όμ λ§λ€κ³ λ©μΈ 쿼리 λ§λ€λ©΄ μ½λ€.
쑰건μ > λΉκ΅κ°μΌλ‘ μ¬μ©
a. λ°νκ°μ΄ 1ν 1μ΄ > λ¨μΌκ° λ°ν > μμ μ·¨κΈ > κ° 1κ° > ex) λͺΈλ¬΄κ²κ° κ°μ₯ λ§μ΄ λκ°λ μ¬λμ μ΄λ¦?
b. λ°νκ°μ΄ nν 1μ΄ > λ€μ€κ° λ°ν > μ΄κ±°ν λΉκ΅ > in μ¬μ© (μ€μ) > ex) κΈμ¬κ° 260λ§μ μ΄μ λ°λ μ§μμ΄ κ·Όλ¬΄νλ λΆμμ μ§μ λͺ
λ¨μ κ°μ Έμ€μμ€.
c. λ°νκ°μ΄ 1ν nμ΄ > λ€μ€κ° λ°ν > κ·Έλ£Ή λΉκ΅ > N컬λΌ:Nμ»¬λΌ (μ€μ) > ex) 'νκΈΈλ'κ³Ό κ°μ μ§μ, κ°μ λΆμμΈ μ§μ λͺ
λ¨μ κ°μ Έμ€μμ€. (μμΈ, κΈ°νλΆ)
d. λ°νκ°μ΄ nν nμ΄ > λ€μ€κ° λ°ν > 2 + 3 > in + κ·Έλ£Ή λΉκ΅ > ex) κΈμ¬κ° 260λ§μ μ΄μ λ°λ μ§μκ³Ό κ°μ λΆμ, κ°μ μ§μ > μ§μ λͺ
λ¨
컬λΌλ¦¬μ€νΈ > μΆλ ₯κ°μΌλ‘ μ¬μ©
fromμ μμ μ¬μ©
ORA-00904: "SSN": invalid identifier -> λ°λμ λ³μΉ λΆμ΄κΈ°
μΈλΌμΈλ·°μ μ»¬λΌ λ³μΉ > λ°κΉ₯μͺ½ λ©μΈ 쿼리μμ κ·Έλλ‘ μ λ¬ + μ¬μ©
-- tblComedian. λͺΈλ¬΄κ²κ° κ°μ₯ λ§μ΄ λκ°λ μ¬λμ μ΄λ¦?
SELECT
*
FROM
tblcomedian
WHERE
weight = (
SELECT
max(weight)
FROM
tblcomedian);
-- κΈμ¬κ° 260λ§μ μ΄μ λ°λ μ§μμ΄ κ·Όλ¬΄νλ λΆμμ μ§μ λͺ
λ¨μ κ°μ Έμ€μμ€.
SELECT
*
FROM
tblinsa
WHERE
buseo IN (
SELECT
buseo
FROM
tblinsa
WHERE
basicpay >= 2600000);
-- 'νκΈΈλ'κ³Ό κ°μ μ§μ, κ°μ λΆμμΈ μ§μ λͺ
λ¨μ κ°μ Έμ€μμ€. (μμΈ, κΈ°νλΆ)
SELECT
*
FROM
tblinsa
WHERE (city, buseo) = (SELECT city, buseo FROM tblinsa WHERE name = 'νκΈΈλ');
-- κΈμ¬κ° 260λ§μ μ΄μ λ°λ μ§μκ³Ό κ°μ λΆμ, κ°μ μ§μ > μ§μ λͺ
λ¨
SELECT
*
FROM
tblinsa
WHERE (buseo, city) in (SELECT buseo, city FROM tblinsa where basicpay >= 2600000);
μμ ν μ΄λΈλ³΄λ€ λΆλͺ¨ ν μ΄λΈμ΄ λ¨Όμ λ°μνλ€.(ν μ΄λΈ μμ±, λ μ½λ μμ±) (μ€μ)
select 컬λΌλ¦¬μ€νΈ from ν
μ΄λΈa cross join ν
μ΄λΈb;
select 컬λΌλ¦¬μ€νΈ from ν
μ΄λΈa inner join ν
μ΄λΈb on ν
μ΄λΈa.pk = ν
μ΄λΈb.fk;
select
컬λΌλ¦¬μ€νΈ
from ν
μ΄λΈa
inner join ν
μ΄λΈb
on ν
μ΄λΈa.pk = ν
μ΄λΈb.fk
λ³μΉ λΆμ΄λ©΄ λͺ¨λ λ³μΉμ μ¬μ©ν κ².
μ‘°μΈ > ν
μ΄λΈ λ³μΉ μμ£Ό μ¬μ©
κ΄κ³κ° μμ΄μΌ μ‘°μΈμ νλ€.
-- κ³ κ°λͺ
(tblCustomer) + ν맀물νλͺ
(tblSales) > κ°μ Έμ€μμ€.
-- 1. μ‘°μΈ
SELECT
c.name,
s.item
FROM tblcustomer c
INNER JOIN tblSales s
ON c.seq = s.cseq;
-- 2. μλΈ μΏΌλ¦¬ > μκ΄ μλΈ μΏΌλ¦¬
-- λ©μΈμΏΌλ¦¬ > μμ ν
μ΄λΈ
-- μκ΄ μλΈ μΏΌλ¦¬ > λΆλͺ¨ ν
μ΄λΈ
SELECT
item AS λ¬Όνλͺ
,
(SELECT name FROM tblcustomer WHERE seq = tblSales.cseq) AS κ³ κ°λͺ
FROM tblsales;