반응형
-- 스키마: db 구조와 제약 조건에 관하 전반적인 명세
CREATE SCHEMA 스키마명 AUTHORIZATION 사용자id;
-- 도메인 정의
CREATE DOMIAN 도메인명 [AS] 데이터타입
[DEFAULT 기본값]
[CONSTRAINT 제약조건명 CHECK(값)];
-- 뷰 정의. SELECT문 결과를 뷰로 생성
CREATE VIEW 뷰명(속성명)
AS SELECT문;
-- 인덱스 정의
CREATE [UNIQUE] INDEX 인덱스명 -- UNIQUE: 중복 값 X
ON 테이블명(속성명 [ASC/DESC] -- ASC: 오름차순, DESC: 내림차순
[CLUSTER]; -- 클러스터드 인덱스 설정
-- 테이블 생성
CREATE TABLE 테이블명 (
속성명 타입 [DEFAULT 기본값][NOT NULL],
PRIMARY KEY(속성),
FOREIGN KEY(속성) REFERENCES 테이블(속성),
[ON DELETE SET NULL] -- 참조 테이블 삭제시 값 NULL로
[ON UPDATE CASCADE] -- 참조 테이블 수정시 같이 변경
CONSTRAINT 제약조건명 CHECK(조건)
);
-- 테이블 수정
ALTER TABLE 테이블명
ADD/DROP COLUMN/ALTER 속성명;
-- 테이블 제거
DROP TABLE 테이블명 [CASCADE|RESTRICTED];
-- 권한 부여/취소
GRANT 사용자등급 TO 사용자ID [IDENTIFIED BY 암호];
REVOKE 사용자등급 FROM 사용자ID;
사용자등급: DBA 관리자, RESOURCE 생성 가능, CONNECT 단순 사용자
GRANT 권한 ON 개체 TO 사용자 [WITH GRANT OPTION];
REVOKE [GRANT OPTION FOR] 권한 ON 개체 FROM 사용자 [CASCADE];
권한 종류: ALL, SELECT, INSERT, UPDATE, ...
-- DB 반영/취소
COMMIT;
ROLLBACK [TO 위치];
SAVEPOINT; -- 롤백 위치 저장점 지정
-- 데이터 삽입
INSERT INTO 테이블명(속성)
VALUES(값);
-- 데이터 삭제
DELETE FROM 테이블 [WHERE 조건];
-- 데이터 갱신
UPDATE 테이블명
SET 속성=데이터
[WHERE 조건];
-- 데이터 조회
SELECT [PREDICATE] 속성 [AS 별칭]
FROM 테이블명
[WHERE 조건]
[GROUP BY 속성 HAVING 조건]
[ORDER BY 속성 [ASC}DESC]];
PREDICATE: ALL, DISTINCT, DISTINCTROW(튜플 전체 대상으로 중복 제거)
연산자: = <> < LIKE(%문자열, _문자, #숫자), NOT, AND
-- 그룹 함수
- MAX(), MIN(), COUNT(), SUM(), AVG()
- STDEV(): 표준편차
- VARIANCE(): 분산
-- WINDOW 함수
- ROW_NUMBER(): 레코드에 대한 일련 번호
- RANK(): 윈도우별 순위 (공동 순위 O)
- DENSE_RANK(): 윈도우별 순위 (공동 순위 X)
-- 프로시저: 절차형 SQL을 활용해 특정 기능 수행하는 일종의 트랜지션 언어
CREATE [OR REPLACE] PROCEDURE 프로시저(파라미터)
[지역변수]
BEGIN
SQL문;
END;
EXECUTE 프로시저;
EXEC 프로시저;
CALL 프로시저;
DROP PROCEDURE 프로시저;
-- 트리거: 이벤트 발생마다 관련 작업 자동 수행되는 절차형 SQL
CREATE [OR REPLACE] TRIGGER 트리거 [동작시기][동작] ON 테이블명
REFERENCING [NEW|OLD] AS 테이블명
FOR EACH ROW
[WHEN 조건식]
BEGIN
SQL문;
END;
- 동작 시기: 변경전후 AFTER, BEFORE
- 동작 옵션: INSERT, DELETE, UPDATE
- NEW|OLD: 트리거 적용될 테이블의 별칭 (NEW:추가 수정, OLD: 수정 삭제 전)
- FOR EACH ROW: 각 튜플마다 트리거 적용
- A:=B: A에 B를 저장하라
DROP TRIGGER 트리거;
-- 사용자 정의 함수
CREATE [OR REPLACE] FUNCTION 함수명(파라미터)
[지역변수 선언]
BEGIN
SQL문;
RETURN 반환값;
END;
DROP FUNTION 함수명;
-- 제어문
IF 조건 THEN
SQL;
ELSIF 조건 THEN
SQL;
ELSE
SQL;
END IF;
-- LOOP문
LOOP
SQL;
EXIT WHEN 조건;
END LOOP;
FOR 변수 IN 초기값..종료값
LOOP
SQL;
END LOOP;
WHILE 조건
LOOP
SQL;
END LOOP;
CONTINUE WHEN 조건;
GOTO 레이블; -- 레이블은 <<레이블>> 형태로 작성
-- 커서: 쿼리문 처리 결과가 저장된 메모리 공간을 가리키는 포인터
- Oracle의 특징. MySQL에서 사용 X
- FETCH: 커서에서 원하는 결과값 추출
- 묵시적 커서: 내부에서 자동으로 생성
SQL%FOUND : 패치된 튜플 수 1개 이상 -> TRUE
SQL%NOTFOUND: 패치된 튜플 수 0개 -> TRUE
SQL%ROWCOUNT: RETURN 패치된 튜플 수
SQL%ISOPEN : 커서 열린 상태 -> TRUE
(묵시적 커서는 자동으로 닫히기 때문에 항상 FALSE)
- 명시적 커서: 사용자가 직접 정의해서 사용
CURSOR 커서명(매개변수)
IS
SELECT문; -- 커서 열릴 때 수행
OPEN 커서명(매개변수);
FETCH 커서명 INTO 변수;
CLOSE 커서명;
스키마, 도메인, 뷰, 인덱스 정의 테이블 생성/수정/삭제 권한 부여/취소 DB 반영/취소 데이터 삽입/삭제/수정/조회 그룹 함수 윈도우 함수 프로시저 생성/실행/삭제 트리거 사용자 정의 함수 제어문 루프문 (반복문) 커서 - 묵시적 커서, 명시적 커서
반응형
'Develop > CS' 카테고리의 다른 글
Web Server와 WAS 차이부터 연동 방법까지 (0) | 2021.01.28 |
---|---|
SQL Developer 접속하기 (ORA 12505 오류) (0) | 2021.01.05 |
Oracle 설치 오류: 파일을 찾을 수 없습니다. (0) | 2021.01.05 |
Oracle Database 구버전 다운 받기 (6) | 2021.01.04 |
[HTTP] 쿠키, 세션, 캐시 (0) | 2020.12.30 |