728x90

DBMS (MySQL)/DBMS (Oracle) 9

[DB] 시퀀스(SEQUENCE)

시퀀스(SEQUENCE) CREATE SEQUENCE 시퀀스명; 오라클 데이터베이스에서 특정 규칙에 맞는 연속숫자를 생성하는 객체 예를들면, 회원가입시 가입자들에게 또는 게시판의 게시글에 순차적으로 번호를 부여할 수 있다. 시퀀스 옵션 1씩 증가 : INCREMENT BY 1; 1부터 카운트 : START WITH 1; 최소값 : MINVALUE 1; 최대값 : MAXVALUE 100; 20개의 인덱스공간 확보 : CACHE 20; 1개의 인덱스공간 확보 : NOCACHE; 시퀀스 주의점 CACHE 옵션을 사용하면 속도증가를 위해 SEQUENCE 번호를 여러개씩 메모리에 올려놓고 작업을 하게되는데 이러한 경우 DB를 중지시키거나 전원이 OFF 되는 경우 메모리에 있던 번호가 삭제되기 때문에 1,2... ..

[DB] PL/SQL, 프로시저(Procedure), IF문

PL/SQL _ Oracle's Procedural Language extension to SQL 오라클 SQL을 확장하여 사용하는 프로그래밍 언어 절차지향형 프로그래밍 언어 DECLARE ---선언부 IS BEGIN ---실행부 쿼리문 END; PL/SQL문을 사용하는 이유 1. 대용량 데이터 연산이 필요할 때 서버로 전송해서 처리하려면 네트워크에 부하가 걸릴 수 있는데 이때 함수를 사용하여 데이터를 연산하고 가공한 후에 결과만 서버로 전송하면 부담을 줄일 수 있다. 2. 로직을 수정하기 위해 서버를 셧다운시킬 필요가 없다. 3. 쿼리문을 직접 노출하지 않는 만큼 SQL injection 의 위험이 줄어든다. (SQL injection : 해킹의 한 형태) 프로시저(PROCEDURE) PL/SQL문의 ..

[DB] VIEW

VIEW CREATE VIEW 뷰이름 AS( 쿼리문 ) 기존의 테이블은 그대로 놔둔 채 필요한 컬럼 및 새로운 컬럼을 만드는 가상의 테이블 실제 데이터가 저장되는 것은 아니지만 VIEW를 통해 데이터를 관리할 수 있다. VIEW의 특징 독립성 : 다른곳에서 수정하는 것이 어려움 편리성 : 긴 쿼리문을 짧게 해줌 보안성 : 짧게 만들기 때문에 기존의 쿼리는 보이지 않음 VIEW의 사용목적 1. 기존 테이블은 그대로 놔둔 채 필요한 컬럼 및 새로운 컬럼만 사용할 수 있음 2. 복잡한 쿼리문을 쉽게 만들어줌 3. 여러테이블의 JOIN, GROUP BY와 같은 복잡한 쿼리를 VIEW 형태로 저장해두면 다음부터는 그 VIEW에 대한 정보만 가져오면 됨 --기존방법 SELECT FIRST_NAME, SALARY, ..

[DB] 서브쿼리

** MySQL 서브쿼리 참고 [DBMS] order by, limit, distinct, group by, 서브쿼리, 다중조건문 [order by] select * from 테이블명 order by 컬럼명 desc/asc; select문 사용 시 테이블에 입력된 순서대로 출력되는 것이 기본 내림차순(desc), 오름차순(asc) 정렬 필요할 때 사용 기본사용 select * from city order b studywithjw.tistory.com 서브쿼리 SQL문에 또다른 SQL문을 삽입해 검색에 이용 서브쿼리 사용가능 위치 - WHERE, HAVING 절 - SELECT, DELETE문의 FROM 절 - UPDATE문의 SET 절 - INSERT문의 INTO --사원테이블에서 이름이 'Michael..

[DB] ROLLUP과 CUBE

ROLLUP과 CUBE는 GROUP BY 절과 함께 사용하는 것이 일반적 데이터 계층화, 데이터 요약, 데이터 집계작업을 수행하는데 사용됨 다음과 같은 월별매출 테이블이 있다고 가정하자 ROLLUP() : 여러 열을 사용하여 하위 합계 및 총계 생성 가능 가장 상위 계층부터 하위 계층까지 각 계층의 소계를 포함 ROLLUP(A) : A 그룹핑 -> 합계 ROLLUP(A,B) : A,B 그룹핑 -> A소계/합계 ROLLUP(A,B,C) : A,B,C 그룹핑 -> (A소계,B소계)/합계 SELECT 상품ID, 월, SUM(매출액) FROM 월별매출 GROUP BY ROLLUP(상품ID, 월); CUBE() : 가능한 모든 조합의 데이터 결과 생성 ROLLUP보다 더 상세한 데이터 제공 CUBE(A) : A ..

[DB] Oracle SQL 함수 (그룹함수_최소, 최대, 평균, GROUP BY, HAVING 등)

사용자가 필요한 기능을 만드는 함수가 아닌 오라클 자체적으로 제공하는 함수 단일행 함수 : 1개의 행 값이 함수에 적용되어 1개의 을 반환 (문자, 숫자, 날짜 등) 그룹함수 : 2개 이상의 행 값이 함수에 적용되어 1개의 행을 반환 (최소, 최대, 평균 등) **MySQL 함수 참고 [DBMS] 함수(제어흐름, 문자열, 수학, 날짜 및 시간, 시스템 정보) [제어흐름 함수] 프로그램의 흐름을 제어한다. if 함수 : 수식의 진리값에 따른 값 반환 select 컬럼, if(조건, '참일때반환값', '거짓일때반환값') from 테이블; select bookno, if(bookno>=3,'A','B') as if_result fr studywithjw.tistory.com 그룹함수 여러 행의 연산결과를 하나..

[DB] Oracle SQL 함수 (단일행 함수_문자, 숫자, 날짜 등)

사용자가 필요한 기능을 만드는 함수가 아닌 오라클 자체적으로 제공하는 함수 단일행 함수 : 1개의 행 값이 함수에 적용되어 1개의 을 반환 (문자, 숫자, 날짜 등) 그룹함수 : 2개 이상의 행 값이 함수에 적용되어 1개의 행을 반환 (최소, 최대, 평균 등) **MySQL 함수 참고 [DBMS] 함수(제어흐름, 문자열, 수학, 날짜 및 시간, 시스템 정보) [제어흐름 함수] 프로그램의 흐름을 제어한다. if 함수 : 수식의 진리값에 따른 값 반환 select 컬럼, if(조건, '참일때반환값', '거짓일때반환값') from 테이블; select bookno, if(bookno>=3,'A','B') as if_result fr studywithjw.tistory.com 문자함수 ASCII() : 지정된 ..

728x90