SQL 13

HAVING 절

SQL에서 Having 절은 SELECT 문에서 집계 함수로 집계된 자료를 다시한번 필터링 하기 위한 용도로 사용됩니다. 데이터 를 필터링 하기 위한 용도는 WHERE 절과 HAVING절이 사용되는 데 WHERE 절은 집계되지 않은 자료에 대한 조건이고 HAVING 절은 집계된 자료에 대한 조건이라고 생각하면 됩니다. HAVING 절의 사용법은 아래와 같습니다. SELECT column, column, column...FROM table_nameWHERE search_condition GROUP BY column_name(s) HAVING search_condition ORDER BY column_name(s)그러면 하나씩 예들 들어가면서 알아보도록 하겠습니다. Product 테이블SELECT Produ..

MSSQL 2024.11.19

데이터 그룹화(GROUP BY)

이번에 다룰 주제는 데이터를 그룹화하는 방법에 대한 내용입니다. 데이터를 그룹화하려면 GROUP BY 절을 사용합니다. GROUP BY 구문 사용법SELECT Column, Column, Column... FROM Table_NameWHERE Search_Condition GROUP BY Column_name(s) ORDER BY Column_name(s)GROUP BY 구문의 사용법은 위와 같이 사용하게 됩니다. GROUP BY는 집계함수를 이용하여 집계한 내용들의 결과를 이상의 열로 데이터를 그룹화하기 위한 용도로 사용되게 됩니다.

MSSQL 2024.11.18

집계함수

이번에 다룰 주제는 집계 함수의 사용법입니다. SQL에서는 다양한 방법으로 데이터의 집계를 할 수 있습니다. 얼마나 많은 고객이 서울에 살고 있는가?얼마나 많은 주문을 어느 고객이 했는가? 특정 고객의 상품 주문 총 금액은 얼마인가?특정 고객이 9월달에 주문한 총 금액은 얼마인가?등 데이터를 가지고 통계를 내기 위해서는 집계 함수의 사용법을 알아야 합니다. 그래서 이번 포스팅에서는 집계 함수를 사용하는 방법에 대해 알아보도록 하겠습니다.단순히 테이블의 행수를 알고 싶으면 아래와 같이 Count 함수를 사용하면 됩니다.SELECT COUNT(*) FROM Customers 위와 같이 Count(*) 함수를 사용하면 전체 행수를 알 수 있습니다. 이 경우 NULL 값은 무시됩니다. 만약 특정 컬럼(열)이 N..

MSSQL 2024.11.17

서브쿼리(Sub Query)

이번에 다룰 주제는 서브 쿼리 또는 하위 쿼리라고 하는 놈을 다루어 보도록 하겠습니다.서브 쿼리는 SELECT, INSERT, UPDATE 또는 DELETE 문이나 다른 서브 쿼리의 내부에 중첩해서 사용하는 쿼리를 말합 니다.서브 쿼리를 이용해서 표현하는 구문들은 대부분 서브 쿼리를 이용하지 않고 조인을 이용해서 해결할 수 있습니다. 서브 쿼리를 굳이 이용하지 않더라고 조인을 통해서 서브 쿼리를 대체할 수 있는 경우가 대부분입니다.그러면 조인을 이용해서 쿼리문을 만들 수 있는데 왜 서브 쿼리를 알아야 할까요? 이론적인 설명은 다 제쳐두고 필자가 서 브 쿼리를 사용해야 하는 이유는 가독성 때문이라고 생각합니다.어느 정도 규모가 있는 기업체들에서는 대부분 사내에서 ERP나 그 비슷한 관리 프로그램들을 운영하..

MSSQL 2024.11.16

데이터베이스 조인(UNION)

이번에 다룰 주제는 데이터베이스 조인 방법 중에서 Union 조인의 쓰임새에 대해서 설명드리도록 하겠습니다. Union 조 인은 두개 혹은 그 이상의 테이블에서 단일 테이블의 출력 결과를 나타내고자 할 때 사용합니다. 이렇게 글로 설명하는 것 보다 하나의 그림을 보면 쉽게 이해하실 수 있습니다. Union 조인을 이용하면 위와 같이 두개의 테이블을 하나의 테이블로 결합하는 결과를 출력할 수 있습니다. 구문의 사용법 은 아래와 같습니다.SELECT (Distinct) Column, Column, Column... FROM 첫번째 Table NameUNION [ALL]SELECT (Distinct) Column, Column, Column... FROM 두번째 Table Name Union 조인 중에서 AL..

MSSQL 2024.11.15

외부조인

