전체 글 193

[카페] 야경 좋은 남양주 카페! 요새!

남양 주 카페 요새! 리뷰! 안녕하세요. 오늘은 우리 가시님을 보고 집에 도착했는데 친구가 뜬금없이 드라이브를 가자며 저를 데리러 왔네요; 카페를 매우 좋아하며, 커피를 매우 좋아하는 친구가 있어서 같이 가게 되었습니다. 저희 집에서 거의 1시간 정도의 거리였는데 그래도……. 뭐 친구가 좋다고 하니 한번 가봤습니다. 인천에서 남양주까지 커피를 마시러 가다니... ( 참으로 대단합니다.) 일단 위치랑 이름은! 남양주에 있는 "요새"라는 이름의 카페입니다. 일단 뭐 위치를 봤을 때 딱! 한강 근처에 있는 카페라서 아! 야경은 끝내주겠구나. 라고 생각을 하고 출발을 하였습니다. 열심히 열심히 1시간을 달리고 달려서. 참고로 고속도로 나와서 약간의 좁은 길이 있으니 운전하시는 데 참고하시기 바랍니다. 하지만 딱..

일상/카페 2019.07.06

[SQLD] 조인 종류와 수행 원리

조인 종류와 수행 원리 Join - 두 개 이상의 테이블을 하나의 집합으로 만드는 연산(두 테이블 사이에서 수행) - 자주 사용하는 Join으는 NL Join, Sort Merge Join, Hash Join이 있다. NL Join( Nested Loop Join ) - 중첩된 반복문과 유사한 방식으로 사용. - 랜덤 액세스 방식으로 데이터를 읽는다. - 외부 테이블의 각 행에 대해 내부 테이블을 한 번만 스캔한다. 작업 방식 1. 선행 테이블에서 주어진 조건을 만족하는 행을 찾는다. -> 이때 선행 테이블에 주어진 조건을 만족하는 첫 번째 행을 찾는다. 2. 선행 테이블의 조인 키 값을 가지고 후행 테이블에 조인 키가 존재하는지 확인. -> 조인 시도 3. 후행 테이블의 인덱스에 선행 테이블의 조인 키..

[SQLD] 옵티마이저와 테이블 스캔

옵티마이저와 테이블 스캔 옵티마이저 - 사용자가 질의한 SQL문에 대해 최적의 실행 방법을 결정하는 역할을 수행 - 다양한 실행 방법들 중에서 최적의 실행 방법을 결정하는 것이 옵티마이저의 역할임. - 관계형 DB는 옵티마이저가 셜정한 실행 방법대로 실행 엔진이 데이터를 처리하여 결과 데이터를 사용자에게 전달하는 역할을 할 뿐이다. - 최적의 실행방법( 어던 방법으로 처리하는 것이 최소 일량으로 동일한 일을 처리할 수 있는지 ) 규칙기반 옵티마이저 - 규칙(우선 순위)을 가지고 실행계획을 생성한다. 규칙기반 옵티마이저의 규칙(15가지 순서) 순위 엑세스 기법 규칙 설명 1 Single row by rowid Rowid를 통해서 테이블에서 하나의 행을 액세스 하는 방식, Rowid는 행이 포함된 데이터 파..

[SQLD] 서브쿼리와 그룹함수(Group Function)

서브쿼리와 그룹함수 서브쿼리 - 하나의 SQL문 안에 포함되어 있는 또 다른 SQL문을 말한다. - 서브쿼리는 알려지지 않은 기준을 이용한 검색을 위해 사용한다. 서브쿼리 예시 select 칼럼1,칼럼2 FROM 테이블명 where 조건= (select.....from....where); 조인과 서브쿼리의 분류 조인 - Join에 참여하는 모든 테이블이 대등한 관계에 있기 때문에 조인에 참여하는 모든 테이블의 칼럼을 어느 위치에서라도 자유롭게 사용할 수 있다. 서브쿼리 - 메인쿼리의 칼럼을 모두 사용할 수 있지만 메인쿼리는 서브쿼리의 칼럼을 사용할 수 없다. - 질의 결과에 서브쿼리 칼럼을 표시해야 한다면 조인 방식으로 변환하거나 함수, 스칼라 서브쿼리 등을 사용해야 한다. 서브쿼리 사용시 주의점. - ..

[SQLD] 집합연산자와 계층형 질의

집합연산자와 계층형 질의 집합 연산자(Set Operator) - 여러 개의 질의의 결과를 연결하여 하나로 결합하는 방식을 사용 - 집합 연산자는 2개 이상의 질의 결과를 하나의 결과로 만들어 줌 - 서로 다른 테이블에서 유사한 형태의 결과를 반환하는 것을 하나의 결과로 합치고자 할 때와 동일테이블에서 서로 다른 질의를 수행하여 결과를 합치고자 할 때 사용할 수 있다. - 튜닝관점에서 실행계획을 분리하고자 하는 목적으로도 사용 Caution. * SELECT 절의 칼럼 수가 동일하고 SELECT 절의 동일 위치에 존재하는 칼럼의 데이터 타입이 상호 호환 가능해야 한다. 그렇지 않으면 데이터베이스가 오류를 반환한다. 집합 연산자의 종류 집합 연산자 의미 UNION 여러 개의 SQL문의 결과에 대한 합집합으..

