목록[Database]/SQL (6)
쿼카러버의 기술 블로그
필자는 최근 회사에서는 SQL보다는 dynamoDB, redis, mongoDB와 같은 NoSQL 데이터베이스를 주로 활용하다보니, SQL의 기본 개념이 슬슬 가물가물해지기 시작했다(ㅠㅠ). 물론 막상 보면 기억은 나지만, A to Z 설명해보라고 하면 논리정연하게 설명할 자신이 없다보니, 앞으로 간단하게나마 기본 개념들을 시간 날 때마다 정리해보려고 한다. 본 글의 주제는 데이터베이스 관계(Relationship)의 기본 개념이다. 관계와 관련된 모든 키워드를 다루진 않고, 데이터베이스의 관계를 이루는 주요 개념들은 무엇이 있는지, 그리고 각 관계 (1:1, 1:N, N:N) 종류에 따른 설명과 테이블 생성 예시를 다루는 아주 기본적인 내용으로 이루어져있다. 앞으로 꾸준히 여러 키워드들에 대한 in-d..
조인을 할 때 여러 테이블이 겹칠 경우, 컬럼명이나 테이블명을 쉽게 알아보지 못하는 경우가 많다. 웹상의 여러 쿼리 예시를 보더라도 테이블이나 컬럼에 별칭을 붙여 활용한다. 따라서 본 글에서는 SQL에서 어떻게 별칭을 붙이는지에 대해 다룬다. Alias는 값에 별칭을 주어 접근을 별칭 형태로 할 수 있도록 하는 역할을 한다. 데이터, 컬럼, 테이블, 서비쿼리, Where절 등에 사용할 수 있다. ALIAS 사용 이유 별칭을 지정하면 쿼리의 가독성을 향상시킬 수 있다. 일반적으로 알아보기 힘든 컬럼명이나 테이블 명에 대해 별칭을 붙인다. 예: EID → EID as Employer ID ALIAS(사용 방법) AS키워드 사용하는 경우 ColumnName AS 컬럼명칭 --컬럼에 별칭 부여하기 TableNa..
현재 SQL의 조인 시리즈를 작성하고 있다. Join시리즈의 목차를 참고하려면 이 글을 참고하길 바란다. 본 글은 SQL의 EXISTS문에 대해 다룬다. EXISTS문이란? SQL에서 EXIST문은 WHERE절에서 사용되며 조건에 따라 데이터를 걸러내어 결과를 조회할 때 사용한다. JOIN관점에서는 Semi Join과 Anti Join에 사용된다. EXIST문은 예시만 보면 쉽다가도, outer table과 subquery의 관계를 이해하는 관점에서는 매우 헷갈리는 개념이라, 예시와 함께 정리해보려고 한다. EXISTS / IN 개념 비교 EXIST와 IN은 WHERE절에 사용되며 조건에 따라 데이터를 걸러내어 결과를 조회할 때 사용되는 공통점을 가지고 있다. 본 글에서는 EXISTS와 IN을 간단하게 ..
현재 SQL의 조인 시리즈를 작성하고 있다. Join시리즈의 목차를 참고하려면 이 글을 참고하길 바란다. 앞 글에서 SQL의 Join을 어떻게 분류하는지에 대해 살펴봤다면, 본 글은 SQL의 다양한 Join문들을 소개하고 이들에 대한 예시를 다룬다. 본 글은 다음의 Join문들을 다룬다. Inner Join (조인) Outer Join (Left, Right Outer Join) Full Join (Union) Cross Join (Cartesian Join) Self Join Multiple Joins (여러개의 Join문을 중첩하는 법) Natural Join(Equi Join의 또 다른 종류) 참고로 EXISTS와 관련있는 Semi-Join과 Anti-Join은 다음 글에서 EXISTS문과 함께 자..
현재 SQL의 조인 시리즈를 작성하고 있다. Join시리즈의 목차를 참고하려면 이 글을 참고하길 바란다. 본 글은 SQL의 Join에는 어떤 종류가 있는지 다룬다. Join을 구별하는 방법은 크게 아래 두가지가 있다. JOIN 조건으로 사용되는 연산자에 따른 분류 EQUI JOIN : 두 테이블 간의 컬럼 값들이 서로 일치하는 경우, JOIN조건으로 ‘=’ 연산자 사용 쉽게 말해서 = sign으로 comparison operator를 사용하는 경우 Syntax: 아래 두가지 모두 EQUI JOIN이다. SELECT column_list FROM table1, table2.... WHERE table1.column_name = table2.column_name; or ----- SELECT * FROM t..
SQL의 꽃은 조인이다. RDS에서는 데이터를 정규화하다보면, 데이터를 쪼개 여러 테이블로 나눠서 저장되기 마련인다. 이렇게 분리되어 저장된 데이터에서 원하는 결과를 도출하기 위해서는 여러 테이블을 조합할 필요가 정말 많다. 이 때 RDS에서는 테이블을 조합하기 위해 Join연산자를 사용해 관련 있는 컬럼 기준으로 행을 합쳐주어 테이블을 조합한다. 다시 말해 Join 연산이란 두 개 이상의 테이블들을 연결 또는 결합하여 데이터를 출력하는 것을 말한다. 물론 SQL에서 조인은 워낙 대표적인 연산이기 때문에 웹 상에 정리된 글이 많다. 하지만 좋은 예시들이나 설명이 좀 흩어져있는 감이 있어 본 시리즈의 목적은 내가 나중에 다시 찾아보기 쉽도록, Join을 다음의 목차로 정리하는데 있다. 1. [SQL - J..