설득이 2023. 12. 28. 19:33

오늘은 SQL 기본 문법에 관한 강의를 들었다.

강의를 듣고 복습하면서, 까먹은 개념과 좀 더 이해가 필요한 개념을 정리해보려고 한다.

 

Q1. 트랜잭션이란?

  • 논리적인 연산의 단위
  • 분할할 수 없는 최소한의 단위
  • 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위 

세 번째 개념에서 말하는 데이터베이스의 상태를 변화는 SELECT, INSERT, DELETE, UPDATE와 같은 구문을 말한다.

 

트랜잭션은 최소한의 조작 묶음이라는 원자성, 처리 결과가 항상 일관성이 있어야 하며, 다른 트랜잭션의 연산에 영향을 미칠 수 없는 독립성을 가져야 하고, 트랜잭션이 성공일 경우 그 결과가 영구적으로 유지되어야 하는 지속성이 있다.

 

Q2. 합성 연산자? 

합성 연산자는 말 그대로 문자와 문자를 합성해주는 연산이다.

합성 연산자는 '문자' || '문자', 컬럼명 || '문자, '문자'+'문자', CONCAT(문자1, 문자2)가 있다.

 

예를 들면, 아빠의 키는 175cm이고 몸무게는 68kg입니다!를 SELECT 문으로 표현하면,

SELECT F_NAME || '의 키는' || HEIGHT || 'cm이고 몸무게는' || WEIGHT || 'kg입니다!' FROM FAMILY

 

Q3. TOP()는 오라클에서 사용이 안되는가? 

오라클에서 사용할 수 없대.

TOP() 함수는 SQL SERVER에서만 제공하고 있대.

 

Q4. 리턴? 리턴값?

리턴은 함수의 결과값을 출력하는 방법으로 결괏값은 RETURN 명령어로만 받을 수 있다. 만약 결괏값이 없다면, 반환값으로 NONE, NULL이 나온다.

리턴값은 결과 값이 있는 함수이고, 실행문을 강제로 종료하는 역할을 한다.

 

Q5. DCL

DCL은 데이터베이스에 권한을 부여할 떄 사용하는 문법으로 사용하는 순간 해당하는 자겅비 즉시 완료되는 특성을 가지고 있다.

DCL에 사용하는 명령어로는 권한을 정의할 때 사용하는 GRANT와 권한을 삭제할 때 사용하는 REVOKE가 있다. 

REVOKE는 GRANT 명령으로 주어진 권한을 삭제할 떄 사용한다. 

 

사용자 등급 지정
GRANT <사용자등급>
TO <사용자 ID 리스트> [IDENTIFIED BY 암호];

 

사용자 등급 해제
REVOKE <사용자등급>
FROM <사용자 ID 리스트>;

 

테이블 및 속성에 대한 권한 부여
GRANT <권한_리스트>
ON <개체>
TO <사용자> [WITH GRANT OPTION];

 

테이블 및 속성에 대한 권한 취소
REVOKE [GRANT OPTION FOR] <권한 리스트>
ON <개체>
FROM <사용자> [CASADE];

 

  • 권한종류: ALL, SELECT, INSERT, DELETE, UPDATE, ALTER 등
  • WITH GRANT OPTION: 부여받은 권한을 다른 사용자에게 다시 부여할 수 있는 권한을 부여
  • GRANT OPTION FOR: 다른 사용자에게 권한을 부여할 수 있는 권한을 취소
  • CASCADE: 권한 취소 시 권한을 부여받았던 사용자가 다른 사용자에게 부여한 권한도 연쇄적으로 취소함