[SQLD] SQL 기본 및 활용(SQL 기본) 정리 및 표준조인(Standard Join)

SQL 기본 및 활용 * 데이터베이스에는 자료의 성격에 따라 N개의 테이블을 생성한다. * 모든 자료들은 테이블에 입력되며, 조회, 수정, 삭제 할 수 있다. * 모든 자료는 실질적으로 테이블에 저장이 되며, 테이블에 있는 자료들을 꺼내 볼 수 있다. 데이터 유형에 대해 파악 데이터 유형 설명 CHAR( number ) - 고정 길이 문자열 정보 - number는 기본 길이 1바이트 - number만큼 최대 길이를 갖고 고정 길이를 가지고 있으므로 할당된 변수 값의 길이가 number보다 작을 경우에는 그 차이 길이만큼 공간으로 채워진다. VARCHAR( number ) - 가변 길이 문자열 정보 - number는 최소 길이 1바이트 - number만큼의 최대 길이를 갖지만 가변길이로 조정이 되기 때문에..

[SQLD] ORDER BY 와 JOIN

Order by 와 Join ORDER BY 절 - SQL 문장으로 조회된 데이터들을 다양한 목적에 맞게 특정 칼럼을 기준으로 정렬하여 출력하는데 사용 ODER BY 절의 예로 선수 테이블에서 선수들의 이름, 포지션, 백넘버를 출력하는데 사람 이름을 내림차순으로 정렬하여 출력한다. ODER BY 칼럼명 [ASC 또는 DESC] -> ASC : 조회한 데이터를 오름차순으로 정렬한다.(기본 값이므로 생략 가능) -> DESC : 조회한 데이터를 내림차순으로 정렬한다. Caution. - Oracle에서는 NULL값을 가장 큰 값으로 취급하지만 SQL에서는 가장 작은 값으로 취급한다. - 기본적인 정렬 순서는 오름차순(ASC)이다. - 숫자형 데이터 타입은 오름차순으로 정렬했을 경우에 가장 작은 값부터 출력된..

[SQLD] GRORP BY, HAVING 절

Group By, Having 절 집계 함수(Aggregate Function) - 여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 돌려주는 함수이다. - GROUP BY 절은 행들을 소그룹화 한다. - SELECT 절, HAVING 절, ORDER BY 절에서 사용할 수 있다. 집계 함수 명 ( [DISTINCT | ALL] 칼럼이나 표현식 ) - ALL : Default 옵션이므로 생략 가능함. - DISDINCT : 같은 값을 하나의 데이터로 간주할 때 사용하는 옵션이다. 집계 함수의 종류 집계 함수 사용 목적 COUNT( * ) NULL 값을 포함한 행의 수를 출력한다. COUNT( 표현식 ) 표현식의 값이 NULL값인 것을 제외한 행의 수를 출력한다. SUM( [DISTINCT | ALL ]..

[SQLD] 함수(Function)

함수(Function) 함수 조직도 Infotance. 함수는 입력되는 값이 아무리 많아도 출력은 하나만 된다는 M:1 관계라는 중요한 특징을 가지고 있다. 단일행 함수의 종류 종류 내용 문자형 함수 문자를 입력하면 문자나 숫자 값을 반환한다. 숫자형 함수 숫자를 입력하면 숫자 값을 반환한다. 날짜형 함수 DATE 타입의 값을 연산한다. 변환형 함수 문자, 숫자, 날짜형 값의 데이터 타입을 변환한다. NULL 관련 함수 NULL을 처리하기 위한 함수 일단 큼지막 하게 대충 알아보고 아래에 상세하게 알아보자. 단일행 함수의 중요 특징 - SELECT,WHERE,ORDER BY 절에 사용 가능하다. - 각 행(Row)들에 대해 개별적으로 작용하여 데이터 값들을 조작하고, 각각의 행에 대한 조작 결과를 리턴한..

[SQLD] WHERE

WHERE WHERE 절 - 두 개 이상의 테이블에 대한 Join 조건을 기술하거나 결과를 제한하기 위한 조건을 기술 할 때. SELECT 칼럼명 FROM 테이블명 WHERE 조건식; - WHERE 절은 FROM 절 다음에 위치한다. - Column명은 보통 조건식의 좌측에 위치한다. - 비연산자 - 문자, 숫자, 표현식 (보통 조건식의 우측에 위치) - 비교 칼럼명(Join 사용 시) 연산자 종류 비교연산자나 논리 연산자는 아실거라고 생각하고 이 2개는 빼고 서술하겠습니다. 연산자의 종류 구분 연산자 연산자 의미 SQL 연산자 Between A and B A와 B의 값 사이에 있으면 된다. (A와 B값 포함) IN (list) List에 있는 값 중에서 어느 하나라도 일치하면 된다. Like '문자열'..