SQL 6

241122 SQL 스터디

오늘 조원들과 SQL 쿼리 작성 문제 중 몇 가지 케이스를 가지고 스터디를 진행했고,새로 배우거나 중요한 내용을 다시 정리할 겸 작성하게 되었다. 날짜 간의 차이를 구할 때 datediff 함수 외에도 timestampdiff나 date_sub 사용이 가능하다. - DATEDIFF() : 간단한 일(day) 차이를 계산해주는 함수datediff(날짜1, 날짜2)  - TIMESTAMPDIFF() : 날짜간의 차이를 지정한 단위로 계산해주는 함수timestampdiff(단위, 날짜1, 날짜2) - 단위 예시SECOND : 초MINUTE : 분HOUR : 시DAY : 일WEEK : 주MONTH : 월QUARTER : 분기YEAR : 연 - DATE_SUB() : 기준 날짜에서 interval 뒤의 값만큼 해..

TIL/SQL 2024.11.22

241111 엑셀보다 쉽고 빠른 SQL - 5주차

대망의 SQL 마지막 5주차 강의 시작  먼저 MySQL에서는 사용할 수 없는 값을 0으로 간주한다. 1) 데이터가 없는 값을 연산에서 제외하거나 대체하는 방법을 3가지로 알아보자. 1-1) 사용할 수 없는 값을 NULL로 지정해 제외하기 위 데이터에서 rating 컬럼의 평균을 구한다고 생각해보자. Not given은 사용할 수 없는 값 => 0으로 간주함. 고로0(Not given) + 0(Not given) + 5 + 3 + 4 + 3 / 6 = 2.5 하지만 SQL에서 Not given을 null로 지정해주면 연산에서 제외되므로5 + 3 + 4 + 3 / 4 = 3.75 로 값이 달라진다.    1-2) 빈 데이터인 [NULL]을 없애고 싶을 때  is not null 명령어로 제외하기select..

TIL/SQL 2024.11.11

241108 엑셀보다 쉽고 빠른 SQL - 4주차

SQL 4주차 강의 시작 1. 여러 번의 연산을 한 번에 Subquery 문을 통해 구성해보자.select column1, special_columnfrom (/* subquery */ select column1, column2 special_column from table1 ) a# Subquery의 기본 구조 위 구조를 이용해서 작성하면 길디 긴 쿼리문을 더 효율적으로 보기 쉽게 구성이 가능함!  바로 예제 풀러 Go    ex) 음식점의 지역과 평균 배달시간(20분 이하/20분 초과 30분 이하/30분초과)으로 segmentation 해보기select restaurant_name, place, avg_delivery_time, ..

TIL/SQL 2024.11.09

241107 엑셀보다 쉽고 빠른 SQL - 3주차

SQL 3주차 강의 시작 특정 문자를 다른 문자로 대체할 때 : REPLACE특정 문자열 추출할 때 : SUBSTRING(SUBSTR)여러 컬럼의 문자를 합칠 때 : CONCAT 조건문 지정할 때 : IFif(조건, 조건을 충족할 때, 조건을 충족하지 못할 때) 두 개 이상의 조건문 : CASEcase when 조건1 then 값(수식)1 when 조건2 then 값(수식)2 else 값(수식)3end   예제) 1. 다음의 조건으로 배달시간이 늦었는지 판단하는 값을 만들어주세요.주중 : 25분 이상주말 : 30분 이상select order_id, restaurant_name, day_of_the_week, delivery_time, case wh..

TIL/SQL 2024.11.07

241105 엑셀보다 쉽고 빠른 SQL - 2주차

SQL 강의 2주차 시작 각 컬럼간에 사칙연산으로 새로운 컬럼 표기가 가능함SUM/AVG로도 원하는 데이터 추출 가능 범주별 원하는 데이터를 추출할 때는 GROUP BY ex) 결제 타입별 가장 최근 결제일 구하기select pay_type, max(date) recent_datefrom paymentsgroup by pay_type  결과를 순서대로 정렬할 때 ORDER BYORDER BY는 기본적으로 오름차순내림차순은 desc 붙여서 사용 ex) 음식점별 주문 금액의 최댓값 조회하기 / 최댓값 기준 내림차순 정렬select restaurant_name, max(price) max_pricefrom food_ordersgroup by restaurant_nameorder by ma..

TIL/SQL 2024.11.06

241105 엑셀보다 쉽고 빠른 SQL - 1주차

SQL 1주차 수강시작DBeaver 설치 후 데이터베이스 연결 데이터베이스는 마치 제일 큰 저장소 ?그 안에 엑셀 파일같은 테이블 존재 / 테이블의 각 열을 컬럼으로 정의 기본적으로 데이터베이스에서 원하는 데이터를 불러올 때 SELECT / FROM 문 사용select * / * : 모든 컬럼을 가져올 때 사용from ~ / ~ 테이블 특정해 줌 column에 alias 설정 시영문, 언더바 : alias만특수문자, 한글 : "alias"(큰 따옴표 안에 표기)조건에 맞는 데이터로 필터링이 필요할 땐 WHERE 절 사용좀 더 다양한 조건의 필터를 걸려면 BETWEEN / IN / LIKE 사용그리고 적용할 필터링 조건이 여러개라면 꼭 논리연산(AND/OR/NOT)으로 연결시켜주자. 1주차 숙제 얼른 끝내..

TIL/SQL 2024.11.05