코딩/SQLD 자격증

0202SELECT

tree0505 2025. 6. 18. 15:45
반응형

0202_개념04_ALIAS별칭2

  • 시험에 자주 나온다. 

4 별칭 사용 시 큰따옴표가 필요한 경우

  • 별칭에 공백을 포함하는 경우
  • 별칭에 특수문자를 포함하는 경우(_ 제외)
    • 특수문자는 언더바만 허용을 한다. (_) 
  • 별칭을 있는 그대로 전달하는 경우
  • ORACLE은 별칭을 소문자로 입력해도 대문자 출력된다.
  • 만약 입력한 대소문자를 그대로 출력하기를 원할 때 큰따옴표가 필요하다.
  • 사용할 수 없는 예약어 등을 표현하는 경우
  • 이런 것들이 시험문제로 종종 나온다. 

 

  • -- [오류]
    SELECT SAL 사원 급여   
    FROM EMP;
    • 사원(공백)급여 
    • 공백을 넣어서 오류다. 
  • -- [해결]
    SELECT SAL "사원 급여"
    FROM EMP;
    • 공백을 컬럼명에 넣고 싶다. 그러명 쌍따음표를 넣으면 된다. 
  • SELECT SAL "$사원급여"
    FROM EMP;
    • 달러는 큰따음표를 쓰면 문제가 없다. 
  • SELECT SAL 사원_급여
    FROM EMP;
    • 끈따음표 없이 사용이 가능하다. 언더바만 (_) 
  • SELECT SAL AS SalryOfEmployee
    FROM EMP;
  • SELECT SAL AS "SalryOfEmployee"
    FROM EMP;
    • 큰따음표 없이는 모두 대문자로 표기가 된다.
    • 그래서 큰따음표를 쓰게 되면 소문자도 사용할 수 있다. 
  • -- [오류]
    -- 예약어를 사용하여 별칭을 전달하면 오류가 발생한다.
  • SELECT ENAME AS SELECT
    FROM EMP;
  • -- [해결]
    SELECT ENAME AS "SELECT"
    FROM EMP;

0202_개념04_ALIAS별칭3


5 별칭 사용 시 주의사항

  • ( 1 ) SELECT절에 사용한 별칭 ( 칼럼 별칭 )
    • SELECT 문보다 늦게 수행되는 ORDER BY 절에서는 사용할 수 있다.
    • 하지만 WHERE, GROUP BY, HAVING 절에서는 사용할 수 없다.
  • ( 2 ) FROM절에 사용한 별칭 ( 테이블 별칭 )
    • 테이블 별칭은 SELECT절을 포함해 WHERE, GROUP BY, HAVING, ORDER BY 등 모든 절에서 사용 가능하다.

 

  • SQL문은 작성순서와 실행순서가 존재한다. 
  • 실행순서로 기인해서. 우리가 사용하는 별칭을 사용을 못하는 경우가 있다. 

 

 

 

  • -- [오류]
    -- WHERE는 SELECT보다 먼저 실행되므로, 
    -- 아직 ANNSAL 별칭은 존재하지 않기 때문에 오류가 발생한다.
  • SELECT SAL * 12 AS ANNSAL
    FROM EMP
    WHERE ANNSAL > 2000;
    • 실행순서가 1. FORM이 먼저 된다. 그리고 2. WHERE이 실행됨 
    • WHERE입장에서는 아직 SELECT를 만난적이 없다. 
    • WHERE에 셀렉트의 별칭을 적으면 오류가 나는거다. 
  • -- [해결]
    -- 본래 연산식을 다시 작성해야 한다.
  • SELECT SAL * 12 AS ANNSAL
    FROM EMP
    WHERE SAL * 12 > 2000;
    • 연산식을 한번더 작성하면 된다. 
  • -- [오류]
    -- SELECT 절의 칼럼 별칭은 GROUP BY, HAVING에서도 사용할 수 없다.
  • SELECT DEPTNO, COUNT(*) AS CNT
    FROM EMP
    GROUP BY DEPTNO
    HAVING CNT > 3;
    • 실행순서 FORM -> 그다음 GROUP BY HAVING -> SELECT가 제일 마지막 
    • CNT를 만날 기회가 없던것 
  • -- [해결]
    -- 본래 연산식을 다시 작성해야 한다.
  • SELECT DEPTNO, COUNT(*) AS CNT
    FROM EMP
    GROUP BY DEPTNO
    HAVING COUNT(*) > 5;
    • 함수명을 다시 적으면 된다. 

