시퀀스(SEQUENCE)

시퀀스 객체는 호출될 떄마다 자동으로 숫자를 생성하는 객체이다.

테이블의 특정 컬럼값을 넘버링(NUMBERING)하기 위해서 사용된다.

 

EX)

CREATE SEQUENCE 시퀀스명

START WITH 시작점

INCREMENT BY 증감숫자

MAXVALUE 최대값

MINVALUE 최소값

CYCLE 호출된 값이 최대값에 도달하면 최소값으로 돌아가 다시  시작된다. 만일 사용을 원하지 않는다면 NOCYCLE

CACHE 시퀀스 값을 미리 만들어서 필요 시 바로 제공하는 방법. 만일 사용을 원하지 않는다면 NOCACHE

 

 

CREATE SEQUENCE DEPT_DEPTNO_SEQ

START WITH 10

INCREMENT BY 10

MAXVALUE 100

MINVALUE 5

CYCLE 

NOCACHE

 

주의! 쉼표(,) 를 쓰지 않고 나열해야함.

NEXTVAL 과 CURRVAL

시퀀스 객체가 생성되었다고 자동으로 시퀀스 값이 생성되는 것이 아니다.

시퀀스 값을 얻기 위해서는 반드시 시퀀스 객체를 호출해야 되며 방법은 다음과 같다.

 

시퀀스명.NEXTVAL 

 

위와 같이 입력하면 시퀀스 값을 불러올 수 있다.

 

CURRVAL은 현재 생성된 시퀀스 값을 조회하기 위해서 사용한다. 조심해야할 점은 무조건 NEXTVAL를 먼저 사용하고 나서 CURRVAL를 입력해야 조회가 가능하다.

 

'DataBase' 카테고리의 다른 글

7/6 SQL 사용자권리  (0) 2021.07.07
DML (Data Manipulation Language)

데이터베이스의 테이블에 새로운 데이터를 저장(INSERT) 하거나 삭제(DELETE) 또는 수정(UPDATE) 및 병합(MERGE) 할 때 사용하는 데이터 조작어를 의미한다.

 

INSERT 

테이블에 데이터를 입력하기 위한 데이터 조작어다.

입력하는 방법은 총 두 가지가 있다.

첫 번째, 한번에 하나의 행을 테이블에 입력하는 방법

두 번째, 서브쿼리를 이용하여 한 번에 여러 행을 동시에 입력하는 방법

 

 

EX) 

INSERT INTO DEPT (DEPTNO, DNAME, LOC) 

VALUES (90, '인사과', '서울');

 

 

      INSERT INTO 시작부분

      테이블명

      컬럼명

      컬럼의 데이터 값

 

사용 시 참고사항

- 모든 컬럼을 다 명시할 경우, 입력한 컬럼의 순서대로 VALUE 를 적어야한다.

- 컬럼의 순서 변경이 가능하다. 단, 순서를 변경한 후 컬럼과 컬럼 값을 알맞게 넣어야 한다.

  이를 위해서 컬럼의 세부내용을 볼 필요가 있다. 

  DESC 테이블명 을 입력하면 컬럼의 특징들이 나온다. 이를 참고해서 숫자, 문자열 등을 입력하면 된다.

 

- 컬렴명을 생략할 수 있다. 단, 모든 컬럼의 VALUES 를 다 적을 때만 적용된다.

- NULL 값은 묵시적 또는 명시적으로 입력할 수 있다.

EX) 

1. 묵시적 : INTO 절에서 해당 컬럼명과 값을 생략하면 된다.

