- Commit 메모리 버퍼(트랜잭션)에 임시 저장된 데이터 변경 사항을 DB에 반영
- Rollback 메모리 버퍼(트랜잭션)에 임시 저장된 데이터 변경 사항을 삭제하고 마지막 COMMIT 상태(시점)로 돌아감
- Primary Key Not null, Unique, 고유 식별자 역할
- DQL SELECT 데이터 질의 언어
- DDL CREATE, ALTER, DROP
- DML INSERT, UPDATE, DELETE
- DCL 데이터를 다루기 위한 권한을 다루는데 사용되는 언어 GRANT, REVOKE
- 권한의 종류
-
시스템 권한 : DB접속, 객체 생성 권한 (= DDL을 실행할 수 있게 해주는 권한)
CRETAE SESSION : 데이터베이스 접속 권한
CREATE TABLE : 테이블 생성 권한
CREATE VIEW : 뷰 생성 권한
CREATE SEQUENCE : 시퀀스 생성 권한
CREATE PROCEDURE : 함수(프로시져) 생성 권한
CREATE USER : 사용자(계정) 생성 권한
DROP USER : 사용자(계정) 삭제 권한
DROP ANY TABLE : 임의 테이블 삭제 권한
-
객체 권한 : 특정 객체를 조작할 수 있는 권한 (= DML 할 수 있는 권한)
권한 종류 설정 객체
SELECT TABLE, VIEW, SEQUENCE
INSERT TABLE, VIEW
UPDATE TABLE, VIEW
DELETE TABLE, VIEW
ALTER TABLE, SEQUENCE
REFERENCES TABLE
INDEX TABLE
EXECUTE PROCEDURE
- TCL COMMIT, ROLLBACK
- View SELECT 쿼리의 실행 결과를 화면에 저장한 논리적 가상 테이블
- Sequence설명 순차적으로 정수 값을 자동으로 생성하는 객체로 자동 번호 발생기 역할을 함
- 서브쿼리 종류 개념 하나의 SQL문 안에 포함된 SQL문인데 MAIN 쿼리를 보조하는 쿼리문이
- 단일행 서브쿼리
서브쿼리의 조회 결과 값의 개수가 1개인 서브쿼리
- 다중행 서브쿼리
서브쿼리의 조회 결과 값의 행이 여러 개인 서브쿼리
- 다중열 서브쿼리
서브쿼리의 조회 결과 컬럼의 개수가 여러 개인 서브쿼리
- 다중행 다중열 서브쿼리
서브쿼리의 조회 결과 컬럼의 개수와 행의 개수가 여러 개인 서브쿼리
- 상(호연)관 서브쿼리
서브쿼리가 만든 결과 값을 메인 쿼리가 비교 연산할 때
메인 쿼리 테이블의 값이 변경되면 서브쿼리의 결과 값도 바뀌는 서브쿼리
- 스칼라 서브쿼리
상관쿼리이면서 결과 값이 한 개인 서브쿼리
- Number 숫자 자료형(정수, 실수)
- CHAR(100) 고정길이 100Byte 문자열(2000BYTE)
- VARCHAR2(100) 가변길이 100Byte 문자열(4000BYTE)
- Foreign Key
- 자식테이블 먼저 삭제 후, 부모테이블 삭제
- 외래키 제약조건 삭제 후 테이블 삭제
- CASCADE CONSTRAINT
- 참조 무결성을 위한 제약조건으로 참조된 다른 테이블이 제공한 값만 사용하도록 제한을 거는 것
- 참조(REFERENCES)된 다른 테이블의 컬럼이 제공하는 값만 사용할 수 있음
- FOREIGN KEY제약조건에 의해서 테이블간의 관계(RELATIONSHIP)가 형성됨
- 제공되는 값 외에는 NULL(참조하는 값이 없음)을 사용할 수 있음
- 사용자 계정 생성 후 접속 확인 에러 SYS AS SYSDBA 로 계정 생성 모든 권한을 보유한 최고 관리자 계정(SYS)의 데이터베이스 관리자 역할(SYSDBA)로 접속하여 계정을 생성하여야 한다 CREATE USER kim IDENTIFIED BY kim1234; GRANT RESOURCE, CONNECT TO kim;
- AS를 이용한 테이블 복사 시 컬럼명, 테이터타입, NOT NULL
- ALTER구문을 이용해 PRIMARY KEY 추가 ALTER TABLE EMP_COPY200 MODIFY EMP_ID PRIMARY KEY;
- ON DELETE CASCATE 부모키 삭제시 자식키도 함께 삭제됨
- CHECK DEFAULT CHECK 제약조건 : 컬럼에 기록되는 값에 조건 설정을 할 수 있음 지정된 데이터값만 해당컬럼에 값을 넣을수 있도록 조건설정하는 제약조건 STATUS CHAR(1) DEFAULT 'N' CONSTRAINT NN_STATUS NOT NULL, CONSTRAINT CK_STATUS CHECK(STATUS IN('Y', 'N'))
- DEFAULT 사용자가 지정한 기본값
set operator 특징 (집합연산자
- UNION 중복결과를 제거한 두 테이블간의 결합
- UNION ALL 중복결과를 포함하는 두 테이블간의 결합 중복제거를 하지 않아 UNION 보다 실행속도가 빠르다
오름차순 하려했는데 에러가 났다 왜났지? group by -> having