위와 같이 AS는 생략 가능하다.job_id column의 row 중 중복되지 않는 요소들만 출력위의 예시의 경우 sal 컬럼을 기준으로 내림차순 정렬하되 값이 중복되는 row의 경우 두번째 정렬 기준인 eno 컬럼을 기준으로 오름차순 정렬한다.순서상으로 where절
인덱스는 1부터 시작하며,마지막 매개변수는 문자의 갯수이다.
데이터베이스 관리 시스템에서 사용하는 데이터 언에는 크게 데이터 정의어(Data Definition Languagemm, DDL), 데이터 조작어(Data Manipulation Language, DML), 데이터 제어어(Data Control Language, DCL
문자형: CHAR(size), VARCHAR2(size) varchar는 size 지정하지만 가변형이므로 안에 담긴 데이터 사이즈에 따라 달라짐숫자형: NUMBER(w, d)날짜형: DATE, TIMESTAMP대용량 (이미지, 파일): LOB, BLOB대용량 데이터를
데이터가 추가, 수정, 삭제되는 과정에서도 데이터 간의 모순이 생기지 않도록 유지하는 것을 데이터 무결성이라고 하는데, DB의 데이터 무결성을 지키기 위한 수단이 바로 제약조건이다.
: JOIN을 이용한 질의는 두 개 이상의 테이블에서 데이터를 검색하기 위한 것이다.두 번 이상의 질의가 필요함이전 질의에서 나왔던 결과와 현재 질의에서 나온 결과를 한 번에 확인할 수 없음🐨 JOIN 사용 방법내가 원하는 데이터가 무엇인지 (SELECT)그 데이터가
INNER JOIN과 OUTER JOIN, FULL OUTER JOIN 외에도, 개념적으로 분류했을 때 JOIN에는 등가 조인과 비등가 조인이라는 개념이 존재한다.등가 조인은 두 테이블 간의 컬럼 값들을 조인하는 조건이 =인 경우를 말한다. 등가 조인은 PK, FK 관
📌 사용되는 곳1\. WHERE, HAVING절2\. FROM절 => (n-tier: table을 대체하기 위함)📌 사용하는 이유?원하는 결과를 하나의 쿼리로 얻기 어려운 경우가 있다.사원의 평균 급여보다 많이 받는 직원의 목록을 알고 싶은 경우, 1) 우선 사원의
JOIN을 해서 SELECT를 하는 것과 같은 로직이 반복적으로 사용될 때, 이를 하나의 뷰(View)로 만들어서 재사용할 수 있다.뷰를 사용하는 목적1\. 정규화로 인해 나누어진 테이블에서 많은 JOIN이 필요한 경우, 이런 과정을 줄여줄 수 있다.2\. 민감한 데이
데이터의 인덱스를 생성하는 순간 자동으로 인덱싱되어 B\*Tree 구조로 데이터가 저장된다. 인덱스가 없다면 처음부터 순차적으로 Full Scan하며 데이터를 찾아줘야한다. 사실 Oracle에서는 Full Scan하지 않음. primary key만 가지고도 기본 ind
오라클 DB에서 특정 데이터 값을 AUTO INCREMENT하고 싶을 때에는 시퀀스를 만들어줘야한다.시퀀스 만드는 방법start with, increment by문이 없으면 default로 1부터 시작한다.시퀀스를 이용해 데이터 삽입하는 방법
: 전체 일처리가 완결되어야 의미가 있는 작업의 단위=> 전체가 성공하면 commit하고, 도중에 실패하면 rollback한다.=> DML을 사용하여 쿼리를 날린 후 commit하지 않으면 반영되지 않는다.
어떤 서비스를 도식화 할 때, 클래스 다이어그램은 서비스 자체에 포커스를 두고 모델링한 것이고, ER 다이어그램은 그 서비스의 데이터에 포커스를 두고 모델링한 결과이다.그렇다면 데이터 모델링은 어떤 과정을 거쳐야할지에 대해 알아보자.엔티티 타입은 엔티티라는 인스턴스의
제약 조건과 더불어 사용되어 구조적인 면에서 무결성을 지키기 위한 방법주민등록번호: 결정자이름, 출생지, 주소: 종속자주민등록번호는 이름, 출생지, 주소를 결정짓고, 포함하는 개념이다.이름, 출생지, 주소는 주민등록번호에 함수 종속성을 가지고 있다.정규화를 할수록 테이
클로젯 쉐어라는 의류 공유 사이트의 서비스를 분석하여, 해당 사이트의 데이터 베이스를 모델링해보는 프로젝트를 진행하였다. 벤치마킹 서비스 논리적 설계
반정규화는 정규화된 릴레이션을 성능 향상 목적으로 중복, 통합, 분리 등을 수행하는 것을 의미한다. 반정규화를 하게 되면 데이터의 무결성이 깨질 수 있기 때문에, 이를 보장할 수 있는 선에서 반정규화를 시행해야한다.테이블 병합1) 1:1 관계 테이블 병합2) 1:M 관
맥에서 Oracle을 사용하기 위해서는 Docker가 필요하다. 이번 포스팅에서는 도커를 이용해 Oracle xe를 다운받고 이를 JDBC로 연동하는 방법에 대해 알아보려한다.도커 다운로드https://www.docker.com/우선 도커 사이트에 들어가서 도
이전 포스팅에서는 JDBC만을 이용해서 DB와 연동을 하는 방법을 알아봤다. 이 과정을 크게 살펴보면,JDBC 드라이버 로딩DB와 연결(Connection 객체 생성)prepareStatement 객체를 이용해서 DB에 질의위와 같은 세 단계를 거쳤다.그런데 JDBC만
Mybatis를 이용해 1:N 관계 테이블에서 값을 가져오는 방법에는 크게 3가지가 있다.우선 첫 번째 방법은, Domain 클래스가 실제 테이블처럼 관계를 맺고 있는 테이블의 id 값을 가지도록 한 후, Mybatis에서는 이 두 테이블을 Join해서 데이터를 가져오