ㄴ INSERT INTO  DEPT (DEPTNO, DNAME) VALUES (91, '인사과';

*제약조건이 지정되지 않았다고 가정.

 

2. 명시적 : VALUES절의 컬럼값에 NULL 키워드를 적거나 빈문자열 '' 을 사용하면 된다.

ㄴ INSERT INTO DEPT VALUES (92, '인사과', NULL);

'DataBase > DML' 카테고리의 다른 글

7/2 트랜잭션(Transaction)  (0) 2021.07.02
7/2 UPDATE, DELETE  (0) 2021.07.02
7/2 SQL INSERT  (0) 2021.07.02
그룹함수

여러 행 또는 테이블 전체에 대해 함수가 적용되어 하나의 결과를 가져오는 함수를 말한다.

그룹 당 하나의 결과가 주어지도록 행의 집합에 대해 연산할 경우 GROUP BY절을 이용하여 

그룹화 할 수 있고 HAVING을 이용하여 그룹에 대한 조건을 제한할 수 있다.

SELECT, HAVING, GROUP BY 절에 사용 가능.

 

그룹함수의 종류

 

주의!

- SELECT 절 뒤에 사용할 수 있는 컬럼은 GROUP BY 뒤에 기술된 컬럼 또는 그룹함수가 적용된 컬럼이어야한다.

  단, 상수인 리터럴은 제외

-WHERE 절을 사용하여 행을 그룹으로 분류하기 전에 제외시킬 수 있다.

-HAVING절을 이용하여 GROUP BY 소그룹을 제외시킬 수 있다.

-GORUP BY 절 뒤에는 컬럼 별칭 및 컬럼순서 정수값을 사용할 수 없다.

-WHERE 절에 그룹함수를 사용할 수 없다. (그룹함수를 사용할 수 있는 GROUP BY절보다 WHERE 절이 먼저 수행된다.)

'DataBase > DQL' 카테고리의 다른 글

6/29 SQL 조인  (0) 2021.06.30
6/29 SQL 그룹함수 보충  (0) 2021.06.29
6/28 SQL 조건문  (0) 2021.06.28
6/28 SQL 변환함수 보충  (0) 2021.06.28
6/26 SQL 변환함수  (0) 2021.06.27

 

DECODE

반드시 일치하는 경우 사용.

 

DECODE (COL | EXPRESSION, SEARCH1, RESULT1.....,SEARCH n, result n, default)

 

데이터를 COL(EXPRESSION)에서 찾을 것이며

만약 search1의 데이터가 존재한다면 result1 의 결과를 출력.

여기서 default의 자리는 else와 같은 역할을 한다고 보면된다.

 

CASE...END

조건이 반드시 일치하지 않아도 범위 및 비교도 가능한 경우 사용.

 

SELECT SAL ,
CASE WHEN SAL>=4001 THEN 'A' 
WHEN  SAL>=3001 THEN 'B' 
WHEN  SAL>=2001 THEN 'C' 
WHEN  SAL>=1001 THEN 'D' 
ELSE 'E' END 등급 
FROM EMP ORDER BY 2;

 

WHEN 은 조건1, THEN 조건1이 참일 경우의 결과값 1

ELSE 는 앞의 조건들이 FALSE인 경우의 결과값

'DataBase > DQL' 카테고리의 다른 글

6/29 SQL 그룹함수 보충  (0) 2021.06.29
6/28 SQL 그룹함수  (0) 2021.06.28
6/28 SQL 변환함수 보충  (0) 2021.06.28
6/26 SQL 변환함수  (0) 2021.06.27
6/26 SQL 날짜함수  (0) 2021.06.27
 TO_CHAR

 

SELECT ENAME, HIREDATE, SAL FROM EMP WHERE TO_CHAR(HIREDATE, 'MM') = 09 ;

 

SELECT TO_CHAR(SYSDATE, 'YYYY"년" MM"월"DD"일"') FROM DUAL; 

주의! '' 작은따옴표 안에 또 다른 작은 따옴표를 못쓰게 되어 있음.

 

TO_DATE

1. SELECT TO_DATE ('20170802', 'YYYYMMDD') FROM DUAL;
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD HH24:MI:SS'; 

주의! 오라클에서는 날짜 형식의 DefaultRR/MM/DD 이기 때문에 

ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD HH24:MI:SS'; 으로 바꿔준 뒤 1번과 같이 출력 가능.

 

 

'DataBase > DQL' 카테고리의 다른 글

6/28 SQL 그룹함수  (0) 2021.06.28
6/28 SQL 조건문  (0) 2021.06.28
6/26 SQL 변환함수  (0) 2021.06.27
6/26 SQL 날짜함수  (0) 2021.06.27
6/26 SQL 숫자처리함수  (0) 2021.06.26
변환함수

숫자, 문자, 날짜 데이터들의 데이터 형을 변환시킬 수 있는 함수를 말한다.

 

함수 설명 반환값
TO_NUMBER 문자 데이터를 숫자 데이터로 변환한다. 숫자
TO_DATE 문자 데이터를 날짜 데이터로 변환한다. 날짜
TO-CHAR 숫자 데이터를 문자 데이터로 변환하거나 날짜 데이터를 문자 데이터로 변환한다. 문자

 

 

TO_CHAR 함수

숫자 및 날짜를 문자로 변환하기 위해서 사용되며 데이터 형 변환 시 추가로 출력형식을 지정할 수 있다.

 

EX) SELECT TO_CHAR(HIREDATE, 'YYYY'), TO_CHAR(123456,'999,999') FROM EMP;

 

