Search
moon
sun

07.관계형 데이터베이스와 SELECT

•
데이터베이스와 DBMS가 무엇이고, 왜 파일 대신 DB를 쓰는지 설명할 수 있다.
•
SQL을 4가지 종류(DML · DDL · DCL · TCL) 로 분류할 수 있다.
•
SELECT 문의 기본 구조를 이해하고 원하는 컬럼만 조회할 수 있다.
•
별칭(ALIAS) 을 규칙에 맞게 붙일 수 있고, 큰따옴표가 필요한 경우를 안다.
•
산술 연산자와 합성 연산자 || 를 사용할 수 있고, NULL이 낄 때의 차이를 안다.
•
SQL 문장의 실행 순서를 알고, 왜 WHERE절에서 별칭을 쓸 수 없는지 설명할 수 있다.

1. 데이터베이스란 무엇인가

1) 정의

데이터베이스(Database)
여러 사용자가 함께 쓸 수 있도록, 통합해서 저장해 둔 운영 데이터의 집합
이 한 문장 안에 네 가지 성격이 들어 있습니다.
성격
영문
의미
통합 데이터
Integrated
같은 데이터가 중복되지 않게 하나로 모아둔 것
저장 데이터
Stored
컴퓨터가 접근할 수 있는 저장매체에 보관된 것
운영 데이터
Operational
조직의 업무를 수행하는 데 꼭 필요한 데이터
공용 데이터
Shared
여러 사용자·프로그램이 함께 사용하는 것

2) 데이터베이스의 4가지 특징

특징
의미
예시
실시간 접근성 (Real-time accessibility)
요청하면 즉시 응답
계좌 잔액을 지금 바로 조회
계속적인 변화 (Continuous evolution)
데이터가 끊임없이 갱신됨
입금·출금이 계속 발생
동시 공용 (Concurrent sharing)
여러 사용자가 동시에 사용
수만 명이 같은 시각에 이체
내용에 의한 참조 (Content reference)
위치가 아닌 값으로 찾음
"3번째 줄"이 아니라 "잔액 100만원 이상"
⚠️ 내용에 의한 참조가 핵심입니다. 파일에서는 "몇 번째 줄"인지 알아야 찾지만, DB에서는 WHERE 조건으로 값을 지정해서 찾습니다.

3) 왜 파일 대신 데이터베이스를 쓰는가

파일 시스템의 4가지 문제와 DB의 해결
#
파일 시스템의 문제
데이터베이스의 해결
1
데이터 중복 — 같은 정보가 여러 파일에
통합 저장으로 중복 제거
2
데이터 불일치 — 한 곳만 고치면 값이 어긋남
한 곳만 고치면 끝 (무결성)
3
데이터 종속성 — 파일 구조가 바뀌면 프로그램도 전부 수정
데이터 독립성 (01강 3층 스키마!)
4
동시 접근 곤란 — 여러 명이 동시에 쓰면 충돌
동시성 제어로 안전하게 처리

4) DBMS — 데이터베이스를 관리하는 소프트웨어

•
DBMS (DataBase Management System): 사용자와 데이터베이스 사이에서 데이터를 관리해 주는 소프트웨어
•
우리가 쓰는 Oracle이 바로 DBMS입니다. (데이터베이스 ≠ DBMS ⚠️)
DBMS의 주요 기능
설명
정의 기능 (Definition)
데이터 구조를 정의 — CREATE, ALTER (DDL)
조작 기능 (Manipulation)
데이터를 조회·입력·수정·삭제 — SELECT 등 (DML)
제어 기능 (Control)
권한·무결성·동시성·회복 관리 (DCL, TCL)
⭐ DBMS의 3대 기능이 곧 SQL의 분류가 됩니다. 바로 다음 절에서 이어집니다.

5) 데이터 모델의 발전 — 관계형 DB가 나오기까지

모델
구조
한계 / 특징
계층형 (Hierarchical)
트리(부모-자식)
한 자식은 부모 하나만 → M:N 표현 불가
네트워크형 (Network)
망(그물)
M:N은 가능하나 구조가 복잡해 다루기 어려움
관계형 (Relational) ⭐
표(테이블)
단순·유연, 수학적 이론(집합)에 기반 → 현재 표준
💡 관계형 DB는 1970년 E.F. Codd가 제안했습니다. 복잡한 포인터 대신 "표와 표를 값으로 연결한다" 는 단순한 발상이 세상을 바꿨습니다. 그 "값으로 연결"이 바로 1과목에서 배운 PK-FK 관계입니다.

