Back-end/Database

728x90
Back-end/Database

[SQL] PL/SQL 오라클 절차형 SQL

절차형 SQL : 프로그래밍 언어처럼 연속적인 실행이나, 분기, 반복 등의 제어가 가능한 SQL ex) 프로시저, 사용자 정의 함수, 트리거 DECLARE (선언) BEGIN (시작점) END (종료점) PL/SQL 문법 : IF(조건문), LOOP(반복문), CONTINUE, GOTO 등 IF문 IF 조건 THEN 실행문 END IF; IF 조건 THEN 실행문1; ELSE 실행문2; END IF; IF 조건1 THEN 실행문1; ELSEIF 조건2 THEN 실행문2; ELSEIF 조건3 THEN 실행문3; ELSE 실행문4; END IF; ex) 점수가 60점 이상이면 '합격' 출력 DECLARE 점수 INT := 80; BEGIN IF 점수 >=60 THEN DBMS_OUTPUT.PUT_LINE('..

Back-end/Database

[SQL] 가상 테이블 VIEW 생성

가상 테이블 VIEW 1. 데이터를 저장하고 있지 않지만 쿼리 작업은 가능. 2. 민감한 데이터의 조회, 변경 못하게 하려고 3. 복잡한 조회 쿼리(조인, 서브쿼리)를 단순화 뷰 생성 권한 부여 뷰를 만들 수 있도록 관리자에서 해당 계정에 대한 권한 부여 GRANT CREATE VIEW TO 계정명; 뷰 생성 CREATE VIEW 뷰이름 AS 조회쿼리; 뷰 생성 추천 쿼리 CREATE OR REPLACE VIEW 뷰이름 AS 조회쿼리; 뷰는 변경이 수시로 일어나기 때문에 OR REPLACE를 넣어주면 컬럼을 추가할 때 뷰 생성 쿼리에서 그냥 추가해서 실행시켜주면 됨 조인 테이블로 만든 뷰 읽기 전용 뷰 생성 CREATE VIEW 뷰이름 AS 조회쿼리 WITH READ ONLY; 보통 뷰에 데이터를 INS..

Back-end/Database

[SQL] 순위 함수 RANK, DENSE_RANK, ROW_NUMBER

RANK 동일 순위의 레코드 존재 시 후순위는 넘어감 (1위, 1위, 3위) DENSE_RANK 동일 순위 후순위로 안넘김(1위, 1위, 2위) ROW_NUMBER 동일 순위를 연속 번호로 부여 (1위, 2위, 3위) SELECT RANK() OVER( PARTITION BY 컬럼 ORDER BY 컬럼 ) FROM 테이블; : PARTITION BY는 동일 순위에 대한 정렬 설정 ex) SELECT 이름, 수학, DENSE_RANK() OVER (ORDER BY 수학 DESC) FROM 점수 ORDER BY 수학 DESC;

Back-end/Database

[SQL] 그룹 함수 ROLLUP(), CUBE(), GROUPING SETS()

ROLLUP() : 그룹별 소계 SELECT 과목, 주소, SUM(수강료) AS 합계 FROM 수강생 GROUP BY ROLLUP(과목, 주소); CUBE() : 결합 가능한 모든 값에 대해 다차원 집계 생성 SELECT 과목, 주소, SUM(수강료) AS 합계 FROM 수강생 GROUP BY CUBE(과목, 주소); GROUPING SETS : 집계 대상 컬럼들에 대한 개별 집계 SELECT 학년, 반, AVG(점수) AS 점수 FROM 점수 GROUP BY GROUPING SETS(학년, 반);

728x90
eunjin-park
'Back-end/Database' 카테고리의 글 목록 (2 Page)