쌍용교육센터에서 공부한 내용을 정리하며 기록하는 글이고 주관적인 생각이 들어갈 수 있습니다.
잘못된 내용이나 피드백 및 생각 공유는 언제든 환영입니다.
댓글로 남겨주시면 확인 후 수정하겠습니다.
내용에 대한 소스 코드는 https://github.com/2jaehoon/ssangyonng.git에 올려두었습니다.
group by
- group by 절은 같은 값을 하나의 그룹으로 묶어 검색하는 일
- 중복된 값이 출력되지 않고 집계(그룹) 함수와 함께 사용하면 그룹별 집계를 얻을 수 있다.
- having 절을 붙여 그룹으로 묶이는 조건을 설정할 수 있다.
- 여러 레코드가 조회되는 컬럼과 함께 사용되면 error가 발생한다.
group by가 사용되면 select의 컬럼에는 group by로 묶인 컬럼만 사용하여 검색한다.
또는 다른 컬럼이라면 집계함수에 넣어서 사용하면 된다.
group by 그룹으로 묶일 컬럼명, ...
having 그룹으로 묶을 조건( 집계함수가 사용될 수 있다. )
- 중복값이 있는 컬럼을 그룹으로 묶으면
중복값이 하나로 합쳐서 검색된다.
- 에러 : 조회되는 컬럼에 레코드의 수가 반드시 같아야 한다.
그룹으로 묶은 데이터와 일반 컬럼의 데이터가 관련이 없다.
distinct
- 컬럼의 값이 중복된다면 검색하지 않는 키워드
- 에러가 발생하지 않는다.
- 여러 레코드가 조회되는 컬럼과 함께 사용되면 중복배제를 하지 않는다.
select distinct 컬럼명
from 테이블명;
order by 절
- 검색된 레코드를 정렬할 때 사용한다.
- 오름차순 정렬( asc ), 내림차순( desc ) 정렬을 지원한다.
- asc는 기본 정렬이므로 생략할 수 있다.
- desc는 반드시 명시해야 한다.
- 문자열의 정렬은 자릿 수 정렬을 수행한다.
컬럼의 데이터형은 문자열이고 컬럼의 값이 숫자 형태로 입력되어 있다면
자릿수에 맞는 정렬을 수행한다.
order by 정렬할 컬럼명[정렬방식], 정렬할 컬럼명[정렬방식], ...
함수( function )
- 자주 사용될 코드를 미리 구현해 두는 것 ( 업무를 구분하여 작성할 수 있다. )
- 필요한 곳에서 호출하여 사용한다. ( 중복 코드를 줄일 수 있다. )
- 사용자 정의함수( user define function - 개발자가 필요에 의해 제작(PL-SQL) )
- 내장 함수( built-in function - 오라클에서 제공하는 함수 ) 두 가지를 제공
- select 컬럼, where절, having 절에서 사용할 수 있다.
* built-in function
- 주의 : 집계함수는 where절에서 사용할 수 없다.
- 수치함수 : abs, round, ceil, floor, trunc
- 문자열 함수 : length, upper, lower, initcap, concat, instr, substr, trim, ltrim, rtrim,
lpad, rpad
- null 변환 함수 : nvl, nvl2
- 조건함수 : decode
- 변환함수 : to_char, to_date, to_number
- 집계함수 : count, max, min, sum, avg
dual 테이블
- 모든 사용자가 사용할 수 있는 가상 테이블
- 컬럼에 사용 값이 조회가 되어 나온다.
- 같은 이름의 테이블을 생성하면 dual 테이블은 사라지고, 같은 이름의
테이블을 삭제하면 다시 사용할 수 있다.
수치함수
* abs
abs(값) -- 절대 값
* round
- 반올림하는 자리를 설정할 수 있다.
round(555.555, 자릿수)
/*555.555에서 점을 기준으로 자릿수는 왼쪽으로 갈수록 -1,-2,-3씩 늘어나고
오른쪽으로 갈수록 1,2,3씩 늘어난다.
1,2,3일땐 반올림 했을 때 볼 자릿수이고
-1,-2,-3일땐 반올림할 자릿수이다.*/
* trunc
- 특정 자리를 잘라 버리는 것
-- trunc(값) – 소수부를 잘라버림
-- trunc( 값, 값) – 설정한 위치를 잘라버림
trunc(555.555,2) -- => 555.55
trunc(555.555,-2)-- => 500
jar
- 개발된 소스코드를 배포하기 위해 압축하여 배포를 수행
- java application
* 실행 가능한 jar파일
- 개발된 클래스에 main method가 있는 클래스가 존재하는 경우
- java application
* 실행 불가능한 jar파일
- 개발된 클래스에 main method가 있는 클래스가 존재하는 않는 경우
- library : 다른 클래스에서 개발된 기능을 사용할 때
문자열 함수
* length
- 문자열의 길이를 얻는 일
length(컬럼명)
* upper
- 대문자로 변환
upper(컬럼명)
* lower
- 소문자로 변환
lower(컬럼명)
* initcap
- 첫글자를 대문자로 변환
initcap(컬럼명)
initcap('abcd') -- Abcd
initcap('ABCD') -- Abcd
initcap('abcd abcd') -- Abcd Abcd
* instr
- 문자의 인덱스 얻기
- Oracle은 문자열의 시작 인덱스가 1부터 시작한다.
- 찾을 문자열이 존재하지 않으면 0이 나온다.
instr('문자열', '찾을 문자열')
'성장 일기 > 쌍용교육센터' 카테고리의 다른 글
0125/집계함수 (0) | 2023.01.25 |
---|---|
0120/DBMS 함수 (0) | 2023.01.20 |
0118/update, delete, select (0) | 2023.01.18 |
0117/insert, transaction, select (0) | 2023.01.16 |
0116/DBMS (0) | 2023.01.16 |