SQL 9

TIL_24.09.10_COALESCE함수

SQL 코딩테스트 문제를 풀다가 다른 분들 풀이를 보고 몰랐던 함수에 대해서찾아보았다. ▶ COALESCE함수로 NULL 값 처리하기SELECT COALESCE(컬럼1, 컬럼2, 컬럼3, ... , 컬럼 N, ...) FROM table;     만약, 컬럼1이 null이 아니면 컬럼1을 반환되고, null이면 컬럼2를 반환    컬럼2가 null이 아니면 컬럼2를 반환하고, 컬럼1과 컬럼2 모두 null이면 컬럼3을 반환    컬럼1 ~ 컬럼5까지 null 이면 컬럼 6을 반환하는 형식  예시)SELECT COALESCE(컬럼1, 컬럼2, '공백') FROM member;결과값: 컬럼1의 null값 대신 컬럼2가 반환되고, 컬럼2의 null값 대신'공백'으로 반환  ▶ IFNULL과 COALESCE의 ..

TIL_24.08.01_DDL, DML

▶key의 개념 알기이름설명특징기본 키(Primary Key)각 행을 고유하게 식별하게 사용되는 하나 이상의 컬럼- 한 테이블에는 하나의 키만 존재- NULL 값을 가질 수 없음- 각 행에 고유한 값외래 키(Foreign Key)한 테이블의 컬럼이 다른 키의 기본키를 참조하는데 사용되는 컬럼- 부모 테이블의 기본키와 동일- 제약조건을 통해 참조 무결성을 유지할 수 있음 ● 식별자 vs 기본키    ○ 식별자는 데이터베이스 설계 단계에서 사용하는 용어이며         각 행을 고유하게 식별할 수 있는 모든 속성 혹은 속성 조합을 나타냄     ○ 기본키는 각 각행을 고유하게 식별하는데 사용되는 선택된 식별자이며         테이블간의 관계(JOIN 등)을 기술하기 위해 사용 ● 참조무결성이란 두 테이블..

TIL_24.07.16_ <union all, null 치환>

오늘도 똑같이 아침 코드카타 연습문제를 풀다가sql에서 헷갈렸던 부분을 확실하게 하고 넘어가고자 TIL을 작성한다. ▶ union과 union all    - union 과 union all은 두 개 이상의 조회 결과를 병합하는 경우에 사용   ● union 과 union all의 차이점     - 중복된 데이터를 포함하는 지의 여부       * union을 사용할 때 규칙          1) 각 쿼리의 select 절 칼럼의 개수 및 데이터 타입이 일치해야 한다.          2) 대응하는 컬럼명이 같아야 한다.(단, 별칭 사용 가능)          3) order by 절은 마지막에 한 번 사용 가능하다.         * union은 병합하는 과정에서 중복 데이터가 사라진다.        ..

TIL_24.07.12_다중 테이블 left join

오늘 아침에도 sql, 알고리즘 문제를 풀다가sql 문제에서 3개 테이블을 left join을 사용해서 문제를 풀어야 하는상황이었는데 with 문과 두 개 테이블 join하는 방법을 사용해서 풀었더니역시나 오답이었다.🤦‍♀️그래서 다른 분들 풀이를 찾아보았는데 3개 테이블을 join하는 방법이 있다는 것을알고, 구글링을 해보았다. 그랬더니 left join과 다중테이블을 left join하는 것에 대해서 이해가 아주 잘되게 글을 써주신 분의 블로그가 있었다.https://kimsyoung.tistory.com/entry/3%EA%B0%9C-%EC%9D%B4%EC%83%81%EC%9D%98-%ED%85%8C%EC%9D%B4%EB%B8%94-LEFT-JOIN-%ED%95%98%EA%B8%B0 3개 이상의 ..

TIL_24.07.11_join 과 using

