Home SQL 기본 문법 1
Post
Cancel

SQL 기본 문법 1

SQL 기본 문법

SQL SELECT 기본

1
select * from 테이블명

해당 테이블에 모든 정보를 가져온다

1
select 컬럼명1, 컬럼명2 from 테이블명

해당 테이블에 특정한 컬럼의 데이터만 가져온다

연산자 사용

1
2
select 컬럼명1, 컬럼명1*500 컬럼명1-100, 컬럼명1* 3
from 테이블명;

해당 테이블에 컬럼 값과 컬럼 값에 연산을 한 값을 가져온다

해당 컬럼 값이 null일 때

1
2
select 컬럼명1, nvl(컬럼명2,  지정)
from 테이블명;

해당 컬럼 값이 null 일 때 특정한 값으로 바꾸고 싶다면 nvl을 사용하면 된다

문자열 합치기

1
select '값은' || 컬럼명1 from 테이블명;
 를 사용하면 문자열과 같이 출력할 수 있다

중복 제거

1
select distinct 컬럼명1 from 테이블명;

중복을 제거하고 값을 가져오고 싶다면 distinct를 사용하면 된다

조건절

1
select 컬럼명 from 테이블명 where 조건절;

select ~ from까지의 모든 값을 가져와서 그 중 조건절과 비교해서 최종적으로 참이 값만 가져온다

비교 연산자

1
2
3
4
5
6
< : 작은가
> : 큰가
<= : 작거나 같은가
>= : 크거나 같은가
= : 같은가
<>, ^=, != : 다른가

논리 연산자

1
2
3
4
5
and : 좌우 조건식이 모두 참일 경우 참
or : 좌우 조건식 중 하나만 참이여도 참
not : 조건식 결과를 반대로
between and : 범위 조건
in : 항목 조건

예시

1
2
3
select 컬럼명1
from 테이블명
where 컬럼명 in ('태그1', '태그2', '태그3')

컬럼명1에서 태그1, 태그2, 태그3인 것을 가져온다

1
2
3
select 컬럼명1
from 테이블명
where 컬럼명1 between '2001/01/01' and '2001/12/31'

컬럼명1에 값이 2001/01/01 ~ 2001/12/31 사이 값을 가져온다

Like 연산자

1
select 컬럼명 from 테이블명 where 컬럼명 like 와일드 카드

와일드 카드

1
2
_ : 단일 글자를 의미
% : 0, 1 또는 여러 문자를 의미

예시

1
2
3
select 컬럼명1
from 테이블명
where 컬럼명1 like '%A';

컬럼명1 중 A로 끝나는 것만 가져온다

1
2
3
select 컬럼명1
from 테이블명
where 컬럼명1 like 'B%';

컬럼명1 중 A로 시작하는 것만 가져온다

1
2
3
select 컬럼명1
from 테이블명
where 컬럼명1 like '_C';

컬럼명1 중 두 번째 글자가 C인 것만 가져온다

null 비교

1
2
3
select 컬럼명1
from 테이블명
where 컬럼명1 is null;

null은 = 이나 != 로는 비교할 수 없고 is null이나 is not null로 비교해야 한다

정렬

1
2
3
4
5
6
7
select 컬럼명1
from 테이블명
where 조건
order by 컬럼명1 방식;

ASC : 오름차순 (생략 가능)
DESC : 내림차순

숫자 함수

1
2
select abs(컬럼명1 - 500)
from 테이블명;

컬럼명1에서 500을 뺀 값에 절대값을 가져온다

1
2
select floor(컬럼명1 * 0.75)
from 테이블명;

컬럼명1에서 0.75을 곱한 값에서 소수점을 버린 값을 가져온다

1
2
select round(컬럼명1)
from 테이블명;

컬럼명1에서 반올림한 값을 가져온다

1
2
select trunc(컬럼명1, 자리수 정해서 버림)
from 테이블명;

컬럼명1에서 자리수을 정해서 버린다

1
select mod(10, 3) from 테이블명;

나머지 연산한 뒤 값을 가져온다

문자열 함수

1
2
select lower(컬럼명1)
from 테이블명;

대문자로 바꿔서 값을 가져온다

1
2
select upper(컬럼명1)
from 테이블명;

소문자로 바꿔서 값을 가져온다

1
2
select initcap(컬럼명1)
from 테이블명;

첫 글자만 대문자로 나머지는 소문자로 바꿔서 값을 가져온다

1
2
select concat(문자열1, 문자열2)
from 테이블명;

문자열1과 문자열2가 연결되어서 값을 가져온다

1
2
select length(컬럼명1)
from 테이블명

문자열의 길이를 반환한다

1
2
3
select substr('문자열', '자를 문자 시작 위치'),
substr('문자열', '자를 문자 시작 위치', '자를 문자 갯수')
from 테이블명;

문자열을 잘라내어 반환한다