2. 관계형 데이터베이스와 SQL

1) 관계형 데이터베이스(RDB)란

•
데이터를 행(Row)과 열(Column)로 이루어진 표(테이블) 형태로 저장하는 DB
•
테이블끼리 관계(Relationship) 로 연결되어 있음
•
대표 제품: Oracle, MySQL, SQL Server, PostgreSQL

2) 1과목 용어 ↔ 2과목 용어 대응 ⭐

논리 모델 (1과목)
물리 DB (2과목)
설명
엔터티 (Entity)
테이블 (Table)
표 전체
인스턴스 (Instance)
행 (Row, Record)
표의 한 줄
속성 (Attribute)
컬럼 (Column)
표의 한 칸(열)
주식별자
기본키 (Primary Key)
행을 구분하는 컬럼
관계
외래키 (Foreign Key)
다른 테이블을 가리키는 컬럼

3) SQL의 4가지 종류 ⭐⭐⭐

종류
명령어
하는 일
AUTO COMMIT
DML (조작어)
SELECT INSERT UPDATE DELETE
데이터를 조회·입력·수정·삭제
❌ (직접 COMMIT 필요)
DDL (정의어)
CREATE ALTER DROP RENAME TRUNCATE
테이블 구조를 만들고 바꿈
✅ 자동 커밋
DCL (제어어)
GRANT REVOKE
권한을 주고 뺏음
✅ 자동 커밋
TCL (트랜잭션 제어어)
COMMIT ROLLBACK SAVEPOINT
트랜잭션을 확정·취소
—

3. SELECT 문의 기본 구조

1) 가장 기본이 되는 두 줄

SELECT 컬럼명, 컬럼명, ... -- 무엇을 볼 것인가 (조회할 컬럼) FROM 테이블명; -- 어디에서 볼 것인가 (대상 테이블)
SQL
복사
💡 SELECT 결과도 하나의 "표" 입니다. 표를 넣어서 표를 얻는 것 — 이것이 관계형 DB의 핵심입니다.

2) 전체 조회와 일부 조회

-- ============================================================ -- 【이해용 예제】 SELECT 의 가장 기본 3가지 형태 -- ============================================================ -- (1) 전체 컬럼 조회 : * (애스터리스크) = "모든 컬럼" SELECT * -- 테이블의 모든 컬럼을 가져온다 FROM DEPT; -- DEPT 테이블에서 -- DEPTNO DNAME LOC -- ------ ---------- -------- -- 10 ACCOUNTING NEW YORK -- 20 RESEARCH DALLAS -- 30 SALES CHICAGO -- 40 OPERATIONS BOSTON -- (2) 원하는 컬럼만 조회 : 컬럼명을 콤마(,)로 나열 SELECT DEPTNO, -- 부서번호만 DNAME -- 부서명만 (LOC 은 가져오지 않는다) FROM DEPT; -- DEPTNO DNAME -- ------ ---------- -- 10 ACCOUNTING -- 20 RESEARCH -- 30 SALES -- 40 OPERATIONS -- (3) 컬럼 순서는 마음대로 바꿀 수 있다 SELECT DNAME, -- 부서명을 먼저 DEPTNO -- 부서번호를 나중에 FROM DEPT; -- DNAME DEPTNO -- ---------- ------ -- ACCOUNTING 10 -- RESEARCH 20 -- ⭐ 테이블에 저장된 순서와 무관하게, SELECT 절에 쓴 순서대로 나온다
SQL
복사
-- ============================================================ -- 【시험용 예제】 * 와 컬럼 나열을 섞어 쓸 수 있는가? ★ -- ============================================================ -- ❌ 이렇게 쓰면 오류 SELECT *, DEPTNO FROM DEPT; -- ORA-00936: missing expression -- → * 를 단독이 아닌 다른 컬럼과 섞어 쓸 수 없다 -- ✅ 테이블 별칭을 붙이면 가능해진다 SELECT D.*, -- D 테이블의 전체 컬럼 D.DEPTNO -- 그리고 부서번호를 한 번 더 FROM DEPT D; -- DEPT 에 D 라는 별칭을 붙임 -- DEPTNO DNAME LOC DEPTNO -- ------ ---------- -------- ------ -- 10 ACCOUNTING NEW YORK 10 -- -- ⭐ 실무 팁: * 는 편하지만 실무에서는 지양한다. -- 필요 없는 컬럼까지 읽어 성능이 나빠지고, 테이블 구조가 바뀌면 결과가 달라진다.
SQL
복사

