22.10.28.Fri - HOW의 중요함

Doil·2022년 10월 28일

Study

목록 보기
30/38

오늘의 요약 = HOW의 중요함.

keywords

  • join
  • ansi
  • 시노님
  • 테이블 별명 붙이기

join

오라를 join, ANSI join(표준) 예제

-- 사원번호,이름과 급여와 부서코드와 부서명을 알고 싶다.

-- join 할때 각 컬럼이 어느 테이블에 속해있는지 기입 ( 써주면 좋은 습관)
-- 서로 다른 테이블에  같은 컬럼명을 가지는 경우가 있다.

-- 서로다른 테이블의 값을 조회를 할때 , join을 사용.
select employees.employee_id , employees.last_name , employees.salary ,employees.department_id ,
    departments.department_name 
    from employees , departments
    where employees.department_id = departments.department_id
    order by employees.employee_id;
    
    
    
-- ansi SQL join -> 표준 join
select employees.employee_id , employees.last_name , employees.salary ,employees.department_id ,
    departments.department_name 
    from employees inner join departments
    on employees.department_id = departments.department_id
    order by employees.employee_id;

ANSI

미국 국립 표준 협회(American National Standards Institute, ANSI)
where 대신 on .
,대신 inner join 사용.

Table shortName

경로를 나타내는 from문의 테이블명 뒤에 사용자 지정 별명을 지정하면,
조회구문에 별명을 넣어 코드를 짧고 편하게 작성할 수 있다.

select e.employee_id from employees e ;

2교시 :

keywords

  • outer join
  • update

join

join시 컬럼의 순서는 결과값에 영향을 주지 않는다.
조건을 어떻게 주느냐가 핵심이다.

join의 관계는 Master 와 Sub 이다.
where 조건문의 테이블 위치에 따라 기준이 바뀐다.
where 뒤의 1번째가 Master , 2번째가 Sub다.

join의 방법에는 크게 2가지로 나뉜다.
inner 와 outter 이며, 세분화하게 나눠진다.

  • inner
  • outter
    • full outter

3개 이상의 테이블 join

데이터 추출 조건절 을 작성할때, 테이블간의 관계를 봐둬야한다.
하나의 데이터를 뽑을때, 여러개의 테이블이 관련이 있다. ( modelling 을 봐둬야 한다.)



점심 : 야무지게 먹어야징

5교시 :

keywords

서브쿼리

추가적인 정보 제공을 목적으로 하나의 SQL문장 내부에 존재하는 select 구문.

위치

리스트절 : 일반적인 서브 쿼리

 select 리스트절 from

from절:
인라인뷰 (일시적으로 데이터를 담고있는 논리적 테이블)

where절 : 중첩 쿼리

메인 쿼리와의 관련성(연관성)에 따라서
연관성 있는 서버쿼리(Correlated) : 독자적 실행되지 않음

select count(*) from employees where salary >= (select avg(salary)from employees)

비연관성 서브쿼리 : 독자적 실행


6교시 :

keywords

  • index

index

개요

인덱스는 검색 속도 향상을 위해서 만드는 오라클 오브젝트이다.
색인(찾을 색, 끌 인).
목록이다,컴퓨터가 쉽게 찾을 수 있게 데이터를 규칙에 맞게 정한.

반드시 검색 속도가 빠라지는 것은 아니다.

테이블을 만들 때 Primary Key , Unique의 제약조건을 지정하면 DBMS가
자동으로 index 객체를 생성해 준다.

성능 저하 요인

  • 비번한 수정
  • 카디날
  • 사용빈도 낮은 컬럼
    빈번한 C.R.U.D가 유발한다, 데이터베이스 전체의 성능 저하를.
    과하게 하지 마라.

카디날.

인덱스 지정하고자 하는 컬럼의 데이터 분포가 밀집되었을때,
한 컬럼당 데이터가 많이 밀집 되었을때.
예: 성별 컬럼.

사용빈도가 낮은 컬럼.

형식

create [unique] index [스키마명.]인덱스명 on [스키마명.]테이블명 (컬럼명1[,컬럼명2...]);

create index my_first_ix on employees (phone-number);

컬럼 순서

테이블을 만들 때 컬럼을 정의하는 순서가 검색 속도에 영향을 미친다.
가능하면 자주 검색에 이용되는 컬럼을 먼저 정의해준다.

profile
justdoil

0개의 댓글