1
2
3
4
select instr('문자열', '찾을 문자열'),
select instr('문자열', '찾을 문자열', '시작 위치')
select instr('문자열', '찾을 문자열', '시작 위치', '발생 횟수')
from 테이블명;

문자열을 찾아 반환한다

1
2
select lpad('문자열', '총 문자길이')
from 테이블명;

지정한 길이 만큼 왼쪽부터 문자를 채워 반환한다

1
2
select rpad('문자열', '총 문자길이')
from 테이블명;

지정한 길이 만큼 오른쪽부터 문자를 채워 반환한다

1
2
3
select trim('  문자열  '),
trim('  문자열  ', '열')
from 테이블명;

값이 없을 땐 양쪽 공백을 제거하여 반환한다 만약 있다면 그 문자열을 제거한다

1
2
3
select ltrim('  문자열  '),
trim('  문자열  ', '열')
from 테이블명;

값이 없을 땐 왼쪽 공백을 제거하여 반환한다 만약 있다면 그 문자열을 제거한다

1
2
3
select rtrim('  문자열  '),
trim('  문자열  ', '열')
from 테이블명;

값이 없을 땐 오른쪽 공백을 제거하여 반환한다 만약 있다면 그 문자열을 제거한다

1
2
select replace('문자열', '찾을 문자' '변환 문자')
from 테이블명;

문자열에서 특정 문자를 변환하여 반환한다

1
select system from 테이블명;

현재 날짜와 시간을 반환한다

1
2
select MONTHS_BETWEEN(컬럼명1, 컬럼명2)
from 테이블명;

두 컬럼 사이의 개월 수를 계산하여 반환한다

1
2
select ADD_MONTHS(컬럼명1, 100)
from 테이블명;

컬럼명1로 부터 100개월 후 값을 반환한다

예제 3: next_day 함수

1
2
select NEXT_DAY('날짜', '요일')
from 테이블명;

날짜로부터 지정된 요일이 며칠인 지 가져온다

1
2
select LAST_DAY('날짜')
from 테이블명;

지정된 날짜가 해당하는 달에 마지막 날을 가져온다

DECODE 함수

1
2
3
4
select DECODE('컬럼명1', '값1', '반환값1'
            , '값2', '반환값2'
            , '값3', '반환값3')
from 테이블명;

지정한 컬럼의 값에 따라 반환값이 결정된다

CASE 함수

1
2
3
select CASE WHEN 조건식1 THEN 반환값1
            WHEN 조건식2 THEN 반환값2
from 테이블명;

그룹 함수

1
2
select SUM('컬럼명1')
from 테이블명;

선택한 컬럼의 총합을 반환한다

1
2
select AVG('컬럼명1')
from 테이블명;

선택한 컬럼의 평균을 반환한다

1
2
select COUNT('컬럼명1')
from 테이블명;

선택한 컬럼의 로우의 수를 반환한다

1
2
select MAX('컬럼명1')
from 테이블명;

선택한 컬럼의 최대 값을 반환한다

1
2
select MIN('컬럼명1')
from 테이블명;

선택한 컬럼의 최소 값을 반환한다

GROUP BY

1
2
3
4
5
select 컬럼명
from 테이블명
where 조건절
group by 그룹기준
order by 정렬기준 -- 생략 가능

select로 가져온 여러 그룹으로 나눠 각각의 총합과 평균등을 구할 수 있다

주요 정리

  1. select문
  2. nvl(‘컬럼’, ‘값’) : null 값 지정
  3. distinct : 중복 제거
  4. where문
  5. 범위 조건
  6. like연산자
  7. is null: null값 비교
  8. order by : 정렬, DESC 내림차 순 선택
  9. abs() : 절대값
  10. floor() : 소수점 버리기
  11. round() : 반올림
  12. trunc() : 자리수 정해서 버림
  13. mod() : 나머지 연산
  14. lower() : 대문자를 소문자로 변경
  15. upper() : 소문자를 대문자로 변경
  16. initcap() : 첫글자만 대문자로 나머지는 소문자로 변경
  17. length() : 문자열 길이 반환
  18. substr() : 문자열 자르기
  19. instr() : 문자열 찾기
  20. rpad() : 오른쪽부터 문자 채우기
  21. lpad() : 왼쪽부터 문자 채우기
  22. trim : 문자 제거, 앞에 r,l을 붙여서 한쪽 방향만 제거 가능
  23. replace() : 문자열 변경
  24. decode(‘컬럼’, ‘값1’, ‘반환값1’, ‘값2’, ‘반환값2’) : 값에 따라 반환값이 결정됨
  25. case when then : 조건에 따라 반환값이 결정
  26. 그룹 함수
  27. group by : 그룹으로 묶는다
This post is licensed under CC BY 4.0 by the author.

4월 15일 Today I Learned

4월 16일 Today I Learned