초급의 끄적거림

[SQL] Sequence (시퀀스), 오라클DB 함수 본문

DB/Oracle

[SQL] Sequence (시퀀스), 오라클DB 함수

codingD 2019. 6. 25. 21:30

[데이터베이스˙테이블 생성, 삭제]

  데이터베이스 생성 : creat database DB명; (DB명은 절대 한글 불가)

  데이터베이스 삭제 : drop database DB명;

 

  테이블 생성 : creat table 테이블명;

  테이블 삭제 : drop table 테이블명;

 

[Sequence (시퀀스)]

  참고 :  https://ninearies.tistory.com/11?category=840320

  오라클에서 자동으로 일련번호를 부여 (어떤 DB든지간에 다 존재함)

  아무 설정이 없으면 처음은 1부터 시작

 

 1) 시퀀스 생성

  create sequence 시퀀스명

  increament by 증가값

  start with 시작값;

 

  increament by 5

  start with 1;

→ 시작은 1부터, 5씩 올라가서 1 6 ~~이 됨

 

 2) 시퀀스에서 일련번호 발생 : 시퀀스명.nextval

 3) 시퀀스 삭제 : drop sequence 시퀀스명

[오라클 DB의 자료형]

 1) 숫자형

   int          표준

   number   정수형

   numer(a,b)   실수형 (b를 포함한 전체 자리수가 a인데 소수점은 b까지 표현)

    ex) number(5,2)  : 들어갈 수 있는 최대의 수는 999.99

 

 2) 문자형

  ⊙ char       표준, 고정형 (최대 2000바이트)

   ex) 5글자로 잡았는데 'SKY'라고하는 3글자가 들어가게 되면 그대로 2글자는 뒤로 공백으로 남게 됨 → 'SKY  '

   varchar   표준, 가변형

   ex) varchar(5) 'SKY'가 들어가면 상관없이 'SKY'로 표현됨

       아이디, 비번, 이름, 주소 등이 해당, 메모리를 효율적으로 사용할 수 있음

   varchar2  가변형, 오라클에서 만든 표현이지만 들어가면서 varchar로 이해 (최대 4000바이트)

 

 3) 날짜형 (년월시분초)
    date 
    sysdate : 현재 시스템의 날짜 함수 (오라클에서 사용하는 것)

 

[sungjuk 테이블 생성]

  특정짓지 못하는 테이블은 잘 못 만든 것, 동명이인과 같이 겹치는 상황이 발생할 때는 어려움이 발생

  시퀀스 이름과 테이블 이름이 같은 경우 설계가 안될 수도 있기 때문에 주의할 것.

sungjuk 테이블 생성

 

행 추가 후 count를 이용해 행의 개수 파악

※ [cmd 창에서 출력 칸 수 조절하기] 
  단, 자료형 int, number와 같은 숫자를 수정할 경우 #으로 에러 날 수 있음
col uname for a8;       -- uname 칼럼을 8칸 내에서 출력
col addr for a6;        -- addr 칼럼을 6칸 내에서 출력

 

[오라클 함수]

  dual 테이블 : 결과값을 일시적으로 출력할 때 유용한 임시 테이블 
 
select lower('Hello World') from dual;            -- 소문자로 변환
select upper('Hello World') from dual;           -- 대문자로 변환 
select concat('Hello', 'World') from dual;        -- 두 개의 문자열 연결
select substr('HelloWorld', 6) from dual;         -- 문자열의 6번째 자리부터 전체 추출
select substr('HelloWorld',1, 5) from dual;       -- 문자열의 1번째 자리부터 5자 추출
select instr('HelloWorld', 'W') from dual;         -- 문자열에서 특정문자의 위치를 세는 함수, 만약 특정문자가 문자열에 없다면 0 반환
select trim(' SQLPLUS') from dual;                -- 공백을 제거
select ltrim('*SQLPLUS','*') from dual;           -- 좌측부터 문자열에서 해당하는 함수를 제거
select rtrim('SQLPLUS*', '*') from dual;          -- 우측부터 문자열에서 해당하는 함수를 제거
select replace('SEVLTL', 'L', 'EN') from dual;    -- 문자열에서 해당하는 문자를 다른 문자로 바꿔줌

select abs(-7) from dual;                           -- 절대값
select mod(1500, 200) from dual;                -- 1500/200의 나머지
select ceil(1.123) from dual;                     
select ceil(-1.623) from dual;                      -- 소수점 첫째자리에서 해당값을 반올림 처리한 정수를 반환하고 해당 값보다는 크지만 가장 근접하는 최소값을 구하는 함수 
select floor(1.123) from dual;                    
select floor(-1.123) from dual;                   -- 소수점 첫째자리에서 해당 값을 내림 처리한 정수를 반환하고 해당 값보다는 작지만 가장 근접하는 최대값을 구하는 함수
select round(17.825, 2) from dual;                -- round(n, m) : 해당 숫자 n에 m자리까지 반올림하는 함수
select round(17.825, 0) from dual;
select round(17.825, -1) from dual;
select trunc(17.825, 2) from dual;
select trunc(17.825, 0) from dual;
select trunc(17.825, -1) from dual;

 

 

Comments