관리 메뉴

IT journey

36일차 제약 조건, 함수, 컬럼 변경, 테이블 변경& 삭제 본문

끄적끄적/Oracle

36일차 제약 조건, 함수, 컬럼 변경, 테이블 변경& 삭제

step 2021. 8. 17. 21:52
728x90
반응형

35일차 함수, 오라클 오브젝트, 인덱스

 

35일차 함수, 오라클 오브젝트, 인덱스

34일차 조인, 서브쿼리(feat. 그 외) 34일차 조인, 서브쿼리(feat. 그 외) 30일차 테이블 복사, 지우기,수정, 함수 이용한 채번 로직 30일차 테이블 복사, 지우기,수정, 함수 이용한 채번 로직 29일차 계

step-journey.tistory.com

34일차 조인, 서브쿼리(feat. 그 외)

 

34일차 조인, 서브쿼리(feat. 그 외)

30일차 테이블 복사, 지우기,수정, 함수 이용한 채번 로직 30일차 테이블 복사, 지우기,수정, 함수 이용한 채번 로직 29일차 계정 생성하고 테이블 만들고 값 추가하는 방법 29일차 계정 생성하고

step-journey.tistory.com

30일차 테이블 복사, 지우기,수정, 함수 이용한 채번 로직

 

 

30일차 테이블 복사, 지우기,수정, 함수 이용한 채번 로직

29일차 계정 생성하고 테이블 만들고 값 추가하는 방법 29일차 계정 생성하고 테이블 만들고 값 추가하는 방법 28일차 오라클에 기록한 내용을 JAVA에 뿌려주려면? 28일차 오라클에 기록한 내용을 J

step-journey.tistory.com

29일차 계정 생성하고 테이블 만들고 값 추가하는 방법

 

29일차 계정 생성하고 테이블 만들고 값 추가하는 방법

28일차 오라클에 기록한 내용을 JAVA에 뿌려주려면? 28일차 오라클에 기록한 내용을 JAVA에 뿌려주려면? 27일차 Oracle & JDBC에 활용되는 함수 27일차 Oracle & JDBC에 활용되는 함수 아래 발행 글을 보시면

step-journey.tistory.com

28일차 오라클에 기록한 내용을 JAVA에 뿌려주려면?

 

28일차 오라클에 기록한 내용을 JAVA에 뿌려주려면?

27일차 Oracle & JDBC에 활용되는 함수 27일차 Oracle & JDBC에 활용되는 함수 아래 발행 글을 보시면 조금 더 쉽게 접근이 가능합니다. 24일차 자바 입출력 2편 24일차 자바 입출력 2편 아래에 있는 이전

step-journey.tistory.com

27일차 Oracle & JDBC에 활용되는 함수

 

27일차 Oracle & JDBC에 활용되는 함수

아래 발행 글을 보시면 조금 더 쉽게 접근이 가능합니다. 24일차 자바 입출력 2편 24일차 자바 입출력 2편 아래에 있는 이전 발행글을 참고하시면 아래 내용을 이해하는데 도움이 됩니다. 1.8 버전

step-journey.tistory.com

26일차 용어 정리& SELECT

 

26일차 용어 정리& SELECT

아래 발행 글을 보시면 조금 더 쉽게 접근이 가능합니다. 아래의 예를 직접 만들었습니다 :) 2021.07.31 - [끄적끄적/Oracle] - 25일차 테이블과 조회 2021.06.10 - [개인공부공간/DBMS] - DBMS - 개요 2021.06.11..

step-journey.tistory.com

25일차 테이블과 조회

 

25일차 테이블과 조회

아래 발행 글을 보시면 조금 더 쉽게 접근이 가능합니다. :) 2021.06.10 - [개인공부공간/DBMS] - DBMS - 개요 2021.06.11 - [개인공부공간/DBMS] - DBMS-Table&레코드와 시퀀스 2021.06.12 - [개인공부공간/DBMS]..

step-journey.tistory.com

 

JAVA-자료형

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :) 1. print(), println(), printf() 의 차이 print() 출력 후 줄을 바꾸지 않습니다. println() 출력 후 자리를 바꿉니다. printf() printf("출력..

step-journey.tistory.com

2021.08.02 - [끄적끄적/Oracle] - 26일차 용어 정리& SELECT

 

26일차 용어 정리& SELECT

아래 발행 글을 보시면 조금 더 쉽게 접근이 가능합니다. 아래의 예를 직접 만들었습니다 :) 2021.07.31 - [끄적끄적/Oracle] - 25일차 테이블과 조회 2021.06.10 - [개인공부공간/DBMS] - DBMS - 개요 2021.06.11..

step-journey.tistory.com

2021.07.31 - [끄적끄적/Oracle] - 25일차 테이블과 조회

 

25일차 테이블과 조회

