본문 바로가기

개발 & 코딩/Oracle

(14)
오라클 테이블 관련 (Oracle Table) 1. TABLE 생성 CREATE TABLE 테이블명 ( 칼럼명1 타입(크기) NULL여부, 칼럼명2 타입(크기) NULL여부, ... ) 2. TABLE 데이터 INSERT, UPDATE, DELETE 1) INSERT Ex) 직접 데이터를 INSERT하는 경우 > INSERT INTO 테이블명(칼럼1, 칼럼2, 칼럼3, ...) VALUES(칼럼1의데이터, 칼럼2의데이터, 칼럼3의데이터); Ex) 다른테이블의 데이터를 불러와 INSERT하는 경우 > INSERT INTO 테이블명(칼럼1, 칼럼2, 칼럼3, ...) (SELECT 복사하려는테이블의칼럼1, 복사하려는테이블의칼럼2, 복사하려는테이블의칼럼3, ... FROM 복사하려는테이블명 WHERE 조건절); 2) UPDATE > UPDATE 테이블명 ..
오라클 테이블 및 데이터 복구 (Oracle Table & Data Restoration) 1. 테이블이 삭제된 경우 FLASHBACK : 특정한 시간 또는 시점으로 되돌릴 수 있는 기능 1. FLASHBACK을 사용하여 복구 1) 휴지통에서 지운테이블 확인 > SELECT * FROM RECYCLEBIN; ※ 휴지통이 비어있는 경우 복구 못한다.(Ex. PURGE를 한 경우) 2) 휴지통에 있는 테이블 복원 > FLASHBACK TABLE 테이블명 TO BEFORE DROP; 2. FLASHBACK을 사용하기 위한 요구조건 - UNDO MANAGEMENT MODE 조회 1) SYSDBA 권한으로 접속 > sqlplus /nolog > conn /as sysdba or > sqlplus "/as sysdba" 2) UNDO MANAGEMENT MODE 확인 > SHOW PARAMETER UND..
오라클 USER Table 한번에 삭제 ※ 테이블 삭제하려는 유저로 접속(system으로 접속하면 DB 다날라감!!) ※ 항상 지우려는 유저로 접속하여 시퀀스 실행!!! BEGIN FOR C IN (SELECT TABLE_NAME FROM USER_TABLES) LOOP EXECUTE IMMEDIATE ('drop table '||C.TABLE_NAME||' cascade constraints'); END LOOP; END;
오라클(Oracle) 순차적으로 값이 증가하게 시퀀스(Sequence) 설정 1. Sequence 란? : Oracle 내부에서 순차적으로 증가되는 값을 가지는 유일한 객체 : Sequence를 생성하게 되면 이것을 이용하여 순차적으로 증가되는 관리번호 같은 것 등을 자동 생성한다. : 테이블과 독립적으로 생성되므로 여러 테이블에서 사용될 수 있다. 2. Sequence 생성하기 create sequence [시퀀스 명] start with [n]: n을 시퀀스 시작 값으로 설정 increment by [n]: n만큼 시퀀스 증가 maxvalue [n] | nomaxvalue: 지정된 숫자만큼 최대값이 정해진다. minvalue[n] | nominvalue: 지정된 숫자만큼 최소값이 정해진다. cycle | nocycle 3. 사용하는 Sequence 확인하기 select * f..
오라클 특정문자 위치 구하기 1. 특정문자 위치 계산방법 > SELECT INSTR ('hello heidi', 'he') RESULT1--첫번째로 시작하는 he의 위치 ,INSTR ('hello heidi', 'he', 4) RESULT2--문장의 4번째이후에 시작하는 he의 위치 FROM DUAL 결과값 RESULT1RESULT2 17 이걸 응용해보면.. > SELECT SUBSTR('hello heidi', 1, INSTR ('hello heidi', 'he')+5) AS RESULT1 ,SUBSTR('hello heidi', INSTR ('hello heidi', 'he', 2)) AS RESULT2 FROM DUAL 결과값 RESULT1RESULT2 helloheidi
오라클 DB 칼럼 설정 (Oracle DB Column Setup) 오라클 칼럼 설정괄련 자료 정리해봤습니다. 1. 컬럼명 변경 ALTER TABLE 테이블명 RENAME COLUMN 기존컬럼명 TO 변경할컬럼명; 2. 컬럼 타입수정 ALTER TABLE 테이블명 MODIFY ( 컬럼명 varchar2(100) [NULL]|[NOT NULL] ); 3. 컬럼 삭제 ALTER TABLE 테이블명 DROP COLUMN 컬럼명 4. 컬럼 추가 ALTER TABLE 테이블명 ADD ( 컬럼명 varchar2(100) default '' ); 5. 컬럼의 제약조건 삭제 ALTER TABLE 테이블명 DROP PRIMARY KEY: ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건ID 6. 외래키 추가 ALTER TABLE 테이블명 ADD CONSTRAINT 외래..
오라클 DB 순위 구하기 1. 순위는 구하되 같은 값의 순서는 무시하는 방법 ROW_NUMBER() OVER(ORDER BY 정렬할 필드) 100, 90, 90, 80, 80, 80, 70, 60의 값이 있을 때 순위는 1, 2, 3, 4, 5, 6, 7, 8 이 된다. 2. 같은 값은 동등한 순위로 매기는 방법 RANK() OVER(ORDER BY 정렬할 필드) 100, 90, 90, 80, 80, 80, 70, 60의 값이 있을 때 순위는 1, 2, 2, 4, 4, 4, 7, 8 이 된다. 3. 같은 값은 동등한 순위로 매기지만 다음 순위가 순차적으로 매겨지는 방법 DENSE_RANK() OVER(ORDER BY 정렬할 필드) 100, 90, 90, 80, 80, 80, 70, 60의 값이 있을 때 순위는 1, 2, 2, 3..
오라클 DB 비밀번호 대소문자 구분 오라클 로그인 시 사용하는 비밀번호의 대소문자를 구분하도록 설정하거나 설정하지 않으려고 할때 사용하면 됩니다. Oracle 11g에서 패스워드 대소문자 구분여부 > 대소문자 구분을 하려면 true > 대소문자 구분을 안하려면 false 적용방법 > CMD 실행 > sqlplus "/as sysdba" > alter system set sec_case_sensitive_logon=false/true;