4. 별칭 (ALIAS) ⭐⭐

1) 별칭이란

•
컬럼이나 테이블에 임시로 붙이는 다른 이름
•
결과의 머리글(헤더) 이 바뀐다 → 보고서처럼 읽기 쉬워짐
SELECT 컬럼명 AS 별칭 -- AS 는 생략 가능 FROM 테이블명 별칭; -- 테이블 별칭에는 AS 를 쓸 수 없다 ⚠️
SQL
복사

2) 별칭 작성 규칙 ⭐

상황
큰따옴표 " "
예시
영문 한 단어
불필요
SAL AS SALARY
한글 한 단어
불필요 (권장은 사용)
SAL AS 급여
공백이 들어감
필수 ⭐
SAL AS "월 급여"
특수문자가 들어감
필수
SAL AS "급여(원)"
대소문자를 구분하고 싶음
필수
SAL AS "Salary"
예약어를 쓰고 싶음
필수
DEPTNO AS "GROUP"
⚠️ 작은따옴표 ' ' 는 별칭에 쓸 수 없습니다. 작은따옴표는 문자열 값을 표현할 때만 씁니다.
-- ============================================================ -- 【이해용 예제】 별칭 붙이는 네 가지 방법 -- ============================================================ SELECT ENAME AS 사원명, -- ① AS + 한글 별칭 JOB 직무, -- ② AS 생략 (공백으로 구분) SAL AS "월 급여", -- ③ 공백이 있으면 큰따옴표 필수 ⭐ SAL * 12 AS "연봉(원)" -- ④ 특수문자가 있으면 큰따옴표 필수 FROM EMP; -- 사원명 직무 월 급여 연봉(원) -- ------ --------- ------- -------- -- SMITH CLERK 800 9600 -- ALLEN SALESMAN 1600 19200 -- ⭐ 계산식(SAL*12)에도 별칭을 붙일 수 있다. 안 붙이면 머리글이 'SAL*12' 로 나온다.
SQL
복사
-- ============================================================ -- 【시험용 예제】 큰따옴표를 빠뜨리면 어떻게 되는가 ★ -- ============================================================ -- ❌ 공백이 있는데 따옴표를 안 씀 SELECT SAL AS 월 급여 FROM EMP; -- ORA-00923: FROM keyword not found where expected -- → '월' 까지만 별칭으로 인식하고, '급여' 를 이해하지 못해 오류 -- ❌ 작은따옴표는 별칭에 쓸 수 없음 SELECT SAL AS '월급여' FROM EMP; -- ORA-00923: FROM keyword not found where expected -- ✅ 큰따옴표를 써야 한다 SELECT SAL AS "월 급여" FROM EMP; -- 월 급여 -- ------- -- 800 -- ⭐ 정리 -- 문자열 값 → 작은따옴표 '값' -- 별칭·객체명 → 큰따옴표 "별칭" -- 이 둘을 바꿔 쓰는 것이 초보자 최다 실수다.
SQL
복사

5. 산술 연산자

1) 종류와 우선순위

연산자
의미
우선순위
( )
괄호
1순위
* /
곱하기 · 나누기
2순위
+ -
더하기 · 빼기
3순위
우선순위가 같으면 왼쪽에서 오른쪽으로 계산합니다.
-- ============================================================ -- 【이해용 예제】 산술 연산으로 새로운 값 만들기 -- ============================================================ SELECT ENAME AS 사원명, SAL AS 월급여, SAL * 12 AS 연봉, -- 곱하기 SAL + 100 AS "인상후 급여", -- 더하기 SAL / 30 AS 일급, -- 나누기 (SAL + 100) * 12 AS "인상후 연봉" -- 괄호를 먼저 계산 ⭐ FROM EMP; -- 사원명 월급여 연봉 인상후 급여 일급 인상후 연봉 -- ------ ------ ----- ----------- -------- ----------- -- SMITH 800 9600 900 26.66667 10800 -- ALLEN 1600 19200 1700 53.33333 20400 -- -- ⭐ 괄호가 없으면 SAL + 100 * 12 = SAL + 1200 이 되어 완전히 다른 값이 된다!
SQL
복사

2) ⚠️ NULL이 끼면 결과는 NULL — 06강 회수

