[oracle] SELECT

μž¬ν˜„Β·2024λ…„ 6μ›” 5일
post-thumbnail

πŸ” SELECT

✍ Selection : μ§ˆμ˜μ— λŒ€ν•΄ λ¦¬ν„΄ν•˜κ³ μž ν•˜λŠ” ν…Œμ΄λΈ”μ˜ 행을 μ„ νƒν•˜κΈ° μœ„ν•΄ SQL의 selection κΈ°λŠ₯을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 보고자 ν•˜λŠ” 행을 μ„ νƒμ μœΌλ‘œ μ œν•œν•˜κΈ° μœ„ν•΄ λ‹€μ–‘ν•œ 방법을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
✍ Projection : μ§ˆμ˜μ— λŒ€ν•΄ λ¦¬ν„΄ν•˜κ³ μž ν•˜λŠ” ν…Œμ΄λΈ”μ˜ 열을 μ„ νƒν•˜κΈ° μœ„ν•΄ SQL의 projection κΈ°λŠ₯을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν•„μš”ν•œ 만큼의 열을 선택할 수 μžˆμŠ΅λ‹ˆλ‹€.
✍ Join : 곡유 ν…Œμ΄λΈ” μ–‘μͺ½μ˜ 열에 λŒ€ν•΄ 링크λ₯Ό μƒμ„±ν•˜μ—¬ λ‹€λ₯Έ ν…Œμ΄λΈ”μ— μ €μž₯λ˜μ–΄ μžˆλŠ” 데이터λ₯Ό ν•¨κ»˜ κ°€μ Έμ˜€κΈ° μœ„ν•΄ SQL의 join κΈ°λŠ₯을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

πŸ” SQL 주석

-- ν•œ 쀄 주석

/*
	μ—¬λŸ¬ 쀄
    주석
*/

πŸ” SELECT κΈ°λ³Έ ν˜•μ‹

SELECT  [μ‘°νšŒν•˜κ³ μž ν•˜λŠ” column 이름1], [μ‘°νšŒν•˜κ³ μž ν•˜λŠ” column 이름2] ...
FROM    [μ‘°νšŒν•˜κ³ μž ν•˜λŠ” table 이름] [μ‘°νšŒν•˜κ³ μž ν•˜λŠ” table의 별칭(선택)];
SELECT * FROM DEPARTMENTS; -- DEPARTMENTS ν…Œμ΄λΈ”μ˜ λͺ¨λ“  데이터 좜λ ₯

SELECT * FROM EMPLOYEES; -- EMPLOYEES ν…Œμ΄λΈ”μ˜ λͺ¨λ“  데이터 좜λ ₯

SELECT FIRST_NAME, LAST_NAME, SALARY
FROM EMPLOYEES;  -- EMPLOYEES ν…Œμ΄λΈ”μ˜ FIRST_NAME, LAST_NAME, SALARY 데이터 좜λ ₯

-- μ—΄μ˜ 좜λ ₯ μˆœμ„œ
SELECT DEPARTMENT_NAME, LOCATION_ID
FROM DEPARTMENTS; -- 컬럼의 좜λ ₯ μˆœμ„œκ°€ DEPARTMENT_NAME, LOCATION_ID

SELECT LOCATION_ID, DEPARTMENT_NAME
FROM DEPARTMENTS; -- 컬럼의 좜λ ₯ μˆœμ„œκ°€ LOCATION_ID, DEPARTMENT_NAME

-- μ‚¬μ›ν…Œμ΄λΈ”μ—μ„œ μ‚¬μ›μ˜ 아이디, κΈ‰μ—¬ 정보λ₯Ό 좜λ ₯
SELECT EMPLOYEE_ID, SALARY
FROM EMPLOYEES;

πŸ” DISTINCT (쀑볡 데이터 제거)

SELECT  DISTINCT [μ‘°νšŒν•˜κ³ μž ν•˜λŠ” column 이름1], [μ‘°νšŒν•˜κ³ μž ν•˜λŠ” column 이름2] ...
FROM    [μ‘°νšŒν•˜κ³ μž ν•˜λŠ” table 이름] [μ‘°νšŒν•˜κ³ μž ν•˜λŠ” table의 별칭(선택)];
-- 쀑볡 ν–‰κ³Ό DISTINCT(쀑볡 제거)
SELECT DISTINCT DEPARTMENT_ID, SALARY
FROM EMPLOYEES;

πŸ” 별칭(Alias)

-- 별칭
SELECT FIRST_NAME AS 이름, SALARY κΈ‰μ—¬
FROM EMPLOYEES;

-- μ—΄ 헀딩이 λŒ€μ†Œλ¬Έμž ꡬ별, 곡백을 ν¬ν•¨ν•˜λ €λ©΄ "" 포함
SELECT FIRST_NAME "Employees Name", SALARY*12 "Annual Salary"
FROM EMPLOYEES;

