SQL 17

SQL (7) - GROUP BY

이번에는 데이터를 하나의 특정한 그룹으로 묶어주는 SQL의 GROUP BY 연산자를 알아보겠습니다.GROUP BY를 사용하는 경우 조심해야 하는 것은SELECT 문에 반드시 GROUP BY의 인자로 넣어준 속성을 사용해야 하는 것입니다.GROUP BY는 인자로 넣어준 속성에 해당하는 데이터를 동일한 하나의 그룹으로 묶어주는 연산자이므로SELECT 연산자와 GROUP BY 연산자는 동일한 인자를 가져야 합니다. 1) 일반적인 GROUP BY 사용-- 2004년도의 타율 데이터에서 teamID 별로 그룹을 만들어 teamID를 가져옴-- 데이터를 특정한 그룹으로 묶어서 분석하기 위해 사용하는 GROUP BY 함수SELECT teamIDFROM battingWHERE yearID = 2004GROUP BY t..

데이터베이스 2025.02.11

SQL (6) - 집계 함수

이번 포스트에서는 SQL에서 속성의 데이터들을 집계하는 집계 함수들에 대해 알아보겠습니다. 1) COUNT 연산자COUNT 연산자는 데이터의 개수를 집계하는 함수입니다.다음과 같이 사용할 수 있습니다. -- COUNT 연산자는 * 를 사용할 수 있는 유일한 연산자SELECT COUNT(*)FROM players;-- 특정 속성을 대상으로 집계를 수행함, 이때 null은 자동으로 무시됨SELECT COUNT(birthYear)FROM players; 첫 번째 쿼리의 실행 결과는 다음과 같습니다. 두 번째 쿼리의 실행 결과는 다음과 같습니다. 위의 2가지 방법 말고도 중복을 배제하여 집계하는 방식도 있습니다. 1 - 1) DISTINCT : 중복을 배제DISTINCT는 SELECT 연산자와 같이 사용되어 중..

데이터베이스 2025.02.10

SQL (5) - CASE

이번 포스트에서는 다른 언어의 Switch - Case와 비슷한 SQL의 CASE 함수에 대해 알아보겠습니다. 1) 사용법일반적인 Switch - Case의 문법은 다음과 같이 작성합니다.swtich(대상) case 조건1: 로직 break; case 조건2: 로직 break; default: 로직 break; 기본적인 로직은 대상에 한해서 case의 조건에 맞다면 해당하는 case의 로직을 수행하고모든 case의 조건에 맞지 않는 대상은 default의 로직을 수행하게 되어 있습니다. 이제 SQL에서의 CASE 함수의 문법을 살펴보겠습니다.SELECT *, CASE 대상 WHEN 조건 THEN 로직 ELSE 로직 END AS 속성이름FROM..

데이터베이스 2025.02.05

SQL (4) - DATETIME

이번 포스트에서는 SQL에서 시간을 나타내는 자료형인 DATETIME에 대해 알아보겠습니다. 1) 시간 자료형에 대해 간단하게 알아보기시간의 경우 매우 정밀하게 동작해야 하므로 기존의 자료형을 사용하기보다는새로운 자료형을 만들어 사용하는 것이 훨씬 더 효율적입니다.SQL에서 사용가능한 시간자료형을 간단하게 알아보면 다음과 같습니다.DATE : 연/월/일TIME : 시/분/초DATETIME : 연/월/일/시/분/초또한 시간 자료형을 사용하는 경우,일정한 형식을 통해 시간의 변환이 이뤄지기 때문에 일정한 형식을 만들어 사용해야 합니다.사용가능한 형식은 다음과 같습니다.YYYY/MM/DDYYYYMMDD hh:mm:ss.nnn 2) 문자열 자료형을 시간 자료형으로 변환하기-- 문자열 자료형을 시간 자료형으로 변..

데이터베이스 2025.02.05

SQL (3) - 산술연산과 문자열

이번 포스트에서는 SQL에서 산술 연산을 어떻게 수행하고 또 문자열은 어떻게 다루는지 알아보겠습니다. 1) 산술연산-- SQL에서의 산술 연산, 산술 연산간 우선순위는 기존의 연산자와 같다-- + - * /(몫) %(나머지) -- 한국 나이를 가져오고 해당 한국 나이가 80 이하인 경우만 오름차순 정렬SELECT 2025 - birthYear AS KoreanAgeFROM playersWHERE deathYear IS NULL AND birthYear IS NOT NULL AND (2025 - birthYear)  SQL에서도 마찬가지로 사칙연산을 수행하는 연산자들간의 우선순위가 존재합니다.이런 우선순위를 주의하며 사용할 필요가 있습니다. 첫 번째 쿼리의 경우 이전에 사용하던 데이터 테이블에서산술 연산을..

데이터베이스 2025.02.04

SQL (2) - ORDER BY문

이번 포스트에서는 정렬을 수행하는 ORDER BY 구문에 대해 알아보겠습니다. 1) 기본적인 ORDER BY-- NULL을 생략하지 않는 ORDER BYSELECT *FROM playersORDER BY birthYear;-- 기본적으로 오름차순으로 정렬함SELECT *FROM players WHERE birthYear IS NOT NULLORDER BY birthYear;-- 내림차순으로 정렬SELECT *FROM players WHERE birthYear IS NOT NULLORDER BY birthYear DESC; ORDER BY 구문은 위와 같이 사용할 수 있습니다.기본적으로 오름차순으로 동작하면서 이를 명시하고 싶다면 ASC를 작성해주고,내림차순으로 동작하고 싶다면 DESC를 작성해주면 됩니다..

데이터베이스 2025.02.04

SQL (1) - SELECT문

이번 포스트에서는 데이터 베이스를 다루는 언어 중 SQL을 다뤄보고SQL에서 특정 데이터를 골라오는 SELECT 문법을 한번 알아보겠습니다. 1) 모든 데이터 가져오기SELECT *FROM players; SELECT 연산자 다음에 * 연산자를 사용해 특정 테이블에서 모든 데이터를 가져올 수 있도록 합니다.또한 FROM 연산자를 통해 데이터를 가져오는 특정 테이블을 지정할 수 있습니다.현재 연산은 players 테이블에서 해당하는 모든 데이터를 가져오게 됩니다.실행결과는 다음과 같습니다. 2) 조건부 데이터 가져오기-- 출생연도가 1866인 경우만 가져오되, nameFirst 행을 name으로 가져오기SELECT nameFirst as name, nameLast, birthYearFROM playersW..

데이터베이스 2025.02.04