-- ============================================================ -- 【시험용 예제】 산술 연산의 NULL 전염 ★★ 매년 출제 -- ============================================================ SELECT ENAME AS 사원명, SAL AS 급여, COMM AS 커미션, SAL + COMM AS "급여+커미션" -- ⚠️ COMM 이 NULL이면 결과도 NULL FROM EMP; -- 사원명 급여 커미션 급여+커미션 -- ------ ----- ------ ----------- -- ALLEN 1600 300 1900 ← 정상 -- SMITH 800 (NULL) (NULL) ← 급여가 있는데 결과가 NULL! ⚠️ -- KING 5000 (NULL) (NULL) -- -- ⭐ 06강에서 배운 규칙 그대로: 산술 연산에 NULL이 하나라도 끼면 결과는 NULL -- ⭐ 해결책인 NVL 함수는 08강에서 자세히 배웁니다.
SQL
복사

6. 합성 연산자 ||

1) 문자열을 이어 붙인다

-- ============================================================ -- 【이해용 예제】 여러 컬럼을 한 컬럼처럼 합쳐 보여주기 -- ============================================================ SELECT ENAME || '의 직무는 ' || JOB || '입니다.' AS 소개 -- || : 문자열 결합 연산자 -- '…' : 문자열 값은 작은따옴표로 감싼다 FROM EMP; -- 소개 -- --------------------------- -- SMITH의 직무는 CLERK입니다. -- ALLEN의 직무는 SALESMAN입니다. -- 숫자도 자동으로 문자로 바뀌어 결합된다 SELECT ENAME || ' : ' || SAL AS "사원별 급여" FROM EMP; -- 사원별 급여 -- ----------- -- SMITH : 800 -- ALLEN : 1600
SQL
복사

2) ⚠️ 결합에서 NULL은 "무시"된다 — 06강 회수

산술 연산과 정반대로 동작합니다. 이 차이가 시험의 핵심입니다.
-- ============================================================ -- 【시험용 예제】 산술은 전염, 결합은 무시 ★★ -- ============================================================ SELECT PLAYER_NAME AS 선수명, NICKNAME AS 별명, PLAYER_NAME || '(' || NICKNAME || ')' AS 결합결과 FROM PLAYER; -- 선수명 별명 결합결과 -- ------- ------- ------------- -- 김철수 슈퍼맨 김철수(슈퍼맨) ← 정상 -- 이영희 (NULL) 이영희() ← 별명만 빠지고 괄호는 남는다 ⚠️ -- -- ⭐ 전체가 NULL이 되지 '않는다'. NULL 자리만 비워지고 나머지는 그대로 출력된다.
SQL
복사
두 연산의 차이 한눈에
산술 연산 +
합성 연산 ||
100 + NULL / 'ABC' || NULL
NULL (전염)
'ABC' (무시)
결과
전체가 무너짐
나머지는 살아남음

7. DISTINCT — 중복 제거 ⭐⭐

1) 기본 사용법

-- ============================================================ -- 【이해용 예제】 어떤 값들이 있는지 종류만 보고 싶을 때 -- ============================================================ -- DISTINCT 없이 조회하면 중복이 그대로 나온다 SELECT DEPTNO FROM EMP; -- DEPTNO -- ------ -- 20 -- 30 -- 30 ← 중복 -- 20 ← 중복 -- ... (총 14건) -- DISTINCT 를 붙이면 중복이 제거된다 SELECT DISTINCT DEPTNO -- DISTINCT 는 SELECT 바로 뒤에 딱 한 번만 쓴다 FROM EMP; -- DEPTNO -- ------ -- 10 -- 20 -- 30 ← 총 3건 (40번 부서는 사원이 없으므로 안 나옴)
SQL
복사

2) ⚠️ 컬럼이 여러 개면 "조합" 단위로 중복 제거 ⭐⭐

컬럼별로 각각 중복을 제거하는 것이 아닙니다.
-- ============================================================ -- 【시험용 예제】 DISTINCT 다중 컬럼의 결과 건수 ★★ -- ============================================================ -- 부서번호만 → 3건 SELECT DISTINCT DEPTNO FROM EMP; -- DEPTNO -- ------ -- 10, 20, 30 → 3건 -- 직무만 → 5건 SELECT DISTINCT JOB FROM EMP; -- JOB -- --------- -- CLERK, SALESMAN, MANAGER, ANALYST, PRESIDENT → 5건 -- 부서번호 + 직무 조합 → 9건 (3 × 5 = 15가 아니다!) SELECT DISTINCT DEPTNO, JOB -- (부서번호, 직무) 짝을 하나의 값으로 보고 중복 제거 FROM EMP; -- DEPTNO JOB -- ------ --------- -- 10 CLERK -- 10 MANAGER -- 10 PRESIDENT -- 20 ANALYST -- 20 CLERK -- 20 MANAGER -- 30 CLERK -- 30 MANAGER -- 30 SALESMAN → 실제 존재하는 조합만 9건 -- -- ⭐ 시험 포인트 -- DISTINCT A, B 는 "A의 종류 × B의 종류"가 아니라 -- "실제 데이터에 존재하는 (A,B) 조합의 개수" 만큼 나온다.
SQL
복사

