5.1.1 애스터 리스크

SELECT * FROM dept;

 

*을 기술하면 테이블의 전체 열 조회

 

DESC dept

DESC 명령어로 테이블의 열 정보 확인 가능

 

 

5.1.2 열

SELECT dname, deptno FROM dept;

조회할 열을 기술할 수 있음. 열은 쉼표로 구분함

 

 

5.1.3 열 별칭

SELECT deptno dept_no, dname AS dept_nm, loc AS "Location" FROM dept;

열에 별칭을 지정할 수 있음. 큰 따옴표로 별칭을 감싸면 제약을 회피할 수 있음.

 

 

5.1.4 DISTINCT 키워드

SELECT DISTINCT deptno FROM emp;

DISTINCT 키워드나 UNIQUE 키워드를 기술하면 중복행이 제거된 결과를 반환함.

 

 

5.2 FROM 절

FROM 절에 조회할 테이블을 기술할 수 있음. 테이블은 쉼표로 구분함. 2개 이상의 테이블을 기술하면 조인이 수행됨.

 

 

5.2.1 스키마

테이블에 스키마를 지정하면 해당 스키마의 테이블을 조회할 수 있다.

SELECT scott.dept.deptno FROM scott.dept;

-> SELECT 스키마.테이블.열 FROM 테이블.열;

 

 

5.2.2 테이블 별칭

테이블에 별칭을 부여할 수 있다.

SELECT a.deptno FROM dept a;

-> dept라는 테이블을 a라는 별칭으로 지정하였음

 

 

5.2.3 SAMPLE 절

 

테이블을 샘플링하여 조회할 수 있다.

SELECT * FROM dept SAMPLE (30);

-> 총 데이터의 30%를 샘플링 하는 듯?

 

 

5.3.1 리터럴

프로그래밍 언어의 상수와 유사함.

문자, 숫자, 날짜, 인터벌 리터럴을 사용 가능

 

 

5.3.1.1 문자 리터럴

문자 리터럴은 작은 따옴표( ' )로 감싸서 기술한다.

 

리터럴은 전체 행에서 동일한 값을 반환한다.

SELECT 'Department' AS c1, deptno FROM dept;

-> c1의 모든 행의 값은 모두 Department가 됨

 

 

5.3.2 널(null)

오라클 데이터베이스는 널과 빈 문자('')를 동일하게 처리한다.

 

 

5.3.3 연산자

일반적으로 우리가 생각하는 연산자와 동일.

0으로 나눌 경우 에러가 발생

SELECT 1/0 FROM DUAL;

-> 에러 발생

 

날짜 값의 산술연산에 사용되는 숫자 값은 일(day)수로 계산됨.

 

 

5.3.3.2 연결 연산자 (||)

 

문자 값이 아닌 피연산자는 문자 값으로 변환된다. 널(null)은 무시된다.

SELECT 1 || NULL || 'A' AS c1 FROM DUEL;

-> c1의 1행 값은 1A가 됨.

 

5.3.4.1 CASE 표현식

IF THEN ELSE 논리를 평가할 수 있다.

SELECT deptno, CASE deptno WHEN 10 THEN 1 WHEN 20 THEN 2 ELSE 9 END AS c1 FROM dept;

-> deptno가 10이면 1을 return, 20이면 2를 return, 그 외에는 9를 return

 

만약 ELSE 절이 없으면 null이 return 됨.

 

 

- 검색 CASE 표현식

SELECT deptno, CASE WHEN deptno BETWEEN 10 AND 20 THEN 1
                    WHEN deptno BETWEEN 20 AND 30 THEN 2
                    ELSE 9
                    END AS c1
                    FROM dept;

조건에 맞으면 특정값을 return

 

5.4 바인드 변수

v1이라는 변수에 값을 할당하여 사용

VAR v1 NUMBER;
EXEC :v1 := 1;
SELECT :v1 AS c1 FROM DUAL;

 

'SQL > 불친절한 SQL 프로그래밍' 카테고리의 다른 글

6장 part.2 [단일 행 함수]  (0) 2022.09.22
6장 [단일 행 함수]  (0) 2022.09.21

+ Recent posts