본문 바로가기

공부33

오라클 SQL 문법 공부9 - MONTHS_BETWEEN, ADD_MONTHS, NEXT_DAY, LAST_DAY 서론 날짜형 데이터들은 단순히 숫자처럼 +1이나 +3으로도 일 수를 조정 할 수는 있지만 한달의 일자의 수는 각 달마다 다르므로 이 함수들을 사용해야 정확한 날짜를 찾거나 차이를 알수가 있다. 아주 간단한 날짜 계산식이라면 모를까 대부분은 아래 함수들을 가지고 계산을 한다. 본론 MONTHS_BETWEEN, ADD_MONTHS --MONTHS_BETWEEN(날짜1, 날짜2) --두 날짜 간의 개월 수 차이 값을 반환 --두 날짜 중 큰 날짜를 먼저 써야 양수가 나온다 SELECT MONTHS_BETWEEN(SYSDATE, TO_DATE('2017-01-30', 'YYYY-MM-DD')) FROM DUAL; SELECT TRUNC(SYSDATE - HIREDATE) AS 입사일수, TRUNC(MONTHS_.. 2017. 9. 22.
오라클 SQL 문법 공부8 - ROUND, TURNC, MOD, FLOOR, CEIL, ABS, SIGN 서론 이번에는 주로 숫자형 데이터를 처리하는 함수들을 배워볼 차례이다. 본론 ROUND, TRUNC --ROUND(숫자 [,m]) 반올림 / TRUNC(숫자, [,m]) 버림 select round(12343.46), --뒤에 인자 없으면 소수점 첫번째 자리에서 반올림 round(1234.56, 1), --소수점 2번째 자리에서 반올림하여 1자리로 표시 round(1234.56, 2), --소수점 3번째 자리가 없어서 그대로 round(1234.56, -1) --정수 1자리에서 반올림 from dual; SELECT TRUNC(1234.45) FROM DUAL; --ROUND(날짜, 단위), trunc --라운드 반올림, trunc 버림 --날짜를 년, 월 단위로 반올림, 버림(단위: 'month', '.. 2017. 9. 22.
오라클 SQL 문법 공부7 - LPAD, LTRIM, TRIM, REPLACE, TRANSLATE 서론 이번에도 역시 문자열을 가공하는 함수들에 대해서 알아보고자 한다. 나름 자주 쓰이는 함수이니 익숙해지면 좋을 것 같다. 본론 LPAD, RPAD --LPAD('문자열' 또는 컬럼명, 바이트 [,채울 문자])) --이거 자리수가 아니라 바이트 수 같은데? 숫자 영문 1, 한글, 특수문자 2바이트씩 --바이트 수 만큼 다 찰 때까지 해당 문자열을 가장 왼쪽에 반복해서 출력 --문자열을 붙였을때의 크기가 바이트 수를 넘어서면 붙지 않는다. --채울 문자 생략 시에는 공백을 문자대신 끼워서 반환한다. --RPAD는 오른쪽에 붙임 --채울문자를 넣어야 하는데 자리수가 부족하면 안 채워짐 --양쪽에 삽입하기 위해서는 각각 사용할 수 밖에 없다 SELECT RPAD(LPAD('1234', 6, '*'), 8, .. 2017. 9. 20.
오라클 SQL 문법 공부6 - SUBSTR, INSTR, SYSDATE 서론 이번에 나열한 함수는 자주 쓰이는 함수 SUBSTR, INSTR이다. 문자열을 가공하거나 특정 문자열 비교를 할때 사용되며 많이 익숙해져야 할 함수라고 생각한다. 본론 SUBSTR 문자열을 자를때 사용된다. /*SUBSTR() 함수 문자열에서 원하는 문자 추출 --SUBSTR('문자열'또는 컬럼명, m [,n]) --문자열 중 지정한 위치(m)에서 지정한 길이(n)만큼 문자추출 --n은 생략 가능하며 생략 시 맨 끝까지 추출 --m이 음수일 경우에는 글자 뒤에서부터 개수만큼이 출발지점 --글자 셀때 방향이 바뀌지 않음 select substr('abcdefg', 1, 1), --첫번째 자리 부터 1글자 추출 : 'a' substr('abcdefg', 2, 1), --두번째 자리부터 1글자 추출 : .. 2017. 9. 19.
오라클 SQL 문법 공부5 - INITCAP, UPPER, LOWER, LENGTH, LENGTHB 서론 이번부터는 기본 문법외에 여러가지 처리를 해주는 함수에 대해서 알아볼 것이다. 함수는 크게 단일행 함수와 복수행 함수로 나뉘어지는데 GROUP BY절을 사용할때 사용되는 함수들이 복수행 함수이며 나머지는 단일 행 함수라고 생각하면 편하다. 단일 행 함수는 각 컬럼의 데이터나 문자열, 숫자, 날짜등을 처리해준 값을 보여준다. 본론 INITCAP, UPPER, LOWER INITCAP은 가장 앞의 문자를 대문자로 치환해주는 함수이다. 당연히 한글이나 숫자와는 상관없이 영문에 대하여 처리해준다. 예를들어 AAAA라는 문자열이 있다면 Aaaa 값으로 처리해준다. 띄어쓰기가 있다면 다시 앞에 대문자로 치환해준다. 참고로 아래 있는 FROM DUAL; 의 DUAL은 더미 테이블로 주로 테스트를 할때 사용되는 .. 2017. 9. 19.
오라클 SQL 문법 공부4 - 기본문법 실습 서론 문법공부 3장까지 기본 키워드인 SELECT, FROM, WHERE, ORDER BY에 대해 실습을 해볼 예정이다. 기본 SQL문과 함수들은 첨부한 테스트 데이터를 이용하여 예제를 써나갈 예정이니 혹시나 오라클을 설치하고 SQL개발툴을 사용하여 테스트해가면서 공부를 하는 분들이라면 아래 나와있는 정보를 가지고 실습해보자. 본론 테스트 데이터 입력 위의 파일을 받아 토드나 오렌지, SQL DEVELOP 툴등을 이용하여 실행시켜주자. 참고로 사용할 계정은 SCOTT 계정이며 SCOTT 계정으로 접속하여 SQL 파일을 돌려주자. 정상적으로 입력이 되었다면 아래 데이터가 조회 될 것이다. 오라클을 아직 설치 하지 않은 유저라면 아래 링크를 통해 설치도 해보자. 2017/09/11 - [공부/Oracle] .. 2017. 9. 19.
오라클 SQL 문법 공부3 - ORDER BY 절과 처리순서 서론 이번에는 ORDER BY와 쿼리문장의 처리 순서에 대해서 알아볼까 한다. 1~3번째 내용만 잘 익혀놓아도 실습하는데 있어서 크게 문제가 없을 것이다. 이 쿼리 문장의 처리 순서를 잘 알게 되면 추후에 튜닝할때 특히 더 도움이 될 것 같다. 본론 ORDER BY 아주 간단한 문법이다. 표현할 데이터들을 내림차순이나 오름차순으로 정렬하는 키워드이다. 예를들어 학생들의 정보를 읽어오고 싶은데 학번이 높은 순으로 가져오고 싶다 라면 SELECT * FROM 학생정보 ORDER BY 학번 DESC; 라고 적어주면 된다. 학번이 높은 순으로 그리고 이름 순으로 정렬하고 싶다면 SELECT * FROM 학생정보 ORDER BY 학번 DESC, 이름 ASC; 라고 적으면 끝. ORDER BY 컬럼 DESC or .. 2017. 9. 16.
오라클 SQL 문법 공부2 - WHERE 절 서론 저번글에서는 가장 기본적인 SQL문법 SELECT ~ FROM에 대해서 써보았다. 이번에는 WHERE절이다. WHERE 절은 특정조건을 걸어 내가 알고 싶은 데이터들만 필터를 해서 보여주는 구문이다. WHERE절에서 사용되는 연산자들은 중요하니까 외워두는 것이 좋다. 아니 오라클을 설치하고 이것저것 테스트를 많이 하면 금방 익숙해진다. 본론 연산자를 이용한 조건넣기 일단 문장의 형태는 SELECT 컬럼 FROM 테이블 WHERE 조건; 이다. 1장에서 봤던 문법 뒤에 WHERE가 붙은 형태이며 나는 어떤 테이블의 어떤 컬럼 값들을 가져올꺼야, 그런데 어떤 조건에 있는 값들만 보고 싶어 라고 생각하면 된다. 조건에 들어 갈 수 있는 연산자들은 아래 표에 정리되어있다. 연산자 종류 내용 = 완전히 같은.. 2017. 9. 16.
오라클 SQL 문법 공부1 - SELECT 절 서론 오라클은 전 세계적으로 가장 널리 사용되는 DBMS 소프트웨어 이다. C, JAVA 등 해당 프로그래밍을 하려면 다들 자기만의 언어가 존재하고 익혀야 하는데 오라클 역시 DB에 저장되어있는 자료들을 불러올때 특정 언어를 사용해야 한다. 이것이 SQL(structured query language)이다. 오라클 사용자 입장에서 원하는 데이터들을 빠르게 불러오기 위해 SQL언어를 잘 다루어야 하는 것은 당연한 말이다. 가장 기본적인 데이터를 불러오는 연습을 해보자. 본론 SELECT 컬럼명 FROM 테이블명; 오라클 내부에는 나름대로 데이터들이 잘 적재되어 있는데 사람들이 이해하기 좋게 논리적으로 아래와 같은 형태로 데이터를 표시해 준다. 마치 엑셀에 저장되어 있는 학생들의 데이터처럼 생각해보면 쉽다... 2017. 9. 16.