순수 관계 연산자 : SELECT, PROJECT, JOIN, DIVIDE

 

USING을 사용할 떄는 ALIAS나 테이블 이름과 같은 접두사가 붙을 수 없음

 

CROSS JOIN : Cartesian Product를 만들기 위한 SQL 문장

 

Join에 있어서 주키와 외래키는 영향을 미치지 않는다

 

집합 연산자 종류 : UNION, UNION ALL, INTERSECT, EXCEPT

 

PRIOR : CONNECT BY 절에 사용되며, 현재 읽은 컬럼을 지정한다

START WITH : 계층 구조 전개의 시작 위치를 지정하는 구문, 즉 루트 데이터를 지정

ORDER SIBLINGS BY : 형제 노드(동일 LEVEL) 사이에서 정렬을 수행

 

루트 노드의 LEVEL 값은 1이다

 

셀프 조인이란 동일 테이블 사이의 조인, 한 테이블 내에서 두 칼럼이 연관 관계가 있을 때 사용

반드시 테이블 별칭 alias를 사용해야 함

 

서브쿼리 사용시 주의사항

- 서브쿼리를 괄호로 감싸서 사용한다

- 서브쿼리는 단일행 또는 복수행 비교 연산자와 함꼐 사용 가능하다

- 서브쿼리에서는 ORDER BY를 사용하지 못한다

 

주로 메인쿼리에 값을 제공하기 위한 목적으로 사용되는 것은 비연관 서브쿼리다

 

FROM 절에서 사용되는 서브쿼리를 인라인 뷰라고 하며, 동적으로 생성된 테이블인 것처럼 사용 가능

데이터베이스에 해당 정보가 저장되지 않는다

 

사용의 장점

- 독립성 : 테이블 구조가 변경되어도 뷰를 사용하는 응용 프로그램은 변경하지 않아도 된다

- 편리성 : 복잡한 질의를 뷰로 생성함으로써 관련 질의를 단순하게 작성할 수 있다. 또한 해당 형태의 SQL문을 자주 사용할 때 뷰를 이용하면 편리하게 사용할 수 있다

- 보안성 : 직원의 급여정보와 같이 숨기고 싶은 정보가 존재한다면, 뷰를 생성할 때 해당 칼럼을 빼고 생성함으로써 사용자에게 정보를 감출 수 있다

 

윈도우 함수 처리로 인해 결과 건수는 줄지 않는다

 

LAG 함수를 이용해 파티션별 윈도우에서 이전 몇 번째 행의 값을 가져올 수 있고, LEAD 함수를 통해 이후 몇 번째 행의 값을 가져올 수 있다, SQL Server에서는 지원하지 않는 함수이다

 

DBMS에 생성된 USER와 다양한 권한들 사이에서 중개 역할을 할 수 있도록 ROLE을 제공한다. 이러한 ROLE을 DBMS USER에게 부여하기 위해서는 GRANT 명령을 사용하며, ROLE을 회수하기 위해서는 REVOKE 명령을 사용한다

 

PL/SQL의 특징

- PL/SQL은 Block구조로 되어있어 각 기능별로 모듈화가 가능

- 변수, 상수 등을 선언하여 SQL 문장 간 값을 교환한다

- IF, LOOP 등의 절차형 언어를 사용하여 절차적인 프로그램이 가능하도록 한다

- DBMS 정의 에러나 사용자 정의 에러를 정의하여 사용할 수 있다

- PL/SQL은 Oracle에 내장되어 있으므로 Oracle과 PL/SQL을 지원하는 어떤 서버로도 프로그램을 옮길 수 있다

- PL/SQL은 응용 프로그램의 성능을 향상시킨다

- PL/SQL은 여러 SQL 문장을 Block으로 묶고 한 번에 Block 전부를 서버로 보내기 때문에 통신량을 줄일 수 있다

 

PL/SQL 에서는 동적 SQL 또는 DDL 문장을 실행할 때, EXECUTE IMMEDIATE를 사용하여야 한다

 

DML문이 수행되었을 때, 데이터베이스에서 자동으로 동작하도록 작성된 저장 프로그램은 TRIGGER

- trigger는 데이터베이스에 의해서 자동으로 호출되고 수행된다

- trigger는 특정 테이블에 대해서 INSERT, UPDATE, DELETE 문이 수행되었을 때 호출되도록 정의할 수 있다

- trigger는 데이터베이스에 로그인하는 작업에도 정의할 수 있다

- trigger는 TCL을 이용하여 트랜잭션 제어 할 수 없음

- 데이터 무결성과 일관성을 위해 사용자 정의 함수 사용

 

프로시저와 트리거의 차이점

프로시저 : CREATE Procedure 문법 사용, EXECUTE 명령어로 실행, COMMIT, ROLLBACK 실행 가능

트리거 : CREATE Trigger 문법 사용, 생성 후 자동으로 실행, COMMIT, ROLLBACK 실행 안됨

 

 

 

 

 

 

 

'SQLD > SQL 기본 및 활용' 카테고리의 다른 글

정리_fin3  (0) 2023.03.18
정리_fin1  (0) 2023.03.18
정리 3  (0) 2023.03.15
관리 구문  (0) 2023.03.15
정리 2  (0) 2023.03.14

+ Recent posts