오라클 정리
* regedit 에서 언인스톨
1. 서비스 중지
2. software에 오라클 삭제
3. system 에 control set service 오라클과 관련된 전부다 삭제
4. 물리적인 삭제 (c:\app , programfiles\oracle)
* 유저 생성 및 권한 설정
create user workshop identified by workshop;
grant resource, connect to workshop;
*ROWNUM
쿼리 결과로 나오게 되는 각각의 행들에 대한 순서값을 가리킨다.
주로 특정 개수난 그 이하의 행를 선택할때 사용된다.
*ROWID
테이블에 저장된 각각의 행들이 저장된 주소값을 가리킨다.
즉 행들의 고유 주소값이다.
*별칭
별칭이 공백이 있으면 ""를 붙인다.
* is null
nvl(컬럼, 0) : 컬럼이 널이면 0
nvl(컬럼, 1, 2) : 컬럼이 널이면 1, 아니면 2
* 문자열 합치기
||
* 리터널
문자, 숫자, 날짜 값은 ''을 붙인다.
*비교 연산자
다르자는 <>, !=, ^=, <>는 동일한 의미를 같는다.
*like연산자
_L% 는 경우 앞에 한글자가 있고 뒤에 L이 와야 한다는 뜻
* in 연산자
in연산자를 쓸경우 내부적으로 자동으로 or연산자로 변경된다고 함.
* order by
컬럼, 식, 인덱스번호 등 3가지로 정렬이 가능하다
* 주민등록번호 별표 마킹
select RPAD(SUBSTR(STUDENT_SSN, 1, 8), 14, '*') FROM TB_STUDENT;
예) 811111-1******
* 음수 양수 확인
sign 함수로 0이면 0, 양수 1, 음수 -1를 반환한다.
* 날짜 저장
오라클은 RR, YY라는 의미가 있음
RR은 현재 날짜, YY 해당 날짜 임
* 날짜 함수
select sysdate, systimestamp from dual;
<- to_number to_date ->
숫자 문자 날짜
to_char -> <- to_char
* 그룹 함수는 널을 무시하지 않고 카운트에 포함한다.
* 제약조건 확인
select * from USER_CONSTRAINTS;
select * from USER_CONS_COLUMNS;
*안시 조인
안시 조인은 where 절이 없다?
* 서브 쿼리
- all 연산자
: 메인 쿼리의 조건이 서브 쿼리에 모든 조건에 만족해야 함
- any연산자
: 메인 쿼리의 조건이 하나만 만족해도 됨
- exists
: 서브쿼리의 결과가 있는지 체크하여 있으면 메인쿼리랑 없으면 결과 없음 리턴
* 서브 쿼리 실행
- from만 메인쿼리가 먼저 실행. 나머지는 서브쿼리가 먼저 실행
* 트랜잭션
- 명시적 종료 : commit, rollback
- 묵시적 종료 : exit(commit), 창닫기(rollback)
* 트랜잭션 시작 종료
- 시작 : DML명령을 시작한 경우
- 종료
: 사용자가 commit 도는 rollback을 명시적으로 실행한 경우
: DDL문장을 실행한 경우
: DCL문장을 실행한 경우
: 사용자가 exit로 프로그램을 종료한 경우
: 하드웨어 고장 또는 시스템 오류시(rollback)
* union vs union all
: union은 중복이 제거 되며 자동으로 값을 정렬한다.
: union all 은 중복이 제거 되지 않으며 값도 정렬 되지 않는다.
*제약조건
- 제약 조건 중 not null은 컬럼레벨에만 적용, 테이블 레벨에서는 안되고 나머지는 둘다 가능
*pk 네이밍 규칙
테이블명_컬럼명_pk이름
* 테이블 정보 보기
select * from tab;
* table 삭제
delet만 하면 휴지통에 버리는 거고 + PURGE 를 붙혀야 완전삭제
* 테이블 복구
flashback table 테이블명 to before drop;
* 데이터 삭제
truncate는 ddl이기 때문에 자동 트랜잭션. 그래서 롤백이 안된다.
수행 속도도 truncate가 더 빠름.
delete인 경우는 복사복을 만들고 지움.
* 데이터 저장공간
- block : I/O단위
- extent : 메모리 할당 단위(block들의 집합)
논리적인
block -> extent -> segment(table로 이해하면 쉽다) -> tablespace -> data base;
물리적인
os블록 = block
tablespace = data파일(*.dbf)
* 사용자가 생성한 뷰 목록 보기
select * from user_views;
* 뷰는 수정이 없고 create or repalce 를 이용하여 없으면 만들고 있으면 다시 생성함.
* 시퀀스 정보 보기
select * from user_sequences;
* 실행계획 보기
f10
* 인덱스를 이용하지 않는 경우
not 같은 부정
null 관련
컬럼 변형(to number)