오늘 아침에 SQL 과 알고리즘 문제를 푸는데 self join과 using에 대해서 모르는 부분들이 있어서 구글링을 해보았다. self join 은 서로 같은 테이블끼리 join 하여 사용하는 것인데join을 반드시 테이블을 결합할 때만 사용하는 것이 아니다.같은 테이블의 레코드 사이에서 관련성이 존재할 수 있기 때문이다. 그리고 join을 사용할 때 on 절을 사용하는 경우도 있지만 using 문법을 써서 사용하는 경우도 있다. using을 사용할 때에는 연결하려는 테이블 간의 키 컬럼명이 일치해야 한다. on절과 using의 차이점은 뒤에 조건을 붙일 때 이다.on절 뒤에는 and 를 붙여서 조건을 추가할 수 있지만, using은 뒤에 추가적으로 and 조건을 붙일 수 없다. 예시 코드-- ON 사..

TIL(Today I Learned) 24.07.01

● DML (Data Mani pulation Language) - 데이터 조작어 - 정의된 DB에 입력된 레코드를 조회 , 추가, 수정, 삭제하는 기능select : 조회Insert : 삽입Update : 수정Delete: 삭제● INSERT - 테이블에 새로운 데이터를 입력할 때 사용-- 특정 컬럼에만 값을 넣을 경우INSERT INTO table_name (column1, column2, column3, ...)VALUES (value1, value2, value3, ...);-- 모든 컬럼에 값을 넣을 경우 column 생략 가능.-- 테이블에 있는 컬럼의 순서와 같은 순서로 값을 넣어주어야함. INSERT INTO table_nameVALUES (value1, value2, value3, .....

TIL(Today I Learned) 24.06.24

SQL 기초강의 - 1주차 강의SQL 문이란 : DB 에서 데이터를 조회하기 위한 언어  SQL 문의 기본 구조 select # '데이터 조회' 의 명령어로 필수 구문from # '어디에서 데이터를 조회할까' 의 명령어로 필수 구문 where # 조건을 지정해주는 구문 조건을 지정하는 방법비교연산자 : , =, 다양한 구문 : IN, BETWEEN, LIKEIN 같은 경우 여러 조건을 나타내는 약어 or 과 같다NOT IN : IN 목록의 값이 아닌 모든 레코드 반환여러가지 조건의 적용 : AND, OR, NOT - 2주차 강의SQL 에서는 계산의 편의를 위해 함수를 제공함수 종류합계 : SUM(컬럼)평균 : AVG(컬럼)사용 예시 select sum(food_preparation_time) tot..

TIL(Today I Learned) 24.06.26

SQL로 Pivot table 만들기  - pivot table  : 2개 이상의 기준으로 데이터를 집계할 때, 보기 쉽게 배열하여 보여주는 것을 의미 pivot 테이블 예시집계기준 : 일자, 시간  1시2시3시4시10월 1일535210월 2일7101810월 3일339410월 4일916701 1. 음식점 별, 시간별 주문 건수 집계하기select a.restaurant_name, substring(b.time, 1, 2) hh, count(1) cnt_orderfrom food_orders a inner join payments b on a.order_id=b.order_idwhere substring(b.time, 1, 2) between 15 and 20group by 1, 2 ..

TIL(Today I Learned) 24.06.25

SQL 기초 강의 3주차  - 조건에 따라서 포맷을 변경해야 한다면 (IF, CASE)-> group by처럼 조건도 카테고리별로 줄 수 있을까? ▶ 조건에 따라 다른 방법을 적용하고 싶을 때 가장 기초 문법은 'if 문' 함수명 : if사용 방법if(조건, 조건을 충족할 때, 조건을 충족하지 못할 때) if문 예시 select restaurant_name, cuisine_type "원래 음식 타입", if(cuisine_type='Korean', '한식', '기타') "음식 타입"from food_orders   ▶ 조건에 따라 여러가지 지정하고 싶을 때 - case 문 - 조건을 지정하다 보면, 두 개 이상 지정을 해야 할 경우가 생깁니다.- 조건별로 지정을 해주기 때문에 if문..