SQL(40)
-
[SQL] 날짜/시간 데이터 다루기 - YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, NOW, CURRENT_DATE, CURRENT_TIME
SQL 에서는 날짜 데이터를 어떻게 다룰까? 지금까지 학습을 하면서, 분명 보이는 것은 문자열 보이지만 실제로 'datetime' 타입인 경우를 많이 접할 수 있었다. 자연스레 'datetime' 에서 '원하는 값만 뽑아 쓸 수 없을까?' 라는 생각이 들었고 해당 내용을 따로 찾아 이렇게 정리하게 되었다. 날짜 및 시간 데이터를 다루는 함수들은 많지만 가장 기본적인 함수들에 대해서 다루었다. 0. 데이터 타입(자료형) 날짜 및 시간을 표현하는 데이터 타입에는 여러가지가 있지만 그 중 가장 기본적이고 보편적으로 사용하는 타입들에 대해 이야기 해보자.DATE : 날짜 정보를 갖는 타입이다. 'YYYY-MM-DD' 형식을 사용한다.TIME : 시간 정보를 갖는 타입이다. 'HH:MM:SS' 형식을 사용한다.D..
2024.08.18 -
[SQL] Query 안의 Query - SubQuery
지금까지는 SELETE 절이나 WHERE 절을 사용해 필요한 데이터만을 추리거나 필요에 따라 데이터를 가공하는 과정을 거치도록 쿼리를 작성했다. 이는 당장 작성에는 괜찮을지 몰라도 추후에 다시 보거나 다른 이가 봤을 땐 한 번에 이해하기 어렵다는 문제를 갖는다. 그래서 SQL 에는 좀 더 보기 편한 쿼리를 작성할 수 있게 'SubQuery' 라는 것이 있다. 개인적으로 학습하고 느낀점은 SQL 만을 사용해서 데이터에 접근하지 않을 나로써는 딱히 마음에 드는 방식은 아니었다. 아무튼 'SubQuery' 에 대해 알아보자. 1. 기본 문법SELECT 컬럼명3, 컬럼명4 // A QueryFROM(SELECT 컬럼명1, 컬럼명2 // B QueryFROM 테이블명) AS 별명 기본 구조를 통해 파악해보면 'A..
2024.08.18 -
[사전캠프] 데이터 속 김서방 찾기
※ 참고 : 과제 설명이 없어서 제목을 토대로 임의로 문제를 예상해 작성하였습니다.문제 : '김' 씨 성을 가진 고객들의 수가 연령대별로 어떻게 되는지 확인하는 쿼리 작성조건 : 'customers' 테이블에서 조회하며, 결과 컬럼에는 '연령대, 인원수' 가 출력되어야 하며 레코드는 '인원수' 가 제일 많은 연령대부터 순차적으로 정렬되어야 한다.SELECT CASE WHEN age = 10 AND age = 20 AND age = 30 AND age = 40 AND age = 50 AND age = 60 AND age = 70 AND age = 80 AND age = 90 AND age WHERE 절을 통해 'name' 에 '김' 이라는 문자를 가진 레코드를 찾고, CASE 문을 통해 조건에 해당하는 ..
2024.08.17 -
[SQL] 조건별 데이터 연산 - IF, CASE
Java 의 'if 문' 처럼 조건에 따라 다른 연산을 지정할 수 있는 방법이 SQL 에도 존재한다. 이번에는 조건을 지정하고 조건에 따라 다른 연산을 하는 방법에 대해 알아보자. 1. 기본 문법SELECT IF(조건식, 조건충족시, 조건불충족시) 별명, CASE WHEN 조건1 then 값1 WHEN 조건2 then 값2 ELSE 값3 ENDFROM 테이블명IF : 조건식을 지정하고, 해당 조건을 만족하는 참(true)일 경우의 값과 만족하지 않는 거짓(false)일 경우의 값을 지정해 참/거짓 여부에 따라 다른 연산을 할 수 있다.CASE : 다수의 조건을 지정하고 조건별로 만족시 수행되는 수식 또는 값을 지정할 수 있다. 지정 조건외의 모..
2024.08.16 -
[SQL] 문자 데이터 가공 - REPLACE, SUBSTRING, CONCAT
데이터 가공이라 해서 기존의 문자 데이터를 변경하는 의미가 아니다. 출력 결과를 내가 원하는 형태로 수정하는 느낌에 가깝다. 예를 들어 현재 내가 필요한 문자 데이터가 어떠한 형식을 요구 받는다면 해당 형식에 맞게 기존 문자 데이터를 가공한 결과를 출력 하는 것이다. 가공에는 특정 문자를 변경 또는 남길 수 있고, 문자를 합칠 수도 있다. 1. 기본 문법SELECT 원본 컬럼명, // 해당 컬럼은 가공 컬럼과 비교하기 위해 사용됨 REPLACE(대상 컬럼명, 현재문자, 바꿀문자) 별명, SUBSTRING(대상 컬럼명, 시작인덱스, 글자 수) 별명, CONCAT(붙일 문자1, 붙일 문자2, ..., 붙일 문자n) 별명FROM 테이블명REPLACE : 대상 컬럼에 있는 문자 ..
2024.08.16 -
[사전캠프] SQL 연습문제 - 4
문제 : 아래의 테이블을 참고해 문제 해결을 위한 SQL 문을 작성하자.idnametrackgradeenrollment_year1르탄이Node.jsA20232배캠이SpringB20223구구이UnityC20214이션이Node.jsB2022[sparta_students(학생) 테이블]Q1. 테이블에서 모든 학생이름(name)과 트랙(track)을 선택하는 쿼리 작성SELECT name, trackFROM sparta_students 특정 컬럼들을 지정해 해당 컬럼들의 데이터만을 출력하는 쿼리를 작성했다. Q2. 테이블에서 'Unity' 트랙 소속이 아닌 학생들을 선택하는 쿼리 작성SELECT *FROM sparta_studentsWHERE NOT track = 'Unity' WHERE 절에 'NOT' 을 사..
2024.08.15