출력 시 반드시 단일 따옴표(' ')내부에 기술해야된다.

 

날짜형식 설명
YYYY
YY
MM
MON
DAY
DY
DD
년도 표현(4자리)
년도 표현(2자리)
월을 숫자로 표현
월을 알파벳으로 표현
요일 표현
요일을 약어로 표현
일을 숫자로 표현
시간형식 설명
AM 또는 PM
A.M 또는P.M
HH또는 HH12
HH24
MI
SS
오전(AM), 오후(PM) 시각표시
오전(A.M), 오후(P.M) 시각표시
시간(1~12)
24시간으로 표현(0~23)
분 표현
초 표현

 

EX) SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD, (PM) DY HH:MI:SS') FROM DUAL;

 

 

'DataBase > DQL' 카테고리의 다른 글

6/28 SQL 조건문  (0) 2021.06.28
6/28 SQL 변환함수 보충  (0) 2021.06.28
6/26 SQL 날짜함수  (0) 2021.06.27
6/26 SQL 숫자처리함수  (0) 2021.06.26
6/26 SQL 문자처리 함수  (0) 2021.06.26
SYSDATE

오라클이 설치된 시스템의 현재 날짜를 반환하는 함수이다.

 

EX) SELECT SYSDATE FROM DUAL;

 

연산 결과 설명
날짜 + 숫자 날짜 날짜에 일수를 더하여 반환
날짜 - 숫자  날짜 날짜에 일수를 빼고 반환
날짜 - 날짜 숫자(일수) 두 날짜의 차이(일수)를 반환
날짜 + 숫자/24 날짜 날짜에 시간을 더한다.

 

EX) SELECT SYSDATE 오늘, SYSDATE+1 내일, SYSDATE-1 어제 FROM DUAL;

 

EX) SELECT ENAME, HIREDATE, TRUNC((SYSDATE-HIREDATE)/365) 년 FROM EMP ORDER BY 3;

 

MONTHS_BETWEEN 함수

날짜와 날짜 사이의 개월 수를 반환하는 함수이다.

 

EX) SELECT TRUNC(MONTHS_BETWEEN (SYSDATE, HIREDATE)) FROM EMP ;

 

ADD_MONTHS 함수

지정된 날짜에 특정 개월 수를 더하거나 뺀 날짜를 반환하는 함수이다.

 

EX) SELECT ADD_MONTHS(SYSDATE, 5) FROM DUAL;

 

NEXT_DAY 함수

지정된 날짜를 기준으로 돌아오는 가장 가까운 요일에 해당하는 날짜를 반환하는 함수이다.

 

EX) SELECT NEXT_DAY(SYSDATE,'SUN') FROM DUAL;

ㄴ 돌아오는 일요일의 날짜를 반환하는 값이다.

 

여기서 요일 값을 '월요일', '월' 로 표현할 수 있고

또한 일요일은 1, 월요일은 2 등 숫자를 이용해서 돌아오는 요일 값을 구할 수 있다.

 

LAST_DAY

해당 날짜가 속한 달의 마지막 날짜를 반환하는 함수이다.

 

EX)  SELECT LAST_DAY(SYSDATE) FROM DUAL;

 

ROUND 함수

가장 가까운 년도 또는 월로 반올림을 하여 반환하는 함수이다.

 

EX)  SELECT ROUND(SYSDATE, 'YEAR') FROM DUAL;

'YEAR' 은 년도를 반올림하여 반환시켜주고 'MONTH'는 월을 반올림하여 반환시켜준다.

 

TRUNC 함수

가장 가까운 년도 또는 월로 절삭하여 반환하는 함수이다.

 

EX) SELECT TRUNC(SYSDATE, 'YEAR'), TRUNC (SYSDATE, 'MONTH') FROM DUAL;

 

 

'DataBase > DQL' 카테고리의 다른 글

6/28 SQL 변환함수 보충  (0) 2021.06.28
6/26 SQL 변환함수  (0) 2021.06.27
6/26 SQL 숫자처리함수  (0) 2021.06.26
6/26 SQL 문자처리 함수  (0) 2021.06.26
6/26 SQL 함수  (0) 2021.06.26
ROUND 함수

지정한 자리 수 이하에서 반올림한 결과를 반환하는 함수이다.

 

EX) SELECT ROUND (456.789, 2) FROM  DUAL;

 

소숫점 둘 째자리 이하에서 반올림해서 456.79 결과를 반환한다.

 

