분류 전체보기 50

서브쿼리(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

데이터 선택(SELECT...FROM)

SQL에서 SELECT는 다른 키워드들 중에서도 SQL의 가장 핵심되는 부분이라고 할 수 있습니다. SELECT를 다른 키워드 및 절과 함께 사용하면 거의 제한이 없는 방법으로 데이터를 찾아보고, 필터링을 하고, 통계를 낼 수 있습니다.MSDN(Microsoft Developer Network)에서 SELECT문을 찾아보면 엄청나게 긴 명령문 집합과 설명서에 내용을 읽어보 기도 전에 기부터 죽을 수 있는데 사실 모든 내용을 다 익힐 필요는 없습니다. 기본적인 사용법 몇가지만 익혀도 필요한 데 이터를 찾아보는데 충분한 경우가 많으며, 복잡한 관계로 이루어진 테이블이 아니라면 몇개의 키워드만 알아도 충분한 경 우가 많습니다.예를 들어 회원 주소록 테이블이 있다면 이런 단순한 테이블의 경우는 SELECT.....

MSSQL 2024.11.09

제약조건

SQL에서 제약조건이란 데이터의 무결성을 지키기 위한 장치라고 보면 됩니다.데이터베이스가 엑셀이나 워드같은 프로그램과 가장 큰 차이점을 보이는 부분이라고 볼수도 있습니다.예를 들어 쇼핑몰에서 회원가입을 할 때 주민번호를 입력하는 부분이 있는데 이 주민번호를 입력하는 부분은 중복된 데이 터가 들어가면 안되겠죠. 그래서 이 주민번호를 입력하는 컬럼에 제약조건을 만들 수 있습니다.지금은 회원가입시 주민번호를 사용하지 않기 때문에 예가 적절치 않을 수도 있으나 주민번호가 아니더라도 닉네임이나 휴대전화번호, 메일주소등은 모두 제약조건이 필요한 컬럼입니다. 이런 컬럼들도 역시 중복된 데이터가 들어가면 안되기 때문에 테이블 생성시에 제약조건을 만들어서 관리하는 것이 필수적으로 필요한 부분이라고 할 수 있습니다.그러면..

MSSQL 2024.11.09

데이터베이스 생성과 테이블 작업

데이터베이스 만들기SSMS(SQL Server Management Studio)나 퀴리 분석기를 이용하여 데이터베이스를 생성할 수 있습니다.SSMS를 이용하여 데이터베이스를 생성하는 방법은 따로 설명드리지 않고 여기에서는 쿼리분석기를 이용하여 데이터베 이스를 생성하는 방법을 설명드리겠습니다.SQL Sever가 없어서 다운로드 받고 싶으신 분은 아래의 링크를 이용해서 무료로 다운로드 받을 수 있습니다. https://www.microsoft.com/ko-kr/sql-server/sql-server-downloads SSMS에서 새 쿼리를 클릭합니다.퀴리 분석기 창에서 아래와 같이 입력합니다.   USE master GOIF NOT EXISTS (SELECT name FROM sys.databasesWHER..

MSSQL 2024.11.08