3) NULL도 하나의 값으로 취급된다

-- ============================================================ -- 【시험용 예제】 DISTINCT 와 NULL ★ -- ============================================================ SELECT DISTINCT COMM -- 커미션의 종류 FROM EMP; -- COMM -- ------ -- (NULL) ← NULL이 10건 있어도 '한 건'으로만 나온다 ⭐ -- 0 -- 300 -- 500 -- 1400 -- -- ⭐ 06강에서 "NULL끼리는 같은지 알 수 없다(UNKNOWN)"고 배웠지만, -- DISTINCT / GROUP BY 는 예외적으로 NULL들을 '같은 것'으로 묶어 하나만 남긴다. -- 이 예외가 시험에 종종 나옵니다.
SQL
복사

8. SQL 문장의 실행 순서 ⭐⭐⭐

🔥 이 절 하나가 2과목 전체를 관통합니다. 지금 확실히 잡아두면 이후 강의가 전부 쉬워집니다.

1) 작성 순서 ≠ 실행 순서

순서
절
하는 일
①
FROM
어느 테이블에서 가져올지 결정
②
WHERE
조건에 맞는 행을 걸러냄
③
GROUP BY
같은 값끼리 묶음
④
HAVING
묶인 그룹을 걸러냄
⑤
SELECT
보여줄 컬럼을 고름 → 여기서 별칭이 만들어짐 ⭐
⑥
ORDER BY
결과를 정렬

2) 그래서 WHERE절에서는 별칭을 쓸 수 없다 ⭐⭐

-- ============================================================ -- 【시험용 예제】 별칭을 쓸 수 있는 곳 vs 없는 곳 ★★ -- ============================================================ -- ❌ WHERE 절에서 별칭 사용 → 오류 SELECT SAL * 12 AS 연봉 FROM EMP WHERE 연봉 > 20000; -- ORA-00904: "연봉": invalid identifier -- → WHERE(②)가 SELECT(⑤)보다 '먼저' 실행되므로, -- WHERE 시점에는 '연봉' 이라는 이름이 아직 존재하지 않는다! -- ✅ WHERE 절에는 계산식을 그대로 다시 쓴다 SELECT SAL * 12 AS 연봉 FROM EMP WHERE SAL * 12 > 20000; -- 연봉 -- ------ -- 28800 -- 35700 -- 36000 -- ✅ ORDER BY 절에서는 별칭 사용 가능! SELECT SAL * 12 AS 연봉 FROM EMP ORDER BY 연봉 DESC; -- ORDER BY(⑥)는 SELECT(⑤) 다음에 실행 → 별칭이 이미 존재 ✅ -- 연봉 -- ------ -- 60000 -- 36000 -- 35700
SQL
복사
별칭 사용 가능 여부 정리표 ⭐
절
실행 순서
별칭 사용
이유
FROM
①
❌
SELECT보다 먼저 실행
WHERE
②
❌ 불가
SELECT보다 먼저 실행
GROUP BY
③
❌ 불가
SELECT보다 먼저 실행
HAVING
④
❌ 불가
SELECT보다 먼저 실행
SELECT
⑤
—
여기서 별칭 생성
ORDER BY
⑥
✅ 가능
SELECT 다음에 실행
⭐ 암기 문장: "별칭은 SELECT에서 태어나므로, SELECT보다 늦게 실행되는 ORDER BY에서만 쓸 수 있다."

9. SQL 작성 규칙

