ㅡ. 트랜잭션 특징

연속성(Durability)는 그 실행을 성공적으로 완료하면 영구적으로 반영되어야 한다. 

 

ㅡ. SQL실행 순서

Parsing -> Execution -> Fetch

 

ㅡ. 테이블 이름 변경

*(emp->new_emp)

alter table emp rename to new_emp

 

ㅡ. 테이블 칼럼 추가

*(age칼럼은 숫자형 2자리 기본값1)

alter table emp add (age number(2) default 1);

 

ㅡ. INSERT문의 성능을 향상시키기 위해 Buffer Cache의 기록을 생략하는 옵션은?

Nologging옵션

 

ㅡ. 테이블 구조는 삭제하지 않고 모든 데이터를 삭제하는 SQL문은? (데이터 삭제후에 테이블의 공간은 초기화)

TRUNCATE TABLE EMP;

 

ㅡ. 문자열 결합에 사용되는 것은?

||

 

ㅡ. NULL에 대한 설명

NULL은 숫자 혹은 날짜와 더해지면 NULL이 된다. 

 

ㅡ. COUNT(*) 와 COUNT(EMP) 차이는?

COUNT(*) 은 NULL값을 포함한 행수의 계산 

COUNT(EMP)는 NULL을 제외한 행 수를 계산

 

ㅡ. 날짜형 데이터를 문자로 변환할때 사용하는 변환 함수는?

TO_CHAR()

 

ㅡ. TCL, DCL 

TCL : COMMIT, ROLLBACK
DCL : GRANT, REVOKE

 

ㅡ. coalesce!

coalesce는 null이 아닌 첫번째 인자값을 반환한다. 

 

ㅡ. 참조하는 테이블 DEPT 테이블의 DEPTNO, 외래키 이름은 FK_DEPT이다. 외래키를 추가하는 ALTER TABLE문 작성.

ALTER TABLE EMP ADD CONSTRAINT FK_DEPT FOREIGN KEY (DEPTNO) REFERENCES DEPT(DEPTNO)

------

 

 

ㅡ. SELECT 합치기 

UNION ALL (중복을 제거하지 않고 모두 합쳐서 보여준다.)

UNION (중복되는 행은 하나만 표시한다.)

SELECT MAX(A), MAX(B) FROM 
( SELECT 'HI' A, '' B FROM EMP,
  UNION ALL
  SELECT '' A, 'GO' B FROM EMP );
  

하나로 합쳐져서 나온다. 

 

ㅡ. 데이터제어어(DCL)

REVOKE, GRANT

 

ㅡ. 데이터 정의어(DDL)
CREATE, ALTER, DROP, RENAME

 

ㅡ. SQL

As-Is : 비절차적 데이터 조작어(DML)은 사용자가 무슨 데이터를 원하지만 명세 하고

To-Be : 비절차적 데이터 조작어(DML)은 사용자가 무슨 데이터를 원하는지만 명세하지만, 절차적 데이터 조직어는 어떻게 데이터를 접근하는지 명세한다. 절차적 데이터 조작어로는 PL/SQL, T-SQL 등이 있다.

호스트 프로그램 속에 삽입되어 사용되는 DML명령어들은 데이터 부속어 라고도 한다. (Data Sub Language)

 

ㅡ. 

DDL : CREATE, DROP, ALTER, RENAME

DML : SELECT, INNSERT, UPDATE, DELETE

DCL : GRANT, REVOKE

TCL : COMMIT, ROLLBACK

 

 

ㅡ. Foreign key 제약조건

[ 주문 ] 테이블에 주문번호, 주문품목, 개수 를 컬럼으로 가진 테이블이 있다고 가정했을 때

[ 주문 ] 테이블의 주문번호주문테이블의  주문번호를 참조

ALTER TABLE [ 주문 ] ADD CONSTRAINT [제약조건 이름] FOREIGN KEY(고객번호) REFERENCES 주문고객(고객번호);

 