-- λ¦¬ν„°λŸ΄ 문자 슀트링과 μ—°κ²° μ—°μ‚°μž('' μ•ˆμ— 'λ₯Ό μ“°λ €λ©΄ '''λ₯Ό μ¨μ•Όν•œλ‹€.)
SELECT FIRST_NAME || ' ' || LAST_NAME || '''s salary is $ ' || SALARY
as "Employee Details"
FROM EMPLOYEES;

-- ROWID : λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ ν–‰μ˜ μ£Όμ†Œ, ROWNUM : 쿼리에 μ˜ν•΄ λ°˜ν™˜λ˜λŠ” ν–‰μ˜ 번호
SELECT ROWID, ROWNUM, EMPLOYEE_ID, FIRST_NAME
FROM EMPLOYEES;

πŸ” 데이터 νƒ€μž…μ— λ”°λ₯Έ 좜λ ₯ μœ„μΉ˜

-- λ¬Έμžμ—΄κ³Ό λ‚ μ§œλŠ” μ™Όμͺ½ μ •λ ¬, μˆ«μžλŠ” 였λ₯Έμͺ½ μ •λ ¬ 좜λ ₯
SELECT FIRST_NAME, HIRE_DATE, SALARY
FROM EMPLOYEES;

SELECT FIRST_NAME, LAST_NAME, SALARY, SALARY+SALARY*0.1
FROM EMPLOYEES;

SELECT FIRST_NAME, JOB_ID, DEPARTMENT_ID, COMMISSION_PCT
FROM EMPLOYEES;

πŸ” 데이터 μ œν•œ

✍ WHERE μ ˆμ€ FROM 절 λ‹€μŒμ— 였며, λ¦¬ν„΄λ˜λŠ” 행을 μ œν•œν•©λ‹ˆλ‹€. μ—΄ 이름, 비ꡐ μ—°μ‚°μž, 그리고 비ꡐ할 μ—΄ 이름 λ˜λŠ” κ°’μ˜ λͺ©λ‘μœΌλ‘œ κ΅¬μ„±λ©λ‹ˆλ‹€.

πŸ” WHERE κΈ°λ³Έ ν˜•μ‹

SELECT  [μ‘°νšŒν•˜κ³ μž ν•˜λŠ” column 이름1], [μ‘°νšŒν•˜κ³ μž ν•˜λŠ” column 이름2] ...
FROM    [μ‘°νšŒν•˜κ³ μž ν•˜λŠ” table 이름]
WHERE   [μ‘°νšŒν•  행을 μ„ λ³„ν•˜κΈ° μœ„ν•œ 쑰건식];
-- μ„ νƒλœ ν–‰ μ œν•œ(WHERE)
SELECT FIRST_NAME, JOB_ID, DEPARTMENT_ID
FROM EMPLOYEES
WHERE JOB_ID = 'IT_PROG';

-- 문자 슀트링과 λ‚ μ§œ 값은 ''
SELECT FIRST_NAME, LAST_NAME, HIRE_DATE
FROM EMPLOYEES
WHERE LAST_NAME = 'King';

πŸ” 데이터 μ •λ ¬

✍ ORDER BY절의 경우, 데이터λ₯Ό μ‘°νšŒν•  λ•Œ μ›ν•˜λŠ” μ •λ ¬ λ°©μ‹μœΌλ‘œ 좜λ ₯ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•©λ‹ˆλ‹€. ORDER BYμ ˆμ€ 맨 λ§ˆμ§€λ§‰μ— μ‚¬μš©ν•©λ‹ˆλ‹€.

πŸ” ORDER BY κΈ°λ³Έν˜•μ‹

SELECT   [μ‘°νšŒν•˜κ³ μž ν•˜λŠ” column 이름1], [μ‘°νšŒν•˜κ³ μž ν•˜λŠ” column 이름2] ...
FROM     [μ‘°νšŒν•˜κ³ μž ν•˜λŠ” table 이름]
.
.
.
ORDER BY [μ •λ ¬ν•˜κ³ μž ν•˜λŠ” μ—΄ 이름(μ—¬λŸ¬ μ—΄ μ§€μ • κ°€λŠ₯)] [ASC/DESC]; -- ASCλŠ” μ˜€λ¦„μ°¨μˆœ, DESC λ‚΄λ¦Όμ°¨μˆœ
SELECT FIRST_NAME, HIRE_DATE
FROM EMPLOYEES
ORDER BY HIRE_DATE ASC; -- μ˜€λ¦„μ°¨μˆœ(λ””ν΄νŠΈ)

SELECT FIRST_NAME, HIRE_DATE
FROM EMPLOYEES
ORDER BY HIRE_DATE DESC; -- λ‚΄λ¦Όμ°¨μˆœ

SELECT FIRST_NAME, SALARY*12 AS ANNSAL
FROM EMPLOYEES
ORDER BY ANNSAL;

SELECT FIRST_NAME, SALARY*12 AS ANNSAL
FROM EMPLOYEES
ORDER BY 2, FIRST_NAME; -- SELECT μ—΄μ˜ μˆœμ„œ, 이름

-- μž…μ‚¬μΌ λ‚΄λ¦Όμ°¨μˆœ, 이름 μ˜€λ¦„μ°¨μˆœ
SELECT FIRST_NAME, HIRE_DATE
FROM EMPLOYEES
ORDER BY HIRE_DATE DESC, FIRST_NAME ASC;

πŸ“– reference

https://earth-95.tistory.com/147
μΈν”„λŸ° 였라클 SQL λ°μ΄ν„°λ² μ΄μŠ€ κ°•μ˜

profile
μš΄λ™κ³Ό μ½”λ”©

0개의 λŒ“κΈ€