내일배움 5일차 : SQL 문제 풀이의 시간

다롱·2025년 2월 21일

오늘의 학습 포인트

  1. SQL 의 기본구조와 조건문
  2. 데이터의 정의와 DB & DBMS (SQLD 1주차수업)

오늘 공부 한 것

1. SQL 의 기본구조와 조건문

1) SQL 작성 시 참고해야 할 것들

  • MySQL 에서 구문 마지막은 세미콜론(;)으로 끝낼 것
  • 다수 SQL을 작성 할 때 실행 하고픈 SQL 구문에 마우스 커서 두고 Ctrl+Enter 누르면 해당 SQL 실행

2) 조건문 (다시 복기)

** SELECT / FROM /DISTINCT 조건문

# 모든 컬럼을 조회할 경우 
SELECT * 
FROM 테이블이름 
;
# 특정 컬럼을 조회 시
SELECT 컬럼이름, 컬럼이름 
FROM 테이블이름
;
# 특정 컬럼을 중복없이 조회 시 
SELECT DISTINCT 컬럼이름
FROM 테이블이름 

** CASE WHEN 조건문

조건에 따라, 다른 결과값을 부여하고 싶을 때. 조건에 따라 더 추가 시 WHEN 을 쓰면 되고, 조건식을 모두 만족하지 않을 시 ELSE로 간주함 (연산자 지원 가능)

SELECT CASE WHEN 조건식1 THEN 결과1
            WHEN 조건식2 THEN 결과2
            ELSE 결과3 
            END AS 새로운 컬럼이름
FROM 테이블명

** 조건문 활용 시 참고해 둘 것

  • WHERE와 CASE WHEN은 다양한 연산자를 지원 하므로 연산자 사용 가능함
  • 여러가지 조건을 사용 시, 연산의 우선순위를 명시하기 위해, 각 조건에 괄호()를 작성하여 우선적으로 연산하고,해당 조건들을 모두 만족해야 하므로, 각 조건들은 AND 연산자로 묶어서 사용
  • CASE WHEN 조건문 경우 WHEN을 여러개 사용 할 수 있어 실제 쿼리 입력 시 가독성이 높음. IF도 사용 가능하지만, 가독성이 낮은 편이라 SQL보다는 파이썬에서 많이 사용

2. 데이터의 정의와 DB & DBMS (SQLD 1주차수업)

- SQL이란? : 데이터베이스를 직접적으로 액세스할 수 있는 언어로, 데이터를 정의하고, 조작하며, 결과를 적용하거나 취소할 수 있고, 접근 권한을 제어하는 처리로 구성

-SQL은 국제 표준화 기준으로 준수 하고 있으나, 기업에 따라 자신들만의 문법으로 커스텀 하는 경우도 있으며, 사용하는 DBMS에 따라 SQL 문법이 다를 수 있음 (디테일한 부분은 미묘하게 차이가 있음 -활용 환경에 따라...)

- 데이터는 무엇일까? : 저장이나 처리에 효율적인 형태로 변환된 정보. 매순간 엄청난 데이터가 축적되고 있음 무한하게 증가하는 이 데이터를 ‘잘’ 저장하고, 관리하는 기술이 필요

- DBMS란? : 사용자, 다른 애플리케이션 및 데이터베이스 자체와 상호 작용하여 데이터를 캡처하고 분석하는 특수 설계된 소프트웨어

오늘의 문제 풀이

1) 코드카타 문제 풀이 중 내가 몰랐던 함수

- DATE_FORMET : DATETIME 의 TYPE을 가진 칼럼의 형식을 수정, 지정해 주는 함수 (참고링크)

DATE_FORMAT("날짜 값", "날짜 컬럼" , "날짜 포멧");
SELECT DATE_FORMAT("2025/02/21 12:00:00", "%Y-%m-%d");
* 2025/02/21 12:00:00으로 기입 된 항목을 2025-02-21로 바꾸고 싶을 때 

'- 처음에 ORDER BY LIMIT 를 사용하려 했으나 오답이 나와 찾아보니 'DATE_FORMET'이라는 함수가 있었다... 기억이 가물가물하여 찾아보니 이해하기 쉬웠다. 날짜포멧이 많던데.. 이 부분은 코딩테스트하고 배워 나가며 이해를 해야겠다.

2) 달리기 문제 복습

  • 1~2번 무사히 풀었지만 세미콜론을 뺀다던가, 함수의 스펠링을 잘못 입력하여 ERROR 표시가 많이 났다.

오늘의 회고

어제 학습을 못한 부분을 보충하고, 문제 풀이로 정신이 없는 하루였다. 코드카타와 달리기 문제를 풀면서 내가 알던 문법과 모르는 문법이 혼재 되어 있어, 구글링을 하며 찾는데 많은 시간이 소요 되었지만 재미있다.

오전에 했던 라이브 세션에서 튜터님이 상세하게 기본기를 설명해주시고 잡아주어서 내가 그동안 문제를 풀고 헷갈렸던 부분이 어느정도 해결이 되었다. (숙제도 겨우겨우 풀었다)

숙제와 문제를 풀면서 내가 틀린 부분이나 모르는 부분을 구글링이나 수업 자료를 찾아가며 공부를 한다는 것이 뿌듯하고 보람찼지만 내껄로 만드는게 중요 할 것 같다. 다른 교육생 분들이 풀고 질문하는 내용 보면 정말 대단하다는 생각 밖에 안드는데 각각 스타일이 있는 것 같았기 때문이다. 그래서 같은 코딩 테스트 문제를 풀어도 내 것을 만드는 걸 많이 해야겠다

profile
새로운 길로 다시 가고자 하는 잉여인간 https://dadakimmm.tistory.com/

0개의 댓글