[SELECT문]
· SELECT문
-> 테이블에 입력된 데이터를 조회하기 위해서 사용되며, 특정 칼럼/행만 조회가 가능
· SELECT 문법
1) SELECT * : 모든 칼럼을 출력 (‘*’은 모든 칼럼을 의미)
2) FROM 테이블명 : 테이블을 지정
3) WHERE 조건 : FROM에서 지정한 테이블의 조회 조건을 지정
· SELECT 칼럼 지정
1) SELECT 칼럼1, 칼럼2 FROM 테이블명;
- 해당 테이블에서 칼럼 1,2만 출력
2) SELECT * FROM 테이블명;
- 해당 테이블의 모든 칼럼과 행을 조회
3) SELECT 칼럼1 || ‘문자’ FROM 테이블명;
- 해당 테이블의 모든 행에서 칼럼1을 조회
- 단, 칼럼1 뒤에 ‘문자’에 들어간 단어를 결합
ex) 출력 예시 : 칼럼1 문자
· SELECT 문의 정렬
-> ORDER BY를 사용하여 정렬이 가능
* ORDER BY : 데이터를 오름차순 또는 내림차순으로 출력
- 디폴트 값은 오름차순, 내림차순은 ‘DESC’ 사용
- 정렬을 하는 시점은 모든 실행 종료 후 데이터를 출력하기 바로 직전이기 때문에 대량의 데이터를 정렬하게 됨 (정렬로 인한 성능 저하 발생)
* Oracle은 정렬을 위해 메모리 내부에 할당된 SORT_AREA_SIZE을 사용하는데 SORT_AREA_SIZE가 너무 작으면 성능 저하 발생
* 성능저하 회피를 위해 Index를 사용한 정렬 회피가 가능
-> 인덱스를 생성할 때 사용자가 원하는 형태(오름차순/내림차순)로 생성
- SELCET문에서 기본키를 조회하면 자동으로 오름차순 인덱스가 생성
- INDEX 힌트(Hint)
SELECT ‘/*+INDEX_DESC(a)*/’ : 내림차순으로 읽도록 지정
· DISTINCT
-> 칼럼명 앞에 지정하여 중복 데이터를 한번만 조회하게 함
· Alias : 별칭으로 테이블/칼럼명이 길 때 간략하게 사용
-> SELECT 테이블명 AS “별칭” FROM 칼럼명 별칭
[WHERE절]
· WHERE
-> 원하는 자료만을 검색하기 위한 조건문
· WHERE문의 연산자 종류
[비교 연산자]
1) = : 같은 것을 조회
2) < : 작은 것을 조회
3) <= : 작거나 같은 것을 조회
4) > : 큰 것을 조회
5) >= : 크거나 같은 것을 조회
[부정 비교 연산자]
1) != / ^= / <> / NOT 칼럼명 = : 같지 않은 것을 조회
2) NOT 칼럼명 > : 크지 않은 것을 조회
[논리 연산자]
1) AND : 조건을 모두 만족해야 TRUE
2) OR : 조건 중 하나만 만족해도 TRUE
3) NOT : TRUE/FALSE 의 결과값을 반대로 출력
[SQL 연산자]
1) LIKE ‘%비교문자열%’ : 비교문자열을 조회
- % : 어떤 문자를 포함한 모든 것을 조회
- _(underscore) : 한 개인 단일 문자를 의미
2) BETWEEN A AND B : A와 B의 범위에 있는 값을 조회
3) IN (list) : list 값 중 하나만 일치해도 조회
- OR의 의미를 가지고 있어서 하나의 조건만 만족해도 조회가 됨
4) IS NULL : NULL 값을 조회
- NULL은 모르는 값, 값의 부재를 의미
- NULL + 숫자/날짜 = NULL
- NULL과 어떤 값을 비교한다면 ‘알 수 없음’ 이 반환됨
[부정 SQL 연산자]
1) NOT BETWEEN A AND B : A와 B사이에 해당되지 않은 값
2) NOT IN (list) : list와 불일치한 것을 조회
3) IS NOT NULL : NULL값이 아닌 것을 조회
· NULL 관련 함수
1) NVL (Oracle)
- NULL이면 다른 값으로 바꾸는 함수
ex) ‘NVL(MGR, 0)’은 MGR 칼럼이 NULL이면 0으로 바꾼다는 의미
2) NVL2 (Oracle)
- NVL함수와 DECODE 함수를 하나로 만든 것
ex) ‘NVL2(MGR, 1, 0)’은 MGR 칼럼이 NULL이 아니면 1,
NULL이면 0을 반환
3) NULLIF (Oracle, MS-SQL, MySQL)
- 두 개의 값이 같으면 NULL, 같지 않으면 첫 번째 값을 반환
ex) ‘NULLIF(exp1, exp2)’는 exp1과 exp2가 같으면 NULL,
같지 않으면 exp1을 반환
4) COALESCE (Oracle, MS-SQL)
- NULL이 아닌 최초의 인자 값을 반환
ex) ‘COALESCE(exp1, exp2, exp3,…)은 exp1이 NULL이 아니면
exp1의 값을, 그렇지 않으면 그 뒤의 값의 NULL여부를 판단
'📊DataBase > 📈SQL' 카테고리의 다른 글
[🪪SQLD] 2과목 - SQL 기본 : 함수 (24년 개정 요약) (1) | 2024.02.22 |
---|---|
[🪪SQLD] 2과목 - SQL 기본 : GROUP BY, HAVING 절 (24년 개정 요약) (0) | 2024.02.22 |
[🪪SQLD] 2과목 - SQL 기본 : 관계형 데이터 베이스 (24년 개정 요약) (1) | 2024.02.14 |
[🪪SQLD] 1과목 - 데이터 모델링의 이해 : 관계와 조인 / 트랜잭션 / Null 속 (24년 개정 요약) (0) | 2024.02.14 |
[🪪SQLD] 1과목 - 데이터 모델링의 이해 : 정규화와 반정규화 (24년 개정 요약) (1) | 2024.02.13 |