Database(44)
-
Day35 - 인라인 뷰
이번에는 인라인 뷰에 대해서 알아 봅시다 인라인 뷰 인라인 뷰도 서브쿼리의 한 종류 입니다. 인라인 뷰는 FROM 옆에 위치 합니다. ( 테이블 이름 대신 ) 인라인 뷰는 가상의 테이블 이라고 생각하면 됩니다. 인라인 뷰 에서 조회되는 속성(column)들이 테이블(엔티티) 대신해서 들어간다고 생각하면 되겠습니다. 위의 기본 형태를 아래의 인라인 뷰의 형태로 바꿈 - rownum ( 행 번호 ) 가 섞이는 문제 정렬과 rownum 을 같이 사용하면, rownum의 번호가 뒤죽박죽이 됩니다. 이 문제를, 인라인 뷰를 사용해서 해결 할 수 있는데요, 인라인 뷰의 내부에서 정렬을 한 후, 바깥 쪽에서 rownum을 사용해주면 됩니다. - 행을 제한해서 조회하기. rownum을 사용해서 행을 줄여서 조회할 수 ..
2021.04.05 -
Day35 - 스칼라 서브쿼리
이번에는 스칼라 서브쿼리에 대해서 알아 봅시다. 스칼라 서브쿼리 저번 시간에 알아 보았던, "단일 행 서브쿼리 / 다중 행 서브쿼리" 는 WHERE 옆에 위치 했었죠? 스칼라 서브쿼리는 SELECT 옆에 위치 합니다. 스칼라 서브쿼리는 LEFT OUTER JOIN 과 결과값이 똑같습니다. 하지만, JOIN 하는 것보다 성능이 우수합니다. 그 이유는, JOIN은 테이블을 전부 읽어서 데이터를 가져오지만, 스칼라 서브쿼리는 테이블의 필요한 부분만 읽어서 데이터를 가져오기 때문입니다. 그러면, 어떻게 사용하는지 한 번 알아 봅시다. ※스칼라 쿼리를 사용할 경우에 *를 사용한다면, 어떤 테이블의 정보인지를 명시해 주셔야 합니다. 스칼라 서브쿼리 뿐 아니라, 서브쿼리를 사용할 때는 () 안에 사용해 주셔야 합니다..
2021.04.05 -
Day34 - Quiz를 풀어 봅시다
문제 1. -EMPLOYEES 테이블과, DEPARTMENTS 테이블은 DEPARTMENT_ID로 연결되어 있습니다. -EMPLOYEES, DEPARTMENTS 테이블을 엘리어스를 이용해서 각각 INNER , LEFT OUTER, RIGHT OUTER, FULL OUTER 조인 하세요. (달라지는 행의 개수 확인) 문제 2. -EMPLOYEES, DEPARTMENTS 테이블을 INNER JOIN하세요 조건)employee_id가 200인 사람의 이름, department_id를 출력하세요 조건)이름 컬럼은 first_name과 last_name을 합쳐서 출력합니다 문제 3. -EMPLOYEES, JOBS테이블을 INNER JOIN하세요 조건) 모든 사원의 이름과 직무아이디, 직무 타이틀을 출력하고, 이름..
2021.04.02 -
Day34 - 서브쿼리. 단일 행 서브쿼리. 다중 행 서브쿼리
이번에는 서브쿼리에 대해서 알아 봅시다. 서브쿼리 낸시보다 급여 많이 받는 사람? 저희는 낸시가 급여를 12008 라는 것을 알고 있습니다. 그렇기 때문에 아래와 같이 작성할 수 있겠죠? 그런데, 낸시의 급여가 12008 이라는 것을 모른다면? 이럴 경우를 위해서, 서브쿼리가 존재하는데요, 1. ( ) 안에 반드시 작성함. 2. 서브쿼리 절의 결과는 반드시 1열 이어야 합니다. 4. (서브쿼리절을 먼저 해석하면 됩니다) 단일 행 서브쿼리 단일 행 서브쿼리는, 결과 값의 행이 1개인 것을 뜻 합니다. 조건 절 오른쪽에 위치합니다. - 낸시의 급여보다 월급을 많이 받는 사원. - 직원 아이디가 103번 직원과 같은 job을 가진 직원 다중 행 서브쿼리 다중 행 서브쿼리는, 결과 값의 행이 여러개 인 것을 뜻..
2021.04.02 -
Day34 - JOIN
오늘은 JOIN 에 대해서 알아 봅시다. JOIN 위와 같은 테이블을 만든다면....? job에 있는 값이 중복되어 있는 것을 확인 할 수 있습니다. 이럴 경우에, 만약 홍길동의 직업이 바뀐다면, job에 있는 내용을 전부 수정해야 합니다. 그리고, 이 데이터가 저장된 공간이 1개당 1원이라고 생각해 보죠. 만약, 홍길동의 데이터가 많다면, 그만큼 손해가 커지는 것 입니다. 그래서 위와 같은 테이블은 분해해서 만들어 주어야 합니다. (정규화) - 장점 - 1. 중복을 피할 수 있다. 2. 홍길동의 직업을 변경할 때도 하나만 변경하면 전부 다 바뀐다. 3. 다른 홍길동이 존재한다고 했을 때, 알아보기 편하다. 4. info 테이블에 존재하지 않는 user를 가지고 있을 수 있다. 이렇게 분해한 테이블 들을..
2021.04.02 -
Day33 - 테이블 생성, INNER JOIN
이번에는 테이블을 생성하는 방법과 INNER JOIN 에 대해서 알아 봅시다 여태까지는 이미 만들어져 있는 테이블을 사용했었는데, JOIN을 알아보기 위해서 테이블을 생성해 봅시다. 테이블 생성 ※oracle이 비싼 이유가 나옵니다 ! 사용하고 있는 데이터베이스를 열고, 테이블 폴더에 우클릭을 한 후 새 테이블을 눌러 줍시다. 테이블의 이름은 쓰고 싶은대로 작성 해주세요. 저는 user1 이라고 하겠습니다. 이제 속성(column)을 만들어 봅시다 초록색+를 3번 눌러주세요 이렇게 만든 속성들의 이름, 데이터 유형, 크기를 설정해 줍시다. 그리고, PK(기본키)를 1개만 클릭해 주세요 그 다음, DDL을 눌러보시면 ....? 이렇게, CREATE TABLE 구문이 있죠? 원래는 이렇게 마우스로 테이블을 ..
2021.04.01