SELECT 문법 구성요소
- SELECT → 출력할 컬럼을 지정
- FROM → 데이터를 가져올 테이블지정
- WHERE → 행을 기준으로 조건 지정
- GROUP BY → 특정 컬럼을 기준으로 행을 그룹화함
- HAVING → 그룹화된 결과에 조건을 지정
- ORDER BY → 결과를 특정할 컬럼 기준으로 정렬(기본 오름차순)
실행순서
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
SELECT에서 사용하는 기술
DISTINCT는 조회결과에서 중복을 제거함, 중복제거할때 컬럼들의 조합기준으로 판단함
--중복없이 학생테이블에서 메이저(학과) 컬럼값을 조회--
SELECT DISTINCT MAJOR FROM STUDENT;
--중복없이 학생 테이블에서 학과와 성별을 조회--
SELECT DISTINCT MAJOR FROM STUDENT;
조합으로 판단하기 때문에 여+학과/ 남+ 학과는 다른 조합으로 간주한다
ALL
중복제거 없이 전체 데이터를 그대로 조회한다 기본값이므로 보통 생략한다
SELECT ALL MAJOR --SELECT MAJOR와 같다--
FROM STUDENT;
ALIAS(AS)
컬럼에 별칭 붙이기
별칭을 사용해 출력할 컬럼명을 임시지정하거나 변경할수 있음
별칭 작성시 주의사항
- 문자시작
- 예약어 금지
- 허용 특수문자 (_,$,#)만 사용가능
- 큰따옴표 ("")사용시 특수문자/공백 사용가능
- AS 생략가능
- 자동 대문자화 -> 오라클 기준 대문자출력,큰따옴표 사용시 소문자 사용가능
산술연산자
컬럼과 컬럼, 리터럴과 컬럼끼리 연산가능하고 여기서 NULL이 연산에 포함되지 않고 결과는 무조건 NULL이다
리터럴이란 값을 의미함
- 숫자리터럴 -> 10,50,3.5
- 문자리터럴 -> '안녕하세요'
- 날자리터럴 -> 2026-03-05 11:18:18

SELECT
COL1+100 AS 컬럼1 --컬럼과 숫자리터럴을 더한다--
,COL1/50 AS 컬럼2 --컬럼과 숫자리털럴을 나눈다--
,COL1+COL2 AS 컬럼3 --컬럼끼리 더한다--
,COL1+ COL2+COL3 AS 컬럼4 --컬럼끼리 더한다--
FROM TAB1;
SELECT문은 전체 데이터를 일괄처리하지 않고 각 행을 순차적으로 처리함 따라서 연산은 각 행에 대해서 한번씩 반복수행된다
행을 튜플이라고 하기도 한다

따라서 이런 결과를 볼수 있다
연산 진행순서
첫번째 행부터 순차적으로 진행한다
COL1+100 100+100=200
COL1/50 100/50 = 2
COL1+COL2 100+400 =500
COL1+ COL2+COL3 100+400+600=1100
이런식으로 모든 행을 반복한다
연결연산자
SELECT에서 데이터를 이어붙이는 기능을 제공한다 산술연산자와 같이 한행씩 처리된다
오라클은 || 을 사용하고 SQL Server는 + 를 사용한다

--오라클--
SELECT 이름 || '님의 현재 나이는 ' || 나이 || '살 입니다' AS 이름과 나이,학교
FROM TAB1;
--SQL Server--
SELECT 이름 + '님의 현재 나이는 ' + 나이 + '살 입니다' AS 이름과 나이,학교
FROM TAB1;
출력결과
오라클
- 이모자님의 현재나이는 20입니다 A대학
- 나는널님의 현재 나이는 살 입니다 NULL
SQL Server
- 이모자님의 현재나이는 20입니다 A대학
- NULL NULL
SQL Server는 연결 연산에 NULL이 하나라도 있으면 결과 전체가 NULL처리 된다
오라클은 연결연산에 NULL이 있으면 무시하고 나머지 문자열을 이어붙힌다
'📘꼬부기의 성장서재 > 이기적SQLD 기출문제' 카테고리의 다른 글
| 본질식별자 VS 인조식별자 (0) | 2026.03.24 |
|---|---|
| 서브쿼리 (0) | 2026.03.06 |
| 정규화 (0) | 2026.03.04 |
| 식별자 (0) | 2026.03.04 |
| 관계 (0) | 2026.03.04 |