[SQLD] SQL 기본 문법
오늘은 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: 권한 취소 시 권한을 부여받았던 사용자가 다른 사용자에게 부여한 권한도 연쇄적으로 취소함