2021-04-10 오라클 내부에서 각 테이블에 행 번호를 매길 수 있는 방법이 존재한다. 이는 ROWNUM을 이용하는 것인데, 이와 같은 방법을 알아보자. - 예제 예제는 SEE_INFO라는 이름을 가진 테이블을 사용할 것이며, 테이블 내부의 데이터는 아래와 같다. - ROWNUM 먼저 기초적인 ROWNUM을 포함하여 전체 TABLE 데이터를 출력해보자. 사용하는 방법은 아래와 같다. SELECT ROWNUM NUM, SEE_INFO.* FROM SEE_INFO; SELECT 절에 ROWNUM을 명시해주면 되며, 이후 테이블명.* 과 같이 써주면 된다. FROM 절에 테이블이 이미 명시되어 있다고 SELECT 절에 테이블명 없이 '*'만 사용할 경우 에러가 나는 점도 알아두자. - ROWNUM 정렬 우..
2021-04-01 오라클 SQL 내부에서의 시퀀스는 고유 한 정수를 생성할 수 있는 데이터베이스 개체인 시퀀스를 만든다. 시퀀스를 사용하여 기본 키 값을 자동으로 생성할 수 있다. 여기서 기본 키 값이라고 표현한 이유는 시퀀스는 테이블 내부에 객체를 추가(INSERT) 할 때마다 자동으로 1 ~ N의 수만큼 커지기 때문이다. 그렇기 때문에 한 테이블 내에 동일한 시퀀스 값은 존재할 수 없다. 이해하기 쉬운 예를 들자면 특정 사이트의 게시판에 새로운 게시글을 작성하면 게시판번호가 좌측 끝이나 우측 끝에 추가되어 게시판에 등록되는 것도 하나의 시퀀스라고 볼 수 있다. - 선언 시퀀스에는 다양한 옵션을 부여할 수 있다. 옵션은 아래의 코드와 같이 부여 할 수 있다. -- 시퀀스 이름 설정 CREATE SEQ..
2021-03-12 VIEW란 기존의 존재하는 테이블로 만들어진 가상의 테이블이라고 정의할 수 있다. VIEW를 통해 필요한 데이터만 정의해서 관리할 수 있으며, VIEW에 정의되지 않은 데이터들은 사용자에게 보이지 않기 때문에, 데이터를 비교적 안전하게 관리할 수 있다. 추가적으로 VIEW를 통해 쿼리를 간단히 할 수 있다는 장점도 있다. - 예제 테이블 ( SEE_INFO ) 아래는 뷰가 참고할 원본 테이블 SEE_INFO의 데이터이다. - VIEW 생성 SEE_INFO 테이블에서 나이가 25세보다 많은 사람의 NAME과 GRADE의 정보 추출 -> VIEW 생성 CREATE VIEW SEE_TEST1 AS SELECT NAME, GRADE FROM SEE_INFO WHERE AGE > 25; CRE..
2021-03-04 스칼라 서브 쿼리 간단히 설명하자면 SELECT 절에 사용하는 서브 쿼리로써 단순한 JOIN을 대체할 목적으로 사용되는 경우가 많다. 다만 풀 스캔 등을 유발하는 등 JOIN에 비해서 알고리즘적 성능면에서 다소 떨어지기 때문에 JOIN을 할 수 있는 경우는 JOIN을 하는 게 좋다. 또한 서브쿼리에 조건에 따라 반드시 하나의 값을 출력하게 되며(단 한 개의 행을 출력한다는 의미가 아님), 만약에 서브 쿼리에 결과 데이터가 없을 경우 NULL 값을 리턴하다. 어떤 면에서는 OUTERJOIN과 다소 비슷한 역할을 하기도 한다. - 예제 SEE_INFO 테이블 PK -> SEENUM / FK -> GRADE SEE_GRADE 테이블 PK_GRADE - 스칼라 서브쿼리 예제 1 문제 : 2학..
2021-03-02 - 정의 미국 국가표준 협회(American National Standards Institute, ANSI)는 미국에서 제품, 서비스, 과정, 시스템, 인력관리 분야에서 표준을 개발하는 것을 감독하는 비영리 민간 기구로서, 미국을 대표하여 국제 표준화 기구(ISO)에 가입하였다.[1] 이 협회는 미국의 제품이 전세계에서 사용될 수 있도록 미국의 표준을 국제표준에 맞추는 활동도 한다. 이 협회는 다른 표준화 기구나 정부 기관, 소비자 단체, 회사 등이 개발한 표준을 승인하기도 한다. 그럼으로써 용어를 통일하고, 제품의 특성, 성능, 테스트 방법 등에서 일관성을 유지한다. 이 협회는 제품이나 인력의 인증 기구가 국제표준에서 정의된 기준에 부합하는지에 대해 승인하기도 한다. 이 협회가 제정..
2021-02-28 오늘은 기존의 지정된 외래 키를 삭제 및 수정하는 방법을 알아보도록 하자. -예제 외래 키를 제공할 SEE_GRADE 테이블 CREATE TABLE SEE_GRADE( GRADE NUMBER CONSTRAINT PK_GRADE PRIMARY KEY ); SEE_GRADE의 기본키를 외래 키로 사용할 SEE_INFO 테이블 CREATE TABLE SEE_INFO ( SEENUM NUMBER CONSTRAINT PK_SEENUM PRIMARY KEY, NAME VARCHAR(20), AGE NUMBER, GRADE NUMBER, CONSTRAINT FK_GRADE FOREIGN KEY (GRADE) REFERENCES SEE_GRADE(GRADE) ); - 삭제 기존의 SEE_INFO의 ..