규칙
내용
예
대소문자
SQL 키워드는 구분하지 않음
select = SELECT
데이터 값
구분함 ⚠️
'SMITH' ≠ 'smith'
문장 종결
세미콜론 ;
SELECT * FROM EMP;
한 줄 주석
--
-- 이것은 주석
여러 줄 주석
/* */
/* 여러 줄 주석 */
줄바꿈
자유롭게 가능
가독성을 위해 절 단위로 줄바꿈 권장
-- ============================================================ -- 【이해용 예제】 권장하는 작성 스타일 -- ============================================================ /* 부서번호 20번 사원의 이름과 연봉을 조회한다 작성일 : 2026-07-20 */ SELECT ENAME AS 사원명, -- 절마다 줄을 바꾸고 SAL * 12 AS 연봉 -- 컬럼도 한 줄에 하나씩 FROM EMP -- 키워드는 대문자, 들여쓰기를 맞추면 WHERE DEPTNO = 20; -- 나중에 읽기가 훨씬 편하다
SQL
복사
⚠️ 가장 흔한 실수: 데이터 값의 대소문자 WHERE ENAME = 'smith' 는 0건입니다. 실제 데이터가 'SMITH' 이기 때문입니다.

10. 출제 포인트 한눈에 정리

#
꼭 외울 것
핵심
1
데이터베이스의 성격 4가지
통합 · 저장 · 운영 · 공용 데이터
2
데이터베이스의 특징 4가지
실시간 접근성 · 계속적 변화 · 동시 공용 · 내용에 의한 참조
3
파일 시스템의 문제
중복 / 불일치 / 종속성 / 동시 접근 곤란
4
DBMS의 3대 기능
정의(DDL) · 조작(DML) · 제어(DCL·TCL)
5
데이터 모델의 발전
계층형 → 네트워크형 → 관계형
6
SQL 4분류
DML / DDL / DCL / TCL
7
DML
SELECT INSERT UPDATE DELETE
8
DDL
CREATE ALTER DROP RENAME TRUNCATE
9
TCL
COMMIT ROLLBACK SAVEPOINT
10
TRUNCATE vs DELETE
TRUNCATE = DDL, 롤백 불가 / DELETE = DML, 롤백 가능 ⭐
11
별칭 큰따옴표
공백·특수문자·대소문자 구분·예약어 일 때 필수
12
따옴표 구분
값 → '작은따옴표' / 별칭 → "큰따옴표"
13
산술 연산과 NULL
결과는 NULL (전염)
14
합성 연산 || 과 NULL
NULL은 무시 (나머지는 출력) ⭐
15
DISTINCT 다중 컬럼
조합 단위로 중복 제거
16
DISTINCT와 NULL
NULL들도 하나로 묶임
17
실행 순서
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
18
별칭 사용 가능 절
ORDER BY 만 가능, WHERE는 불가 ⭐

11. 확인 문제

Q1. 데이터베이스의 특징으로 옳지 않은 것은? ① 실시간 접근성 ② 계속적인 변화 ③ 동시 공용 ④ 위치에 의한 참조
정답 보기
Q2. 다음 중 DDL에 해당하지 <u>않는</u> 것은? ① CREATE ② ALTER ③ DELETE ④ TRUNCATE
정답 보기
Q3. TRUNCATE TABLE EMP; 와 DELETE FROM EMP; 의 차이로 옳지 않은 것은? ① TRUNCATE는 DDL, DELETE는 DML이다 ② TRUNCATE는 WHERE 조건을 쓸 수 없다 ③ TRUNCATE는 ROLLBACK으로 되돌릴 수 있다 ④ TRUNCATE가 일반적으로 더 빠르다
정답 보기
Q4. 다음 SQL의 오류 원인은?
SELECT SAL AS 월 급여 FROM EMP;
SQL
복사
정답 보기
Q5. EMP 테이블에서 아래 두 SQL의 결과가 다른 이유는?
SQL
SMITH(COMM이 NULL)의 결과
SELECT SAL + COMM FROM EMP;
(NULL)
SELECT ENAME || COMM FROM EMP;
SMITH
정답 보기
Q6. EMP 테이블에서 DISTINCT DEPTNO 는 3건, DISTINCT JOB 은 5건이다. 그렇다면 SELECT DISTINCT DEPTNO, JOB FROM EMP; 의 결과 건수는? ① 3건 ② 5건 ③ 8건 ④ 실제 존재하는 조합의 개수만큼
정답 보기
Q7. 다음 SQL이 오류가 나는 이유를 실행 순서로 설명하시오.
SELECT SAL * 12 AS 연봉 FROM EMP WHERE 연봉 > 20000;
SQL
복사
정답 보기
Q8. 별칭을 사용할 수 있는 절은? ① WHERE ② GROUP BY ③ HAVING ④ ORDER BY
정답 보기