라일락 꽃이 피는 날

[Oracle] 일반 테이블 생성 본문

프로그래밍/Oracle

[Oracle] 일반 테이블 생성

eunki 2022. 6. 8. 17:23
728x90

create 문으로 만들 수 있는 데이터베이스의 오브젝트

1. table : 데이터베이스에 데이터를 저장하는 기본 저장소

2. view : 복잡한 쿼리를 간단하게 엑세스 하기 위한 db object

3. index : 대용량 데이터에서 특정 데이터의 검색을 빠르게 할 수 있는 db object

4. sequence : 번호 생성기

5. synonym : 동의어 (예: 핸드폰 기계는 하나인데 번호가 2개인 경우)

 

 

 

create table 다음에 테이블명을 적으면 되는데, 테이블명을 지을 때는 반드시 문자로 시작해야 한다.

그리고 테이블명의 길이는 30자를 넘을 수 없고, 특수문자는 $, _, # 만 포함할 수 있다.

컬럼명 다음에는 데이터 유형을 기술하는데, 데이터 유형이 3가지가 있다.

 

  1. 문자형 : char, varchar, long, clob, blob
  2. 숫자형 : number
  3. 날짜형 : date

 

 

 

number(10) : 숫자를 10자리 허용하겠다.

number(10,2) : 숫자를 10자리 허용하는데, 10자리 중 2자리는 소수점 자리로 쓰겠다. (예: 292.32)

varchar2(10) : 문자를 10자리 허용하겠다. (영어 철자 10개를 허용하겠다. 한글 5개를 허용하겠다.)

date : 날짜형 데이터 유형으로 날짜를 9999/12/31 까지 입력할 수 있다.

 

 

 

char 와 varchar2 의 차이점

  char varchar2
데이터 유형 문자형 문자형
특징 고정형 가변형
허용 길이 2000 4000

char 는 데이터를 입력하고 남은 공간을 회수하지 않는다.

varchar2 는 데이터를 입력하고 남은 공간을 회수하여 저장 공간 낭비가 생기지 않게 한다.

 

 

 

long 과 clob 의 차이점

long 과 clob 은 아주 큰 텍스트 데이터를 입력할 때 사용하는 데이터 유형이다.

long 은 최대 2gb 까지 문자 데이터를 저장할 수 있고, clob 은 최대 4gb 까지 저장할 수 있다.

 

 

 


 

 

 

 

예제 1. 사원 번호, 이름, 월급, 입사일을 저장하는 테이블을 생성

create table emp93
( empno number(10),
  ename varchar2(10),
  sal   number(10,2),
  hiredate  date );

 

 

 

예제 2. 보이스 피싱 테이블의 한글 텍스트를 어절 별로 나눈 테이블 생성

create table voice_text
as
select regexp_substr(voice_text, '[^ ]+', 1, num) as word
    from voice v, ( select level as num
                        from dual
                        connect by level <= 100 );

 

 

 

예제 3. 보이스 피싱 범인 목소리 텍스트에는 긍정 단어가 많은지 부정 단어가 많은지 확인

create table positive_kor
( p_text    varchar2(2000) );

create table negative_kor
( n_text    varchar2(2000) );
select count(*)
    from voice_text v
    where exists ( select *
                    from positive_kor p
                    where p.p_text = v.word );
                                       
select count(*)
    from voice_text v
    where exists ( select *
                    from negative_kor n
                    where n.n_text = v.word );

voice_text 의 어절을 제일 처음부터 하나씩 서브 쿼리의 v.word 에 넣고 존재하는지 확인한다.

그래서 존재하면 출력이 되고, 존재하지 않으면 출력이 되지 않는다.

 

 

 

 

컬럼 변경하는 alter 명령어

 

1. 컬럼 추가

alter table 테이블명
    add 컬럼명 데이터타입;

 

2. 컬럼 삭제

alter table 테이블명
    drop column 컬럼명;

 

3. 컬럼 변경 : 컬럼의 길이를 늘릴 때 사용

alter table 테이블명
    modify 컬럼명 데이터타입;

 

4. 컬럼 이름 변경

alter table 테이블명
    rename column 이전 컬럼명 to 새로운 컬럼명;
728x90

'프로그래밍 > Oracle' 카테고리의 다른 글

[Oracle] View (뷰)  (0) 2022.06.09
[Oracle] 임시 테이블 생성  (0) 2022.06.09
[Oracle] 계층형 질의문  (0) 2022.06.07
[Oracle] 서브 쿼리를 사용하여 데이터 활용  (0) 2022.06.03
[Oracle] Select For Update  (0) 2022.06.03