데이터베이스(DB)에서 기본적으로 조인을 하는 방법은 내부 조인(INNER JOIN)이라고 이전 장에서 설명을 드렸습니다. 보통 가장 많이 사용되는 조인이 Inner Join 이지만 Left Join 과 Right Join도 실무에서는 많이 사용되는 조인 중 하나입 니다.그림으로 설명을 드리자면 INNER JOIN은 위와 같이 고객과 주문에서 일치하는 자료만 가져오거나, 생산자와 주문에서 일 치하는 자료만 가져오게 되는 역할을 하게 됩니다.그런데 Left/Right Join은 위와 같이 생산자와 주문 중에서 주문이 없는 제품리스트를 가져오거나, 고객과 주문 중에서 주 문이 없는 고객 리스트를 가져오려고 할 때 사용합니다. 물론 주문을 포함해서 데이터를 가져올 수도 있습니다. LEFT/RIGHT JOIN(..

MSSQL 2024.11.14

테이블 연결(INNER JOIN)

데이터베이스는 테이블들로 구성되어 있고, 각 테이블들은 조인을 통해서 서로 연결할 수 있습니다. 테이블들을 조인하는 방법 중에서 가장 보편적인 방법은 기본키와 외래키를 이용한 INNER JOIN 방법이 있고, 이외에도 일대일(One to One) 조인 다대다(Many to Many) 조인 방법도 있습니다. 조인에 대한 방법은 데이터분석과 설계 부분에서 이미 설명드렸으니 궁금하신 분들은 그 부분을 참고해 주세요.테이블을 조인하는 가장 일반적인 방법은 INNER JOIN 입니다. 학생들과 수업의 관계를 생각해 보면 학교에 입학을 했지 만 아직 수업에 등록을 하지 않은 학생이 있을 수 있습니다. 쇼핑몰을 예로 들면 회원 가입을 했지만 아직 한번도 물건을 주문 안한 고객이 있을 수 있습니다. 이 경우 INNER..

MSSQL 2024.11.13

데이터 검색(여러 조건)

데이터를 조회하는 방법에 대해 이전 문서에 이어서 설명하도록 하겠습니다.이번에 설명드릴 내용은 단순한 하나의 조건을 검색하는 것이 아니라 복합적인 조건을 이용해서 검색해야 할 경우에 어떻 게 검색을 하는 지에 대한 내용입니다.NOT을 사용하여 행 제외하기NOT 연산자는 단일 조건에서도 사용되지만 보통 여러 조건을 이용한 검색을 할 때 많이 사용됩니다. 말 그대로 조건에 맞 지 않는 조건을 검색하는 용도로 사용됩니다. 보통 Between, In, Like 및 Is Null 등의 술어와 같이 사용되는 데 의미는 단 순하지만 사용상에는 약간의 주의가 필요한 연산자입니다. 1. 주문 테이블에서 주문 날짜가 2017년 10월이 아닌 주문 리스트를 선택하시오.2. 고객 테이블에서 고객이 사는 곳이 서울과 부산이 아..

MSSQL 2024.11.12

데이터 검색(WHERE)

SQL에서 테이블을 생성하고 테이블간의 관계도 맺고, 데이터도 입력을 했으면 그 이후에 할 일은 데이터를 조회하는 것이 필요하겠죠. SQL의 명령문이 테이블에서 가져오는 데이터를 필터링 하려면 SELECT 문에서 WHERE 절을 사용합니다. 이 검색 조건은 필요한 행만 선택하거나 원하지 않은 행을 제외시키는 데 필요한 명령문들이 포함되어 있습니다. "서울에 사는 직원은 누구입니까?""노트북을 생산하는 업체들은 어떤 회사들 입니까? "2017년 5월달에 판매된 컴퓨터는 몇대입니까? 이런 조건으로 데이터를 검색하기 위해서는 모두 WHERE 절을 필요로 합니다. 그러면 기본적은 문법을 알아보도록 하겠습니다.SELECT (Distinct) Column, Column... FROM Table Name WHERE ..

MSSQL 2024.11.11

데이터베이스 분석과 설계

데이터베이스를 잘 사용하려면 필히 거쳐가야 하는 관문이 데이터베이스 분석과 설계 과정입니다. 보통 데이터베이스 모 델링이라고도 하는데, 관계형 데이터베이스에서는 각 테이블과의 관계를 얼마나 잘 설정을 하고, 필드(컬럼)에 어떤 데이 터를 넣고, 테이블은 어떻게 구성하느냐에 따라 데이터베이스의 성능이 크게 좌우되기 때문에, 이 부분을 꼭 익혀 놓아야 나중에 테이블을 다시 뜯어고치게 되는 불상사를 막을 수 있습니다.우선 데이터베이스를 사용하는 데 있어서 중요한 용어 몇가지를 알아보도록 하겠습니다. 테이블(Table)행과 열로 구성된 표 형태로 된 데이터를 의미합니다. 엑셀도 표 형태를 취하고 있으나 엑셀과 다른 점은 엑셀의 경우 여러 행에 걸쳐 데이터를 넣거나, 여러 열에 한가지 데이터를 넣는 등, 표 형태..

MSSQL 2024.11.10