아래 발행 글을 보시면 조금 더 쉽게 접근이 가능합니다. :) 2021.06.10 - [개인공부공간/DBMS] - DBMS - 개요 2021.06.11 - [개인공부공간/DBMS] - DBMS-Table&레코드와 시퀀스 2021.06.12 - [개인공부공간/DBMS]..

step-journey.tistory.com

2021.06.10 - [개인공부공간/DBMS] - DBMS - 개요

 

DBMS - 개요

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :) DB ○ DB의 정의 다량의 데이터를 저장할 수 있는 저장소입니다. ○ 특징 (1) Real-time Accessibilites(실시간 접근이 가능)  -> 즉시

step-journey.tistory.com

2021.06.11 - [개인공부공간/DBMS] - DBMS-Table&레코드와 시퀀스

 

DBMS-Table&레코드와 시퀀스

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :) ※ 들어가기 전, 공지사항 1. 실습 내용은 이어지므로 차례대로 하는 것을 권장해드립니다. 2. 본문에 들어가기 전, DBMS - 개요

step-journey.tistory.com

2021.06.12 - [개인공부공간/DBMS] - DBMS- 오라클 함수 1편

 

DBMS- 오라클 함수 1편

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :) ※ 들어가기 전 공지사항 DBMS - 개요 편을 참고해 계정을 생성해주시고, 즉시 " data-og-host="step-journey.tistory.com" data-og-source-url..

step-journey.tistory.com

2021.06.14 - [개인공부공간/DBMS] - DBMS-계정권한

2021.06.14 - [개인공부공간/DBMS] - DBMS-데이터를 검색,수정,삭제(feat.오라클 함수 2편)

 

DBMS-데이터를 검색,수정,삭제(feat.오라클 함수 2편)

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :) ※ 들어가기 전 공지사항 DBMS - 개요 편을 참고해 계정을 생성해주시고, 즉시 " data-og-host="step-journey.tistory.com" data-og-source-ur..

step-journey.tistory.com

2021.06.15 - [개인공부공간/DBMS] - DBMS-서브쿼리, join, 제약조건, 뷰

 

DBMS-서브쿼리, join, 제약조건, 뷰

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :) ※ 들어가기 전 공지사항 아래 세 개의 이전 발행글을 미리 보고 오시면 이번 포스팅을 보다 수월하게 이해할 수 있습니다. 1.

step-journey.tistory.com

728x90

1. 제약조건

오라클 DML 문장에서 일어나는 일입니다.

이 제약조건에 대한 타입을 정리해보면 아래와 같습니다.

1. P : PRIMARY KEY

2. R : FOREIN KEY

3. C : CHECK OR NOT NULL

4. U : UNIQUE

 

PRIMARY KEY = NOT NULL + UNIQUE로 값이 없으면 안되고(=NULL) 같은 값이 들어가면 무결성 제약 조건에 위배됩니다.

 

아래 쿼리문을 작성 시 해당 유저가 가지고 있는 컬럼에 해당되는 제약조건에 대한 정보를 볼 수 있습니다.

SELECT *
FROM USER_CONSTRAINTS
WHERE TABLE_NAME = "테이블이름";

아래 쿼리문을 작성 시 제약조건이름과 연관된 컬럼을 볼 수 있는 데이터 딕셔너리를 볼 수 있습니다.

SELECT * FROM USER_CONS_COLUMNS
WHERE TABLE_NAME = "테이블명";

테이블을 만들 때 CHECK나 DEFALUT를 지정하게 되면 

CHECK의 경우에는 저장 가능한 데이터 값의 범위나 조건을 지정하여 설정한 값만을 허용하게 되고

DEFALUT의 경우에는 입력하지 않으면 정해진 값을 입력하게 됩니다.

 

2. 함수

(1) DUMP 함수

DUMP(expression,[,return_format][,start_position][,length])

DUMP 함수는 데이터타입, 바이트 길이 및 expression의 내부 표현 정보를 VARCHAR2 형식으로 반환하는 함수입니다. 이 함수를 쓰는 이유는 띄어쓰기가 잘 안보이므로 이를 통해 해당 아스키코드를 확인하려고 씁니다.* return format

8 8진법
10 10진법
16 16진법
17 단일문자
1008 문자셋(문자인코딩)과 8진법
1010 문자셋과 10진법
1016 문자셋과 16진법
1017 문자셋과 단일문자

(2) LENGTH 함수

한글이나, 영어나 상관없이 1BYTE로 계산해 문자 길이를 보여주는 함수입니다.

(3) LENGTHB 함수

한글은 자신의 시스템 문자셋에 따라 2BYTE가 나오기도 하고 3BYTE가 나오고 

영어는 1BYTE로 나와 그를 이용해 문자길이를 계산해 보여주는 함수입니다.

(4) GREATEST 함수는 인자 중 최대값을 반환해야 할 때 쓰는 함수입니다.

(5) LEAST 함수는 인자 중 최소값을 반환해야 할 때 쓰는 함수입니다.