EX) SELECT ROUND (456.789, -1) FROM  DUAL;

 

만약 음수값을 지정한다면 정수 첫 째자리까지 반올림하여 460 을 반환한다.

 

TRUNC 함수

지정한 자리 수 이하에서 절삭한 결과를 반환하는 함수이다.

default 값은 0이기 때문에 소수점에서 절삭한다. 

 

EX) SELECT TRUNC (456.789, 2) FROM  DUAL; 

 

소수점 둘 째자리 이하에서 모두 절삭한다.

 

EX) SELECT TRUNC (456.789, -1) FROM  DUAL;

 

정수 첫 째자리 이하는 모두 절삭한다.

 

MOD 함수

나누기 연산을 진행한 후 몫이 아닌 나머지를 반환하는 함수이다.

만약 0으로 나눈다면 값 자체가 반환되어 출력된다.

 

EX) SELECT MOD(10, 3) FROM DUAL;

EX) SELECT ENAME, SAL FROM EMP WHERE MOD(EMPNO,2) = 1;

ㄴ 해석: 사번 번호가 홀수로 끝나는 직원의 이름과 급여를 불러와줘.

 

CEIL 함수

소수점을 가진 실수값을 정수값으로 반환하는 함수이다.

무조건 올림을 하는 함수라 생각하면 된다.

 

EX) SELECT CEIL (10.1) FROM DUAL;

 

FLOOR 함수

CEIL함수의 반대되는 개념이라고 보면된다. 즉, 무조건 내림을 하는 함수라 생각하면 된다.

 

EX) ELECT FLOOR (10.9) FROM DUAL;

 

SIGN 함수

지정된 값이 음수, 양수 또는 0 인지 판단할 수 있는 함수이다.

EX) SELECT SIGN (100), SIGN(-20), SIGN(0) FROM DUAL;

 

SIGN 함수를 이용하면 부등호 (>) 연산자를 사용하지 않고도  월급이 1500보다 큰 사람들을 찾아낼 수 있다.

EX) SELECT ENAME, SAL FROM EMP WHERE SIGN(SAL-1500)=1;

'DataBase > DQL' 카테고리의 다른 글

6/26 SQL 변환함수  (0) 2021.06.27
6/26 SQL 날짜함수  (0) 2021.06.27
6/26 SQL 문자처리 함수  (0) 2021.06.26
6/26 SQL 함수  (0) 2021.06.26
6/24 SQL 정렬  (0) 2021.06.25
정렬

데이터들의 오름차순, 내림차순 정렬을 말한다.

 

Default 값은 ASC(오름차순).

 

EX) SELECT EMPNO, ENAME, HIREDATE FROM EMP ORDER BY HIREDAYE; 

ㄴ해석: HIREDATE를 기준으로 오름차순.

 

EX) SELECT EMPNO, ENAME, HIREDATE FROM EMP ORDER BY HIREDAYE DESC;

ㄴ해석: HIREDATE를 기준으로 내림차순.

 

EX) SELECT EMPNO, ENAME, SAL * 12 ANNUAL FROM EMP ORDER BY ANNUAL;

ㄴ해석:ANNUAL를 기준으로 오름차순.

 

EX) SELECT EMPNO, ENAME, SAL * 12 ANNUAL FROM EMP ORDER BY 3;

ㄴ해석: EMPNO (1번), ENAME (2번), SAL*12ANNUAL (3번) 의 순서를 가지고 있으며 3번 SAL*12ANNUAL를 기준으로 오름차순하겠다는 말임.

 

 

'DataBase > DQL' 카테고리의 다른 글

6/26 SQL 문자처리 함수  (0) 2021.06.26
6/26 SQL 함수  (0) 2021.06.26
6/24 SQL 논리연산자  (0) 2021.06.25
6/24 SQL LIKE연산자  (0) 2021.06.25
6/24 SQL WHERE  (0) 2021.06.25
논리연산자

WHERE절에 부여할 조건이 여러 개라면 사용한다.

 

논리연산자

 

ㅁ WHERE에서 쓸 수 있는 부정 연산자들

부정연산자

 

 

ㅁ연산자의 우선순위

연산자 우선수위

 

'DataBase > DQL' 카테고리의 다른 글

6/26 SQL 함수  (0) 2021.06.26
6/24 SQL 정렬  (0) 2021.06.25
6/24 SQL LIKE연산자  (0) 2021.06.25
6/24 SQL WHERE  (0) 2021.06.25
6/24 SQL NVL, LITERAL, DISTINCT  (0) 2021.06.24

+ Recent posts