0202_개념05_SQL문종류

SQL문 종류

SQL은 그 기능에 따라 다음과 같이 구분한다.
종류
구문
설명
DDL문 데이터 정의어
CREATE ALTER DROP RENAME TRUNCATE
Data Definition Language 테이블, 인덱스와 같은 데이터베이스 오브젝트의 구조를 정의(생성, 변경, 삭제)하기 위한 구문
DML문 데이터 조작어
SELECT INSERT UPDATE DELETE MERGE
Data Manipulation Language 테이블에 저장된 데이터를 조작(조회, 입력, 수정, 삭제) 하기 위한 구문
DCL문 데이터 제어어
GRANT REVOKE
Data Control Language 데이터에 대한 권한을 부여하거나 취소하기 위한 구문
TCL문 트랜잭션 제어어
COMMIT ROLLBACK SAVEPOINT
Transaction Control Language DML문에 의해 데이터의 변경 사항을 데이터베이스에 영구히 반영하거나 취소하기 위한 트랜잭션(Transaction)을 제어하는 구문
  • 시험에서 한문제 꼭 나온다. 
  • SQL 문 종류 
    • DDL 
      • 테이블을 생성. 수정. 삭제. 이름바꾸기. 데이터 바꾸기 
    • DML
      • 조작어 
      • MERGE 병합 
    • DCL
      • GRANT : 사용자 유저에게 권한을 부여 
      • REVOKE: 회수 
    • TCL 
      • COMMIT : 저장 
      • ROLLBACK : 취소 
      • SAVEPOINT : 지정을 지정한다. 지정을 취소하거나 커밋 

 


0202_개념06_SELECT문구조

1 SELECT문 구조

  • SELECT 문은 다음과 같이 6개의 절로 구성되어있다.
  • 각 절은 순서대로 작성해야 한다.
  • GROUP BY절과 HAVING절의 순서는 서로 바꿀 수 있지만, 권장하지 않는다.

2. SELECT문 작성 순서

  • 밑의 순서를 외워야 한다. 
  • 밑의 순서대로 된다. 
  • 문제에서 순서를 바꿔서 출제를 한다. 
SELECT 칼럼명
FROM 테이블명
WHERE 조회할 데이터 조건
GROUP BY 그룹핑칼럼명
HAVING 그룹핑 필터링 조건
ORDER BY 정렬칼럼명

3 SELECT문 실행 순서

FROM > WHERE > GROUP BY > HAVING > SELECT > ORDER BY 순으로 실행된다.

 

》QUIZ

<aside>

다음 SELECT문을 이루는 절 중에서 가장 나중에 실행되는 것은 무엇인가?

① FROM ② WHERE ③ ORDER BY ④ GROUP BY

</aside>

  • 정답③SELECT문에서 가장 나중에 실행되는 절은 ORDER BY절이다.
    조회 대상인 속성을 추출한 다음 최종적으로 정렬을 수행한다.
  • </aside>
  • 해설
  • <aside>
반응형

'코딩 > SQLD 자격증' 카테고리의 다른 글

SQL Developer 설치 및 환경설정  (0) 2025.06.18
0202_개념04_ALIAS별칭1  (1) 2025.06.18
0202_개념03_DISTINCT중복제거  (0) 2025.06.18
0202_개념02_FROM절  (0) 2025.06.18
0202SELECT => 0202_개념01_SELECT문  (0) 2025.06.18