SQL Server 10

[MS SQL Server] #14_특정 컬럼 값만 다른 행들을 하나의 행으로 합치기

안녕하세요. 문범우입니다.이번에는 MSSQL에서 특정한 문법을 사용하는 내용이 아니라 특정 칼럼 값만 다른 여러개의 행을 하나의 행으로 합쳐서 나타내는 실습을 진행해보도록 하겠습니다. 0. 데이터 세팅 먼저 실습을 위해 아래와 같이 데이터를 세팅합니다. 테이블 이름은 USER_ANSWER로 만들었습니다. 세팅된 테이블을 전체 SELECT를 하면 다음과 같습니다. 위의 데이터를 아래와 같은 상황으로 가정합니다. 현재 USER_ID 값이 0001, 0002, 0003 으로 총 3명이 존재하며, 각각은 모두 Q01 부터 Q05까지의 문제에 대해 답변을 선택하여 해당 데이터가 테이블에 존재하는 것입니다.이때 각 문제들은 중복으로 답을 체크할 수 있습니다. USER_ID값이 0001인 데이터를 보면 모두 하나의 ..

Database/MS SQL 2020.01.07 (1)

[MS SQL Server] #13_이중 not exists에 관해서

안녕하세요. 문범우입니다.이번 포스팅에서는 이중 not exists에 관해 예제를 다뤄보도록 하겠습니다.이번에 다루게 되는 내용에 대해서는 기본적으로 not exists에 대해 동작 방식을 이해해야 수월하게 따라올 수 있습니다.not exists에 대해 아직 헷갈린다면 아래 글을 먼저 확인해주세요. [MS SQL Server] #11_ IN / EXISTS / NOT IN / NOT EXISTS 비교 특별히 이번 예제는 블로그를 통해서 연락주신 분에 의해서 다루게 되었습니다. 1. 테이블 정의 및 데이터 정의 먼저 예제를 소개하기에 앞서 사용될 테이블과 데이터를 정의합니다.총 3개의 테이블(sailors, boats, reserved)을 사용하며 각 테이블에 있는 데이터는 아래 사진과 같습니다. 테이블에..

Database/MS SQL 2019.10.21 (4)

[MS SQL Server] #10_순위 함수(RANK, DENSE_RANK, ROW_NUMBER, NTILE)

안녕하세요. 문범우입니다.이번 글에서는 SQL Server에서의 순위함수들(RANK, DENSE_RANK, ROW_NUMBER, NTILE)에 대해서 알아보며 함께 PARTITION BY 절에 대해서도 함께 알아보도록 하겠습니다. 이번 실습 또한 과거 글에서 만들었던 SampleDB를 통해 진행하도록 하겠습니다. SELECT * FROM employee; 먼저 RANK, DENSE_RANK, ROW_NUMBER 세가지 함수에 대해서 알아보겠습니다. 먼저 각각의 함수에 대해 간략한 설명과 함께 쿼리를 통해 결과를 확인해보고 세가지 함수의 차이에 대해서 함께 알아보도록 하겠습니다. 1. RANK RANK 함수는 중복 값들에 대해서 동일 순위로 표시하고, 중복 순위 다음 값에 대해서는 중복 개수만큼 떨어진 순..

Database/MS SQL 2019.05.15

[MS SQL Server] #9_ROLLUP, CUBE, CASE, PIVOT

안녕하세요. 문범우입니다.이번 포스팅에서는 rollup, cube, case, pivot에 대해서 함께 알아보도록 하겠습니다. 먼저 이전의 글에서 만들었던 sample데이터를 통해 실습을 진행해보도록 하겠습니다. SELECT * FROM employee; 1. ROLLUP 먼저 알아볼 함수는 ROLLUP 입니다.ROLLUP은 GROUP BY문과 함께 사용되는 함수인데, GROUP BY로 GROUPING된 행들 데이터 총합을 나타는데 사용합니다. 즉, employee테이블에서 부서별 그리고 직급 별 급여 합과 총합을 구하기 위해서 ROLLUP이 사용될 수 있습니다. SELECT deptNo, job, SUM(salary) 급여총합FROM employeeGROUP BY deptNo, job with ROLL..

Database/MS SQL 2019.04.28

[MS SQL Server] #8_집계함수, GROUP BY, HAVING

안녕하세요. 문범우입니다.이번 포스팅에서는 SUM, AVG, MIN, MAX와 같은 집계함수들에 대해서 알아보면서 GROUP BY절과 HAVING절에 대해서 다뤄보도록 하겠습니다. 1. 집계함수 집계함수는 값에 대해서 특정 연산을 수행하는 함수들을 이야기합니다.합계를 구하는 SUM함수나 평균을 구하는 AVG함수, 개수를 세는 COUNT함수 등이 대표적입니다.그럼 아래와 같이 이전 포스팅에서 사용했던 SampleDB를 사용하여 몇가지 집계함수에 대해서 함께 알아보도록 하겠습니다. - SUM SUM함수는 말 그대로 합계를 구하는 함수 입니다.employee 테이블에서 연봉의 합계를 구하고자 할 때와 같은 경우에 아래와 같이 사용할 수 있습니다. SELECT SUM(salary) FROM employee; 그..

Database/MS SQL 2019.04.21