주문 테이블의 고객번호는 주문고객의 고객번호를 참조한다.

 

*ref : https://everyday-deeplearning.tistory.com/entry/ORACLE-SQL%EC%A0%9C%EC%95%BD%EC%A1%B0%EA%B1%B4%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%A0%95%EC%A0%9C%ED%95%98%EA%B8%B0

 

1. NOT NULL

2. PRIMARY KEY위치

e.g) ALTER TABLE PRODUCT ADD CONSTRAINT PRODUCT_PK PRIMARY KEY(PROD_ID)

3. PK 지정 문법

e.g) Table생성할때 

주문법호 number(10) PRIMARY KEY, 

 

ㅡ. NULL은 공백문자 숫자 0을 의미하지 않는다. 

 

ㅡ. 

CREATE TABLE S
(B INTEGER PROMARY KEY,
 C INTEGER REFERENCES T(C) ON DELETE CASCADE); 
 //CASCAD시 B,C 컬럼 다 날라간다. 

 

ALTER TABLE EMP ADD CONSTRAINT EMP_PK PRIMARY KEY(EMP_NO)

ㅡ. 테이블명과 칼럼명은 반드시 문자로 시작한다. 

 

ㅡ. 인덱스 생성

CREATE INDEX [인덱스명] ON [테이블명](컬럼1, 컬럼2, 컬럼3 ......)
e.g) CREATE INDEX EX_INDEX ON CUSTOMERS(A, B)

 

ㅡ. Count(*) 응용

create table 학생(학번 char(8) primary key, 장학금 integer);
select count(*) from 학생
select count(학번) from 학생

학번이 이미 primary key이기 때문에 NULL이 존재할 수 없다. 따라서 둘 결과는 같다.

 

ㅡ. 

외래키는 널 값을 가질 수 있다. 한 테이블에 여러개가 존재할 수 있다. 

 

ㅡ. EMP테이블에서 COMMM 칼럼 삭제
ALTER TABLE EMP

DROP COMMM;

 

ㅡ. 참조무결성 규정

Cascade : Master 삭제되면 Child 도 함께 삭제가 된다. 

지금 [ 직원 ] 테이블에서 [ 부서 ] 테이블을 참조하고 있는데 Master 가 [ 부서 ] 가 되므로 

Delete from 부서 where 부서번호 = '20' 이라 하면 부서의 값이 지워지게 되고 따라서 [ 직원 ] 테이블에서 

on delete cascade로 참조 무결성 규정으로 [ 직원 ] 테이블에서 '2000', '3000' 값이 삭제된다.

 

ㅡ. 테이블 이름 변경

RENAME OLD_OBEJCT_NAME TO NEW_OBJECT_NAME 

 

ㅡ. 참조동작

Child Table 의 FK 데이터 생성시 Parent Table에 PK가 없는 경우

Child Table 데이터 입력을 허용하지 않는 참조 동작

 

->DEPENDENT

 

ㅡ. 

칼럼이 ID, AMT, DEGREE 3개가 있을때

칼럼을 명시하지 않는 경우는 뭐든 컬럼을 삽입해야 한다. 

e.g) INSERT INTO TBL VALUES(1,200) (X)

NOT NULL인것은 반드시 삽입해야 한다. 

e.g) STUDENT가 NOT NULL 옵션이 있는데 

INSERT INTO TABLE(ID, DEGREE) VALUES(4, 'O') 라고 하면 STUDENT가 존재 하지 않으므로 이러한 쿼리는 허용되지 않는다.

 

'Sqld' 카테고리의 다른 글

SQLD05 :: sqld-모의고사  (0) 2020.09.02
SQLD04 :: SQL최적화의 원리(1)  (0) 2020.09.01
SQLD03 :: SQL기본과 활용  (0) 2020.08.31
SQLD02 :: 동적SQL  (0) 2020.08.26
SQLD01 :: SQLD 시작(SQL Base)  (0) 2020.08.24