(6) UID 함수는 현재 사용자의 유일한 ID 번호를 반환하는 함수입니다.

(7) USER 함수는 현재 오라클 사용자를 VARCHAR2 형식으로 반환하는 함수입니다.

(8) USERENV 함수는 현재 세션의 환경정보를 반환하는 함수입니다.

(9) ENTRYID 함수는 사용 가능한 Auditing entry Indetifier를 반환하는 함수입니다.

(10) LABEL 함수는 현재 세션의 Label를 반환하는 함수입니다.

(11) LANGUAGE 함수는 현재 세션에서 사용중인 언어와 디렉토리 값을 반환하는 함수입니다.

(12) SESSIONID : Auditing(감사) Session ID를 반환하는 함수입니다.

(13) TERMINAL : 현재 세션 터미널의 OS ID를 반환하는 함수입니다.

(14) VSIZE : 해당 문자의 BYTE 수를 반환할 때 해당 문자가 NULL를 반환하고 그것이 아니면 BYTE 수를 반환합니다.

(15) TRIM

TRIM ('제거할 문자' FROM '문자')이면 양쪽 다 제거합니다.

이를 통해 TRIM (BOTH '제거할 문자' FROM '문자')가 디폴트인 것을 알 수 있습니다.

TRIM(LEADING '제거할 문자' FROM '문자') 이면 앞만 제거합니다.

TRIM(TRALLING '제거할 문자' FROM '문자') 이면 뒤만 제거합니다.

 

(16) CONCATECONCAT('문자1','문자2') 이면 문자1과 문자2를 붙이는 함수입니다.

 

(17) INSTR : 검색할 때 쓰는 함수입니다.INSTR('문자','검색할 문자') 이면 검색할 문자의 위치를 반환하고INSTR('문자','검색할 문자',위치1,위치2) 이면 검색할 문자를 위치1에서부터 위치2로 발견된 검색할 문자 위치 반환하는 함수입니다.

 

(18) ABS() : 절댓값 함수입니다.

 

(19) ROUND() : 반올림하는 함수입니다.

 

(20) TRUNC() : 절사하는 함수입니다.

 

(21) FLOOR() : 다 떼어버리는 함수입니다.

 

(22) MOD() : 나머지 연산자에 대한 함수입니다.

 

(23) REPLACE(문자열, 바꿀 문자열, 바뀔문자열) : 바꿀 문자열을 바뀔문자열로 바꾸어라

 

(24) NVL2(COLUMN, Express1, Express2) : 해당 컬럼이  NULL 이면 Express2의 값을 반환해주고,해당 컬럼이 NULL 이 아니면 Express1의 값을 리턴합니다.

 

(25) MONTHS_BETWEEN : 개월 수 차감하는 함수입니다.

 

(26) ADD_MONTHS(날짜, 개월 수) : 해당 날짜로부터 지정된 개월 수뒤의 날짜를 보여주는 함수입니다.

 

(27) NEXT_DAY('기준일자','찾을요일') : 기준일자로부터 다음번 지정 요일이 몇일인지 알려주는 함수입니다.

 

(28) LAST_DAY('기준일자') : 기준일자에 해당하는 달을 기준으로 그 해당하는 달의 마지막 날짜를 알려주는 함수입니다.

 

(29) DECODE

DECODE(해당컬럼,조건1, 결과1
		       ,조건2, 결과2)

조건1이면 결과1을 보여주고 조건2이면 결과2를 보여주는 함수입니다.

 

(30) CASE WHEN

CASE WHEN [조건1] THEN [결과1]
				  ELSE [결과2]
          END AS [컬럼]

조건 1이면 결과1 대로 하고 그 외에는 결과2 처럼하며 이에 대한 결과에 대한 컬럼은 컬럼으로 하겠다는 함수입니다.

3. 컬럼변경

컬럼을 추가하면 항상 맨 뒤에 붙습니다.

(1) 해당 컬럼에 데이터가 없는 경우

컬럼의 데이터 타입도 변경 가능& 컬럼의 크기도 변경 가능합니다.

(2) 해당 컬럼에 데이터가 있는 경우

데이터 타입 변경하지 마세요.

(3) 컬럼을 삭제할 때는  아래 쿼리를 이용하면 됩니다.

ALTER TABLE 테이블명 DROP COLUMN 컬럼명;

4. 테이블 변경 & 삭제

(1) 테이블명을 변경할 때는 아래 쿼리를 이용합니다.

RENAME 테이블명 TO 바꿀 테이블명;

(2) 테이블 구조 삭제할 때는 데이터 삭제 시 무결성 제약조건 체크해야 하고

삭제대상 테이블이 다른 테이블과 KEY가 연결 되어있을 경우에는 연결된 조건을 확인하며 순서대로 지워야 합니다. 그 때는 아래 쿼리를 이용해야 합니다.

DROP TABLE 테이블명;

 

728x90
반응형
Comments