[MS SQL Server] #7_LIKE 연산, ORDER BY, TOP n

안녕하세요. 문범우입니다.이번 포스팅에서도 SELECT 문을 기반으로 한 심화적인 내용에 대해서 알아보겠습니다.LIKE 연산자와 ORDER BY, TOP(n) 등에 대해서 함께 알아보도록 하겠습니다. 1. LIKE 만약, 다음과 같은 조건에 대한 데이터를 조회하려면 어떻게 해야 할까요? "이씨 성인 사람의 데이터를 조회하라.""이름에 '범'이 들어가는 사람의 데이터를 조회하라" 우리가 이전에 배운 내용들로 쉽게 할 수 있을까요?위와 같이 정확하게 어떤 값인지 모르지만 검색이 필요한 경우가 있을 것입니다.우리는 이럴때 검색을 용이하게 하기 위해서 와일드카드를 사용합니다.와일드카드로는 '%'와 '_' 두 개의 특수 문자가 존재하는데 각각의 의미하는 바는 다음과 같습니다. % : 문자가 없거나, 한개이상의 어..

Database/MS SQL 2019.04.16

[MS SQL Server] #6_SELECT문에 WHERE절 사용하기

안녕하세요. 문범우입니다.지난 글에서 기초적인 SELECT문을 통해 데이터를 조회하는 방법에 대해서 알아보았습니다.이번 포스팅에서는 SELECT문에 WHERE절을 추가하여 특정 조건에 부합하는 데이터들만 조회하는 방법에 대해서 알아보도록 하겠습니다.데이터베이스 및 테이블들은 지난 글에서 만든 샘플데이터를 그대로 이용합니다. 해당 샘플 데이터가 없는 분들은 아래 글에서 쿼리를 통해 샘플데이터를 생성하고 진행해주세요. [MS SQL Server] #5_SELECT문 기초 1. WHERE문 기초 먼저 아래와 같은 기본 SELECT문을 통해서 employee 테이블의 모든 데이터를 조회해보도록 합시다. SELECT * FROM employee; 그런데 만약 위와 같이 모든 정보를 얻고 싶은 것이 아니라, job..

Database/MS SQL 2019.04.16

[MS SQL Server] #5_SELECT문 기초

안녕하세요. 문범우입니다.이번 포스팅에서는 먼저 샘플 데이터세트를 구성해보고, 이를 바탕으로 select 문에 대해서 보다 자세히 다뤄보도록 하겠습니다. 1. 샘플 데이터세트 구성하기 아래의 쿼리를 실행시킴으로써 샘플 데이터베이스 생성 부터 데이터 입력까지 진행합니다.단순 CREATE 및 INSERT 문이기 때문에 복사 붙여넣기를 하셔도 되지만복습 및 익숙해짐을 위해서 직접 타이핑 해보시는 것도 좋을 것 같습니다. -- CREATE SAMPLE_DBCREATE DATABASE SampleDB; USE SampleDB; -- CREATE TABLECREATE TABLE department(deptNo INT PRIMARY KEY,deptName NVARCHAR(20),location NCHAR(20)); ..

Database/MS SQL 2019.04.13

[MS SQL Server] #4_데이터 조작하기 기초

안녕하세요. 문범우입니다.이번 포스팅에서는 MS SQL Server에서 데이터를 다루는 기초적인 쿼리들에 대해서 알아보도록 하겠습니다. 구체적으로는 create table, insert, alter에 대해서 다뤄볼 예정입니다. 1. CREATE DATABASE 먼저 우리가 이번 실습을 진행할 데이터 베이스를 만들어보도록 합니다. CREATE DATABASE MEMBER_TEST; 위의 쿼리로 MEMBER_TEST라는 이름의 데이터베이스를 만듭니다. 그리고 이후 아래 쿼리를 통해 해당 데이터베이스에서의 작업을 시작합니다. USE MEMBER_TEST; 2. CREATE TABLE 이제 우리가 데이터를 다뤄볼 첫번째 테이블을 만들어 보도록 하겠습니다.테이블을 만드는 쿼리문은 기본적으로 아래의 형태를 가지고 ..

Database/MS SQL 2019.04.12 (3)

[MS SQL Server] #3_데이터베이스 구축하기(by Transact-SQL)

안녕하세요. 문범우입니다. 지난 포스팅에서는 SSMS의 개체탐색기를 이용하며 데이터베이스 구축을 진행해보았습니다. 이번 포스팅에서는 같은 과정에 대해서 Transact-SQL을 이용해 진행해보도록 하겠습니다. 1. 데이터베이스 구축하기 먼저 아래와 같이 SSMS를 실행시키고 상단의 새쿼리 메뉴를 클릭합니다. 빨간색 박스에 master로 설정되어 있는 것을 확인합니다. 우리는 먼저 데이터베이스를 만들고 해당 데이터베이스 내부에 테이블이나 데이터를 추가할 것이니, 먼저 master를 선택하여 데이터베이스를 만들어야 합니다. 그럼 우측, 쿼리를 입력할 수 있는 곳에 아래와 같이 데이터베이스 생성 쿼리를 입력해봅니다. create database 위의 쿼리문은 데이터 정의어(DDL) 중의 하나인 create문을..

Database/MS SQL 2019.04.09 (1)